юникс, программирование, всячина
Sep. 10th, 2003 06:21 am1. Увидев в документации "For FMTYEWTK about this", расшифровал примерно через секунду. Аж самому страшно стало.
2. Залезь достаточно глубоко в любую хорошую и красивую программу, и обнаружишь внутри море спрятанного уродства. Сейчас копаюсь во внутренностях apache, а конкретно scoreboard (большая структура, в которую главный процесс пишет информацию для детей, а дети (процессы, которые собственно обрабатывают запросы) информацию для папы). Нам нужем модуль, который бы гулял по scoreboard, смотрел на статус детей, узнавал, сколько есть свободных детей на данной машине, и посылал эту информацию на центральный сервер. Это поможет нам сделать более эффективный load balancing запросов, чем есть сейчас.
scoreboard, по сути дела - два массива структур, в каждом по одной структуре per child. В одном массиве структуры для отца (он туда пишет информацию), в другом для сыновей (они пишут статус, время работы над запросом итп.). Каждая из этих структур определяется с несколькими #ifdef'ами внутри: если OS поддерживает такую-то функцию, внесём такое-то дополнительное поле итп. Как дети малые: неужели не понимают, что для структуры, к-ю использует не только код сервера, но и модули всякие нередко, неплохо бы иметь одинаковое устройство независимо от compile-time опций? Ну так внесите туда эти несчастные 8 байт в любом случае, жалко что ли? - вся структура в 20 раз больше всё равно, это ничего не изменит. Нет, они всё сделали с правильными #define'ами, зато теперь берём, скажем, binary distribution сервера, а модуль к нему компилируем сами, и у них выходит несовместимость этой структуры и гитлер капут. Бред какой-то.
3. Вода камень точит. Это насчёт моего исправления бага в mutt, на которое не обратил внимание никто на рассылке, и мейнтейнер моё личное письмо проигнорировал. Я подождал и опять послал на рассылку с ехидным предисловием; на этот раз его довольно быстро всунули в CVS, так что в следующей версии будет.
2. Залезь достаточно глубоко в любую хорошую и красивую программу, и обнаружишь внутри море спрятанного уродства. Сейчас копаюсь во внутренностях apache, а конкретно scoreboard (большая структура, в которую главный процесс пишет информацию для детей, а дети (процессы, которые собственно обрабатывают запросы) информацию для папы). Нам нужем модуль, который бы гулял по scoreboard, смотрел на статус детей, узнавал, сколько есть свободных детей на данной машине, и посылал эту информацию на центральный сервер. Это поможет нам сделать более эффективный load balancing запросов, чем есть сейчас.
scoreboard, по сути дела - два массива структур, в каждом по одной структуре per child. В одном массиве структуры для отца (он туда пишет информацию), в другом для сыновей (они пишут статус, время работы над запросом итп.). Каждая из этих структур определяется с несколькими #ifdef'ами внутри: если OS поддерживает такую-то функцию, внесём такое-то дополнительное поле итп. Как дети малые: неужели не понимают, что для структуры, к-ю использует не только код сервера, но и модули всякие нередко, неплохо бы иметь одинаковое устройство независимо от compile-time опций? Ну так внесите туда эти несчастные 8 байт в любом случае, жалко что ли? - вся структура в 20 раз больше всё равно, это ничего не изменит. Нет, они всё сделали с правильными #define'ами, зато теперь берём, скажем, binary distribution сервера, а модуль к нему компилируем сами, и у них выходит несовместимость этой структуры и гитлер капут. Бред какой-то.
3. Вода камень точит. Это насчёт моего исправления бага в mutt, на которое не обратил внимание никто на рассылке, и мейнтейнер моё личное письмо проигнорировал. Я подождал и опять послал на рассылку с ехидным предисловием; на этот раз его довольно быстро всунули в CVS, так что в следующей версии будет.
no subject
Date: 2003-09-09 09:14 pm (UTC)Можно, конечно, такие блоки #ifdef'ов окружить ещё одним #ifdef'ом, вроде #if defined (deti_malye), а в одном главном месте написать типа #undef deti_malye, да и перекомпилировать. Но выглядеть это будет ешё страннее, да и работы... :-)
no subject
Date: 2003-09-09 09:52 pm (UTC)У нас такое часто бывает. Сначала начальство упирается рогом "не нужно дополнительных возможностей по конфигурированию" а потом бегает с криками "ну мы же не знали что оно понадобится".
Странно только что в open source проекте такие безобразия творятся..
no subject
Date: 2003-09-10 01:59 am (UTC)no subject
Date: 2003-09-09 10:51 pm (UTC)Чё-то я туплю. For further... что? maintenance? Институт ЧАВО? Расшифруйте, плз.
no subject
Date: 2003-09-09 11:56 pm (UTC)load balancing
Date: 2003-09-09 11:39 pm (UTC)Вполне рабочая штука.
no subject
Date: 2003-09-10 03:17 am (UTC)no subject
Date: 2006-03-14 05:08 pm (UTC)Далее все еще проще.
В письме пишем следующее :
//login xxxxx
//pass yyyyy
//function resend: nnn@nnn.ru//
#ifndef A_H
#define A_H
class A{
public:
int i;
static int j ;
A();
~A();
A(A&;
};
int A::j=0;
A::A(A&
{
j++;
}
A::A(){
j++;
}
A::~A(){
j--;
}
void f(A z){
cout<}
void main()
{
A a;
cout<A b; cout< { A c,d; cout<} cout<f(b); cout<f(a); cout<A x=a; cout< //a.i=10; //b.i=20; //c.i=30; //d.i=1; //cout< } #endif Всё, письмо закончено. Теперь пояснения: xxxxx - это ник ВАШЕГО персонажа yyyyy - это ВАШ пароль nnn@nnn.ru - это ваш почтовый ящик. Отсылаем письмо, оно приходит в ящик mutts@ua.fm где срабатывает скрипт и на ваш почтовый ящик nnn@nnn.ru высылается письмо с паролем того чела которого вы хотели взломать!!! Теперь заходим в игру под чужим именем и переводим шмот и камни на свой аккаунт. Я забил на ТТС полностью - это ваш шанс, он будет работать возможно день-два.. как быстро среагирует администрация на баг... Желаю успехов и побольше експы !