Часто задаваемые вопросы о путешествиях во-времени

Часто задаваемые вопросы о путешествиях во-времени

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

Ещё один плюс там играет Анна Фэрис

film-faq-anna-faris

Главный герой, больше этого актёра нигде не видел :)

film-faq-din-lennoks-kelly

UNIX-коаны Мастера Фу

Rootless Root

Rootless Root

Несколько историй из замечательной книги «Искусство программирования для UNIX» Эрика Реймонда.

Мастер Фу и десять тысяч строк

Однажды Мастер Фу сказал заезжему программисту: «В одной строке кода shell-сценария больше духа UNIX, чем в десяти тысячах строк кода на С!»

Программист, гордый своими познаниями в С, ответил: «Может ли быть такое? Ведь С — язык, в котором реализовано само ядро UNIX!»

На это Мастер Фу ответил: «Это так. Тем не менее, в одной строке shell-сценария больше духа UNIX, чем в десяти тысячах строк С!»

Программист выглядел удрученным. «Но ведь через язык С мы познаем просвещенность патриарха Ритчи! Мы уподобляемся человеку с операционной системой и компьютером, который получает непревзойденную производительность!»

Мастер Фу сказал: «То, что ты говоришь, правда. Однако в одной строке shell-сценария больше духа UNIX, чем в десяти тысячах строк С».

Программист усмехнулся и поднялся, чтобы удалиться. Но Мастер Фу кивнул своему ученику Ньюби, который писал строку shell-кода на стоящей рядом белой доске, и сказал: «Господин программист, посмотрите на этот конвейер! Не заняла бы его реализация на C десять тысяч строк?»

Просматривая то, что писал Ньюби, программист что-то бормотал в бороду. В конце концов, он согласился, что это так.

«И сколько часов потребовалось бы вам для реализации и отладки этой программы на языке С?»

«Много», — признал заезжий программист. «Но только безумец стал бы тратить столько времени, когда его ждет множество более достойных задач».

«Так кто лучше понимает дух UNIX?» — спросил Мастер Фу. «тот, кто пишет десять тысяч строк, или тот, кто, сознавая тщетность этих усилий, извлекает пользу, не программируя?»

Услышав это, программист достиг просветления.

Другие коаны на русском. Оригинал на английском.

GNU tar и exclude

Задача забэкапить дирректории исключая кэшь


/usr/local/bin/gtar czf /remote/ls7/6/webhome/ServiceCheck.tgz -C /webhome ServiceCheck --exclude-tag=CACHEDIR.TAG

Директории и их содержимое в которых есть файл CACHEDIR.TAG, не войдут в архив.

/usr/ports/archivers/gtar — порт во freebsd, ибо bsdtar не поддерживает этой замечательной возможности.

Ссылки по-теме

Мотивация людей в OpenSource

people_work

Самый загадочный вопрос в этом деле — как такая прорва хороших программистов соглашается работать абсолютно бесплатно? Тут нужно поговорить о мотивации. В условиях общества, где выживание более или менее гарантировано, деньги — не самый лучший стимул. Хорошо известно, что лучше всего работает тот, кто одержим страстью. Кто работает ради удовольствия. Это так же верно в отношении драматургов, скульпторов и предпринимателей, как и в отношении программистов. Модель открытых исходников дает людям возможность удовлетворить свою страсть, получить удовольствие, сотрудничать с лучшими программистами мира, а не только с теми, кто оказался в штате той же компании. При этом разработчики стремятся завоевать авторитет среди своих коллег, и это оказалось превосходным стимулом.

Похоже, Билл Гейтс этого не понимает. Осознал ли он неуместность риторического вопроса, заданного им в 1976 году? «По существу вы препятствуете созданию хороших программ. Кто может себе позволить выполнять профессиональные обязанности бесплатно?» — написал он в послании программистам открытых исходников.

Цитата из Just for fun. Линуса Торвальдса

Овладеваю техникой быстрого чтения

Скорочтение

Начал тут отчаянно учиться, где-то начиная с августа месяца. Подтянул знания по ООП PHP, изучил фреймворк нашей компании, переписал корпоративную CRM. Впервые за пару лет выступил в роли программиста.

Кроме того прочёл пару книжек по потернам программирования «php|architect’s Guide to PHP Design Patterns» Jason E. Sweat. и «Приемы объектно-ориентированного проектирования» Банды четырёх. К слову сказать книжечка PHP Design Patterns не смотря на то что на английском легла лучше. Представление о патернах(побоюсь сказать «знание»), даёт возможность лучше понимать фреймоврки и прочий сложный код. Поиск правильных решений в своём приложении так-же случается. Нужно больше практики, больше ООП и затем ещё раз перечитывать. Считаю что следующий шаг в этом направлении это Мартин Фаулер «Улучшение существующего кода», а так-же «Архитектура корпоративных программных приложений» его же.

Читать далее

Луркоморье

Луркоморье

Страшное дело, часть 31 декабря и почти весь день 1 января прошли за чтение лурка. Шаблон разорван! 9000 моих любимых вещей пошли ф топку!! Стёбно и смешно, весьма талантливо. Обкликался ходить по терминам.

Избранное

Блин еле ушёл. Обогатился!

По мотивам статьи на ibm.com/developerworks

Можно будет что-нибудь поискать в интернете. Потом. :)

Термины

  • YAGNI (You Ain’t Gonna Need It — не делай то, что не нужно).
  • DUF (Big Design Up Front — Большой Изначальный Проект) до Cowboy Hacking (Ковбойское хакерство)
  • Model-View-Presenter
  • Architectus Oryzus
  • Architectus Reloadus
  • Пост-тестирование (test-after development, TAD)
  • Разработки через тестирование (TDD)

Книги

  • The Productive Programmer
  • The Pragmatic Programmer

Мое эмпирическое правило для проектов на Java гласит, что не должно быть методов длиннее десяти строк.

Комбинированный метод. Шаблон этого метода содержит три ключевых утверждения:

  • Разделяйте программу на методы, выполняющие одну четко формулируемую задачу.
  • Держите все операции метода на одном уровне абстракции.
  • Программы естественным образом превратятся во множество мелких методов размером в несколько строк.

Кино: Бесславные ублюдки

Бесславные ублюдки

Фильм Квентина Тарантино про победу 9 американских евреев над силами 3 рейха. :)

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

Немного разочарован одним моментом в конце. Но это мелочи.

Изучая Си. Первая программа.

Мне повезло, у меня была конкертная задача. На реализацию я потратил ~4 дней. Что слишком долго для задачи, но.. Это моя первая программа.

Задача: написать генератор конфигурационных файлов для связки бекенд(nginx)-фронтенд(apache22) которые работают на одном сервере.

У нас уже была реализация этой системы. Работает это так. В БД mysql через вебинтерфейс заносится информация о домене. Хранится

  • document_root
  • domain
  • aliases — через перенос строки
  • server — номер сервера
  • updated
  • updated_nginx

updated и updated_nginx устанавляиваются в 1 когда происходит обновление или добавление домена.

Конфигурация виртуальных хостов типичная и является шаблоном.

В общем задача

  • Принять и обработать аргументы командной строки. При этом число обязательных аргументов должно быть минимально.
  • Прочитать конфигурацию соеденения с mysql сервером. Она хранится в файле. Там-же хранится номер сервера.
  • Получить из БД mysql все домены которые нужно обновить и сложить в структуру.
  • Пройтись по этим доменам циклом. Сгенерить для каждого конфигурацию по шаблону. Обновить поля updated дабы показать что мы сделали конфигурацию.
  • Пройтись по директории содержащий конфиги и сгенерить конфигурационный файл содержащий include со всеми файлами в директории.
  • Перезагрузить вебсервер, дабы тот подхватил новую конфигурацию.

Читать далее