Вот недавно познакомился с этим набором утилит…
Этот пакет утилит представляет из себя замену таким заслужившим почет и уважение утилитам, как route, ifconfig, arp, netstat (т.н. net-tools).
Особенно хочу в нем отметить структуру ввода команд – похоже на работу с GIT, но еще гибче – можно вместо названия команды ввести любое количество первых букв и, если не возникнет конфликтов, команда отработает как положено. Ну это так, лирическое отступление.
Вообще-же, если по честному, то есть мнение, что net-tools утилиты сейчас фактически существуют только для обратной совместимости. Плюс к этому, они не всегда корректно показывают и обрабатывают интерфейсы, настроенные утилитами более нового iproute2.
В то-же время iproute2 мало того, что полностью покрывают функционал net-tools утилит, но и поддерживают значительное количество новых возможностей сетевой подсистемы Linux!
Пара примеров под катом..
Читать дальше »
В статье кратко описано как импортировать существующий GIT репозиторий в чистенький SVN со всей историей коммитов и пр.
Первый вопрос, который напрашивается – ЗАЧЕМ?
Отвечаю – просто проект разрабатывался в моем локальном репозитории, а после заказчик попросил разместить его в SVN. Можно, конечно, сделать это все одним большим Initial коммитом, но хочется чтоб история тоже импортировалась. Читать дальше »
Проблема в том, что если настроить уведомления по email через smtp стандартным методом:
# File: config/email.yml
production:
delivery_method: :smtp
smtp_settings:
address: "smtp.gmail.com"
port: '587'
domain: "smtp.gmail.com"
authentication: :plain
user_name: "your_email@gmail.com"
password: "your_password"
То при попытке отправить пробный email http://redmine.example.com/admin/test_email, он выдает ошибку
Во время отправки письма произошла ошибка (530 5.7.0 Must issue a STARTTLS command first. 16sm1075274ewy.14 )
Причиной тому служит обязательное использование TLS шифрования при работе с почтовым сервером Gmail, которое Redmine из коробки не поддерживает.
Добавить такой функционал несложно… Читать дальше »
Redmine – это довольно популярная в последнее время платформа для управления проектами и отслеживания ошибок. По идее, его установка – стандартная процедура, но мне, как совершенно незнакомому с Ruby и тонкостями установки Ruby софта пришлось повозиться.
Кроме того, в большинстве инструкций описывается использование Apache в качестве веб-сервера. У меня для этой цели будет использован Nginx
Читать дальше »
Если быть точным, опишу переход с режима работы Nginx <-> Apache backend на Nginx <-> php-fcgi backend.
Т.е. об отказе от промежуточного, в общем-то бесполезного слоя в виде апача между Nginx (http сервер) и PHP (application сервер)
Отдельно хочу заметить, что в этом руководстве мы обойдемся без компиляции чего-бы то ни было
Читать дальше »
Сегодня на хабре был опубликован отчет об обнаруженной уязвимости (точнее о распространенной ошибке при работе через) SVN.
Суть его заключается в том, что если сайт разрабатывается через систему SVN, то многие разработчики вместо команды svn export просто копируют директорию проекта из рабочих файлов SVN на продакшн – сервер и забывают, что при этом копируются скрытые папки ./svn в том числе ./svn/entries – список содержимого каталога и ./svn/text-base/ в которой и находятся исходники с дополнительным расширением .svn-base В результате можно стянуть исходный код сайта, т.к. веб-сервер не всегда передает интерпретатору файлы с расширением .svn-base и они будут передаваться plaintext-ом
Так что, не теряя времени, написал на Python граббер для сайтов, которые еще не успели дыры закрыть…
Последняя версия – СКАЧАТЬ
Версия 0.4 – СКАЧАТЬ
Версия 0.3 – СКАЧАТЬ
Версия 0.2 – СКАЧАТЬ
Версия 0.1 – СКАЧАТЬ
Каждый раз, когда вы открываете страничку динамического веб-приложения, веб-сервер обращается к PHP, который загружает запрошенный .php файл и все include и require, затем парсит их, компилирует в промежуточный байт-код (opcode) и исполняет. Причем в больших проектах процесс включения всех include файлов может занимать весьма продолжительное время.
Поэтому были разработаны многочисленные PHP-кешеры. Наиболее популярные из них – APC (Alternative PHP Cache), XCache и eAcelerator. Все они позволяют сохранять и повторно использовать скомпилированный байт-код PHP, что позволяет экономить время на сборку всех включений и их компиляцию, экономит процессорное время и оперативную память (причем весьма значительно). Помимо этого, они позволяют хранить в кеше переменные PHP и обращаться к ним при следующем вызове скрипта. Какой из этих кешеров использовать – не особо принципиально, по производительности они не сильно отличаются. Я выбрал XCache т.к. на него никто не ругается как на eAcelerator и я уже работал с APC и было интересно попробовать что-то новое Читать дальше »
Давно хотел изучить какой-нибудь новый для меня язык программирования. А то все PHP да JavaScript… Скучновато становится))
Собственно, самостоятельно начать было сложно, создал топик на Хабре чтобы поинтересоваться, что могут посоветовать по этому поводу бывалые программисты. В итоге к единому мнению не пришли, но почву для размышлений мне подкинули.
Приступим! Читать дальше »
Хоть Ubuntu 9.04 Jaunty вышла уже с месяц назад, но за это время успел встретиться с несколькими неприятными багами, с которыми благополучно справился. На всякий случай опишу эти баги и их "ремонт" Читать дальше »