четверг, 29 июля 2010 г.

PostgreSQL 8.4 and pltcl

Теперь можно использовать dict. Пример:
select version();
"PostgreSQL 8.4.4 on i486-pc-linux-gnu, compiled by GCC gcc-4.4.real 
(Debian 4.4.4-5) 4.4.4, 32-bit"

CREATE OR REPLACE FUNCTION dict_get(text, text)
  RETURNS text AS
$BODY$

  return [dict get $1 $2]
  
$BODY$
  LANGUAGE 'pltcl' IMMUTABLE;
ALTER FUNCTION dict_get(text, text) OWNER TO offline;

select dict_get('one 1 two 2 three 3','one');
1

DROP FUNCTION IF EXISTS dict_get(text, text);

вторник, 6 июля 2010 г.

Haproxy и halog

Вилли прикладывает к исходникам HAProxy полезную утилитку, но без документации. Вот краткое описание что это есть и зачем оно нам надо.
haproxy + halog

воскресенье, 4 июля 2010 г.

Расскажите Beeline, что такое DNS

При подключении билайновского модема к сети полученные имена DNS-серверов частенько даже не пингуются. Лирическое отступление - уважаемый билайн, не надо в качестве имен DNS серверов спам слать, не для того они придуманы! Практическое решение для пользователя заключается в том, чтобы использовать работающие DNS-сервера, лучше всего - локальный сервер. Снова, как во времена модемов и gprs, поставил dnsmasq и вписал
$ cat /etc/resolv.conf
nameserver 127.0.0.1

И обучил скрипты usepeerdns не гадить в /etc/resolv.conf при установленном dsnmasq:

$ head -n 8 /etc/ppp/ip-down.d/0000usepeerdns 
#!/bin/sh -e

# exit if the resolvconf package is installed
[ -x /sbin/resolvconf ] && exit 0

# exit if the dnsmasq package is installed
[ -x /usr/sbin/dnsmasq ] && exit 0

$ head -n 10 /etc/ppp/ip-up.d/0000usepeerdns 
#!/bin/sh -e

# this variable is only set if the usepeerdns pppd option is being used
[ "$USEPEERDNS" ] || exit 0

# exit if the resolvconf package is installed
[ -x /sbin/resolvconf ] && exit 0

# exit if the dnsmasq package is installed
[ -x /usr/sbin/dnsmasq ] && exit 0

Профит, собственно, в том, что теперь определение доменных имен работает всегда, к тому же сурово кэшируется. Что поделать, идет инет качается и рвется на ходу...

Upd.

Но не ошибка, акция
Свершилась надо мной:
Чтоб начал ДНС я
Всегда носить с собой!

google chrome и localhost

Сижу я тихо-мирно без инета на даче (спасибо билайну, чей модем ловит сеть редко и недолго), хочу обратиться к локальному веб-серверу и тут бамс - гуглохром отказывается распознавать адрес localhost! Первая мысль - докатились, гугл уже локалхост в глобальных DNS ищет... В багтрекере, как позже выяснилось, ссылаются что мол слишком быстро это имя распознается и бла-бла, но на практике гуглохром даже 127.0.0.1 не распознает. Прямо скажем, оффлайн-пользователей изводят. Баг по-прежнему живет и не сдается, но есть костыль:
$ tail -n 2 /home/veter/.bashrc 

alias google-chrome='google-chrome --enable-ipv6'

Понятно, что можно и просто запускать командой google-chrome --enable-ipv6 или враппер для запуска написать, но имхо я выбрал меньшее из зол.

(C) Alexey Pechnikov aka MBG, mobigroup.ru