1 сент. 2009 г.

FreeBSD: Очистка консоли после logout-а

Консоль FreeBSD, в отличии скажем от Linux сохраняет весь "мусор",
который за собой оставил последний работавший пользователь. Очистку
консоли после завершения работы пользователя можно легко реализовать,
исправив в файле /etc/gettytab
P|Pc|Pc console:\
:ht:np:sp#115200:
на
P|Pc|Pc console:\
:ht:np:sp#115200:cl=\E[2J\E[0;0H

31 мая 2009 г.

Arch Linux

Вчера ночью снес на ноуте Ubuntu и поставил subj. Полет нормальный. Впечатления пока весьма положительные. Возвращаться не собираюсь.

10 мая 2009 г.

Windows 7

А знаете, что мне больше всего понравилось в Windows 7? В Windows 7 мне больше всего понравились… стандартные обои с рыбкой! А больше, ИМХО, в этой самой Windows 7 ничего хорошего нету.

P.S. А обои я честно спиздил утащил в к себе в Ubuntu.

GNOME: Убираем задержку при «выпадании» подменю

В винде всю жизнь меня бесило следующее: наводишь на пункт меню с подменюшкой, и ждешь с полсекунды, пока она вывалится. Правда там-то исправить это было просто: в реестре надо было найти все ключи с именем MenuShowDelay и изменить их значение с 400 (по умолчанию) на, скажем, 1. А вот как в GNOME? Оказывается, тоже элементарно. В файл ~/gtkrc-2.0 (если его нет — надо создать) дописываем строчку:
gtk-menu-popup-delay = 0

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

23 апр. 2009 г.

FreeBSD: Отключаем пищалку

Ситуация: сижу, значит, на работе, в одном окошке делами насущными занимаюсь, в другом - FreeBSD в VMWare мучаю. А оно, чуть не ту кнопочку надавишь, бипером орет на весь кабинет. Внимание лишнее привлекает, да и раздражает изрядно.
Так вот, чтобы заставить ее заткнуться, достаточно такой вот команды:
kbdcontrol -b off

…и тишина…

22 апр. 2009 г.

FreeBSD: Тонкая настройка опций сборки отдельных портов в make.conf

Вот уж правду говорят: «Век живи — век учись!» В журнале «Хакер» нашел интереснейшую статейку: «Первый день во FreeBSD». И хотя во FreeBSD я не первый день, о следующей полезнейшей возможности я не знал.
Итак, оказывается, в /etc/make.conf помимо общих для всех портов опций, можно задавать опции сборки отдельно для каждого порта! Для этого нужно обрамить опции в условия:
.if ${.CURDIR:N*/ports/multimedia/mplayer} == ""
WITH_OPTIMIZED_CFLAGS=yes
WITHOUT_RUNTIME_CPUDETECTION=yes
WITHOUT_GUI=yes
NOPORTDOCS=yes
WITH_DVD=yes
WITH_LIBDVDREAD=yes
WITH_LIBDVDNAV=yes
.endif

Эта запись означает, что если считывающий ее Makefile находится в заданном каталоге CURDIR, то указанная переменная считывается как переменная окружения и используется при сборке порта. Так как /etc/make.conf считывается при сборке каждого порта, то указание опций в make.conf аналогично тому, как если бы они были указаны при компиляции.

P.S. Помнится, наличием подобной фичи любили хвалиться фанаты Gentoo Linux. Так вот, у нас, BSD-шников, такое тоже имеется!

FreeBSD: Минимальная конфигурация ядра

Еще со времен FreeBSD 4.5, всякий раз, когда мне доводилось перетачивать ядро под конкретную железяку, ловил себя на мысли, что файл конфигурации становится с каждым разом ве меньше и меньше. Ну люблю я поизвращаться модульность и минимализм. Вот и сегодня, собирая ядро для домашнего роутера (интересная машинка кстати, позже опишу подробнее), я в очередной раз побил собственный рекорд. Итак, вот он (для 7.1-RELEASE):
cpu I686_CPU
ident REACTOR
options SCHED_ULE
options PREEMPTION
options INET
options FFS
options SOFTUPDATES
options UFS_DIRHASH
options COMPAT_43TTY
options _KPOSIX_PRIORITY_SCHEDULING
options KBD_INSTALL_CDEV
device eisa
device pci
device ata
device atadisk
device atkbdc
device atkbd
device psm
device vga
device splash
device sc
device pmtimer
device loop
device ether
device pty
device bpf

26 строк! Кто меньше? ;)

FreeBSD: решение проблемы с клавишами Home, Del, Ins в BASH

В процессе настройки домашнего роутера на базе FreeBSD, столкнулся со следующей проблемой: зайдя на него через PuTTY обнаружилось, что в BASH-е клавиши Home, Ins, Del вместо полагающихся им действий печатают мусор вроде ~[1, ~[4 и.т.п. Решение следующее:

1) В файл /etc/profile добавляем строку:
export INPUTRC=/usr/local/etc/inputrc

2) Создаем файл /usr/local/etc/inputrc следующего содержания:
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on

"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word

…и после перелогина эти клавиши начинают работать как положено.
Решение взято отсюда.

21 апр. 2009 г.

СССР — родина оверклокеров

Как-то в журнале «Наука и жизнь» то ли за 1986, то ли за 1987 год, попалась занимательная статья. Там описывалось, как с помощью замены кварца (оверклокинг!) и пары резисторов (вольтмоддинг!), можно в 1,5-2 раза увеличить производительность… калькулятора МК-52!!!

11 мар. 2009 г.

T-SQL: Несколько полезных приемов работы с датами

Получение даты/времени начала и конца дня, недели, месяца, года для заданной даты:
DECLARE @Date AS DateTime
SET @Date = GETDATE()

SELECT
DateAdd(day, DateDiff(day, 0, @Date), 0) AS DayStart,
DateAdd(second, -1, DateAdd(day, DateDiff(day, 0, @Date)+1, 0)) AS DayEnd,
DateAdd(week, DateDiff(week, 0, @Date), 0) AS WeekStart,
DateAdd(second, -1, DateAdd(week, DateDiff(week, 0, @Date)+1, 0)) AS WeedEnd,
DateAdd(month, DateDiff(month, 0, @Date), 0) AS MonthStart,
DateAdd(second, -1, DateAdd(month, DateDiff(month, 0, @Date)+1, 0)) AS MonthEnd,
DateAdd(year, DateDiff(year, 0, @Date), 0) AS YearStart,
DateAdd(second, -1, DateAdd(year, DateDiff(year, 0, @Date)+1, 0 ) AS YearEnd

Мне в свое время очень пригодилось.
А это - получение первого дня недели
DATEADD(DAY, DATEDIFF(DAY,0, DATEADD(WEEK,@W,@Y))/7*7-1,0)[Первый день недели - воскресенье],
DATEADD(DAY, DATEDIFF(DAY,0, DATEADD(WEEK,@W,@Y))/7*7+5,0)[Последний день недели - суббота];

5 мар. 2009 г.

T-SQL: Установка значения счетчика в поле типа Identity

Вот, понадобилось как-то, может пригодится:
DBCC CHECKIDENT (<Имя таблицы>, reseed, <Новое значение>)