• Быстрая сборка кубика Рубика

      Возможно, многие из читателей задавались вопросом, как людям удаётся собирать кубик Рубика 3×3 за 7 секунд. Если даже предположить, что рекордсмену сильно повезло, то таблица мирового рейтинга по среднему из пяти результатов уже не оставляет сомнений: если больше 80 человек в среднем укладываются в 12 секунд, очевидно они что-то знают. В этом кратком обзоре я постараюсь приоткрыть секреты скоростной сборки. Сразу оговорюсь, что после прочтения этой статьи вы не станете чемпионами: здесь приведены только основные моменты и ссылки на более подробную информацию. Кроме того, даже после изучения метода полностью вам потребуются долгие тренировки для достижения хороших результатов. Зато вы получите неплохое представление о том, как это делается, и при желании будете знать, куда двигаться дальше. Я думаю, при достаточной усидчивости после нескольких месяцев тренировок многие смогут достичь среднего результата в районе 30 секунд.
      Читать дальше →
    • Самый главный алгоритм

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

        image
        Посмотреть можно здесь:
        часть1
        video.yandex.ru/users/ya-events/view/129
        часть2
        video.yandex.ru/users/ya-events/view/128
        Читать дальше →
      • Часть 1/3. Компилятор идеальной VM для ICFPC 2009, на Haskell, с популяризаторскими комментариями

          Здесь мы будем разбирать по буквам некую программу (компилятор VM) на Хаскеле. На вход этому компилятору дается бинарный файл с инструкциями некоего процессора, где в этих инструкциях описываются некие вычисления. На выходе нашего компилятора получается текст программы, тоже на Хаскеле, которая производит те же самые вычисления, с большой скоростью. Возможно, это не компилятор, а декомпилятор, не знаю. Сравнение работы результирующих программ на Haskell/Java приводится в предыдущем посте.

          Читать дальше →
        • Многоликий const

            Ключевое слово const — одно из самых многозначных в C++. Правильно использование const позволяет организовать множество проверок ещё на этапе компиляции и избежать многих ошибок из числа тех, которые бывает трудно найти при помощи отладчиков и/или анализа кода.

            Первая половина заметки рассчитана скорее на начинающих (надеюсь мнемоническое правило поможет вам запомнить, где и для чего используется const), но, возможно, и опытные программисты смогут почерпнуть интересную информацию о перегрузке методов по const.

            Читать дальше →
          • Wbar — dockbar не требующий compiz

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

              Wbar

              Читать дальше →
            • time management и bash

                Иногда весьма мелкие мелочи дают весьма ощутимый эффект. Настолько ощутимые, что ощущения заставили установить Firefox и поделится этим с общественностью. С недавних пор начал использовать такой PS1:

                PS1='\D{%H.%M} \u@\h \w\n\$ '

                Или с раскраской:

                PS1='\[\033[02;34m\]\D{%H.%M} \u@\h\[\033[00m\] \w\n\$ '

                В итоге, мозг начинает получать информацию о том, сколько времени и на какую именно активность тратится в ходе работы. Что очень помогает (imho, даже на чисто подсознательном уровне) более эффективно распределять своё время. И, что ценно при таком подходе к делу, отслеживание времени не отвлекает от производства. В отличии от специализированных решений в виде красивого web-2.0 или очаровательного GUI, где нужно своими же руками осознанно следить за собой. Кроме того, можно сразу видеть много строчек с информацией своей активности и вести журнал сессии без проблем. Вобщем вот.

                P.S. Это, кстати, одна из тех фишечек, которая возможна только в command-line интерфейсе. И непонятно, почему сторонники WIMP и CL не соберутся как-нибудь и не выберут из обоих подходов всё самое лучше, и не смешают всё в удобных пропорциях?

                P.P.S. Для новичков в bash: PS1 лучше всего задавать в $HOME/.bashrc

                habracut с картинкой
              • SSH для частого использования

                  Наверное, многие из читающих «Linux для всех» пользуются SSH. Я, например, администрирую большое количество UNIX-систем, и, чтобы быстро получить доступ к нужной машине, приходится использовать возможности протокола на уровне, отличном от примитивного.
                  Читать дальше →
                • Полнотекстовый поиск в веб-проектах: Sphinx, Apache Lucene, Xapian

                    Полная авторская верcия из моего блога. Оригинал материала написан специально для Developers.org.ua

                    Наверное любой современный веб-проект сложно себе представить без… без контента! Да, именно контент в разных его проявлениях сегодня «правит бал» в различных веб-проектах. Не так важно — создаваемый пользователями или получаемый из других источников автоматически — информация является основной любого (ну, или почти любого) проекта. А раз так — то вопрос поиска необходимой информации стоит очень остро. И острее с каждым днем, ввиду стремительного расширения количества этого самого контента, в основном за счёт создаваемого пользователями (это и форумы, и блоги и модные нынче сообщества, вроде Habrahabr.ru). Таким образом, любой разработчик, реализующий сегодня какой-либо проект, сталкивается с потребностью реализовать поиск в своём веб-приложении. При этом требования к такому поиску уже намного сложнее и шире, чем даже год-два назад. Конечно, для каких-то проектов вполне подойдёт и простое решение, к примеру, вполне можно использовать Custom Google Search. Но чем более сложное приложение, и чем сложнее структура контента, если требуются особые виды поиска и обработки результата, или же просто количество или формат данных в вашем проекте особый, вам потребуется собственная поисковая система. Именно своя система, собственный поисковый сервер или сервис, а не сторонний, пусть даже гибкий и настраиваемый. Но что же выбрать, и вообще — какие сейчас на рынке есть поисковые проекты, которые готовы для использования в реальных проектах, не исследовательских или научных, а реальных бизнес-приложениях? Далее мы кратко рассмотрим различные варианты поисковых решений, пригодных для встраивания в ваше веб-приложение или развёртывания на собственном сервере.
                    Читать дальше →
                  • Переменные сессии на яваскрипте без кук

                    • Перевод
                    Мне никогда не нравилась реализация кук в Яваскрипте. Объем ограничен (4х20 Кб на домен), хранить возможно только в строковом типе, синтаксис для установки и получения кук избыточно сложен.

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

                    Поэтому я написал маленький скрипт, который позволит вам использовать переменные сессии в Яваскрипте без установки кук. Он позволяет хранить до 2 Мб данных, что намного меньше ограничивает в возможностях, чем решение на основе кук.

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