Админские стихи

Произведение не мое, но уж очень понравилось…

У сисадмина серв от Intel,
Ядро i7 стоит на нём.
И днём и ночью ты, убитый,
Е@#шься с ним, как с букварём.

Как «линь» поставил — песнь заводишь;
Под Windows матом говоришь.
Там чудеса, там BSoD выводит,
Там в Микрософте Билл сидит…

Там от неведомых экзешек
Следы невиданных зверей.
Там выдаёт «Не отвечает»,
Когда нажмёшь ты на «ОК».

Там SSH не обитает —
Хреново без него порой…
А грёбаный telnet слетает,
Когда брутфорсят твой пароль.

Там chroot’а нет — как хостинг ставить?
Как обойтись без IIS?!
А вот никак! Format спасает…
Apache без «никса» есть не жилец.

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

Замена подстроки в std:wstring

Продолжаю публиковать серию сниппетов. На этот раз задача – заменить подстроку в строке wstring другой. Делается это так:

std::wstring strSource = L"this string is XXXX and YYYY";
size_t posn;
std::wstring replaceFrom = L"XXXX";
std::wstring replaceTo = L"SOMETHING";

posn = strSource.find( replaceFrom );
strSource.replace( posn, replaceFrom.length( ), replaceTo );

если надо заменить все вхождения, то последние две строки надо заменить на

while ( std::wstring::npos != ( posn = strSource.find( replaceFrom ) ) )
{
  strSource.replace( posn, replaceFrom.length( ), replaceTo );
}

Надеюсь будет полезно.

Чтение текстового файла целиком в переменную

Бывает полезная функция, однако в интернете редко можно найти сниппет, поэтому предлагаю его здесь. Надеюсь будет полезен.

int length = 0;
char* buffer = null;

std::ifstream is;
is.open( "config.xml", std::ios::binary );

is.seekg( 0, std::ios::end );
length = is.tellg( );
is.seekg( 0, std::ios::beg );

buffer = new char[ length + 1 ];
buffer[ length ] = '\0';

is.read( buffer, length );
is.close( );

FreeBSD gnome2 русификация

   

Для начала идем в /etc/login.conf и добавляем туда профиль пользователя для UTF-8

$ mcedit /etc/login.conf
#
# Russian User Accounts with UTF-8
#
russian-utf|UTF-8 Russian User Accounts:\
   :charset=UTF-8:\
   :lang=ru_RU.UTF-8:\
   :lc_all=ru_RU.UTF-8:\
   :tc=default:

Далее применяем профиль к целевому пользователю

$ cap_mkdb /etc/login.conf
$ pw usermod < user > -L russian-utf
$ pw usershow < user >
  < user >:*:1001:1001:russian-utf:0:0:User &:/home/< user >:/bin/sh

Устанавливаем язык по умолчанию в gdm

$ mcedit /etc/rc.conf
gdm_lang="ru_RU.UTF-8"

Комментарии со старой версии блога

Алекс: 13.07.2013 в 16:44 Русский GNOME2 на FreeBSD 8.4 (без gdm):

$ mcedit /etc/rc.conf:
keyratefast»
keymapru.koi8-r.win»
scrnmapkoi8-r2cp866font8x16cp866b-8×16font8x14cp866-8×14font8x8cp866-8×8
$ mcedit /etc/csh.login:
setenv LANG ru_RU.KOI8-R
setenv MM_CHARSET KOI8-R

setenv LC_TYPE ru_RU.KOI8-R
setenv LC_LANG ru_RU.KOI8-R
setenv LC_MONETARY ru_RU.KOI8-R
setenv LC_TIME ru_RU.KOI8-R
setenv LC_NUMERIC ru_RU.KOI8-R
setenv LC_COLLATE ru_RU.KOI8-R
setenv LC_MESSAGES ru_RU.KOI8-R
setenv LC_ALL ru_RU.KOI8-R
$ mcedit /root/.xinitrc
/usr/local/bin/gnome-session

Запускаем startx


MrDekk: 18.07.2013 в 20:39 Ежели работает – отлично :)

FreeBSD gnome2 Logon Window

 

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

$ ee /etc/fstab

и написать туды

proc /proc procfs rw 0 0

UPD: для заметки, гномий листик при старте хранится тут:

/usr/local/share/pixmaps/backgrounds/gnome/background-default.jpg