7.12.16

Жертвы тиража N 2

Продолжение темы в исходной "Жертвы тиража". Писал где-то в 2006-2007 году. Нашел как черновик, решил опубликовать, чего пропадать тексту :-)

http://www.osp.ru/os/2005/11/072.htm
7 проблем программной инженерии

середина 80-ых - нет документации (не в печатном виде), интернета, почты, форумов (!). Спросить не у кого. Программистов мало, квалификация повышается очень быстро. Малое число библиотек, но их высокое качество.
90-ые - появление ООП, неприятие, развитие настольных компьютеров, появление "персональных прикладных задач", рост числа программистов.
конец 90-х - инструментарий вроде Delphi и т.п. в массах. не напрягает изучением ООП, позволяет "рисовать" приложения.
параллельные foxpro, clipper, как контузия.
интернет - документация, форумы, компоненты, библиотеки - море.
книги - привести число по Delphi на интернет-магазинах.
books.ru - 184, Ozon - 212, bolero.ru - 204.
torry.ru,
форумы - sql.ru, delphiplus.org, мастера Delphi, королевство Delphi, codeby.net,
низкие зарплаты в регионах, отток разработчиков (нечего делать, кроме аутсоурсинга).
высокие зарплаты в мегаполисах, завышение резюме.

...
Инструментарий, вымывание кадров. ссылка на osp.ru, 11 номер от 2005 года.
...
энтузиазм, альтруизм, прагматизм, апатия. Еще в конце 90-ых годов прагматизм начал преодолевать энтузиазм и альтруизм. Безусловная смена работы максимум через 5 лет.
...
сложность найти студентов "на вырост". В любом случае, если "кадр" квалифицированный, дольше 2-3 лет он на фирме не задержится. Это срок реализации от начала до конца максимум двух-трех серьезных проектов. То есть, обучением новых кадров надо заниматься постоянно, понимая, что на длительный срок их удержать не получится (см. выше о прагматизме).
...
синдром рассеянного внимания. неспособность дочитать статью до конца. невнимательность, нежелание читать вообще (дети, рожденные в конце 80-начале 90).
изменения на генетическом уровне - шутка "ошибка в ДНК" становится реальностью.
http://offline.computerra.ru/2002/468/21520/
http://www.computerra.ru/think/239597/ ?
http://www.computerra.ru/features/243301/

и еще одна причина - демографическая.
http://www.gks.ru/free_doc/2005/b05_13/04-07.htm
Примерно в 2000 году я наткнулся на статью в Комсомолке по поводу призыва. Там говорилось, что при таком темпе снижения рождаемости в 2008 году будет в 3 раза меньше лиц призывного возраста, чем в 2000 году.
Посмотрите на график, он построен по цифрам в приведенной ссылке.
Не в 3, но в 2 раза это точно - сейчас молодых людей призывного возраста 12 миллионов человек, а через 5 лет их будет в 2 раза меньше. Я не стал рисовать весь график целиком, т.к. выше 40 лет люди программируют разве что для удовольствия, да и начиная с 25-29 уже переходят на "руководящие должности". То есть весь цвет программирования - это с 19 до 35 лет. Начиная с возраста в 20 лет идет "убыль" населения - смертность по разнообразным причинам. То есть, квалифицированные кадры или вымирают, или уходят на более высокие должности, а на их место приходят... кто?

Катастрофа тут не только в демографии, но и в науке - вместо аспирантуры программисты идут зарабатывать деньги. В институтах не остается квалифицированных преподавателей. И общий уровень образования в этой области снижается.
(ссылка на компьютерру).
Если охватить всю эту информацию разом, то ничего кроме риторических выводов не остается.

13.9.16

Век живи, век учись

Если при restore бэкапа InterBase gbak вам выдает ошибку
decompression length error
то скорее всего бэкап был сделан другой (предыдущей) версией gbak (или InterBase).
В этом случае или надо взять gbak.exe от нужной версии, или сделать бэкап повторно с указанием опции -expand.

Получается, что у InterBase опцию -expand желательно указывать при бэкапе? И у Firebird?

7.6.16

Непонятно что

Уже который раз встречаю написание опций gbak (Firebird, InterBase) не думая.
Пишут,
gbak -c -r ...

определитесь, или -c или -r. В документации написано ИЛИ! -c | -r. И -r это не restore, а REPLACE!
Слава богу, в Firebird 1.5 опцию -r запретили, потому что этой опцией убивали файл оригинальной БД. Теперь надо писать или -rep, или -r o. Тем не менее, обе эти опции нафиг не нужны, потому что -c хватает на все случаи жизни. И даже если вы пишете скрипт, сначала переименуйте оригинальную БД, а потом уже делайте рестор из бэкапа с опцией -c. Если что-то случилось, то оригинальная база останется целой.

gbak -t ...

опция -t - включена по умолчанию. Transportable backup. Не надо ее указывать.

gbak -c ... -page_size ...

не надо это вставлять в регулярный скрипт. Изменение размера страницы производится ОДИН РАЗ, административно, по осознанно выбранным причинам. Если у вас эта опция забита в скрипт, и там написано 4096, то после изменения размера страницы на 8192 вы при очередном автоматическом restore опять получите базу с размером страницы 4096.

gbak -b ... -ig ...

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

В общем, читайте www.ibase.ru/gbak/ - тут про опции все написано корректно.