19:07

Тотальная неудачница и убийца жёстких дисков.
Поправила ошибки. Теперь всё работает. Правда, последняя исправленна не совсем естественным путём, зато всё работает! Правда, в первый раз случился конфуз. Я написала код, потом чтобы не ждать пока запишется на дискету, я стартовала без сохранения. При переключении переносов (а следовательно и обмене строками) произошла ошибка "Out of string space" (редкая...). Я вышла из IDE, ну и сделала Build. Не работает! Что такое? Оказалось, что IDE даже сохраниться не предложила... Тоесть изменения не сохранились!

18:45

Тотальная неудачница и убийца жёстких дисков.
Добавила в Блокнот вставку даты и времени. Теперь бы ещё вспомнить формат HT заголовка, да ещё и написать вычисление моего дня. Пока выводится вот так:



Date: 18.04.2006

Time: 3:50 AM

День X



Ну ещё выводится общий размер загруженного файла и код символа под курсором. В отличии от Блокнота для Windows кода UNICODE не выводится. При переключении переноса по словам пока размер сбрасывается в ноль - разберёмся. Ну и повторяется "баг" виндового блокнота: при старте программы размер вообще не выводится...

18:41

Тотальная неудачница и убийца жёстких дисков.
Терзаю DOS, теперь вот мучаю VBDOS. DOS один раз повисла при загрузке... Должно быть конфликт мышиного драйвера с EMM386. Вообще, тут что-то странное. Если VBDOS грузится с виртуального диска, то наблюдаются страшные тормоза. Ещё если программа грузится с того же диска, то мушь может не обнаружиться. Грузимся с дискеты - нормально... Ну и вообще сверх - это EMM386. В VBDOS есть такая функция FRE(), которая возвращает информацию о памяти. FRE(-3) возвращает информацию о EMS или генерирует ошибку 13 (Feature not available), если такой памяти вообще нет. И что? В IDE всё в норме, что-то есть. А вот в откомпилированный EXE уже не видит эту память... Что такое?

16:49

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

16:20

Тотальная неудачница и убийца жёстких дисков.
Чуть не забыла о звонке в фирму, которая жёсткие диски восстанавливает. Тоесть курьерам позвонила, а вот в фирму - забыла. Связь постоянно прерывалась, но главное я поняла. Надо написать портянку им, а завтра - везти на упаковку... Второй раз меня спрашивают, сколько весит груз... От куда я знаю? Не каждый же день винты взвешиваю...

Тотальная неудачница и убийца жёстких дисков.
Мучаю DOS - весёлое занятие. Вот бы ещё вспомнить как правильно юзать Himem.SYS и Emm386.EXE. А то давно уже писала это, работало отлично, а как - не помню...



Поправлено... Видимо я была не в себе, когда писала это. Это же надо же было написать HighMem.SYS!!!

08:07

Тотальная неудачница и убийца жёстких дисков.
Долго мучалась с памятью. Вообще готова побить того, кто скажет, что Windows - это мастдай, а DOS - это хорошо. А кто добавит, что многие фирмы переходят на DOS - разобью в дребезги его любимую консоль. Итак. Все знают, что DOS непосредственно доступны 640Кб памяти. Есть ещё верхняя память, но туда можно грузить драйвера, а вот программы грузятся в обычную память. И только данные они могут грузить в EMS, XMS и прочие области. Ну и оверлеи. Ага. Естественно, загрузочная дискета EMS не создаёт, так что пока VB работает с обычной памятью. И что? Я добавила лишнюю форму в проект и обнаружила, что VB катострофически не хватает памяти. Даже справку не могла вывести. Естественно, утилиты MEM нету... Долго я так страдала, мучалась с тем, что из IDE даже программа нормально не работает. А потом обнаружила ключик /S, который указывает, сколько VBDOS.EXE будет занимать памяти. По умолчанию и для соотношения память/скорость это значение равно 350Кб. Ну

я и поставила сразу 100. Заработало. Только тормоза: пока переключится между оверлеями...

05:09

Тотальная неудачница и убийца жёстких дисков.
В компиляторе Quick Basic (ну и VB DOS) понравился вывод листингов. Тоесть нам вручают файл LST, который содержит код, но с пронумерованными строками, разбитый на страницы, с номерами страниц, датой компиляции и прочим. Сразу COPY /B *.LST PRN: и всё - зачитаешься ^_^



И всёже забавно работать в DOS. Когда нет оболочек всякие CD и DIR становятся такими естественными ^_^ Хотя... Может быть кому попадались драйверы для флэшек или DVD Box'ов для DOS? А то как-то с дискетами уныло...

04:58

Тотальная неудачница и убийца жёстких дисков.
Забавно, что имя файла исполнительной среды VB менялось, а имя библиотеки типов - нет. Когда-то был такой файл VBRUN100.DLL за который можно было голову оторвать - без него ничего не работает, а он не часто встречается в системах. У меня даже коллекция VBRUN'ов есть. Так вот. Во второй и третьей версии VB менялась только цифра. Потом в четвёртой версии появились две библиотеки: VB432.DLL и VB416.DLL, если не ошибаюсь. Это было первое переименование, которое было необходимо для поддержки двух версий сред: для Win16 и Win32. Честно говоря, на четвёрке я почти не работала, и по сравнению с пятой версией, четвёрка выглядит как исторический казус, не сумевший обрубить связи с Win16 и научиться нормально работать с OLE и классами вообще. Вот. А потом были пятая и чуть улучшенная шестая версии. Ну и MSVBVM50.DLL и MSVBVM60.DLL. Тоесть о VBRUN уже никто не вспоминает. Но. Последние две библиотеки содержат библиотеки типов, необходимые для работы

откомпилированных приложений. И они называются VBRUN! Microsoft помнит о корнях ^_^

16:03

Тотальная неудачница и убийца жёстких дисков.
Недавно проснулась... Спала всю ночь при свете и включенном компьютере...



Почти закончилась пачка кофе... Я его так много пью, что... Ну и ладно! Всё равно с моим сердцем дольше тридцати лет мне не жить! Жить быстро, умереть молодым, как говаривал кто-то... Кто - не помню уже...



Задала вопрос в комменте на client_dev, но пока не получила ответ. Зато автор этого дневника воткнул баннер ЖЖ в пост и долго призывал всех бежать. Знаем... Нет, на ЖЖ я не была, тоесть читала что-то, но сам сервис не знаю. Готова поверить, что там и саппорт вежливее, и клиент лучше. А вот лично я Дневники люблю не за саппорт и не за клиент. Ну не знаю почему они мне нравятся. Любовь к родине не подразумевает любви к государству. Вот я и люблю Дневники, а не их саппорт, админов и вечно падающие сервера. Хоть и бывает порой обидно, что (как заметила не только я) когда задашь конкретный вопрос, на тебя начинают так наезжать... Спросила однажды, что конкретно с сервером случилось... Что там было... Сам Нос объяснил мне про такую штучку, которая называется "Оперативная память", которая сгорела... И спросил, стало ли кому-то легче... Тоже мне, админ печального образа, утомлённый юзером. Самое что забавное, я об этом ответе узнала, когда что-то искала на Яндексе, в результатах попалось...



Самое что бесит - это то, что нет ни какой обратной связи. Гордые админы ни кому не отвечают. "Временно отключен клиент". Почему? Я поискала новости - тишина. По-тихому отключили, по-тихому включили... Зачем? Никогда ни каких подробностей. Я понимаю, что там сверхумы, но это не значит, что остальные - ламеры...



Зато. В новостях или ещё где было голосование на тему, надо ли вводить цензуру в дневниках от всяких высказываний и дискриминации по признакам... Более чем уверена, что админы пытаются защитить себя от таких высказываний. Потому как больше всего матерятся именно на саппорте и в "изнутри"...



- Спартак! Постой! Ты не заплатил!

- Спартак никогда не платит женщинам!

- Ты не Спартак! Ты - динамо!



Ужас... Несколько предложений и одни восклицательные знаки...

22:57

Тотальная неудачница и убийца жёстких дисков.
Если программист в девять утра уже на работе...



Всю ночь сидела и мучала Блокнот - мою программу на Visual Basic for DOS. И весело, и печально. Весело то, что это вроде как VB, но игрушечный. А печально то, что нет сервиса. За время программирования под Windows я так привыкла к сервису системы, что теперь приходится очень сложно. Например, в Windows есть реестр и куча функций для работы с ним. И хотя иногда начинается морока со всем этим, но всёже оно есть. А тут - голый файлик, из которого читаем некие числа (чтобы была возможность ручками подправить). И всё сама!



Пока научила Блокнот сохранять и читать настройки (правда пока не знаю, как узнать каталог программы), а также сохранять файлы, определять изменения. Остальное пока задерживается.



А! Что-то я тут вспомнила про Win32 API. Рискую опять показаться "крутым программером", но всёже... Для меня всё это очень естественно. Тоесть я знаю что любая программа работает в Windows через Win32 API (я всегда пишу Win32, потому как API - это просто некий интерфейс, а не что-то конкретное, как думают некоторые) и вызов функций для меня - вполне естественное дело. А потом читаешь в Инете статьи от всяких "очень продвинутых программеров", слушаешь знакомых... "Я тут использую кое-какие апишки," - говорил мне один знакомый дельфиец. Меня аж передёргивает. Словно он говорит: "Я тут использую песок с Марса." Ну и во всяких статьях удивлённое: "Чего только не найдёшь в этих Win32 API!" Интересно, а когда он в холодильник заглядывает, он тоже так удивляется? Начинаешь думать, что такие вот программеры считают, что Windows и, скажем, Delphi - далеко друг от друга, что Delphi совершенно иначе реализует, скажем, чтение файла...



В книге про драйверы ещё прочитала фразу о том, что многие программисты избегают реестра. Я помню гордые заявления, что "программа ничего не пишет в реестр". Молодец! Мой Блокнот для Windows был написан на достаточно (для него) быстрой машине, поэтому все обращения к реестру у него идут очень тупо: открыл ключ, прочитал/записал, закрыл. Ни какого "кэширования", ничего. На ноутбуке такое решение ОЧЕНЬ тормозит. Программа грузится и выгружается очень долго - это я отслеживала с помощью RegMon. Исходников как-то не очень, но решение есть: просто открывать общий ключ и скопом все значения читать - скорость возрастает. Проверяла на другой программе, которую я такой оптимизацией заставила работать раз в десять быстрее. Я это к чему? Когда я пожаловалась на скорость тому дельфийцу (уточнив, где происходит падение производительности), знаете что он мне ответил? А зачем я использую вообще реестр? Честно говоря, я была обескуражена такой постановкой вопроса.

Тоесть как зачем? И он мне посоветовал: вот есть INI файлы... Я ответила что-то невнятное про пользователей и хранение настроек в HKEY_CURRENT_USER, но... Короче, сошлись на том, что я за передовые технологии (при том, что реестр появился ещё в Windows 3.XX)... Но... Я до сих пор не могу понять логику этого человека. Может быть он просто не посчитал нужным вникать в суть вопроса? Почему программа тормозит? Ясно от чего - мастдаевский реестр! А ещё говорят о женской логике...



Хм... Кстати. В той книжке про ошибки на C++... Я когда это читала, у меня неволно возникала мысль, что на Visual Basic половина этих ошибок вообще не возникает. И дело вроде бы не в компиляторе/синтаксическом анализаторе... Даже не знаю почему... Хотя, общее всёже есть. Но всё равно слишком много чисто сишных ошибок.



У нас, кстати, был такой предмет "Программирование и алгоритмизация". Там преподаватель (сильно смахивающий на одного героя из Бумера, ну того, который смылся в конце первой части и долго ещё рыдал) пытался объяснить программирование абстрагируясь от языков. Впрочем, всё равно всё скатилось на C++, что понимали только два человека (я среди них ^_^). Меня немного напрягла витавшая в кругах студентов, толком не знающих ни одного языка программирования (или Паскаль со школы... Бррр!), мысль о том, что языки на самом деле отличаются операторами. Достаточно изучить операторы, а там уже можно и программу писать... Вот интересно, как скоро жизнь за такое убеждение настучит по голове? Я, конечно, могу ошибаться, но мне всё видится иначе. Есть похожие языки, но на самом деле какждый язык - это отдельная философия. Язык - это не просто набор операторов. Почему-то часто упускается из виду наличие стандартных библиотек и исполнительных сред. Более того, часто языки отличаются по области применения и по

реализации. Например Java. Похоже на C, но, собственно, и всё. Для того чтобы эффективно использовать Java, не достаточно просто узнать, как там что пишется. Необходимо изучить стандартную библиотеку, как и где применяется язык, по каким правилаам.



Неудачный пример. Я сама не знаю Java. Хорошо. Javasсriрt. Этот язык похож на C, но достаточно ли изучить его синтаксис? На C создаются программы, которые работают отдельно, используют стандартную библиотеку C, ну или какую-нибудь подобную. Программа работает с самой системой (DOS, Windows, UNIX - не важно), работает по определённым правилам. Хорошо. А что JS? У JS своя библиотека объектов и функций, такие мелочи как строки там реализованы иначе (пожалуй, строки - самое заметное отличие между языками). Но это не всё. JS работает как скриптовый язык. Он может работать под WSH или в DHTML Тоесть для его применения не достаточно знать, что переменная объявляется с помощью var. Нужно знать объектную модель WSH или DHTML, потому как без них язык как-то теряет смысл.



Или вот. Менее экстримальный пример. VB и C++. Какзалось бы, близкие языки. ООП, высокий уровень, Win32, ну и так далее. Написал программу на C++, а потом прочитал про операторы VB и перенёс на VB. Но. Когда начинаешь рассматривать всё это ближе, оказывается что и у этих двух языков разная философия. Не думаю, что философия VB в том, что нажал кнопку и мастер сделал полпрограммы (такая мысль читается между строк во многих книгах по VB). Однако многие задачи в этих двух языках решаются по-разному. Взять хотябы строки. Чтобы работать с ними в обоих языках приходится переключать мышление с VB на C++ и наоборот. Разные исполнительные среды, разные стандартные библиотеки - это очень сильно отличает языки. Visual Basic со своими Dim, For и Select Case был бы ничем без VBRUN с её Mid(), CreateObject() и прочими функциями, которых как-то нет в C++. А такой аспект как указатели? Допустим мы начинаем строить какую-то структуру данных на C++, набираем базовые

классы, наследуем, строим иерархию, потом плодим тучи указателей и всё это приводим к какой-то системе. А теперь зная операторы VB переносим всё на этот язык. Первое неприятное открытие: VB не поддерживает указатели (хотя, можно ухитриться, но толку с этого мало). Второе неприятное открытие: классы в VB работают не совсем так, как в C++. И вся структура летит под откос, приходит осознание того, что структуру надо проектировать заново. С нуля.



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



Я сама вроде как учила Паскаль, но я не доконца понимаю его философию и реализацию. Я сейчас пишу на трёх языках: VB, C++ и JS (раньше писала на VBS, но как-то не прижилось). При этом, стыдно признаться, в C++ я почти не знаю стандартную библиотеку. Да, я знаю синтаксис. Но могу ли я использовать язык в полную силу? Конечно нет.



Кстати, я сейчас всю ночь писала на VB для DOS. Как же сильно оно отличается от VB6! Это просто похожие языки. Но они не одно и тоже. Просто Quick Basic вдруг научился работать с формами...



За всеми этими рассуждениями забыла о самом главном. Когда я однажды одному программисту (одному из моих учителей) показала компилятор Quick Basic, он был очень удивлён. Сегодня мне снова пришлось столкнуться с этой штукой... В IDE не компилируется проект. Говорит, что "too many files". Я даже строчку FILES в Config.SYS меняла, смотрела, где это include файлы могут циклиться - нету! И всё равно не компилируется... С горя решила поковырять компилятор. В VB6 от нас отбили эту радость, зато в VB for DOS всё есть, с краткой справкой по ключам... BC.EXE (BASIC Compiler) принимает модули вроде FRM и BAS. BI (BASIC Include ^_^) подставляются препроцессором сами. С первого раза не получилось, оказалось, что нужно отдельно указывать поддержку обработчиков ошибок - всё подробно указывается в дампе. Ага. Получила я три OBJ файла. Теперь нужен линковщик, который так и называется: Link.EXE. Только там параметры передаются немного странно, сразу не разобрать... Кроме того, моя

программа не работала сразу. Я думала, что это из-за сжатия EXE (было такое когда-то!), но оказалось, что дело в порядке OBJ файлов...



Так я и упранялась, всё компилировалось, EXE получался килобайт тридцать. Но потом я заметила ключ генерации отдельного кода и иструкций 80386. С первым дело туманное. Программа в таком случае весит меньше, но требует какой-то общий модуль для работы. И оказалось, что у меня всё компилировалось именно в таком виде! Я откомпилировала без этой бяки и оказалось, что программа весит почти девести килобайт! Сначала думала, что это из-за инструкций 386'ого... Короче, поковырявшись, я пришла к выводу, что отдельный модуль можно потерпеть - всё равно его код клеится к самой программе...



Самое что интересное, я сделала BAT файл, в котором всё прописано. Даже конфигурация без модуля, а также отладочная сборка. Всё выглядит очень серьёзно, что ни кто и не скажет так противно: "Бейсик..."

16:11

Тотальная неудачница и убийца жёстких дисков.
Как надоела одна и таже музыка... Хочу послушать из Утэны... Но как-то не доберёшься...



Сегодня с мобильного клиента узнала, что народ как начал писать посты, а тут ещё два коммента... Как хочу в Инет! А ещё больше хочу чтобы всё вернулось в то состояние, в котором оно было!



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



Ещё думаю для страдальцев, что кричат "Не верю!" на посты о том, что нет мобильного клиента для дневников, выложить то, что у меня теперь работает в телефоне. Тоесть JAR и JAD by Linda Kaioh. Не одной же мучаться ^_^



Так... Ещё надо бы найти NC и RAR для DOS. Вообще, хорошо бы сделать всё это на CD-ROM, чтобы тутже разместить всё самое необходимое. Например, Visual Basic for MS-DOS. Ну и дополнить список утилит. Неплохо бы HELP из шестёрки, XCOPY, MOVE, прочие чудеса DOS.



А! Из VB DOS вытащила драйвер мыши. Чудная вещь. Только почему-то не работала v_v "Microsoft Mouse not found"... Мышь есть, подключена, на MACHINEX всё работало годами. А тут... Я подозревала... Полезла в BIOS, а там такая опция "Microsoft IntelliMouse support". Это своего рода эмуляция мыши Microsoft. Я включила, и всё заработало.



Уже вчера сыночек купил наконецто радио для телефона. Не знаю, на кой оно нужно... Лишняя болтология, попса и плохое настроение на уши, да ещё и на телефоне. У меня в принципе есть радио на плеере, но я его не слушаю. Но прикол не в этом. Прикол в том, что у сыночка телефон Motorola, радио было расчитано тоже на Motorola, но на другую модель. Он было огорчился, но я вспомнила как у меня на Siemens шли как родные игрушки, которые были написаны для другой модели, и предложила попробовать... Началось ковыряние... Хорошо что разрешили... С первого раза не заработало, сыночек уже почти упаковал всё как было, но тут появилась продавщица, которая сказала, что там контакта нет с батарейкой. И всё заработало. "Сколько гарантия?" Продавщица честно ответила, что вещь китайская, поэтому ни какой гарантии... Впрочем, сыночек и так был счастлив...



Ещё уже вчера забрала сумку с парохода. Сумка меньше, чем предыдущая, зато конфет... И список для обязательной покупки... Где я буду все эти раритеты искать?



Интересно, что в прошлый раз тамошняя собака на меня лаяла и чуть не прыгнула с надстройки на меня (мне так показалось)... Теперь же это было самое доброе существо. Она помчалась ко мне по трапу и долго крутилась вокруг, наверное думала, что у меня что-то вкусное есть...

10:53

Тотальная неудачница и убийца жёстких дисков.
Наконец-то клиент заработал. Я пока с сотового, но завтра думаю всю свою писанину выложить. А пока вот мучаю Visual Basic for DOS. Хотела Цэ, но они столько занимают... Надо написать блокнот с вызовом DOS...

17:20

Тотальная неудачница и убийца жёстких дисков.
Уже вчера отправила ещё один плагин для FAR. Похоже через специальный броузер он не добавился. Я только не поняла, почему в "анкете" нет специального поля с языком, а на сайте написано: C/C++?



Да... Надо будет во всех ReadMe писать язык программирования - нечего скрывать! Помнится когда-то в Softips агитировали за то чтобы гордо писать, что да, эта программа написана на Quick Basic. Зачем скрывать, если программа хорошая? Я не говорю, что у меня всё хорошее, но... Всё равно не стоит скрывать.

17:13

Тотальная неудачница и убийца жёстких дисков.
Пора бы спать, а я читаю про то, как не надо писать на C++... Ну и всякие анекдоты почитываю. Чуть не задохнулась, когда читала про команду UNIX true. Она (как говорит автор) ни чего не делает и когда-то файл true.sh весил ноль байт. Позже благодаря системам управления исходниками там появилось пять строк (коментарии), одна из которых указывала версию - 1.5. Тоесть до этого были как минимум четыре версии. И вот как можно пять раз переписывать программу, которая абсолютно ничего не делает? ^_^

16:26

Тотальная неудачница и убийца жёстких дисков.
Здравый смысл не имеет ничего общего с программированием ^_^ Сомневаетесь? Посчитайте до пяти. 0, 1, 2, 3, 4!

13:04

Тотальная неудачница и убийца жёстких дисков.
Купила книжку. Так и называется: "Программирование драйверов Windows", Солдатов. Пришла я в магазин, спрашиваю у консультанта, а та виновато улыбается и говорит, что девушка, которая отвечает за книги по программированию именно сегодня отсутствует. Ну я и начала искать. Нашла книгу про Borland C# - они уже и тут успели... А ещё один знакомый строил из себя такого утомлённого мэтра и говорил, что .NET не пройдёт потому что это скриптовый язык... Баран трёхкратный. Во-первых про скрипты тут и речи не идёт, во-вторых .NET - это не язык, а платформа, ну и в-третьих... Раз уж даже Borland взялась за это...



Я уже потеряла надежду найти эту книгу, нашла "Как не надо программировать на C++" (довольно весёлая книга, как раз какие я люблю)... И тут в самом низу, где книги обычно в куче лежат я нашла её... Мой кошелёк полегчал...



Оказалось, что хоть на обложке и написано "Windows 98", в книге говориться про написание драйверов под пятёрку NT (2000/XP/2003). Ну и сам стиль... Слишком формализованно, как лектор перед студентами. Да, тема серьёзная, но ведь Win32 - тоже серьёзная тема, но Дэн Эпплман умудрился написать лёгкую для чтения книгу! В 1000 страниц.

09:20

Тотальная неудачница и убийца жёстких дисков.
Марат Смит посоветовал сюда глянуть: http://www.infoter.narod.ru/. Мило... Но когда в клубе остаётся пять минут, а ты тыкаешь в Окэй... И всё равно весело.

07:00

Тотальная неудачница и убийца жёстких дисков.
Ну вот. Началась отправка сообщений в дневник через SMS, а клиент перестал отправлять сообщения. Проскочило сообщение, что он отключен... Ну сколько можно?

@музыка: Какой-то металл

@настроение: Ещё хуже

06:51

Тотальная неудачница и убийца жёстких дисков.
Извиняюсь, что не могу вовремя приходить на дневники, ну не получается, очень технические проблемы. И всёже приветствую (хоть и с опозданием) новоприбывших: Хару и Katy Monster.

@музыка: Rammstein\Alterleid

@настроение: Депрессия накатилась снова