Интервью с Сергеем Белоусовым, Parallels, CEO

Орлову и happy-pm респект! Познавательно.

Заданные вопросы

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

Для себя отметил

  • Правильность моей задачи больше читать, выписывать что вынес, возвращаться к написанному. Вообще читать нужно МНОГО. Сталин много читал, Ленин, вот Била Гейтса смотрел в фильме «Bill Gates — How a Geek Changed the World», так-же много читает. Ну и потребность чувствую.
  • Сергей выделил  книжки Иллиада, Одиссея и Библия, как книги могущие помочь понимать людей. Библия — это ценности которые у нас в головах. Иллиада Одиссея — греческая культура, которая по его мнению является основной современной.
  • Человек связан с Rolsen. Вообще интересная история.
  • Типы менеджеров по-библии :)
  • Заряжает!!

Ссылки

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 не поддерживает этой замечательной возможности.

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

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

Скорочтение

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

Изучая Си. Выбор IDE — Sun Studio.

Я давно программирую и привык к хорошим IDE. Хорошее IDE должно обладать следующими свойствами:

  • Подсветка синтаксиса :)
  • Настройка горячих клавишь :)). Смайлик потому что в Code::Block это оказалось не просто. В этой программе настройка клавиш — это плагин, который ставится отдельно.
  • Объединение кода в проект
  • Управление текстом
    • Дублирование строки, выделенного блока текста
    • Перемещение выделенного блока текста
    • Удаление строки
    • Добавление \ удаление отступов
    • Форматирование выделенного фрагмента
  • Открытие файлов по горячей клавише
  • Открытие файла с классом по имени
  • Контрол-клик или какой-нибудь хот кей должно переводить нас к объявлению
  • Иногда полезен просмоторщик ресурсов. Показывает использованные переменные, функции и проч. В текущем файле

Понравилась функция рефакторинг. Переименование переменной через IDE с предварительным просмотром изменений.

Так-же понравилось Local history. Эдакий RCS встроенный в IDE. Все изменения по коду контролируются. Очень удобно. Кроме того там где есть такая штука, обычно есть связка с реальной RCS. Показывает цветом на полях, что добавилось, что изменилось в коде.

Подсветка ошибок, опечаток. А так-же полезно показывать неиспользуемые локальные переменные, но уже может быть даже перебор.

В общем для PHP лучшее чем я пользовался — это JetBrains Web IDE.

Sun Studio Ну а для Си\Си++ я нашёл Sun Studio. Думаю что тот-же функционал есть в NetBeans с плагином для Си\Си++.

Смотрел следующие среды

  • Geany
  • MonoDevelop
  • Code::Blocks
  • CodeLite
  • Eclipce CDE
  • KDevelop 4

Изучая Си. Начало.

Кубик рубик Мой опыт программирования ~9 лет. Я писал на паскале, дельфи, перл и пхп. По-настоящему умею писать лишь на PHP. Кроме того у меня нет специального образования. Приходилось учиться всегда. У меня даже был кризис на эту тему, устал. Где-то пару лет назад я осознал наличие так называемой «базы». У каждой предметной области будь то бухгалтерия, медицина, программирование есть пласт информации который каждый соответствующий специалист должен обладать — базовые знания.

Так как базы у меня не было, не было и единой картины мира. Соответственно многие знания не получалось связывать вместе. Отсутствие связей очень усложняет запоминание и понимание. Так-же усложняется понимание куда двигаться дальше.

Всегда хотел изучить си. На нём написано очень-очень-очень много всего, мне казалось не спроста. Я считаю знание си даёт реальное представление о том как работает компьютер на низком уровне. Так-же даёт представление об алгоритмах, структурах данных. В общем знание си — это и есть база.

Я много лет пытался овладеть сями. Много лет, мне это не удавалось. В общем чудо произошло наступило понимание как это работает. Здесь я хочу дать ссылки на литературу и указать с чего начать.

Читать далее

Книги: Дэвид Флэнаган, «JavaScript Подробное руководство»

Дэвид Флэнаган, "JavaScript Подробное руководство"

Наконец-то дочитал книгу. Доооолго я её мурыжил. И не дело не в том, что плохая книга, а в том что я медленно читаю. К слову сказать книга, которую я читаю сейчас по скорочтению.

О книге. 5-е издание. Издательство O’Reilly. Перевод: А. Киселёва, издательство Символ-Плюс 2008 год.

В общем спасибо Дэвиду. Это замечательная книга, с простым, понятным текстом. Хорошим стилем изложения. Правильными примерами, которые сделаны на отличном уровне. В общем я получил знания по предмету.

Читать далее