• Око за око

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



    В конце 1970-х годов Роберт Аксельрод (математик, политолог, ныне профессор Мичиганского университета) придумал эксперимент, заключающийся в моделировании поведения субъектов, поставленных перед многократно повторяющейся дилеммой заключенного (IPD или iterated prisoner’s dilemma).
    Читать дальше →
  • А сложно ли работать программистом?



      Этот вопрос мне часто задают вокруг. Задают родственники, друзья, дети друзей и вообще незнакомые люди. У всех своих цели — кто-то хочет сменить род деятельности, кто-то только выбирает куда пойти учиться, а кто-то желает в первую очередь убедить себя в том, что «вот еще и этим бездельникам ни за что деньги платят». Что же ответить на этот вопрос? Честно говоря, первым делом, конечно, хочется выпятить грудь колесом и двинуть речь о том, что, дескать, окромя нечеловеческого ума и 10 лет глубокой математической подготовки нужно еще иметь природный талант и пахать круглосуточно… Но где-то на третьей минуте этого увлекательного текста включаются мозги и здоровый скептицизм, требующий на время замолчать и немного подумать.

      А и правда — сложно ли?
      Читать дальше →
    • Specification By Example – BDD для прагматиков


        На Хабре довольно много упоминаний о BDD. К сожалению, статьи, которые я читал, так и не дали мне ответа на вопрос «а зачем мне все это нужно?» Ответ пришел с неожиданной стороны. Когда я всерьез занялся вопросом автоматизации приемочного тестирования, мне под руку попалась книга Gojko Adzic (не уверен в транскрипции, поэтому не стал переводить имя автора) Specification By Example.
        Читая ее, я не уставал удивляться: каждая новая глава описывала шишки, которые я набивал на своем личном опыте, и предлагала решения аналогичные или лучшие, чем те, к которым я приходил сам методом проб и ошибок.

        Эта статья – первая в цикле «BDD для прагматиков». В ней описаны ключевые элементы наиболее эффективного, на мой взгляд, процесса разработки коммерческого ПО в современных условиях. Два продолжения будут посвящены работе со SpecFlow и автоматизации приемочного тестирования.
        Часть первая - живая документация
      • Практический опыт. Как наконец-то начать заниматься своим здоровьем?!

          Я давний подписчик блога «GTD» (уст. Учись работать).

          С 2008 года я активно читал статьи на Хабре и в Интернете и пробовал:
          — вставать в 5:00 утра
          — делать зарядку
          — обливаться холодной водой
          — бегать по утрам
          — питаться правильно (особенно зачитывался вегетарианством)
          — вести свои делало системе GTD (Things установлен на всех гаджетах :)
          — выключать компьютер вовремя (хотя бы до 23:00)
          — ну и конечно, сделать 100 отжиманий и кубики на животе…

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

          Что изменилось в январе 2012 года?

          Рано… в начале кратко обо мне:
          — Возраст: 26 лет;
          — Семейное положение: женат (с февраля 2012), детей пока нет;
          — живем отдельно в Санкт-Петербурге.
          — Работаю в офисе 5 дней в неделю с 8:30 до 17:30.
          — Иногда задерживаюсь, но не часто.

          Если Вы считаете, что опыт Вам не подойдет… Ваше право, но мы же понимаем, что оправдания всегда можно придумать? Я их придумывал лет 5. Я знаю о чем говорю.

          Так все-таки что произошло в январе 2012?
        • Английский для айтишника? Легко!

            Эта тема не относится к IT напрямую, но все знают, что без нее никуда. К сожалению, далеко не у всех есть возможность изучать английский с преподавателями. Ну что ж, попробуем заняться этим дома и с максимальной отдачей!
            Читать дальше →
          • Постсмысловая невротическая цивилизация

              Дорогие мои, любимые, сохабровцы! Должен признаться вам, что я, на правах религиозного фанатика, являюсь совершенно счастливым человеком, но последних лет 16, из своих 32, наблюдаю вокруг все усугубляющуюся картину борьбы общества с абсурдностью бытия. Дело в том, что многие из моих знакомых работают в крупных компаниях, где их безжалостно гнобит офисная сансара, а у меня, уж так сложилось, никогда не было жесткого графика и довлеющей корпоративной машины за спиной, за что я денно и нощно возношу хвалу Аллаху. Находясь на значительном удалении от этих проблем и будучи в них эмоционально не вовлеченным, занимаясь наукой в свое удовольствие в НИИ Системных технологий (а на жизнь зарабатывая собственным ИТ-бизнесом), при помощи чудодейственного системного анализа я постараюсь обобщить тут все, что знаю по теме.
              Читать дальше →
            • Fork/Join Framework в Java 7

              • Tutorial
              Какое-то время назад я делал обзор нововведений в Java 7, и, среди прочего, грозился по некоторым из новшеств пройтись более конкретно. Прошло довольно много времени, в Java 7 успели даже найти серьёзный дефект, но наконец настал тот момент, когда уже пора выполнить своё обещание. Потому под катом вы можете найти описание и пример использования новой реализации ExecutorService под названием ForkJoinPool. Эта реализация разработана специально для упрощения распараллеливания рекурсивных задач и решает проблему с тем, что пока выполняется под-задача, поток, который её породил, не может быть использован.
              Читать дальше →
            • Неверное использование паттерна проектирования «Мост» / «Bridge»

              Предистория

              Я прочитал эту статью о паттерне проектирования «Мост». Увы, его очень часто используют неверно. Более того, я затем открыл книгу Приемы объектно-ориентированного проектирования. Паттерны проектирования. Оказалось — и там авторы очень смутно декларируют причины его наличия и когда его использовать. Поэтому ниже я вам сообщу, как и зачем подобное использовать.

              Обновление

              Это поверхностная статья, которую можно не совсем точно трактовать. Но её достоинство, что она короткая и вводит в проблематику. У специалистов она может вызвать вопросы более глубокого содержания, а у молодых разработчиков некоторые недоразумения, т.к. я спорю по сути с «Бандой четырех», но полностью согласен с Фаулером и его подходом к рефакторингу (да и у них между собой есть противоречия) — но типа а кто я такой, чтобы спорить.

              Я готовлю расширенную статью для специалистов, но она может быть полезна и молодым разработчикам механистически выучившим паттерны проектирования. Они не очень хорошо понимают когда их использовать, а специалистам думаю будет важно аргументация в смысле, что из паттернов предпочесть. Эта расширенная статья надеюсь пояснит почему надо избавляться от паттерна «Мост», а также использовать паттерн Посредник в ограниченном смысле.

              Уже есть ответвление этой статьи Правильное использование паттерна «Мост» (Мост с двухсторонним движением) или MVC->«Бизнес-сущность — Визуализация — Контроллер». Где показано, что Мост/Посредник можно использовать в некой комбинации при разделении визуализации и бизнес-логики, но это практически единственная сфера для этих шаблонов. В чистой бизнес-логике и низкоуровневых/системных задачах этих паттернов следует избегать.

              Но публиковать не могу — нету кармы, а как я понимаю других вариантов нет, пока не наберу. Поэтому хотите прочитать, знаете что делать :)

              Что такое паттерн проектирования «Мост» на самом деле

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

              Посмотрим, что такое паттерн «Мост», что кроется за этим заумным термином. Это не что иное как комбинация применения наследования и агрегации. Увы, часто не знают, что такое агрегация. По- простому, это когда один объект включается в другой.

              Читать дальше →
            • Корпоративное рабство, беглые рабы и виртуальная корпорация

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

                Три года назад я уволился со своего последнего места работы и за это время, работая самостоятельно, я успел сильно отвыкнуть от корпоративной среды, и теперь, сталкиваясь по работе с традиционными компаниями, я не устаю удивляться, как люди соглашаются на такое зависимое положение подписывая трудовой договор?
                Читать дальше →
              • Прислушивайтесь к своему сообществу, но не позволяйте ему указывать, что вам нужно делать

                • Translation
                Перевод статьи из блога Джефа Этвуда, одного из основателей Stack Exchange Network, сети вебсайтов, посвященных работе с вопросами и ответами в различных областях. Среди прочих вебсайтов этой сети стоит выделить Stack Overflow — самый первый вебсайт, созданный в рамках Stack Exchange Network и посвященный вопросам и ответам в области программирования. Отдельная благодарность karaboz за помощь и вдохновение.


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


                imageКогда люди спрашивают меня о самой большой ошибке, которую я совершил в процессе создания Stack Overflow (Прим. переводчика — далее SO) я рад, что не надо выдумывать и говорить банальности. Я могу честно и открыто рассказать об огромной, нелепой и, до смешного, дурацкой ошибке, которую совершил в самом начале разработки SO. Что ещё хуже, я могу рассказать о такой ошибке, которую продолжал совершать потом ещё и на протяжении девяти месяцев на фоне продолжающихся протестов сообщества.

                Читать дальше →
              • MIT выпустил первый «полностью автоматизированный» онлайновый курс



                  Два месяца назад Массачусетский технологический институт анонсировал новую технологическую платформу для онлайн-образования MITx. Тестовая версия платформы MITx заработает весной 2012 года, обучение будет бесплатным, а сама платформа — открытой.

                  13 февраля опубликована информация о первом курсе, который будет доступен через MITx.

                  6.002x: Circuits and Electronics
                  (по ссылке дополнительная информация и запись на курс)

                  Обучение с 5 марта по 8 июня 2012 года, требует примерно по 10 часов в неделю.

                  Допускаются студенты со всего мира, которые обладают необходимыми знаниями по электричеству, магнетизму и дифференциальному исчислению. Среди трёх преподавателей — профессор Джеральд Сассмен, он же создатель языка Scheme и автор одного из самых лучших учебников по программированию "Structure and Interpretation of Computer Programs".
                • Создатель BitTorrent собирается уничтожить телевидение в его нынешнем виде

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

                    BitTorrent Live позволит снизить нагрузку на распространителя файла до 99%. Таким образом, передача видео будет стоить дешевле, чем по спутнику или с помощью CDN, и для него не потребуется дорогостоящая инфраструктура.

                    Создатель протокола заявил, что хочет уничтожить телевидение в его нынешнем виде: «Физическая инфраструктура телевидения неизбежно отомрет, но телевидение как модель потребления контента останется».

                    Сейчас Коэн ищет партнеров, которые дадут согласие на распространение своего контента по предложенной им модели. Netflix и Hulu, которые планируют сократить затраты на инфраструктуру, уже заинтересовались изобретением. Кстати, BitTorrent Live смогут использовать и некоммерческие вещатели — новый протокол является открытым и свободным.

                    BitTorrent Live уже функционирует в тестовом режиме. Посмотреть видео по новому протоколу можно через сайт live.bittorrent.com, предварительно скачав специальный клиент.
                    Читать дальше →
                  • Демотивация по полной программе или почему я жду конца света?

                      Низкий поклон Хабранароду!

                      Предисловие

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

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

                        В продолжение темы: раз, два, три, четыре.

                        Сразу скажу, что подход к разгорающемуся холивару «время vs. деньги» (а точнее к вопросу управления личными ресурсами), которого я придерживаюсь, позаимствован мной из вебинара, выложенного в записи на сайте datnews.ru, а автор этого сайта скорее всего позаимствовал его у Тима Ферриса или еще какого-нибудь гуру лайф-менеджмента, и в принципе является самоочевидной истиной, которую, однако, почему-то мало кто способен правильно усвоить и использовать.

                        Вкратце, подход состоит в следующем: у каждого из нас есть набор уникальных ресурсов, которые в процессе нашей жизнедеятельности могут конвертироваться друг в друга (или расходоваться впустую), но возможности этой конвертации ограничены самими имеющимися ресурсами. То есть они конвертируются не прямо пропорционально и даже не с фиксированным процентом затрат (как валюты в обменнике), а в зависимости от доступного в данное время их количества. Правило первое и последнее: если нам остро не хватает какого-нибудь ресурса, мы вынуждены компенсировать его, расходуя непропорционально большие объемы других ресурсов. Следовательно, стратегия оптимального развития заключается в поддержании долгосрочного баланса между разными типами ресурсов, дабы не было необходимости «топить ассигнациями». В краткосрочном периоде наоборот — локальная концентрация выгоднее, чем соблюдение баланса ради баланса, ибо самые актуальные проекты и проблемы не признают никаких расписаний.

                        Читать дальше →