среда, 16 сентября 2009 г.

как Yandex определяет регионы

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

четверг, 26 февраля 2009 г.

CentOS

Сегодня посвил одному пользователю на пробу CentOS Linux
системка пошустрее чем Ubuntu 8.04.2 но и менее живая, в смысле ПО
чтож, время покажет

вторник, 24 июня 2008 г.

Gentoo in Ubuntu или перезд из Ubuntu в Gentoo

Gentoo in Ubuntu или перезд из Ubuntu в Gentoo

Безусловно Ubuntu является замечательным дистрибутивом как по своему набору софта так и по готовности к работе и отшлифованности рабочего места.

Мне очень нравятся шрифты Ubuntu, пакетный менеджер и репозитарии. У Ubuntu замечательное сообщество и документация в интернете.

Но имеется большое "НО" - убунту по умолчанию не является скоростным дистрибутивом, видимо она собирается с учётом последних компьютеров. Например мой Celeron D с гигабайтом памяти замечательно на ней живёт, но вот Celeron 1700 с гигабайтом SDRam памяти на ней страшно тормозит, а это весьма напрягает. Имеется 3 пути решения проблемы:

  1. Обновить компьютер, выйдет не дорого и будет дешево и сердито
  2. Оптимизировать саму Ubuntu, пересобрать ядро, ключевые элементы и все необходимые программы. Пакетный менеджер такое позволяет.
  3. Перехать на более скоростной дистрибутив

Первые два варианта не интересны, иначе было бы как фильме, в начале которого вы сразу же желаете смерти главной герионе, а без неё фильма бы просто не было :)
И так, обдумав, таким тщательным образом, наше очердное жизненно важное испытание, мы решаемся перехать в GNU/Linux/Gentoo и я буду скромным наставником на этом сложном пути.
Разумеется у меня к вам имеются некоторые требования и если вы не выполнив их, то я вас проклинаю и ставлю печать вендузятнега :). Не стоит обижаться, но если вы обламываетесь уже на этой стадии, то во время перезда вы будете биться головой обо всё что попадётся, будете проклинать меня и любой Linux. Обычно такое разочарование является травмой для неокрепшего мозга. Не забывайте, что все Linux троли и хаятели имеют подобную травму головного мозга. Итак требования:

  1. У вас достаточно терпения чтобы сеть и связать себе пару носков тонкой ниткой и маленькими спицами
  2. Вы умеете пользовать интернетом и находить информацию в нём информацию
  3. Вы умеете пользоваться найденной информацией: переводить, читать и писать, если вы не сможете дочитать требования до конца то это уже не для вас
  4. Вы умеет собирать программы из исходников и вас не смущают сообщения компиляторов и инструментов сборки
  5. Вы умеет пользоваться текстовыми редакторами аля`vim,joe,mcedit
  6. Вы уже имеет представление о нужных вам программных система будто то Xorg, KDE, Gnome и др.
  7. Вы имеете представление о гибкости файловых систем и сетевых настройка os LInux
  8. У вас впереди отпуск, отгулы или каникулы.
  9. У вас в распоряжении несколько компьютеров и быстрая сеть между ними
  10. Ваше железо поддерживается, лучший способ проверить на Ubuntu

Вот в принципе и весь небольшой список требований для начинающего джедая - "джентушника".
Вот несколько ответов на вопросы которые были интересны мне:

Вопрос: Можно ли установить Gentoo - без скачивания больших образов, записи дисков и перезагрузок?
Ответ: Разумеется можно, и даже нужно, зачем тратить время на перезагрузки, скачивание и запись образов если ПО на них всё равно устарело и мы явно собираемся пересобрать его. Для установки Gentoo необходим любой развитый дистрибутив Linux, например Ubuntu и хороший канал в интернет или доступ к местному зеркалу Gentoo

Вопрос: можно ли ускорить сборку Gentoo на старых компьютера используя мощности соседних?
Ответ: Разумеется можно и имеется несколько способов и на вам предстоит выбрать свой, мне проше было расшарить на NFS корень раздела с Gentoo, смонтировать его на соседних компьютерах, там же подготовить chroot для сборки, а так же монтирование местного /tmp для ускорения операций файлового ввода вывода. Но имеется и другой более экстравагантный способ: кластеризация, вы устанавливаете специальное ПО, подготовливаете соседние компьютеры и собираете программы использую домашний сборочный кластер :) согласитесь звучит очень круто.

Вопрос: сколько времени уйдёт на сборку и настройку системы аналогичной Ubuntu?
Ответ: От нескольких суток до пары недель, это сильно зависит от ваших способностей и способностей вашей техники, ширины интернет канала, вашего терпения и сочуствия близких к вам людей.

четверг, 17 апреля 2008 г.

события при обработке cgi,*sql данных в Python

При выводе данных из *sql таблицы или cgi запроса, да хоть при обработке xml файла, можно включить систему событий для обработки отдельных полей, возможно это велосипед, но я не нашёл способа лучше.
Короче делаю так:

# добавляет XML тег защиты от XSLT процессора
def make_cdata(str):
return "защита от"+str+"xslt процессора"

# создаю кортеж со значениями имя поля - имя функции обработчика
# для поля MESSAGE применится функция
make_cdata, защищающая её от XSLT процессора
# для поля ID будет проведенно преобразование к типу int
event = {"MESSAGE":make_cdata,"ID":int}

# затем, передаю этот вектор в обработчик cgi,sql,xml, да куда угодна
if bd_sql.execute(sql)> 0 :
xml = bd_sql.get_xml(root="post",event)

# а в этом обработчике пишу код:
# тут, например, присутвует код перебора выбранных строк, скорее всего
# велосипед, и вставку в xml шаблон, но

xml_str="<%s>"%root
for i in range(0,self.__res__):
row = self.__curs__.fetchone()
rt={}
# генерация XML документа
for i in range(len(fields)):
try:
# от тут магия, если имеется поле с именем как в векторе собитий
# то к значению поля применяется заданная нами функция
rt[fields[i]]=event[fields[i]](row[i])
except:
rt[fields[i]]=row[i]
xml_str+=xml_str_tmpl%rt
return xml_str+""%root

мне понравилось такое компактное решение, особенно если представить сколько надо навелосипедить на С++
Я собираюсь такой приём можно применить для обработки входящих сообщения на наличие ключевых слов, ссылок, да мало ли чего, это просто удобно.

понедельник, 24 марта 2008 г.

Сын, первое проявление интереса

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


Пока это довольно редкое явление проявления интереса и рукоприкладства к чему либо. :)

суббота, 22 марта 2008 г.

Очередная работа жены

После бессонной ночи в битве за место под солнцем с другими фрилансерами
у неё получился такой логотип/сценка/комикс

пятница, 21 марта 2008 г.

Настройка безпарольной аутентификации с вашим ssh аккаунтом

Если у вас имеется ssh доступ к какому либо серверу и вы не в курсе про ключи, то очевидно вам приходится часто имя и пароль. Это весьма утомительно и мешает автоматизировать многие вещи, например синхронизация заметок Tomboy, налаживание работы синхронизирующего/бекапящего скрипта или запуск X приложение (об этом позже). В общем если вы устали от этой рутины то пора завести ключи :)
Вся задача разбивается на 3 части, генерация ключа, установка его на сервере и настройка рабочей среды

1. генерация ключа
bsdhost% ssh-keygen -t dsa -b 2048
Generating public/private dsa key pair.
Enter file in which to save the key (/home/ffsdmad/.ssh/id_dsa):# соглашаемся с путём по умолчанию
Enter passphrase (empty for no passphrase): # вводим секретное слово
Enter same passphrase again: # вводим секретное слово 2 раз
Your identification has been saved in .
Your public key has been saved in .pub.
The key fingerprint is:
1f:48:47:b2:d1:a1:8a:fd:b4:5f:12:46:93:0a:f4:27 ffsdmad@bsdhost
bsdhost%
теперь в папке $HOME/.ssh/ мы имеет 2 файла-ключа, секретный - id_dsa и открытый - id_dsa.pub

2. добавление ключа на сервер
необходимо добавить содержимое файла $HOME/.ssh/id_dsa.pub с локального компьютера
в файл $HOME/.ssh/authorized_keys удалённого хостинга
bsdhost% ssh ffsdmad@ffserver
scp ffsdmad@bsdhost:~/.ssh/id_dsa.pub ~/tmp.id
Password:
id_dsa.pub 100% 1117 1.1KB/s 00:00
ffserver:~>
ffserver:~> cat ~/tmp.id >> .ssh/authorized_keys
ffserver:~> rm ~/tmp.id
ffserver:~> exit
Всё, теперь сервер должен узнавать нас не только по паролю, но и ключам, проверям:
bsdhost% ssh ffserver
Enter passphrase for key '/home/ffsdmad/.ssh/id_dsa': # здесь требуется ввести ключевое слово, заданное при создании ключа
ffserver:~>

3. настройка среды для удобного использования
Мы получили безпарольную систему входа на сервер удалённого хостинга.
Но хрен редьки не слаше, ведь нам приходится вводить ключевое слово,
чтобы избежать этого необходимо проделать следующее:
а. поправить конфиг пользователя (для Ubuntu не требуется)
б. пере/залогиниться по новой (для Ubuntu не требуется)
в. добавить ключь агенту авторизации

а. добавляем в файл ~/.tcshrc следующий текст:

if ( $?SSH_AGENT_PID == 0 && $?SSH_AUTH_SOCK == 0 )then
eval `ssh-agent -c`# для tcsh -c, для bash -s
else
# тут можно прибивать агента при каждом входе пользователя в терминал
# echo "kill current ssh-agent"
# ssh-agent -k
# echo "start ssh-agent"
# eval `ssh-agent -c`
endif
этот код будет проверять запушен ли агент авторизации, если нет, то будет запускать и настраивать среду
б. exit
в. bsdhost:~> ssh-add
Enter passphrase for /home/ffsdmad/.ssh/id_dsa:
Identity added: /home/ffsdmad/.ssh/id_dsa (/home/ffsdmad/.ssh/id_dsa)
bsdhost:~>
проверяем кривость рук
bsdhost:~> ssh ffserver
Welcome to FreeBSD!
запускается ssh-agent
Agent pid 13178
ffserver:~>

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