най-трудния проблем

16 отговора 950 прегледа
#1

най-трудния проблем

Можете ли да опишете най-трудния проблем, който сте преодолeли и как, в практиката си като програмист?

Преди да направиш нещо, преброй до 20. усмихвай се по-често от другите
Отговор
в отговор на gali #2

Re: най-трудния проблем

ами зависи какво се разбира под най-труден.
ако говорим за проблем който е изтръгнал най-много псувни от гърлото ми, то това е определено борбата с DirectShow. ако говорим за концептуално трудни неща, то не мога да дам точен отговор, а и може да прозвучи като самохвалство ако все пак опитам.

Отговор
в отговор на gali #3

Хммм...

В армията ;)

Не труден, но проблема трябваше да се реши бързо.

В 4 следобед, под-полковника Пенев ми заяви че му трябва календар. Машината е 486/DOS със Borland Pascal 7.00. Интернет няма, годината е 1997. Грудово.

Календара трябваше да бъде разпечатан и готов до 4:25-4:30. Нямах подръка функция която ми връща какъв е ДЕНЯ при дадена ДАТА. Затова постъпих така:

Итерирах през всеки ден от месеца който трябваше да се печати, и установявах текущатата дата на компютара на този ден (календара не беше за текущия месец, а за произволен напред). След това питах OS-а, какъв е ДЕНЯ - и то връщаше - ПОНЕДЕЛНИК, ВТОРНИК, etc.

Не най-трудната задача... Но в 4:20 програмата беше готова да печата календара (при това форматиран със ония странните символи за таблици).

....

ДЕН ПО КЪСНО С УЖАС РАЗБРАХ ЧЕ ТРЯБВА ДА ИЗПЕЧАТАМ КАЛЕНДАРИ ЗА ДВЕ ГОДИНИ НАПРЕД, В НЯКОЛКО ПЪТИ ПО-ГОЛЯМ ФОРМАТ. БЖЖЖЖЖЖЖ

Отговор
в отговор на gali #4

Re: най-трудния проблем

VB6. Програма, която се обръща към 30 устройства (ферментатори) по сериен порт.
Неясно защо времето за извършване на операцията постепенно нараства и накрая хич не бачка.
(Ползвах MSComm контрола.)
Наложи се да разуча класовете във VB, и направих отделно ActiveX EXE (поради липса на multi-threading, направо multi-process ). Работата заспа! Вече бачкаше.
Между другото поради липсата на таймаут поддържка се налагаше тя да се прави ръчно...
Сега като ползвам WinAPI за серийния порт + C++ Builder, подобни операции се изпълняват за 10 пъти по-кратко време.


Отговор
в отговор на malkia #5

виж ти...

явно борбата с дните на седмицата е често срещано явление в казармения софтуер. аз също писах функция за ден от седмицата при известна дата. разбира се проверих си в кой ден съсм се родил :)
при мен машината беше правец16, годината беше 1999, а програмата беше за тиловашките глупости със седмичните разкладки.

Отговор
в отговор на gali #6

Най-неприятният

Трудно ми е да кажа кой е най-трудният проблем, но си спомням много добре най-неприятния. Стовариха ми една камара С++ класове писани дълго време от внезапно напуснал. Нито документация, нито коментари като хората, само общи идеи кое за какво служи. И трябваше много бързо да разбера как работят, да чистя бъгове в тях и да ги развивам. Голямо ровене падна. Прибавям и факта, че шефът (като повечето шефове), получаваше сърцебиене само при споменаването на понятието "пренаписване".


Редактирано от pyrx на

Отговор
в отговор на pyrx #7

пренаписването

интересно защо шефовете така се плашат от пренаписването. аз лично го харесвам. за щастие моят шеф явно по-добре се отнася към него спрямо твоя, защото не се съпротивлява много когато му предложих да пренапиша едно нещо. а отделно много пъти съм пренаписвал компоненти без никой да знае - по мое мнение това в доста от случаите е по-правилния подход от отстраняването на трудноуловими бъгове. а сега в работата си се занимавам с пренаписване на един редактор който аз съм правил преди време, дори не съм сменил платформата, просто сега пиша по-добре и сметнах че ще спечеля време ако пренапиша редактора, отколкото ако се мъча да му дописвам нови функции.

Отговор
в отговор на zaphod #8

Re: пренаписването

плашат се защото вече са платили за написване и не искат да плащат отново за същото, а пък и не се зане дали ще е за последно.

-----------------------
гърбавия, ковчег ще го изправи
Отговор
в отговор на Дpeмeщ #9

Re: пренаписването

ами то ако нещото е работещо и обявено за завършено, няма смисъл да се пренаписва. обаче разширенията също изискват време и пари. ако прецениш че едно пренаписване ще ти спести време и пари от бъдещите разширения/ дебъгвания, то тогава си струва. въобще, дори да оставим настрана програмирането, доста ситуации има, когато за да стане работата, трябва направеното с кофти проект да се разруши и да се започне с нов проект начисто.

Отговор
в отговор на naki #10

биореактор

Леле! Че кой е поверил на ВинДос тези ферментатори! Ами ако вземе да забие?!
Или то не е било за управление, а само за наблюдение?
Само от любопитство -- какво имаше във ферментаторите?

Отговор
в отговор на FP #11

Re: биореактор

Ами беше под Windows98, и не забиваше!
Да, само за наблюдение, досега от 6-7 програми, които съм правил от тоя сорт, само 1 управляваше - пече абразивни дискове. И то под ДОС и някакво PC 386 или даже по-зле... Ама е железна!
Еми какво да има във ферменаторите - грозде имаше...


Отговор
в отговор на zaphod #12

Re: най-неприятната...

Преди около 6 - 7 години трябваше да пиша софт за един авариен регистратор : 486 машина с 40-50 аналогови входове и около 200 дискретни - чете си ги машината и ако (по едни загубени критерии) прецени, че нещо не е наред, записва 1 сек. назад и 2-3 сек напред ( в RAM-a си ), пише и на дискета, и на IOMEGA, че и по мрежата го праща. И през цялототова време продължава да се чете входовете и критично да гледа и да цъка с език. Лошото е, че се чете ( мери ) през всеки 0.5 ms., е 'между другото" постоянно трябва и да се смятат 50-тина ефективни стойности, градиенти, мощности и фази. Показването на резултати на екрана ( текст ) - между другото. Естествено това може да работи устойчиво единствено и само под DOS. Kато връх на всичко стробът за четене се подава софтуерно и ако пропуснеш няколко микросекунди се появява джитер, който ти скапва резултатите. На 0.5 ms ти идва прекъсване и ти ТРЯБВА ВЕДНАГА да му обърнеш внимание.
Та там проблемите ми бяха два:
1. Как да пипам по адресите над 1 МБ. ( конвенционалните 640к хич на стигат ). Всеки трансфер се прави в Protected и тогава не чуваш прекъсванията ( освен ако не си китаец и не направиш своя v86 среда ). За този проблем намерих описание на един шашав недокументиран режим на работа на CPU, наречен "UnrealMode" ( [линк] ).
2. Drivers за мрежата ( NetBios ) явно бяха писани от човек, който счита, че няма по-важна работа от обслужването на NIC-a и като му дойде музата ( IRQ-to ) го нямаше по над 200 микросекунди. Тук вече вдигнах бялото знаме и се наложи да пренаписвам част от драйвера, че да ми пасне.
Това беше най-неприятната и черна работа, която съм вършил. А можеше просто като се мисли HW на чукачката да се предвити един таймер да ритва входните схеми през равен интервал.
Това е. Приемете го и като отговор по темата за пренаписването.

Отговор
в отговор на naki #13

Re: биореактор

>Еми какво да има във ферменаторите - грозде имаше...

Само така! Аз се уплаших да не е кисело мляко... :)

Отговор
в отговор на zaphod #14

Re: виж ти...

аз пък 88-89 :) - писах една програмка да разпечатва план за седмичните
и месечните мероприатия на ЗКПЧ-то - зам. ком. по политическата част :)
даже ми платиха 500 лв за проекта... е след данъците и след като
офицерите си взеха по някой лев и на мен ми дадоха - 87 лв - първите
ми пари от програмиране :)

не че беше трудно... ама нали сега идвам от кръчмата и ме изби на спомени
странно но и моата машина тогава беше Правец 16 (12MHz :) :) :) )

най-трудно беше възстановяването на сорса след като "шефа" ми
криптира с някаква тъпа програма за защита началото на HDD и си забрави паролата -- търсих си сорса сектор по сектор, добре че HDD бяха малки :))

Отговор
в отговор на code_grinder #15

уау! и пари си взел!

че ти си бил на голяма далавера бре!
а между другото и аз писах подобна програма като тебе! моята трябваше да разпечатва на принтер седмичната програма за занятията на войниците - по рано се пишеше на ръка. обаче аз я писах съвсем безплатно . в казармата писах 3 програми, от които тая за разкладките със сигурност влезе в употреба, за седмичните програми не знам, а една още писах за един склад тя не влезе, защото така и не им намериха компютър за склада.

Отговор
в отговор на zaphod #16

Така е,

не всички шефове се отнасят отрицателно към пренаписването "от нула". Повечето, обаче се страхуват, че ще отнеме много повече време, отколкото да се позакърпи как да е съществуващият код. Пък като го предадем в срок на клиента и си приберем парите, после "ще му мислим".

Отговор
в отговор на zaphod #17

Re: пренаписването

Да бе. А както много добре го казаха в "Разплата" като го гледах наскоро:

Ако не разбираш нещо - отърви се от него

Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Отговор