Блог - Linux, программирование, Я!

linux на сервереЗамена для ifconfig, route, arp, etc.: утилиты iproute2

Вот недавно познакомился с этим набором утилит...

Этот пакет утилит представляет из себя замену таким заслужившим почет и уважение утилитам, как route, ifconfig, arp, netstat (т.н. net-tools).

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

Вообще-же, если по честному, то есть мнение, что net-toolsутилиты сейчас фактически существуют только для обратной совместимости. Плюс к этому, они не всегда корректно показывают и обрабатывают интерфейсы, настроенные утилитами более нового iproute2.

В то-же время iproute2 мало того, что полностью покрывают функционал net-tools утилит, но и поддерживают значительное количество новых возможностей сетевой подсистемы Linux!

Пара примеров под катом..

(далее...)

ПрограммированиеИмпорт GIT репозитория в пустой SVN

В статье кратко описано как импортировать существующий GIT репозиторий в чистенький SVN со всей историей коммитов и пр.

Первый вопрос, который напрашивается - ЗАЧЕМ?

Отвечаю - просто проект разрабатывался в моем локальном репозитории, а после заказчик попросил разместить его в SVN. Можно, конечно, сделать это все одним большим Initial коммитом, но хочется чтоб история тоже импортировалась. (далее...)

ПрограммированиеУчим Redmine рассылать почту через Gmail

Проблема в том, что если настроить уведомления по 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 из коробки не поддерживает.
Добавить такой функционал несложно... (далее...)

linux на сервереУстановка Redmine на Ubuntu 9.10 под Nginx часть 2

Продолжение статьи Установка Redmine на Ubuntu 9.10 под Nginx (далее...)

linux на сервереУстановка Redmine на Ubuntu под Nginx

Redmine - это довольно популярная в последнее время платформа для управления проектами и отслеживания ошибок.По идее, его установка - стандартная процедура, но мне, как совершенно незнакомому с Ruby и тонкостями установки Ruby софта пришлось повозиться.

Кроме того, в большинстве инструкций описывается использование Apache в качестве веб-сервера. У меня для этой цели будет использован Nginx

(далее...)

linux на сервереNginx + PHP-fcgi на Ubuntu

Если быть точным, опишу переход с режима работы Nginx <-> Apache backend на Nginx <-> php-fcgi backend.

Т.е. об отказе от промежуточного, в общем-то бесполезного слоя в виде апача между Nginx (http сервер) и PHP (application сервер)

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

(далее...)

PythonSVN хак — пишу граббер

Сегодня на хабре был опубликован отчет об обнаруженной уязвимости (точнее о распространенной ошибке при работе через) SVN.

Суть его заключается в том, что если сайт разрабатывается через систему SVN, то многие разработчики вместо команды svn export просто копируют директорию проекта из рабочих файлов SVN на продакшн - сервер и забывают, что при этом копируются скрытые папки ./svn в том числе ./svn/entries - список содержимого каталога и ./svn/text-base/ в которой и находятся исходники с дополнительным расширением .svn-base В результате можно стянуть исходный код сайта, т.к. веб-сервер не всегда передает интерпретатору файлы с расширением .svn-base и они будут передаваться plaintext-ом

Так что, не теряя времени, написал на Python граббер для сайтов, которые еще не успели дыры закрыть...

Последняя версия - СКАЧАТЬ

Версия 0.5 - СКАЧАТЬ
Версия 0.4 - СКАЧАТЬ
Версия 0.3 - СКАЧАТЬ
Версия 0.2 - СКАЧАТЬ
Версия 0.1 - СКАЧАТЬ

phpТюнинг PHP — установка XCache на Ubuntu

Каждый раз, когда вы открываете страничку динамического веб-приложения, веб-сервер обращается к PHP, который загружает запрошенный .php файл и все include и require, затем парсит их, компилирует в промежуточный байт-код ( opcode) и исполняет. Причем в больших проектах процесс включения всех include файлов может занимать весьма продолжительное время.
Поэтому были разработаны многочисленные PHP-кешеры. Наиболее популярные из них - APC (Alternative PHP Cache), XCache и eAcelerator. Все они позволяют сохранять и повторно использовать скомпилированный байт-код PHP, что позволяет экономить время на сборку всех включений и их компиляцию, экономит процессорное время и оперативную память (причем весьма значительно). Помимо этого, они позволяют хранить в кеше переменные PHP и обращаться к ним при следующем вызове скрипта. Какой из этих кешеров использовать - не особо принципиально, по производительности они не сильно отличаются. Я выбрал XCache т.к. на него никто не ругается как на eAcelerator и я уже работал с APC и было интересно попробовать что-то новое (далее...)

PythonИзучаю Python

Давно хотел изучить какой-нибудь новый для меня язык программирования. А то все PHP да JavaScript... Скучновато становится))

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

Приступим! (далее...)

linux на десктопеUbuntu 9.04 — решение частых проблем

Хоть Ubuntu 9.04 Jaunty вышла уже с месяц назад, но за это время успел встретиться с несколькими неприятными багами, с которыми благополучно справился. На всякий случай опишу эти баги и их "ремонт" (далее...)

ПрограммированиеМеняем favicon с помощью Jquery

Фавикон (иконка для веб-странички) добавляется таким тегом в HEAD страницы:
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
Если вдруг появится необходимость его динамически поменять, то, по аналогии с картинками, должно быть достаточно сменить href атрибут, но на самом деле браузеры на это никак не реагируют. Поэтому нужно удалить и создать заново этот тег.
Как это сделать на чистом JavaScript описано тут Управление иконками favicon из JavaScript - видим, что способ достаточно громоздкий.
В Jquery можно эту операцию проделать всего тремя строчками.

[codesyntax lang="javascript"]function chFavicon(iconHref){
//получаем объект тега иконки
icon=$(":[rel='shortcut icon']");
//создаем копию объекта иконки
cache=icon.clone();
//меняем атрибут href на переданный функции
cache.attr("href", iconHref);
//переписываем тег иконки
icon.replaceWith(cache);
}[/codesyntax]

ОбщекомпьютерноеПротоколы прикладного уровня: Jabber/XMPP часть1

Прочитав статью и испробовав команды, научимся
--Соединяться с Jabber сервером
--Логиниться
--Менять статусы
--Отправлять сообщения
--Отключаться

И все это на чистом XML

В принципе, можно статью назвать "Введение в XMPP" или типа того... Но суть не изменится
Приступим-же! (далее...)

Про деятельностьПопал на хабр

Угу, получил инвайт от "неизвестного доброжелателя"))

Просто опубликовал в песочнице немного переработанную статью про SMTP протокол, через пару дней пришло на мыло письмо со ссылкой на инвайт.

ПрограммированиеПротоколы прикладного уровня: SMTP

SMTP (англ. Simple Mail Transfer Protocol — простой протокол передачи почты) — это сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP.

ESMTP (англ. Extended SMTP) — масштабируемое расширение протокола SMTP. В настоящее время под «протоколом SMTP», как правило, подразумевают ESMTP и его расширения.

Сразу отмечу, что в настоящее время SMTP в чистом виде уже не используется, т.к. он даже не поддерживает элементарно авторизацию... Используется только ESMTP. Когда вы пользуетесь почтовым клиентом (Outlook, Thunderbird, Evolution, TheBat) происходит работа именно по этому протоколу.

Так вот, давайте попробуем элементарно отправить e-mail из консоли через почтовый сервер яндекса (не важно, линукс у вас или виндоус). (далее...)

linux на десктопеHow To: Установить VirtualBox в Ubuntu, вторая редакция

21 января вышла новая версия виртуальной машины VirtualBox.
В числе основных изменений - поддержка Windows 7 как в качестве гостевой ОС так и в качестве хоста.

Отдельно хочу заметить, что теперь поддержка USB в Linux работает сразу после установки, т.е. не нужно редактировать fstab или придумывать иные костыли

Кстати, уже довольно давно появился официальный репозиторий VirtualBox от Sun, так что установка и обновление еще больше упрощаются. Так-же изменились короткие имена названий типов ОС, выдаваемых по команде VBoxManage list ostypes . В связи с этими моментами обновяю инструкцию по установке и настройке. (Старая версия есть здесь). Итак!

Это руководство предназначено для помощи Linux пользователям установить VirtualBox из официального репозитория и настроить виртуальную машину WindowsXP (хотя, какую машину настраивать - не принципиально)
Состит процесс из 3-х этапов:
#1 Добавление репозитория VirtualBox в sources.lst и обновление списка программ
#2 Установка VirtualBox
#3 Настройка виртуальной машины

(далее...)