Шаблоны в программировании
В каких языках программирования используются (использовались) шаблоны (про с++ знаю) и похожие на них сущности (малоли такие существуют, не плюсами едиными жив человек)
В каких языках программирования используются (использовались) шаблоны (про с++ знаю) и похожие на них сущности (малоли такие существуют, не плюсами едиными жив человек)
последний релиз 0.12-pre4 был более года назад. Этот проект еще жив и стоит ли надеется на выход 0.12.0?
Есть абстрактный класс:
class A{
public: virtual int foo() = 0;
}
есть потомки (соответственно B и C)
class B{
public: int foo(){};
}
тоже самое с С. Задача объеденить В и С в одну стркутуру, и взависимости от объекта выполнить функцию foo. Вот так у меня:
инициализация:
target = malloc (sizeof(A)*2);
ob_B = new B;
ob_C = new C;
target = ob_B;
* ( &target + sizeof(A)) = ob_C;
уже обращение:
((А*) target)->foo();
( (A*) * ( &target + sizeof(A)) )->foo();
Соотвтетственно ед. отличие между А и В и С - эт функция foo(). Вопрос: насколько мой вариант кашерен, грамотен, правилен, возможно глюкавен и т.д. Особо интересует (возможность)/(не возможность) сегфолта
у юзера boodoolak непристойный юзерпик
обнаружил в треде: http://www.linux.org.ru/profile/ale/view-message.jsp?msgid=1510840
Не секрет, что наше правительство обсуждало законопроект о запрете иностранного ПО, ходили слухи, что уделят внимание и opensource'у. Я конечно предпологал, что сие не просто чувство патриотизма, но чтоб настолько... Вобщем статья - http://www.cnews.ru/news/top/index.shtml?2006/07/24/206486
зы обратить внимание на: "Главный идеолог поправок, Сергей Ковалевский, заместитель председателя фонда социального страхования и разработчик СУБД HyTech, утверждает, что никто не собирается запрещать использование иностранных систем, а хотят только внедрить российскую СУБД на стратегически важных объектах РФ."
День добр =) Поставил сусю и возникло 2 вопроса.
1-ый: как указать cpu-гувернер по умолчанию?
2-ой: как указать шедулер на винт?
зы можно конечно стартап скрипт написать - это не проблема (чего куда писать знаю), хотелось бы использовать штатные средства
есть такой код:
Db berk(NULL,0);
if (berk.open(NULL,"/tmp/mybase.db",NULL,DB_BTREE,DB_CREATE,0))
std::cout << "error opening" << std::endl;
char * c_data ="fun";
int i_key = 777;
Dbt key(&i_key,sizeof(i_key)),
data(c_data,sizeof(char) * (strlen(c_data)+1));
if (berk.put(NULL,&key,&data,NULL)!=0)
std::cout << "error putting" << std::endl;
if (berk.sync(NULL)!=0)
std::cout << "error sync" << std::endl;
if (berk.close(NULL)!=0)
std::cout << "error close" << std::endl;
Db berk2(NULL,0);
if (berk2.open(NULL,"/tmp/mybase.db",NULL,DB_BTREE,NULL,0))
std::cout << "error opening" << std::endl;
c_data = "nuf";
Dbt key_r, data_r;
key_r.set_data(&i_key);
key_r.set_ulen(sizeof(i_key));
int res;
try {
res =berk2.get(NULL,&key_r,&data_r,0);
} catch (DbException &e) {
std::cout << "except " <<e.what() << std::endl;
}
if (res == DB_NOTFOUND)
std::cout << "error getting" << std::endl;
else {
c_data = (char *) data_r.get_data();
std::cout << "value: " <<c_data <<std::endl;
}
berk2.close(NULL);
этот код всегда возвращает "error getting". Почему?
ps сори за пред. пост =)
будьте любезны, у кого имеется нативная версия jagged alliance 2 - выложите куданить (ftp/http)
есть класс (примерно такой):
class QT_UMLModel{
public:
QT_UMLModel();
void addClass(QString name);
int ClassCount;
QDomElement * ClassItem;
QDomDocument Model;
}
примерный конструктор:
QT_UMLModel::QT_UMLModel(){
ClassCount = 0;
ClassItem = new QDomElement;
}
и метод:
void QT_UMLModel::addClass(QString name){
delete ClassItem;
ClassCount++;
ClassItem = new QDomElement [ClassCount];
}
В этом случае, при вторичном вызове метода addClass происходит след ошибка: "*** glibc detected *** free(): invalid pointer: 0x00000000005a2f18 ***".
но если вместо QDomElement * ClassItem; создать QDomElement ** ClassItem; (соответственно вместо ClassItem = new QDomElement; - ClassItem = new QDomElement *; и вместо ClassItem = new QDomElement [ClassCount]; - ClassItem = new QDomElement * [ClassCount]; память освобождается на ура. к сожалению такой вариант оставить не могу, ибо при попытке сделать в этом же методе (addClass) Model.appendChild(*ClassItem[ClassCount]); прога проваливается в сегфолт (в этом случае есно, я объект Model обнулял).
Единственное рабочее решение это первый вариант с удалением строчки delete "ClassItem;" - тогда все проходит на ура. но тогда возникает опасение memory leak =( (еслиб этот метод вызывался пару раз - может и забил бы, но этот метод будет вызываться часто). Ах да, Qt 4.1.0 и g++ 4.0.2 (вариант обновить g++ пока не рассматриваются, до момента тыкания меня носом в changelog, где сказано что что-то похожее пофиксино =) )
Вотс.... хелп плиз!
возник вопрос сборки 32-ух разрядных windows-приложений под линукс (64-ох битная). winelib отмел сразу, ибо на winapi не практиковал, а изучать руководства настроения нет. выбор пал на связке mingw + qt4. не без грабель, но в итоге все заработало. на скрине приложение из первой главы тюториала по qt. исходники никоем образом взависимости от оси не менялись. для генерации необходимых make-файлов использовалось `qmake` (для нативного приложения) и `qmake -spec win32-g++` (для windows-приложения)
сверху вниз: 1. qt4 linux - нативный 2. qt4 windows собранный под линуксом, запущенный через wine 3. как выглядит предыдущий бинарь под мастдаем
ps возникло лишь два вопроса, которые пока не решил. при генерации makefile'а под мастдай, описанным выше путем по умолчанию идут след. опции -o debug/<бла-бла-бла> (т.е. пишет исполняемый файл не в корень как обычно, а в папку debug) и пытается подцепить библиотеки -lQtCore_debug и -lQtGui_debug вместо -lQtCore и -lQtGui (хотя насчет последнего, я кажется знаю в чем дело, но еще не проверял)
pps если интересна более-менее подробная инструкция как все делал спрашивайте - запостю
"Как сообщает eWeek, на компьютер SubVirt проникает через известные дыры в современных операционных системах и затем создает так называемый монитор виртуальных машин (Virtual Machine Monitor, VMM) под инсталляцией Windows или Linux."
все подробности можно почитать здесь: http://citcity.ru/11962/
интересно эт вообще реально? и под какие "линуксы" они расчитывают, на общепопулярные дистрибутивы? возникнут ли грабли, если я захочу собрать SubVirt под лфс? =) а так без смеха, дырки они будут публиковать, через которые собираются сей руткит ставить?
В дистрибутиве Ubuntu Breezy Badger 5.10 найден критический баг, позволяющий узнать логины и пароли, созданные во время инсталяции. Пароли хранятся открытым текстом в директории /var/log. Рекомендуется почистить логи.
>>> Подробности
как привязать какие-нить действия для дополнительных клавиш мыши в kde (типа копи/паст).
xev клавиши определяет (соответственно как button 6 и button 7). где-то читал что можно через "центр управления"->"рег. и спец. возможности"->"комбинации клавиш", но там не получается навязать любую клавишу мыши (клавиатурные без проблем).
клавиши точно работают - единственное что сейчас выполняют - "вперед/назад в конкверере в строке адреса"
да и еще khotkeys валится с сообщением "ERROR: Communication problem with khotkeys, it probably crashed."
ps сори может неправильный тред, но имхо про мышку в линукс-хардвар стыдно =)
>http://www.linuxedge.org/?q=node/55
Уже видели? Интересно когда выйдет сие "чудо"? А в принципе хотел спросить, всякие там "eye-candy" - накой они нужны, ониж минимум функциональны, польза только одна - "эргономика" , и все. И как много народу пользуется composite, и у кого сие работает ни разу ни упав (особенно с дровами nvidia и "render accel"), у кого какие другие гипер примочки стоят (например "looking glass") и используются в повседневности?
Новелл конечно гуд, но накой тратить "multi-million" бабло на оттачивание гуя?
Я полностью согласен с автором сего поста:
"I wished they'd figure out stuff like a promoting a decent audio standard first so I don't have to kill artsd every time I want to play quake :-/" и можно привести много-много еще таких примеров... что ж буду ждать выхода этого гуя, попробую на вкус... =)
наподобие: http://www.dyndns.com/services/mailhop/relay.html только бесплатно
существует ли в природе, и если да - то как заполучить.
настроил себе dynDNS - радуюс, захотел чтоб моя машинка http светила в инет, только вот загвоздка: никак не могу настроить нормально NAT - что только с этим модемом не творил, просьба тем, кто имел подобный опыт общения с этим девайсом - расскажите как это у вас получилос
просматривая объявления о вакансиях - увидел следующие: http://zarplata.ru/workman/one/40960.aspx особо стоит заметить: название компании, название должности, и сочетание слов "стабильной" и "СРОЧНО"
никаких претензий, кроме одной - при старте открывает рандомно порт, хотя и в конфиге прописано local_only = true, и стартует с ключом -L самое интересное то, что если процесс загружается до старта иксов - nmap его не убивает, если же после - при сканировании, nmap обнаруживает порт, после чего fam умирает. еслиб этот процесс висел на одном порту - яб даж внимания не обратил, но такая политика - меня раздражает... есть ли какие-нить предложения как это вылечить?
p.s. только что зашла мама и начала опрыскивать комнату святой водой (типа крещение), может этому "монитору" куданить впрыснуть?
хоть новость и не касаема линукса, но просьба не удалять, ибо страшно =) линк новости на слэшдоте http://rss.slashdot.org/Slashdot/slashdot?m=3150 коротко: Canada's Globe & Mail сообщили о том, что ученые испытывают таблетки для ликвидации воздействий гормона стресса, таким образом, что жертва сильного стресса и не вспомнит об какомнить ужасном инциндете (перевел кратко, быстро и не точно, потому для обсуждения просьба читать линьк)
это чтож получается вначале таблетки для нуждающихся, потом просто таблетки чтоб забыть скажем "приступления каконить тирана", накормил свидетеля пилюлями и на свободу!!!
Решил на досуге прикрутить к системе hald, как я понимаю этот демон напрямую зависит от dbus (к нему притензий нет, никаких ошибок не выдает, висит в памяти и висит, запускаю через dbus-daemon --session), а вот с hald следующая проблема: при вводе команды hald --verbose=yes начинает выводить: 13:58:02.869 [I] hald.c:511: hal 0.5.5.1 13:58:02.870 [I] hald.c:519: Will daemonize 13:58:02.870 [I] hald.c:520: Becoming a daemon затем начинает опрашивать мой сидюк (/dev/hda) после чего выгружается из памяти, strace показал следующее:
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2aaaab6ed760) = 11745
rt_sigaction(SIGCHLD, {0x40d9d0, [CHLD], SA_RESTORER|SA_RESTART, 0x2aaaab4ecf40}, {SIG_DFL}, 8) = 0
select(4, [3], NULL, [3], {250, 0}) = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) --- rt_sigreturn(0x11) = -1 EINTR (Interrupted system call) exit_group(1) я так пониаю из этого вывода что, дочерний процесс рухнул, а вслед за ним и hald...
система lfs, hald --veriosn (0.5.5.1), dbus --version (0.60)
| ← назад | следующие → |