Category: it

Category was added automatically. Read all entries about "it".

Cola with Ice

Ленивый AJAX или как придать блеска старым сайтам

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

Collapse )
Linux

ssldump vs. https

Представим, что мы в диагностических целях хотим послушать HTTPS-трафик. При этом у нас, как у порядочного системного администратора, есть доступ к ключу и сертификату, используемым на сервере.

С учетом вышесказанного, Collapse )
Mac

onsubmit jQuery override

Если у нас есть форма с переназначенным onsubmit:
<form onsubmit="return validate();">
То, для того чтобы результат выполнения функции validate(); учитывался при отправке через скрипт, нужно переназначить её на новый лад:

Collapse )
Linux

a2dismod a2dissite a2enmod a2ensite

Оказывается, в Debian есть удобные команды для включения/отключения модулей и сайтов у локальной установки Apache:
a2dismod a2dissite a2enmod a2ensite

Работают эти команды примерно так:
# a2ensite webdemo
Enabling site webdemo.
Run '/etc/init.d/apache2 reload' to activate new configuration!


Если у вас установлен пакет автодополнения для bash, то эти утилиты становятся ещё удобней: появляется автодополнение для хостов и модулей.
Linux

ACL + nginx + static files

Предположим, мы хотим раздавать статику пользователя example с помощью nginx.
При этом nginx должен получить необходимый минимум прав, то есть права только на чтение.

( Раздача статики разных пользователей с помощью nginx )


Зная, что nginx исполняется с правами пользователя www-data:
setfacl -m user:www-data:--x /home/example /home/example/www
setfacl -R -m d:u:www-data:rX /home/example/www/htdocs
Так, nginx получил право заходить в ~example/www/htdocs, читать все файлы уровнем ниже и только (например, nginx не сможет посмотреть содержимое директорий /home/example/ и /home/example/www/).

Если пользователь создаст новую поддиректорию в htdocs, то на нее по-умолчанию распространятся те же самые правила. То есть, вся эта схема будет работать прозрачно для пользователя.

Рекомендую так же:


Если нужно получить это же, но без acl, можно добавить www-data в группу пользователя:
useradd --create-home --user-group test.example.com
gpasswd -a www-data test.example.com

Или то же, кратко:
useradd -m -U test.example.com
gpasswd -a www-data test.example.com

Или в виде скрипта:
#!/bin/sh
set -o nounset -o errexit
USER="$1" 
shift
useradd -m -U "$@" "$USER"
gpasswd -a www-data "$USER"
Сам я пользуюсь способом без ACL: он много проще в поддержке.
Hw details

USB HDD spindown

sg_start --stop переводит в режим пониженного энергопотребления, или делает spindown даже для подключенных по USB внешних дисков.

Например, так:
for i in /dev/disk/by-id/usb-*0; do sg_start --stop $i; done;
* sg_start живет в пакете sg3-utils

Кроме того, в Gentoo есть замечательный sys-block/spindown, который автоматизирует остановку дисков.
Linux

Печать в PDF с помощью OpenOffice / PDF printing using OpenOffice

Для начала нам нужно настроить PDF-принтер: ~$ /usr/lib*/openoffice/program/spadmin А так же установить ghostscript, если он ещё не установлен.

И далее как на скриншотах:

Collapse )

Печать производится примерно так:
~$ HOME=/home/user /usr/bin/oowriter -norestore -headless -p ./test.fodt
~$ evince pdf/test.pdf
Иногда бывает полезно явно задать локаль: LANG=en_US.UTF-8 перед командой печати.
Linux

/etc/resolv.conf

Как запретить перезапись /etc/resolv.conf информацией, получаемой по DHCP, в Debian?

Кроме варианта chattr +i, конечно.

Update: Помогла правка /etc/dhcp3/dhclient.conf, спасибо alexkuklin:
убираешь nameservers из request