• Почему я всегда покупал продукты компании Valve и почему я больше не сделаю этой ошибки

      Disclaimer: Данный пост написан мною как частным лицом. Этот пост не имеет никакого отношения к моему текущему месту работы.

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

      За последние 5 лет я просмотрел много игр, но те, за которые мне захотелось бы заплатить были в меньшинстве. Платить за игру, которая надоедает через 10 минут — бессмысленно. Такие разработчики надеяться только на рекламу и неосведомленных покупателей.

      Поэтому я выделил определенный список разработчиков, которым я готов платить деньги за их труд. Потому, что он доставляет мне удовольствие. В их число входила компания Valve. Half-Life был шедевром. А Half-Life 2 тоже очень хорошим продуктом. Как только выходила новая игра от Valve я знал, что её надо покупать. Дело не в том, что я не мог скачать игру с торентов. Я мог. Но я хотел поддержать компанию. И все равно, что большинство знакомых играет в пиратки — мне игра нравится — я за неё плачу. И буду надеятся что они выпустат версию под линух;)
      Читать дальше →
    • Ghetto workout

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

        Отжимания




        Читать дальше →
      • Собираем аналог Mac mini за 333 бакса.

          Я давно хотел попробовать перейти с Windows-платформы на что-то более пристойное. Эксперименты с Линуксом показали, что до десктопов он пока не дорос, да и с эстетической точки зрения мне он не подходил — сглаживание шрифтов некрасивое, «для галочки», выбор собственно шрифтов — тоже. Оставался Мак, но покупать его вслепую не хотелось, тратить около штуки баксов на Мак мини для теста — тоже. Ставить хакинтош на домашний комп — тоже не выход, так как при таком варианте теряется одна из главных фич Мака — надежная беспроблемная работа. Искать/подбирать патчи, жонглировать дистрибутивами и в случае неадекватной работы ОС угадывать — это глюк Хакинтоша или Леопарда — мне не хотелось.

          Компромисс в итоге я видел такой — надо собирать отдельный системный блок, с максимально совместимым с MacOs железом и ставить туда хакинтош с родным ядром (vanilla kernel) и с минимумом патчей, чтобы получить систему, максимально приближенную к оригинальной. Я обдумал эту мысль и положил её в todo на дальнюю полку.

          Так бы она там и пролежала, но буквально через несколько дней я увидел пост в ЖЖ, посвященный этой же проблеме — alexmsk.livejournal.com/996014.html. И я решил пойти по пути, проторенному alexmsk.
          Читать дальше →
        • Как стреляет шутер

          • Translation
          image

          [Статья Armin Ronacher о принципах вычисления коллизий в сетевых шутерах. Носит скорее обзорный и исследовательский, нежели технический характер. Здесь и далее в квадратных скобках примечание переводчика]

          Сегодня я хочу выглянуть из своего окошка и поделиться знаниями по весьма сложной теме, в которой я буквально пару месяцев назад ничего не понимал. Зачем? Ну, мне кажется, что это просто здорово – разбираться в этом. А еще это может дать кому-нибудь повод для погружения в эту тему.

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

            Небезызвестный в среде инди разработчиков Маркус Перссон aka Notch, после своего ухода с поста главного разработчика Minecraft, решил принять участие в стартовавшем два дня назад конкурсе Ludum Dare 22 по созданию игр на заданную тему. Темой 22-го конкурса стало «одиночество».



            Читать дальше →
          • Почему программисты работают по ночам

            • Translation
            Мозг шимпанзе в лондонском музее наукиСогласно поговорке, программисты — это устройства, преобразующие кофеин в код.

            Если спросить первого попавшегося программиста, когда он наиболее продуктивен, — скорее всего, он назовёт ночь. Кто-то пораньше, кто-то попозже. Популярен вариант встать в 4 утра и сделать работу до начала дневной суматохи. А некоторые предпочитают ложиться в 4 утра.

            Цель всего этого — избавиться от отвлекающих факторов. Но можно было бы просто закрыть дверь… Что же такого особенного в ночи?

            Я думаю, что всё сводится к трём вещам: расписанию творца, сонному мозгу, и яркому экрану компьютера.

            Читать дальше →
          • Создание 1k/4k intro для Linux, часть 1

              «на русской сцене мы удивляем друг друга тем, что вообще что-то делаем», © manwe
              (из статуса SCRIMERS на demoscene.ru/forum)

              Пятиминутка мета: в этом тексте вам, котятки, предстоит прочитать о том, как потратить свое время совершенно неэффективно с точки зрения отношения размера полученного продукта к потраченным времени и усилиям.
              Предположим, что мы хотим сделать что-нибудь эдакое, например, интру размером до 4кб, но мы нищеброды, и у нас нет денег на виндовс и видеокарту с шейдерами, поддерживающими ветвления. Или мы просто не хотим брать стандартный набор из apack/crinkler/sonant/4klang/боже-что-там-еще-есть, делать очередную «смотрите все! я тоже умею рэймарчинг дистанс филдс!» и теряться среди десятков-сотен таких же. Ну или же мы просто любим выпендриваться как попало в надежде, что девочки на нас наконец-то обратят внимание.

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



              омг сколько текста
            • Цифровые телефонные системы для чайников. Часть 1 — Кодирование голоса


                Давным-давно, когда небо было голубым, а трава зеленой АТС были аналоговыми, работали они очень просто: нужно связать двух абонентов — нет проблем, взяли замкнули линию первого на линию второго, и все дела. Вариант, конечно, очень упрощенный, но в общих чертах так все и было. Примечательно в данном случае то, что между абонентами постоянно поддерживалась линия связи. Даже если они оба молчали, были заняты не только те линии, что ведут от абонентов к их АТС, но и линии между самими АТС.
                Читать дальше →
              • HOWTO: свой бизнес в США из России

                    Наверняка многие из нас хоть раз думали про себя: «Черт побери, и везет же этим американцам!». Это касается многого, от магазинов с доставкой «только в пределах 48 континентальных штатов» до вполне серьезных контрактов, которые срываются только потому, что потенциальный заказчик в США категорически не желает иметь дело с иностранцами.

                    В этой статье я попробую осветить процесс создания и администрирования американской корпорации для резидента РФ. Наверняка многие из фактов для самих американцев покажутся тривиальными, однако для жителя России все куда сложнее — увы, это данность. Чтоб не сказать — это Родина, сынок. Оговорюсь сразу — я все это проделал более 2 лет назад, так что, некоторые детали могут быть не совсем актуальны. Но вряд ли что-то поменялось принципиально.
                Читать дальше →
              • Признаки плохого программиста

                • Translation

                Неспособность рассуждать о коде


                «Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.

                Симптомы

                • Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
                • Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
                • Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
                • «Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
                • «Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).

                Читать дальше →
              • Общая статистика независимого разработчика — Johnny-K (продолжение)


                  Когда-то давно, больше, чем полтора года назад, один хороший человек Вадим Старыгин взял и разместил мою статистику за 2009 год на Хабре. В 2009 году жизнь моя в качестве независимого разработчика игр не закончилась, с тех пор обросла новыми достижениями, о чем и поведаю в продолжении той статистики.
                  Читать дальше →
                • Отладка драйверов под Windows: VirtualBox+WinDbg

                  Предисловие


                  Однажды мне понадобилось написать драйвер под Windows XP SP2. Сразу встал вопрос отладки. Уж очень не хотелось использовать мудреный SoftIce, ребутиться при кадждой ошибке или делать откаты. Поэтому было решено использовать виртуалку VirtualBox, которой я частенько пользуюсь и характеристиками которой вполне доволен, и отладчиком Windows Debugger от Microsoft. Через несколько часов в окошке WinDbg радостно замаячили строчки на Си, и было решено сделать «напоминалку», которая получилась неплохим «HowTo». Итак, начнем…
                  Читать дальше →
                • Как создается аниме

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

                    Начинается все с идеи. Бывает, что устраивается мозговой штурм, где из целой кучи выбирают только одну, но зато лучшую. Бывает, решает все руководство. Но так или иначе, это самый первый и самый скучный этап. После выбора идеи решается состав команды, которая будет заниматься ее реализацией, ищутся спонсоры. Аниме на самом деле довольно дорогая вещь — стоимость показа 52 серий поздней ночью на 5-7 каналах телевидения приближается к 50 миллионам йен (около 21 миллионов рублей), а показ аниме Fullmetal Alchemist в 6 часов вечера стоил в 10 раз дороже!
                    Читать дальше →
                  • Существование бизнеса на вредоносных программах, как доказательство недееспособности индустрии безопасности

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

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

                      Читать дальше →
                    • Финал @ Russian Code Cup 2011

                        Вчера я был на мероприятии, одно только посещение которого эквивалентно получению двух высших образований — на финале первого Российского кубка по программированию, Russian Code Cup.

                        image

                        Читать дальше →
                      • Как работает новый генератор случайных чисел Intel

                        • Translation


                        Представьте, что сейчас 1995 год и вы собираетесь совершить первую покупку в онлайне. Вы открываете браузер Netscape и прихлёбываете из чашечки кофе, пока главная страница медленно загружается. Ваш путь лежит на Amazon.com — новый онлайн-магазинчик, о которой рассказал вам друг. Когда наступает этап оформить покупку и ввести персональные данные, адрес в браузере меняется с «http» на «https». Это сигнализирует о том, что компьютер установил зашифрованное соединение с сервером Amazon. Теперь можно передавать серверу данные кредитной карты, не опасаясь мошенников, которые хотят перехватить информацию.

                        К сожалению, ваша первая покупка в интернете была скомпрометирована с самого начала: вскоре обнаружится, что якобы безопасный протокол, по которому браузер установил соединение, на самом деле не очень защищён.
                        Читать дальше →
                      • Дизассемблер своими руками

                             Знание структуры машинных команд уже много лет не является обязательным, для того, чтобы человек мог назвать себя программистом. Естественно так было не всегда. До появления первых ассемблеров программирование осуществлялось непосредственно в машинном коде. Каторжная работа, сопряженная с большим количеством ошибок. Современные ассемблеры позволяют (в разумной степени) абстрагироваться от железа, метода кодирования команд. Что уж говорить о компиляторах высокоуровневых языков. Они поражают сложностью своей реализации и той простотой, с которой программисту позволяется преобразовывать исходный код в последовательность машинных команд (причем преобразовывать, в достаточной степени, оптимально). От программиста требуется лишь знание любимого языка/ IDE. Знание того, во что преобразует компилятор исходный листинг вовсе не обязательно.
                        Тем же, кому интересно взглянуть на краткое описание структуры кодирования машинных команд, пример реализации и исходный код дизассемблера для x86 архитектуры, добро пожаловать.

                        Читать дальше →
                      • Еще есть пользователи windows 9x? Пишем утилиту для чтения NTFS

                        В последнее время найти пользователей windows 9x стало сложно, но возможно. Но все таки они есть такие. Так же известно что использовать жесткие диски с разделами NTFS штатными средствами операционной системы нельзя. Попробуем исправить это написав программу позволяющую читать данные с разделов NTFS.

                        Что будем требовать от своей программы?
                        Да вообщем то не многое. Разрабатываемая программа должна осуществлять копирование с разделов жесткого диска с файловой системой NTFS5 в разделы FAT. Данная программа должна быть использована в том случае, если Windows 2000 (которая использует NTFS 5) отсутствует или недоступна. Должны поддерживаться длинные имена файлов, а также жесткие диски любой ёмкости (в т.ч. больше 8Гб). Среда функционирования – ОС DOS, Windows 9x. Программа должна иметь «стандартный» двухпанельный «нортоновский» интерфейс.
                        Читать дальше →
                      • О вреде копирайта и пользе лицензионных программ

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


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

                          Законодательство РФ в сфере интеллектуальных прав вызвало у нас сложные чувства... Его основа — Гражданский кодекс в редакции 2008 года. К сожалению, далеко не все руководители российских организаций его внимательно читали. А из тех, кто читал, не все поверили своим глазам. В ходе проведенного нами исследования обнаружился низкий уровень правовой грамотности в сфере ИТ: люди часто не знают, как же нужно действовать, чтобы не оказаться виновными. Впрочем, и у нас в Евросоюзе ситуация вокруг копирайта развивается не лучшим образом :(

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

                          Прежде всего, «лицензионных» и «нелицензионных» программ с юридической точки зрения не существует. Запомните термин, который используется в законодательстве РФ — «результат интеллектуальной деятельности» (РИД). Примеры РИД — компьютерная программа (.js), музыка (.mp3), видео (.flv), картинка (.jpg), литературный текст (.htm). Есть и другие типы РИД — от торговой марки до дизайна кресла. Каждый РИД сам по себе не может быть «лицензионным» или «нелицензионным». А вот вы либо можете его использовать, либо не можете. Это зависит, в частности, от наличия у вас документа, разрешающего использование этого РИД. Пример использования — запись вами РИД в память компьютера. Чтобы использовать несколько РИД, нужно письменное разрешение на каждый из них. Без явного разрешения правообладателя ГК РФ запрещает вам использование любого РИД любым способом.

                          Есть редкие исключения. Например, вы имеете право без разрешения воспроизвести немного грустной музыки на похоронах. Но это слабое утешение. Подобные исключения не меняют сути дела.
                          Читать дальше →
                        • Рабочий компьютер Ричарда Столлмана

                            image

                            Наткнулся сегодня на довольно интересном проекте The Setup на интервью с Ричардом Столлманом, основателем и ярым евангелистом проекта GNU. Проект The Setup состоит в том, чтобы публиковать интервью с известными в IT-сообществе людьми, где они рассказывают, как и на чем работают, какое железо и ПО используют.

                            Посмотрев несколько интервью с The Setup (кстати, похожая рубрика есть и в русскоязычном сообществе Lifehacker), можно убедиться, что профи используют самые различные конфигурации: от маленьких ноутбуков до рабочих станций с тремя 24-дюймовыми мониторами. Каждому свое.

                            Но больше всех меня поразил рабочий компьютер Столлмана.
                            Читать дальше →