Category: Uncategorized

  • Писать в блог

    Все-таки я не понимаю, когда успевают писать в свои блоги люди, занятые делом?! Времени ведь просто не остается на это.

  • MySQL SELECT

    Если есть такая возможность, надо использовать как можно меньше условий в WHERE.
    Элементарно сменив с трех параметров до одного я получил прирост с 0.00091409683227539 сек до 0.00078392028808594 сек.
    P.S. На самом деле время порой разнилось, но это наиболее стабильные данные. Может показаться, что выигрыш небольшой, только вот в первом случае время выборки порой занимало до 0.01699 сек. А что будет при дальнейшем росте базы?

  • TextMate

    Наконец-то, купил себе TextMate для дома. Теперь работаю в редакторе, который мне действительно очень нравится! 🙂

  • Subversion: возврат к предыдущей версии…

    Когда я активно продвигал Subversion на работе, то одним из доводов было то, что в случае какого затирания или появления ошибки, которой раньше не было, всегда можно будет вернуться к предыдущей версии.
    Но я не знал, как это делать. Сегодня на stackoverflow.com нашел ответ (мой вольный перевод):

    Если вам просто надо вернуться к предыдущей версии, то команда update – то, что нужно.
    svn update -r 9
    Вы можете работать над кодом, но не можете внести измения в репозиторий. Ну, на самом деле, если в 10 ревизии не было изменений в этом файле, то внести в репозиторий его вы сможете, только делать этого не стоит, лучше подождать, пока кто-нибудь исправит 10-ую ревизию.

    Если вам все-таки хочется продолжить работать над кодом, можно создать ветку начиная с ревизии 9, а потом объединить с 10-ой, когда она будет исправлена.
  • Subversion в работе

    Сегодня закончил-таки установку и настройку Subversion. По сути сегодня только настроил Апач, создал репозиторий и импортировал проект. Ничего интересного.
    А вот новым для меня оказалась возможность использования хуков. Это такие скрипты, которые вызываются на определенное событие. Нам, например, надо было по коммиту обновлять (svn update) рабочую версию на сервере. За это отвечает хук post-commit.
    Только пока не понял, как ее задействовать только для одного проекта…

  • ХДД

    Название вовсе не смайл, который нынче так часто используется для выражения каких-то непонятных эмоций.
    Названием сего поста – проблема, с которой я столкнулся после установки Ubuntu (на самом деле есть еще одна проблема, но о ней как-нибудь в другой раз – когда либо решу ее, либо отчаюсь и буду искать совета).
    По какой-то причине Ubuntu считает мой жесткий диск поврежденным, а после минут пяти работы системы начинает так его дергать, что все виснет. Мрак. Удивительно для меня было то, что Винда, которая стоит там же, никаких ошибок не выдает. Даже при проверке диска…
    Зато есть повод обратиться к начальству “за апгрейдом” 🙂

  • Убунту

    Поставлю сегодня на рабочий компьютер Ubuntu 9.10.
    Предположительно начнется сие действо через минут 30 и продолжится в течение всего обеда…

  • Установка Subversion на работе…

    Как-то уж так завелось, что этот мой блог все-таки немного рабочий. А так как недавно мне напомнили, что пора бы обновить свои дневники, то начну с этого, так как для него хотя бы есть пара мыслей еще с пятницы.

    Вообще, у нас сейчас идет относительно (или довольно) серьезный проект. К сожалению, организация работы над ним оставляет желать лучшего. Например, я несколько месяцев уже предлагал использовать SVN, но мне постоянно говорили, что времени на это нет.
    Ну, у нас вроде как была версия для разработчиков и мы с грехом пополам работали над ней. Порой это создавало трудности, когда надо было редактировать один и тот же файл, порой мы затирали чужие изменения. Но все же это было еще терпимо. Главная проблема заключается в том, что производственный сервер не один. Их, если их можно назвать производственными серверами, десять на данный момент. Фактически это терминалы. И самое плохое стало случаться, когда надо было “быстро-быстро поправить вот на этом, а потом при первой возможности внести изменения во всех остальных, начиная с версии для разработчиков. Но часто такое просто забывалось. К пятнице у нас было уже около 5 различных версий с разными мелкими и не очень исправлениями…
    Проблему с версионностью с моей подачи (в этот раз мой голос услышали) решили разрешить использованием Subversion. (К сожалению, мы так и не придумали, как автоматизировать обновление терминалов…)
    И вот, как говорится, “за что боролись, на то и напоролись”. В том смысле, что хоть я и не админ вовсе, установку SVN на сервере поручили мне. Это я должен (был) выполнить одновременно с работой по специальности. Вообще, забавно довольно, какие задания и сроки мне давались всю минувшую неделю. Что-то просто фантастическое. Например, переписать полностью основу одной системы за один-два дня…
    В общем, я гордо поднял голову и сказал, что чему быть, того не миновать. И взялся за установку SVN. Для начала я узнал, что на сервере для разработчиков у нас стоит Линукс, который админ не обновлял с 2003 года. Какая-то очень древняя версия красной шляпы… Потом оказалось, что стоит Apache 1.3 (а для Subversion рекомендуется (на официальном сайте написано, что требуется) версия не ниже 2). Тогда я установил второй апач на порт 8080, как это советуют сделать при параллельном использовании двух Апачей. Разумеется, после этого потребовалось еще установить SQLite и еще какую-то ерунду. И, наконец, после всех мучений я добрался-таки до установки самой subversion. О да! Кажется, я ее даже установил. Черт побери, это отняло у меня больше четырех часов (включая время, когда я отвлекался на программирование).
    А завтра мне предстоит создать хранилище, импортировать проект, настроить доступ к нему. Мда. И что же админ не мог сам этого всего сделать, блин? Для него это была бы плевая задача, не требующая больше 20 минут!
  • Подарок на 15 июля

    Вчера, наконец, почта довезла до Виолатора, а потом и он до меня подарок на мой прошедший день рождения! Это мега–подарок! 🙂 Спасибо, чувак! 🙂
    Фотка второго тома на сайте не соответствует действительности!

  • Тест Джоэла

    Как я говорил, читаю Спольски. В первой его книге “Джоэл о программировании” есть тест качества бригады разработчиков ПО. Решил вот опубликовать его результаты для компании, в которой сейчас работаю.

    1. Пользуетесь ли вы системой управления версиями исходного кода?

      Нет. Эта компания — вторая, в которой я работаю php-программистом. По какой-то непонятной мне причине ни в ней, ни в предыдущей не использовались такие системы, что очень печально. Насколько меньше стало бы проблем. Кстати, сам Джоэл советует в этом случае программисту самому начинать использовать CVS и постараться приобщить к этому остальных разработчиков.

    2. Можете ли вы выполнить сборку продукта за один шаг?

      Нет, не могу. Хотя для некоторых проектов существуют скрипты для автоматического разворачивания веб-приложения на production-сервере. Но это только для нескольких новых проектов.

    3. Выполняете ли вы ежедневную компиляцию?

      Ну, нет. К сожалению, не знаю, как работает команда Java-программистов.

    4. Ведете ли вы базу данных ошибок в программе?

      Нет.

    5. Исправляете ли вы ошибки, прежде чем писать новый код?

      Нет. Часто ошибки обнаруживаются уже на этапе “промышленной эксплуатации”. И чаще всего исправление ошибок поручается совсем другим людям, которые до того никакого отношения к проекту не имели. Очень печальная ситуация.

    6. Есть ли у вас актуальный график работы?

      Хаха. Да, есть какая-то ерунда, которая забита в календарь в эксчендж-сервере, но актуальной ее точно не назвать. А также нет детализации графика, которой “требует” Джоэл.

    7. Есть ли у вас спецификации?

      Я бы сказал, что нет. Бывает, пишутся какие-то бумажки. Если повезет, там будут экраны, которые надо сделать. Если меньше, то текст с кучей неоднозначных текстов. Часто я только взгляну на это, а потом откладываю на край стола, потому что все они довольно бесполезны.

    8. Создали ли вы спокойные условия для работы программистов?

      Этот пункт меня расстраивает больше всех других, наверное. Нет, нет и нет. Рядом с программистами сидят менеджеры, вечно звенят телефоны, кто-то ходит, разговаривает. У половины программистов отвратительные кресла, через час сидения на которых задница становится квадратной. В общем, я бы сказал, что условия отвратительные.

    9. Стараетесь ли вы использовать для работы лучшие из существующих инструментов?

      Допустим, что да. То есть должен сказать, что у нас есть разные программисты. И разные приложения пишутся на разных языках (C#, Java, PHP, Perl) и используют разные базы данных (Oracle, MySQL, PostgreSQL). Правда, не знаю, кто и чем руководствуется при выборе языков, инструментов и технологий.

    10. Привлекаете ли вы к работе тестеров?

      Нет. Тоже момент ужасный. Все тестируют сами программисты. Потом еще может менеджер немного потестить.

    11. Предлагаете ли вы соискателям рабочих мест написать во время собеседования код?

      Ну, когда меня собеседовали, то вторая часть была — выполнение тестовых заданий. Задания были очень простые, вряд ли могли меня как-то оценить. Все, что можно было по ним сказать, что да, я хотя бы книжку “PHP за 24 часа” прочитал. Спольски сам советует проверять немного другое. Но зачтем.

    12. Проводите ли вы проверку “юзабилити” на случайных людях?

      Не, если генеральному понравилось, значит, так и будет.

    Итого три балла. Что по этому поводу пишет Джоэл: “В идеале вы должны набрать 12 очков. 11 очков — терпимое количество, а 10 или менее указывают на серьезные проблемы. Фактически большинство софтверных организаций работает, имея лишь два или три очка, и они нуждаются в серьезных улучшениях, потому что такие компании, как Microsoft, постоянно держать 12 баллов.”

    А как у вас?