• Р. Фейнман «Характер физических законов» (четвертая лекция)

      image
      Перевод четвертой лекции из курса «Характер физических законов», самого яркого ученого двадцатого века Ричарда Фейнмана.
      Лекция называется «Симметрия физических законов».
      Курс не требует специальных знаний по физике и начинать смотреть можно с любой лекции. А эта лекция наверное самая интересная во всем курсе.
      Вообще сегодня будет две лекции: одна видео лекция Фейнмана, другая небольшая заметка профессора университета Радбоуда (Голландия) Михаила Кацнельсона, поясняющая кое-какой принцип, о котором Фейнман умолчал.
      Читать дальше →
    • SICP теперь по-русски!

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

        Пару слов о самих лекциях, это выжимка из вводного курса по программированию читавшегося в MIT с 1978 года. Лекции читают Харольд Абельсон и Джеральд Сассман.
        На мой взгляд они уделяют внимание не столько алгоритмам сколько формированию правильного мышления у будущих программистов, а это гораздо важнее. Хочу отметить очень высокое качество материала, в лучших традициях Кнута, а в чем-то пожалуй и лучше.
        Если вы не знакомы, что такое SICP обязательно скачайте себе книгу на русском языке для пущего просветления.

        Курс ведется на примере языка программирования LISP, которому, кстати, 50 лет стукнуло, не много живых языков сохранилось старше Лиспа. По Лиспу могу сказать — это удивительный язык, я просто каждому рекомендую, не отказывайте себе в удовольствии и изучите этот язык пусть он вам и не пригодится никогда в реальных делах, но он сформирует вам правильные мозги, вы научитесь смотреть совершенно иначе на многие вещи, даже если вы всю жизнь пишете какие-нить бесконечные формы для бизнес приложений на С++.

        на яндекс видео:
        video.yandex.ru/users/ztarlitz/view/6

        Ссылка на трекер, видео первой лекции, отдельно сабы, и книга на русском языке.
        rutracker.org/forum/viewtopic.php?p=37772721#37772721
      • Антиотладочные приёмы в Sinclair Basic

          A screenshot from Rebelstar, a well-known Spectrum game

          Я прекрасно понимаю, что эта статья опоздала лет эдак на 20. Пусть «Спектрумы» не выпускаются с 1992 года, но армия поклонников этой платформы не уменьшается из года в год. Поэтому данная статья может быть полезна исследователям программ, написанных для ZX Spectrum

          Читать дальше →
        • Десять маленьких программ, без которых неуютно жить

            Заменяем диспетчер задач
            Управляем автозагрузкой и следим за состоянием системы
            Устанавливаем переключение раскладки
            Создаем виртуальные рабочие столы
            Сохраняем все заметки в одно место, не задумываясь ни о чем, кроме текста
            Ускоряем навигацию по винчестеру
            Ставим плагины к проводнику Windows и радуемся
            Легко и быстро удаляем папки-файлы «занятые другими процессами»
            Копируем и перемещаем быстрее и качественнее
            Перестаем парится с кодировками, заменив блокнот

            и как мы это сделаем?
          • Быстрая сборка кубика Рубика

              Возможно, многие из читателей задавались вопросом, как людям удаётся собирать кубик Рубика 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. Но чем более сложное приложение, и чем сложнее структура контента, если требуются особые виды поиска и обработки результата, или же просто количество или формат данных в вашем проекте особый, вам потребуется собственная поисковая система. Именно своя система, собственный поисковый сервер или сервис, а не сторонний, пусть даже гибкий и настраиваемый. Но что же выбрать, и вообще — какие сейчас на рынке есть поисковые проекты, которые готовы для использования в реальных проектах, не исследовательских или научных, а реальных бизнес-приложениях? Далее мы кратко рассмотрим различные варианты поисковых решений, пригодных для встраивания в ваше веб-приложение или развёртывания на собственном сервере.
                            Читать дальше →
                          • Переменные сессии на яваскрипте без кук

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

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

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

                            Читать дальше →
                          • Вредная верстка

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

                              Из этой статьи вы узнаете:


                              • О плохих приемах современной верстки;
                              • О том, как даже не будучи профессионалом, за 5 минут определить плохо ли сверстан сайт или нет.


                              Читать дальше →
                            • Моя Убунта — II

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


                                Сразу скажу, что любителям поорать в коментах прошу не читать — там много графики, объяснения для новичков, вам это все равно будет неинтересно. В любом случае, я вас предупредил ;-)
                                Итак, чуть меньше лирики — чуть больше дела. С чего начать? Начать нужно с инвентаря. Нужно-то нам совсем ничего! Сегодня нам потребуются:
                                1. Компьютер с установленным Ubuntu 7.10/8.04. На самом-то деле, почти наверняка пойдет любой другой дистрибутив с GNOME в качестве менеджера окон рабочего стола (desktop environment manager) и ...
                                2. Compiz — установленный и стабильно работающий. Это важно — без него всей этой красоты не получится
                                3. Третьим, фактически же — последним пунктом программы — выступает фон рабочего стола. Открою страшный секрет… хотя нет, открою его потом :-) Так вот, как именно найти этот фон я рассказывать не буду, поскольку с негодованием отметаю все претензии в лицензионной нечистоплотности, оставляю это в качестве домашнего задания (искать по слову leopard wallpaper, размер — extra large, первая картинка). Я взял ее с домашнего компьютера (так как в рабочее время им никто не пользуется, я имею полное право любоваться на картинку на работе :-) )
                                Господа, хватит тупо и молча миносовать и срать в карму! Будьте добры объясниться — или хотя бы прочитать дисклеймер в конце поста — и спасибо хорошим людям, которые сперва читают, потом комментируют, и только потом плюсуют или минусуют

                                Собственно, настройка