March 6th, 2007

mpdis

Всякая фигня

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

    Программистов - давить!
    Я не программист - в том смысле, что не занимаюсь программированием профессионально (и потому имею право не знать C++ и обходиться классическим, необъектным Си, а также активно использовать подход "а вот тут выделим памяти побольше, и нам хватит навечно"). Поэтому когда написанная мной (на Borland C++ Builder) программа для снятия спектров начала что-то уж слишком часто падать (с чем-то типа "invalid pointer use") - полез, естественно, искать ошибки у себя. Ну, или в крайнем случае - в той dll-ке, что шла с монохроматром и через которую я осуществляю с ним взаимодействие.
    Исследование показало, что программа падает не потому что что-то не так у меня, и не потому что разработчики монохроматора что-то напутали в dll-ке. Исследование показало, что программа падает при попытке нарисовать при помощи борландючего Chart Control график, содержащий точки, имеющие численное значение более нескольких тысяч. Подчеркиваю: не "более нескольких тысяч точек", а "точки, численное значение абсциссы которых больше нескольких тысяч". То есть, при отрисовке графика, состоящего из константы 1111 - всё нормально, а из константы 11111 - программа падает (проверялось именно что заменой переменных на константы в том месте где отрисовывался график, содержимое графика нигде в программе, разумеется, не используется). Причем "чистый" проект, созданный в целях отладки и содержащий такой же chart - падать даже и не думал.
    Я - не программист, и мне надо чтобы работало, пофиг как - кроме меня эту конкретную программу никто (активно) использовать не будет. Поэтому проблема была "решена" нормировкой абсциссы на максимальное значение - теперь я вывожу в график нечто от 0.0 до 1.0, и ничего не падает - но загадка тем не менее осталась. Как можно написать графикопостроительный контрол так, чтобы он устойчиво падал на больших числах (с плавающей точкой, с вашего позволения)?

    Впрочем, с программистами Jobin Yvon (это производители другого монохроматора) - тяжело тягаться даже мне. Они смогли написать программу, которой в принципе даже удобно пользоваться (за исключением некоторых интуитивно-понятных моментов, типа сохранения результатов через правый клик по белому прямоугольнику в углу таблицы с данными, и отказ сохряняться через "file / save as"), и которая даже умеет запоминать несколько "конфигураций эксперимента" в виде xml-файлов (реально умеет, я сам внутрь смотрел). Вот только при попытке загрузки сохраненной конфигурации - с высокой вероятностью падает, если не падает - считывает корректно не все параметры, а при удачном стечении обостоятельств ("неудачная" конфигурация, сохраненная по умолчанию) - устойчиво падает сразу после запуска.
    Впрочем, их я как раз понять могу - судя по всему в качестве "платформы для разработки" у них использовался встроенный язык Microcal Origin (если не путаю название), а если даже у борланда бывают столь интересные глюки, то уж у математического пакета, который зачем-то припахали для задач управления... в-общем, Женька - не ходи в программисты, их все ругают, в том числе тестеры :-)))


    ...А с микрософта, оказывается, можно скачать халявные версии вижуалбэсика, вижуалсипипи, вижуалдодиеза (С#) и вижуалжэпипи (J++, что бы это не означало). На до-диез мне переучиваться, пожалуй, поздновато (хотя - может быть я зря так считаю?), а вот сипипи я сейчас качаю, и на пробу попробую попробовать. Вдруг оно есть хорошо и удобно - для всяких мелких GUIёвых программмок, крупных мне не надо?...

    А ещё - купил себе полуботинки китайского брэнда HEROTANK. Я, наверное, извращенец - но даже увидевши на коробке явно героического вида танк, я сильно не сразу вспомнил о существовании английского слова Hero, и навязчиво думал о какой-то, извините, херотени в плане этого херотанка.
    Обувка, впрочем, оказалась совсем не "херо-", а вполне удобной и прочной. Не знаю насчет танковости, но нитками прошито именно то что должно быть прошито нитками, а подошва состоит из подошвенного материала, а не из кубиков воздуха, скрепленных слоем пластика - что не может не радовать :-)

    А на сегодня всё, и всем кто ложится спать - спокойного сна :-)