• Проблема новых MacBook Pro

      В то время, как некоторые производители ноутбуков столкнулось с проблемой в Sandy Bridge, обновлённые Macbook Pro смогли избежать их, однако не всё так хорошо, как кажется. Тех, кто купил себе Macbook Pro 15/17" 2011 года выпуска прошу под кат.
      Читать дальше →
    • Разрушая заклинание (Breaking the spell)



        К сожалению, далеко не все заслуживающие внимания книги оперативно переводятся нашими издателями, и работа Дэниэла Деннетта Breaking the Spell (2006 год) относится к их разряду. Однако это не повод упускать достойную книгу из вида.

        Я не хочу повторять рецензентов, отзывы которых вы легко найдёте в Википедии и на Амазоне. Попробую отметить лишь некоторые интересные мысли, особенно ярко отпечатавшиеся в памяти.

        Деннетт — известный американский философ, работающий в области когнитивных наук. Будучи материалистом, живущим в достаточно религиозном американском обществе, Деннетт неоднократно обращался к феномену религии. В книге Breaking the spell он пытается изучить религию как «феномен естественной природы», развившийся в человечестве на протяжении тысячелетий естественным эволюционным путём — как в своё время прямохождение или речь.

        Идея в том, что по Деннетту религиозное мировоззрение (в отличие от атеистического) так или иначе позитивно сказывалось на выживаемости человеческого вида, потому и сохранилось. Что, впрочем, не мешает нам критически относиться к нынешнему положению вещей.

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

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

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

        Если говорить о настоящем времени, Деннетт критикует религиозное мировоззрение и религиозные организации, предлагая здравомыслящим людям разделить ценности Брайт-движения.

        В целом, книга написана с большим юмором и легко читается (не то что моя рецензия :) ). По сути предлагается серьёзное научное исследование религии как явления природы, и этим книга оригинальна. В качестве расширителя кругозора весьма рекомендуется.

        На Амазоне книга стоит всего 11 долларов.

        Русскоязычному читателю автор уже знаком — прежде всего, как соавтор Дагласа Хофштадтера по книге Mind's I (Глаз разума). Вообще, что Хофштадтер, что Деннетт — замечательные авторы, и скудость их русскоязычных переводов — более чем печальное упущение. Ведь их книги можно читать одну за другой.

        Остаётся лишь надеяться на энтузиазм возможных переводчиков. По правде говоря, я бы и сам взялся, да где столько времени изыскать :)
      • Сравнение двух GPS Data Logger'ов



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

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

        В последнем нашем конном походе у товарища был навигатор Gramin Oregon 450, на который мы трек и писали. Анализировать трек оказалось очень увлекательным занятием! Можно посмотреть скорость движения, а потом вспомнить где рысили, где галопчик делали, а где и шагом плелись, где поили лошадок и где стоянки делали. А если учесть, что к этим данным можно «привязать» фотографии и даже сделать красивый .kmz-файл с отметками и фотографиями!.. Вобщем, простор для фантазии.

        Впредь решено было «писать» все походы и я приступил к поиску устройства.
        Вы со мной?
      • Ресурсы, о которых должен знать каждый Android-разработчик

        • Перевод
        Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.

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

        Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
        Читать дальше →
      • Бенчмарк HTML парсеров

          Переписывал в островке кусок одного сервиса с Python на Erlang. Сам сервис занимается тем, что скачивает по HTTP значительное количество однотипных HTML страниц и извлекает из них некоторую информацию. Основная CPU нагрузка сервиса приходится на парсинг HTML в DOM дерево.

          Сперва захотелось сравнить производительность Erlang парсера mochiweb_html с используемым из Python lxml.etree.HTML(). Провел простейший бенчмарк, нужные выводы сделал, а потом подумал что неплохо было бы добавить в бенчмарк ещё парочку-другую парсеров и платформ, оформить покрасивее, опубликовать код и написать статью.
          На данный момент успел написать бенчмарки на Erlang, Python, PyPy, NodeJS и С в следующих комбинациях:
          • Erlang — mochiweb_html
          • CPython — lxml.etree.HTML
          • CPython — BeautifulSoup 3
          • CPython — BeautifulSoup 4
          • CPython — html5lib
          • PyPy — BeautifulSoup 3
          • PyPy — BeautifulSoup 4
          • PyPy — html5lib
          • Node.JS — cheerio
          • Node.JS — htmlparser
          • Node.JS — jsdom
          • C — libxml2 (скорее для справки)

          В тесте сравниваются скорость обработки N итераций парсера и пиковое потребление памяти.

          Интрига: кто быстрее — Python или PyPy? Как сказывается иммутабельность Erlang на скорости парсинга и потреблении памяти? Насколько быстра V8 NodeJS? И как на всё это смотрит код на чистом C.
          Читать дальше →
        • Быстрый способ установки Java Oracle на Ubuntu

            Привет, хабровчане!
            В сети есть достаточно информации по установке Java Oracle. Но, на мой взгляд, способ, описанный ниже, самый удобный. Причина удобства — не нужно заходить на сайт Oracle, регистрироваться и выкачивать установочный файл и в то же время нет необходимости хранить его где-нибудь у себя локально.
            Процесс установки сводится к запуску одного скрипта.
            Читать дальше →
          • Как сделать группу инпутов удобной

              Когда я работал над сервисом заметок jotsky.com, еще до работы в Островке, надо было сделать ввод телефонного номера из двух инпутов. Примерно такой:



              Я сделал навигацию с помощью стрелочек. Сделал, чтобы по мере заполнения фокус переключался к следующем инпуту. А вот сделать правильную вставку из буфера обмена у меня никак не получалось.
              Читать дальше →
            • Интеграция Django и Selenium



                Всем привет.

                Ни для кого не секрет что тестирование приложений является важным этапом разработки ПО, а если вы разрабатываете веб-приложения, то вам просто необходимо тестировать веб-интерфейс. К счастью, для этой цели существует такой инструмент как Selenium. Небезызвестные на хабре компании СКБ Контур и Яндекс уже выбрали его как инструмент функционального тестирования своих приложений и сервисов (Яндекс рассказывал об этом на недавно прошедшей YaC).

                Теперь к делу.
                В одном из проектов, над которым я работаю, мы использовали Selenium начиная еще с первой ветки. Но время не стоит на месте, вышел Selenium 2.0, основанный на технологии webdriver, более функциональный, удобный, и правильно имитирующий события в браузере (подробнее о преимуществах).

                Чтобы не заниматься обновлением старого кода поддержки Selenium внутри нашего приложения (а вдруг это придется делать еще и не один раз?), а также чтобы попробовать сделать что-то полезное для других разработчиков, мы решили сразу вынести интеграцию с Selenium в отдельную библиотеку.
                Что из этого вышло
              • Быстрая реализация инкрементального бэкапа на Amazon S3

                После переезда моего сайта с shared-хостинга на виртуальный сервер в облаке вплотную встал вопрос об архивации данных: если раньше о ежедневном бэкапе беспокоился хостер, то теперь эти заботы целиком легли на плечи администратора. Так как хранить большие архивы на своем сервере не только небезопасно, но и (иногда) накладно, было решено копировать основную массу файлов на сервис S3 от Amazon. Под катом описывается мой способ реализации инкрементального бэкапа. Способ достаточно нубовский, но желающие повторить его без труда найдут пути тонкой настройки под свои нужды.
                Читать дальше →
              • Репликация в Postgresql 9.0

                  Доброго времени суток. Учитывая, что с момента релиза PostgreSQL 9 прошло уже некоторое количество времени — я решил пощупать одну из его новых функций — нативную репликацию. Как известно, новый механизм основан на пересылке XLOG`a от мастера к слейву. Одним из жирных плюсов можно назвать нормальную обработку ALTER`ов. Иными словами — администратор 9й версии может обойтись без Slony.
                  Читать дальше →