[humor] Чудо-программист
Программа постоянно висла, и Вася написал для нее вотчдог, который раз в минуту пингал программу, и, в случае чего, перегружал машину.Знакомый подход нах
Программист Вася писал программы на Дельфина c++ писать такие программы еще проще
Вася - хороший программист. Вася не ищет лёгких путей.
Программа успокаивалась только тогда, когда доходила до своп-файла Windows.Я такую тоже однажды наваял... правда под веб...
прикольно было, когда она удалила сама себя и попыталась лезть дальше... хорошо еще, что блокировку верхних папок поставил )
После "деинсталла" клавишей F8 мало что осталось
а как она туда попала?
Процесс сей остановился только когда Windows Commander дошёл до wincmd32.exe и сказал, что ниасилил это удалить И это всё время я хлопал ушами
это весёлый глюк FAT32 Главное, что если заходишь в неё, попадаешь в корень.
я, бывало, видел в папках две родительские папки ".." особенно на старых компактах
на старых компах со старым мс-досом с помощью нортоновской тулзы DiskEdit можно было и не такое сделать
О! Дискедит! Я помню, как лёгким движением руки всю инфу накрыл медным тазом...
С помощью diskedit я вышеописанные проблемы с FAT чинил, а не делал.
Не знаю, что меня дернуло передать недоотлаженной программе в качестве параметра файл с ее же исходным текстом...
Но программу пришлось писать заново
Похоже я нашел этого Васю
когда я туда пытаюсь добавить 4-ый элемент то прога валиться.чудо, что у него вообще запускается
мдаааааа
QWidget *t = new QWidget;валялся
t->resize(playlisttabs->space_width playlisttabs->space_height;
QWidget *t1 = new QWidget;
t1->resize(playlisttabs->space_width playlisttabs->space_height;
playlisttabs->addTab(t);
playlisttabs->addTab(t);
playlisttabs->addTab(t1);
// playlisttabs->addTab(t1); //Если его добавить то прога падает
Вот из-за таких жестоких примеров и возникают предрассудки по поводу указателей
написал для нее вотчдог, который раз в минуту пингал программуу меня как-то лики в проге были, так я в кроне такое примерно написал:
* */2 * * * root kill `cat /var/pid/program.pid` && /usr/bin/program
* */2 * * * root kill `cat /var/pid/program.pid` && /usr/bin/programвозьмут сразу, если расскажешь на собеседовании, что практикуешь вышеописанный приём.
тестировщиком, надо полагать, возьмут, т.к. васей, судя по твоим описаниям, там в избытке
Вот обсуждение вотчдога в аське:
Date : 22.03.2005 Time : 18:23
From : AAA
Подход с вотчдогом например
Date : 22.03.2005 Time : 18:23
To : BBB
Ну ГРАМОТНО! правда я лично вотчдоги встраиваю НЕПОСРЕДСТВЕННО В ПРОГРАММУ
Date : 22.03.2005 Time : 18:26
From : AAA
Я тоже Но наверное подход с внешней прогой имеет свои плюсы
Date : 22.03.2005 Time : 18:27
To : BBB
Я ВНЕШНЕЕ делал, только когда с ОДНОГО КОМПА следил за ЗАВИСАНИЕМ ДРУГОГО и его ПЕРЕГРУЖАЛ
Date : 22.03.2005 Time : 18:29
From : AAA
А у меня программа, которая должна была файлы обрабатывать, если вылетала по ошибке считала файл -
битым, удаляла его и перезапускалась
Date : 22.03.2005 Time : 18:30
To : BBB
:-D
Date : 22.03.2005 Time : 18:30
From : AAA
И ни обной жалобы, хотя я ее популярной считаю
[/qoute]
По всему видно, практикуется подход со стороны жопы
EditPackages=CoreПрогер должен знать, что будет делать этот оператор в каждом конкретном случае, а не быть "обдолбаным Васей". Здесь этот оператор добавляет массиву пакаджев новые элементы.
EditPackages=Engine
EditPackages=Editor
EditPackages=UWindow
EditPackages=Fire
EditPackages=IpDrv
EditPackages=UWeb
EditPackages=UBrowser
EditPackages=UnrealShare
EditPackages=UnrealI
EditPackages=UMenu
EditPackages=IpServer
EditPackages=Botpack
EditPackages=UTServerAdmin
EditPackages=UTMenu
EditPackages=UTBrowser
'+=' смотрелся бы более естественно.
Ну это не моё. Я бы оформил более тривиально для понимания, чтоб ни у кого вопросов не возникало. Например: EditPackages.Add(UTServerAdmin);
Оставить комментарий
ipush
<не мое>У нас в банкирской конторе "Сикоморский и Цесаревич" был программист Вася. Это был чудо-программист.
Программист Вася писал программы на Дельфи. При компиляции он никогда не обращал внимания на хинты и ворнинги. Вася выделял память только тогда, когда возникал аксесс виолэйшын. Если указатель при инициализации случайно указывал на уже выделенную область памяти, то память Вася не выделял.
Один раз Вася написал программу для ГЦИ ЦБ РФ. Программа постоянно висла, и Вася написал для нее вотчдог, который раз в минуту пингал программу, и, в случае чего, перегружал машину. Но программа грузилась гораздо дольше минуты, поэтому вотчдог, грузящийся первым, не получал ответа, и перегружал машину сразу. В таком режиме программа проработала около 4-х месяцев, прежде чем кто-то что-то заметил.
Еще программист Вася написал программу отслеживания объектов на видеокартинке. Для этой цели он запускал стандартную программу, идущую в комплекте с камерой, которая оверлеем выдавала картинку на экран, а потом эту самую картинку прямо из видеопамяти и считывал. Один раз программа показала огромного размера объект, находящийся в неположенном месте, и имеющий явно враждебные намерения по отношению к ГУ ЦБ РФ по Орловской области. Когда пришли разбираться, оказалось, что этим объектом был мессадж бокс с аксесс виолэйшыном. Васина программа считала его из видеопамяти вместе с картинкой.
Еще Вася написал программу для чистки временной директории. Он readdir`ом рекурсивно считывал все директории, начиная с корня временной, и удалял из них все файлы. Надо ли говорить, что первой считанной им директорией была директория с названием ".."? Программа успокаивалась только тогда, когда доходила до своп-файла Windows.
Вот такой у нас был программист Вася.