LINUX.ORG.RU
ФорумTalks

Закрытые исходники --- зло!


0

0

Часть 1

Устроился я на работу в Курчатовский институт. Работа моя заключается в проведении испытаний при различных температурах: от комнатной до азотной. Года 3 назад была создана система управления температурой, частью которой является программа, считывающая показания датчиков, управляющая нагревателем и взаимодействующая с пользователем. Разрабатывал эту систему чувак из другого отдела. Исходники программы нам не дали. Типа это евойное в ..... ноухау, и он ... не хочет, чтобы другие люди его копировали. (изобретатель ....)

А пол года назад сломалось ........ термосопротивление (это такая ........ для измерения температуры). Было принято решение о переходе с термосопротивления на теромопару (это такая другая ........ для измерения температуры). Естественно для этого нужно переделать управляющую программу. А исходников нет. ...! И чувака, который это всё сделал, тоже нет. Не то что бы он совсем уволился. Пару раз в неделю он на работе появляется. Телефона на его рабочем месте нет. (Третье тысячелетье ...) Исходники он, зажравшаяся ......., не даёт. Тоесть прямо он их давать не отказывается, более того он даже обещает ими поделиться. Пол года уже обещает, .....

Пока что управление ведётся вручную. ........! Смотришь на ......... цифровой термометр и решаешь, добавить азоту или не надо. .....-колотить, я не для того потратил 15 лет своей ....... жизни на учёбу, чтобы решать ....... задачу, с которой вполне справится ...... программируемый калькулятор. И что мне теперь делать? Ответьте, что мне в ..... теперь делать? Тупо работать руками, как ........ мартышка? Или заново всё в ..... на ... переписать к ...... собачьим? Я могу. Только вот в жизни есть гораздо более интересные задачи, чем писать и налаживать проги под тупые железяки. #:-(

Вот так живёшь-поживаешь, думаешь, что дядька RMS с жиру бесится, ...... страдает. Кому на ... нужны исходники? Ан нет. Нужны исходники. Ещё как нужны. Без них ...... И все мы сынки по сравнению с RMS'ом.

★★★★★

Часть 2

Сегодня, мы с моим начальником столкнулись с этим типом в столовой. Под угрозой физической расправы он во всём сознался. Исходники у нас уже были. Чтобы получить к ним доступ нужно открыть проект в вижуал бэйсике и сохранить нужный frm-файл как текст.

vb должен быть третьей версии, т.к. в новых версиях чего-то поменялось и программа не только не работает, но даже исходники форматирует прекривейшим образом. ..........! Мало того, что язык --- ....., так ещё и ..... --- антикварное.

Ладно, даже на таком ..... как vb можно написать хорошую программу, разбитую на модули, с разным уровнем абстракции (описание типов данных --> функции работы с типами данных --> высокоуровневые функции), с минимальным количеством кода, производящего побочный эффект, с достаточными коментариями в конце-то концов. Что у нас с этим? .....!

Давненько я не видел такого ......... кода. В лучших традициях vb быдлокодеров структура программы завязана на гуй. В процедуре, вызываемой по нажатию кнопки On, реализова код инициации девайсов, считывания параметров из файла и работа с гуем. В процедуре, вызываемой по нажатию кнопки Run, реализован код управления температурой: такая длинная-предлинная простыня из операторов. О её качестве можно судить по работе с термосопротивлением: в середине основного цикла считывается показания АЦП (в милливольтах) в одну переменную, через 20 строк кода, не относящегося к измерению температуры, следует оператор, переводящий милливольты в градусы, (температура в градусах сохраняется в другой переменной), потом идёт несколько операторов, отвечающих за калибровку температуры. ......!

... с ним. Может там зато реализован хитрый алгоритм по управлению температурой, сокращающий время эксперимента и экономящий азот? .....! Алгоритм чуть сложнее чем "если нужно охладить, то увеличить давление азота, иначе уменьшить. (изменение давления идёт с фиксированным шагом). ... приехали.

И мне теперь с этим ...... работать. :'(

ugoday ★★★★★
() автор топика
Ответ на: комментарий от ugoday

P.S. Перед лицом своих товарищей торжественно клянусь тщательно документировать код, комментировать каждую функцию, каждую переменную, описывать её смысл и ожидаемый диапазон значений.

P.P.S Курчатовский институт переходит на gnu/linux. Правда там об этом ещё ничего не знают.

P.P.P.S Кто нибудь знает как там в 95 винде, в третьем вижуалбэйсике с работой с rs232?

P.P.P.P.S Зачем? Зачем?! ..... я начал работать с ЛаТеХом?! Читал сегодня всякие инструкции на тему безопасность при работе с радиоактивными объектами, действия при аварии etc. Я не знаю в каком текстовом процессоре их верстали, но как же ...... он умеет разбивать абзац на строки. Были строки, их было не много, но они были, в которых почти треть строки приходилось на интервал между словами. Так эта ...... ....... обеспечивала выравнивание по ширине. Остальные строки хотя и были не столь вопиюще ........., но всё равно производили неизгладимое впечатление на мою нежную психику

ugoday ★★★★★
() автор топика

Может тот "зажравшийся" чувак просто стыдился своего творения, поэтому и не хотел показывать, и постоянно прятался в столовой..

Bazarov
()
Ответ на: комментарий от Shaman007

>... курчатник?

Ну не такой уж он и ... в том что касается непосредственно радиационного материаловедения.

ugoday ★★★★★
() автор топика
Ответ на: комментарий от Bazarov

Я вот тоже думаю, что это распространённая причина, побуждающая людей закрывать исходники.

ugoday ★★★★★
() автор топика
Ответ на: комментарий от Shaman007

Если в Курчатнике все так сделают, то несколько из их до сих пор действующих реакторов рванут нах. А потом протекут без контроля и оставшиеся несколько законсервированных. Маськве абзац. Тебе оно надо?

anonymous
()
Ответ на: комментарий от Shaman007

>Тебе хотя бы 2500$ за это материаловеденье платят?

Нет. Но я всю жизнь мечтал быть учёным. А переквалифицироваться в программиста я всегда успею.

ugoday ★★★★★
() автор топика
Ответ на: комментарий от Shaman007

Может, и платят 2500 уев за квАртал.

Абыдно, что "реформаторы" уже плотно взялись и за минсредмаш.

anonymous
()
Ответ на: комментарий от Shaman007

afaik, есть полтора действующих реактора. Но КИ осуществляет контроль состояния корпусов реакторов. Если этого не делать, то придётся закрыть все действующие АЭС либо готовиться к новым чернобылям.

ugoday ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> протекут без контроля и оставшиеся несколько законсервированных.

Ага. Заглушенных реакторов, могильников и т п. на просторах нашей Родины немало. Таки ugoday нужен. :)

anonymous
()
Ответ на: комментарий от Shaman007

>Тебе хотя бы 2500$ за это материаловеденье платят?
Шаман, не трогай угодая, он науку двигает, а не "получает" 2к бакса
Очень прискорбно, что русский учёный получает меньше сишарпногобыдлокодера (в столице разумеется) и т.д.

Это наша беда, я знаю много людей получающих гораздо больше профессора-математика, чьи идеи амеры покупают на гранты, и которым он продаётся, потому что...наше государство ему не платит...

Грустно...думаешь лучше быдлоадминить оракл или ещё чего (супротив занятия наукой?) и говорить фи, а мне тама 2500 плотють?

dlomin
()
Ответ на: комментарий от dlomin

> Грустно...думаешь лучше быдлоадминить оракл или ещё чего (супротив занятия наукой?) и говорить фи, а мне тама 2500 плотють?

Сначала не грустно. Грустно и мучительно стыдно потом за бесцельно прожитые годы (с)

anonymous
()
Ответ на: комментарий от ugoday

>P.P.S Курчатовский институт переходит на gnu/linux. Правда там об этом ещё ничего не знают.

>P.P.P.S Кто нибудь знает как там в 95 винде, в третьем вижуалбэйсике с работой с rs232?

Етить, UNIX в СССР есть пошел из Курчатника, а что теперь?

anonymous
()
Ответ на: комментарий от ugoday

>В моей лаборатории юниксов (пока) нет.

Полагаю, что вы решили рискнуть и переписать то vb3-творение для последующего его запуска под *nix :)

Bazarov
()
Ответ на: комментарий от Bazarov

С одной стороны, меня ломает переписывать эту мутотень. Сильно ломает. У меня планов громадьё, я лучше ими займусь. С другой стороны, во мне крепнет желание назло ущербному миру переписать эту поделку. Причём сделать это с максимально возможным для меня качеством. Скорее всего ситуация будет развиваться так:

а) сейчас я быстренько доделаю старую бэйсиковскую прогу, чтоб работала. В свободное от ручного управления температурой время я буду решать задачу об оптимальном (по времени) режиме охлаждения. Эта задача интересует меня гораздо сильнее, чем программирование железяк.

б) в свободное время буду писать "идеальную" программу, которая естественно будет работать под *nix.

ugoday ★★★★★
() автор топика
Ответ на: комментарий от ugoday

> б) в свободное время буду писать "идеальную" программу, которая естественно будет работать под *nix.

таки белые люди пишут кросс-платформенные приложения, которым до балды где работать - win32, *NIX или еще что-то. но таких разработчиков меньшенство (тут голову нужно включать хоть немного).

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Ашипка вышло. Собирался написать "будет работать _и_ под *nix"

ugoday ★★★★★
() автор топика

скорее всего пейсателю из соседнего отдела просто стыдно было открывать "исходники" ... тем более на VB :) вот одной корпорации то же стыдно ...

robot12 ★★★★★
()

>Я могу. Только вот в жизни есть гораздо более интересные задачи, чем писать и налаживать проги под тупые железяки. #:-(

Так ты на программиста шел учиться или на начальника? Это начальники занимаются более интересными задачами, а программисты должны не разгибаясь писать и отлаживать проги. На то о ни и учились. Их еще называют "специально обученный человек"

anonymous
()

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

И чему вас только учат в ваших быдлоинститутах? Я знал ребят, которые уже на третьем курсе писали программы управляющие реальными экспериментами на ускорителях. А там было по нескольку стоек CAMAC, забитых аппаратурой.

Sun-ch
()
Ответ на: комментарий от ugoday

> в середине основного цикла считывается показания АЦП (в милливольтах) в одну переменную, через 20 строк кода, не относящегося к измерению температуры, следует оператор, переводящий милливольты в градусы, (температура в градусах сохраняется в другой переменной), потом идёт несколько операторов, отвечающих за калибровку температуры. ......!

Если через RS-232 на компьютер данные отсылаются в мВ, а не в "цифровом коде" ( отсчетах АЦП ), то имеет ли смысл переделывать управляющую программу на компьютере (та, которая на vb3) ? Я так понимаю, что пересчет "цифровой код" -> "мВ" осуществляется какой-то внешней "тупой железякой" (какой-нибудь 8-bit МК), поэтому, на мой взгляд, переделывать программу надо именно для нее [железяки]. А еще лучше, на мой взгляд, снять все функции пересчета в мВ с внешней железяки, и посылать через RS-232 непосредственно цифровой код. Тогда управляющая программа на компьютере сможет подстраиваться под разные классы температурных датчиков ( с разными по модулю и/или знаку температурными коэффициентами сопротивления ), и будет меньше проблем в будущем.

P.S: сильно не пинать, если что-либо не так понял

Bazarov
()
Ответ на: комментарий от anonymous

>Так ты на программиста шел учиться или на начальника?

На инженера-физика. И заниматься я хочу физикой. Ещё вопросы?

ugoday ★★★★★
() автор топика
Ответ на: комментарий от Bazarov

>Если через RS-232

Термосопротивление было подключено через специальную ISA плату АЦП. Через rs-232 будет работать новый цифровой термометр. Естественно я реализую барьер абстракции, чтобы обеспечить независимость от датчика.

P.S. Похоже vb3 не знает про тип данных Byte. ...... Приехали.

ugoday ★★★★★
() автор топика
Ответ на: комментарий от ugoday

>>Так ты на программиста шел учиться или на начальника?

>На инженера-физика. И заниматься я хочу физикой. Ещё вопросы?

Странный ты. Обычно после получения диплома физика бегут получать второе экономическое.

Xellos ★★★★★
()
Ответ на: комментарий от klalafuda

>таки белые люди пишут кросс-платформенные приложения, которым до балды где работать - win32, *NIX или еще что-то. но таких разработчиков меньшенство (тут голову нужно включать хоть немного).

Я немного не в теме, но разве можно написать кросплатформенное приложение для работы с железом. Ведь АФАИК с железом разные ОС по разному работают.

Alex_A_V ★★
()
Ответ на: комментарий от anonymous

>Почитай http://rsdn.ru/forum/Message.aspx?mid=1819145&only=1

>Может у афтора идею позаимствуешь, или еще как сконтактишься с ним

Ну ты подзагнул. В данном случае задача гораздо проще. Хотя логи в БД писать наверное было бы нелишним.

Alex_A_V ★★
()
Ответ на: комментарий от Sun-ch

>А люди давно придумали такую штуку как драйвер.

ugoday писал:

"Термосопротивление было подключено через специальную ISA плату АЦП. Через rs-232 будет работать новый цифровой термометр. Естественно я реализую барьер абстракции, чтобы обеспечить независимость от датчика."

rs-232 это последовательный порт, так я понимаю, тогда получается что драйвер под него есть в любой ОС

Ну тогда действительно можно что-нибудь кросплатформенной забахать.

Alex_A_V ★★
()
Ответ на: комментарий от Alex_A_V

>Я немного не в теме, но разве можно написать кросплатформенное приложение для работы с железом. Ведь АФАИК с железом разные ОС по разному работают.

Через inp и outp/inb и outb практически одинаково. В нужных местах ставится условная компиляция, отдельно пишется инициализация через ioperm и вот уже прога работает не только под DOS/win9x, но и под unix/linux. Конечно не модуль ядра, но работать уже можно.

dn2010 ★★★★★
()
Ответ на: комментарий от Xellos

Type DCB
        DCBlength As Long
        BaudRate As Long
        fBinary As Long
        fParity As Long
        fOutxCtsFlow As Long
        fOutxDsrFlow As Long
        fDtrControl As Long
        fDsrSensitivity As Long
        fTXContinueOnXoff As Long
        fOutX As Long
        fInX As Long
        fErrorChar As Long
        fNull As Long
        fRtsControl As Long
        fAbortOnError As Long
        fDummy2 As Long
        wReserved As Integer
        XonLim As Integer
        XoffLim As Integer
        ByteSize As Byte
        Parity As Byte
        StopBits As Byte
        XonChar As Byte
        XoffChar As Byte
        ErrorChar As Byte
        EofChar As Byte
        EvtChar As Byte
End Type

Вот тут можно заменить Byte на Variant?

ugoday ★★★★★
() автор топика
Ответ на: комментарий от Xellos

>Странный ты.

Есть немного.

>второе экономическое.

Не лежит у меня душа к этому занятию. Да и без меня сейчас экономистов хоть ..... жуй.

ugoday ★★★★★
() автор топика
Ответ на: комментарий от Alex_A_V

>Хотя логи в БД писать наверное было бы нелишним.

Пока что пишется в файл. Зачем тут БД?

ugoday ★★★★★
() автор топика
Ответ на: комментарий от Alex_A_V

>так я понимаю, тогда получается что драйвер под него есть в любой ОС

Кроме портирования под разные оси, нужно ещё портировать под разные термодатчики. Т.е. максимально изолировать "датчикозависимый" код.

А пока что не только это не сделано, но даже проверки работоспособности устройств/открытия файла с параметрами/открытия лог-файла не ведётся. Вот.

ugoday ★★★★★
() автор топика
Ответ на: комментарий от ugoday

>Вот тут можно заменить Byte на Variant?

Я не профессиональный программер конечно и может быть чего то не понимаю. Но мне кажется что Byte можно везде заменить на тот же Integer. Хотя если конечно там к этими полями не применяются какие-то операторы рассчитаные только для данных типа Byte...

Alex_A_V ★★
()
Ответ на: комментарий от ugoday

>Пока что пишется в файл. Зачем тут БД?

Да БД может и незачем в данном случае, тем более если в файл пишется. Просто под БД морду просто сделать и запросы на SQL например. Удобно вообщем.

Alex_A_V ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.