Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Управляй роботом-мутантом чтобы исследовать загадочный мир, находи классное оружие и сражайся с различными врагами, чтобы выжить!

Зомботрон Перезагрузка

Экшены, Платформеры, Шутер

Играть

Топ прошлой недели

  • Animalrescueed Animalrescueed 43 поста
  • XCVmind XCVmind 7 постов
  • tablepedia tablepedia 43 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
76
HappyTalkie
HappyTalkie
Лига программистов

Как мы программировали в 90-е. Часть #03⁠⁠

10 дней назад

Предыдущие главы:
Как мы программировали в 80-е .
Как мы программировали в 90-е. Часть #01
Как мы программировали в 90-е. Часть #02

Итак, у меня появился мануал по Клипперу – увесистый том, настоящая библия, внушавшая и шок – методом своего изготовления, и трепет – объёмом полезных, бесценных знаний и ответственностью за утрату.

Вкус того времени.

Вкус того времени.

Первая же задача – загрузка (импорт) текстового файла в базу – сам по себе был интересной задачей.

Файл с котировками  приходил с биржи по итогам еженедельных торгов, внутри была текстовая таблица с повторяющимися каждые 50 строк заголовками – в этом угадывался след и дух большого ВЦ с большой машиной, большим принтером и перфорированной по обеим сторонам бумаги согласно ГОСТу.
Таблица состояла из столбцов в следующем порядке (это важнецки важно!):
| № | Наименование товара | Артикул | Цена единицы| Количество | Расположение |

Были ещё какие-то поля – общим числом около 10-12. Каждый столбец таблицы нужно записать в соответствующий столбец таблицы – и с этим я справился довольно быстро.

Следующая задача – поиск и выборки по БД принёсла множество открытий.

К примеру – насколько я был самонадеян в тех сроках, о которых мы договорились с Денди. А ещё открытия были самые чудесные:
- города Николаев и Новосибирск при сортировке оказывались выше Алапаевска и Барнаула;
- поиск упускал все слова, в которых была прописная кириллическая «р». Какие-нибудь шины он находил, а, скажем, перфоратор – игнорировал, хотя в файле котировок он был.

При выводе выборки на экран «р» так же отсутствовала. Если у Остапа Ибрагимовича машинка печатала с турецким акцентом, то у меня появлялись целые новые лингвистические сущности - «тубы» вместо «труб», «ейки» вместо реек и прочие «каны», «убильники», «писсуаы» и даже «отоы».
Пояснение. В машинке, купленной героем книги «Золотой телёнок» Шурой Балагановым отсутствовала буква «е», поэтому Остап Бендер был вынужден заменять её на «э»:
— Вот послал бог дурака уполномоченного по копытам! — сердился Остап. — Ничего поручить нельзя. Купил машинку с турецким акцентом. Значит, я начальник отдэлэния? Свинья вы, Шура, после этого!

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

Пояснение. Времена были доинтернетные. Уже появились на досках BBS и форумы в FIDO – мы же были от них отрезаны секретностью, был строгий запрет на модемы. Лавки с литературой на тему компьютеров и ПО только появлялись, книги в них были в категории «Как включить компьютер в розетку для чайников». Поэтому главный канал информации – это командировки в центры вычислительной жизни – Москву, Новосибирский Академгородок и т.д.

В первую же свободную минуту вокруг вернувшихся из командировок всегда собирался круг особоприближённых — услышать новости из первых рук первыми:
— Поговорил я там с знающими людьми за чашкой чая... — примерно так начинался «доклад» просветлённого возвращенца.

В этот раз знающие люди передали весть персонально мне:
— Заглавная кириллическая «Н» в первых версиях файлов формата СУБД dBase была служебным символом – знаком окончания строки в мемо-полях. Ушлые люди хитрят и меняют её на латинскую «Н» – на заглавную эйч. В таблице кодов ASCII латиница выше региональных (относительно США) алфавитов, поэтому в кириллических базах Николаев оказывался выше Артамонова.

А прописная кириллическая «р» была служебным символом в теле языка Си. Поэтому большинство программ, написанных на Си эту букву «не видели». Norton Commander, например.  

Клиппер, как дальний родственник СУБД dBase, написанный на Си, хромал на обе буквы.

Коллективный кириллический разум уже придумал костыли и даже их с разным успехом их использовал – именно с разным.

Дальше – больше. Самые важные поисковые функции с региональными алфавитами либо работали ограниченно, либо отказывались работать совсем. Опции поиска «все заглавные», «все прописные» и «игнорировать регистр букв» – работали только в латинице.

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

Аванс, полученный от Денди, я уже значительно подъел, ещё больше её подъела, сгрызла, гопнически отожрала инфляция. Спасали небольшие леваки, в том числе – и по написанию небольших баз данных. Котировочная же программа заполнила все мои мысли – и на тему её написания, и на тему – какими могут быть последствия, если я нарушу условия договора.

Я созвонился с Денди о встрече.
— Вот эта часть уже работает, — показал я на офисном компьютере работу импорта.
— Прекрасно! — удовлетворённо откинулся в кресле Денди. — А поиск?
— Тут такое дело... — и я честно изложил весь список случившихся откровений.
Мы договорились о продлении договора ещё на месяц, я выдохнул – Денди принял ситуацию спокойно. К тому времени я уже знали истории, когда малиновые заказчики оперировали в подобных ситуациях другими аргументами, некоторые мои коллеги изрядно настрадались.

— Будь проклят тот день, когда я сел за баранку этого пылесоса! — всё чаще звучало в голове.

И тут из очередной командировки кто-то привёз дистрибутив FoxPro! Это был совершеннейший прорыв – это и среда программирования, и возможность строить архитектуру баз данных и работать с ними из командной строки – с моментальным отображением результатов в окне отладчика! Самое главное – Фокс понимал кириллическую «р»! Решение о миграции с Клиппера на Фокс было моментальным и неоспоримым, работа над программой значительно ускорилась.

Пояснение. За давностью лет какие-то подробности уже прочно забыты. Припоминаю – был какой-то хак от наших умельцев – программа, которая меняла какие-то значения внутри Фокса – и он начинал нормально работать с «р» или даже и с Эйч тоже. Ещё была резидентная программа, которая подменивала их «на лету». Потом, вроде, это решилось на версии 1.2, когда компания Fox Software обзавелась дистрибуторами в России? Если вы знаете этот нюанс лучше – прошу поправить, а готов проапдейтить свою историю, самому стало любопытно!

В тот период случился ещё один забавный момент.

У меня было ощущение – алгоритм поиска и выборки можно значительно упростить и сделать быстрее. Я уже сделал две БД – одна была заполнена кириллическими записями, вторая – латиницей, так я имел возможность сравнивать время работы поисковых операций. Из-за всех вышеописанных подлостей от отцов-разработчиков и моих трюков по их преодолению кириллический поиск занимал минуты там, где «родной» пролетал в секундах, в долях секунд. Я перепробовал несколько методов – поиск немного ускорился, порядки отставания во времени остались. И чем дальше – тем больше я концентрировался на этой задаче.

И однажды решение мне - приснилось! Такое уже было у меня на третьем курсе – во сне я увидел свою ошибку, которую я повторял в своём курсовике, выложу эту историю позже, она великолепная!
В этот раз мне приснилась стандартная функция Фокса, только её использование было необычным - «с приподвывертом». Утром я в нетерпении ворвался в кабинет, заменил огромный блок текста программы на эту функцию и две дополнительные текстовые переменные. И произошло прекрасное – таймер поиска по кириллической базе показал почти равное время с эталонным значением по нативной базе!

Я позвал коллег – это был один из великолепнейших моментов в жизни!

Сам тот период вспоминается как время огромных прорывов и открытий – новый софт, новые знания, каждый день, каждую минуту.

Однажды мы с приятелем-коллегой, изрядно задержавшись у компов, каждый за своими задачами, шли от КБ к заводской проходной. У меня заработали нужные связи между базами, он запустил процесс, над которым работал несколько месяцев.

— Знаешь, — сказал он мне тогда, я до сих пор помню эту фразу, сказанную на каком-то очень возвышенном выдохе, — по-моему, это, примерно так же, как в первый раз залезать в трусики девушке...
Где-то так, да...

Аванс закончился, писал я программу уже на сухарях – тем понятнее моё нетерпение, с которым я доделывал завершающие пункты в ней – и ехал в офис Денди!

— Вот, как раз свежие котировки прислали, посмотрим! — мы сели за компьютер, я установил программу, запустил импорт нового файла...

...И тут...

...многократно проверенный импорт – слетел!!!

СЛЕТЕЛ!!!

Преодолевая шум в голове, пытаюсь понять – почему? Наверное, изменился формат файла? Лезу в него – а там!!! Всё по-другому, всё! Другая структура заголовка и, самое главное, другой порядок столбцов! Мало того – цена записана с десятичными пробелами (у меня - без!), вместо точки – запятая и так – во всём!

В изумлении поворачиваюсь к Денди:
- Это же совсем другая таблица?
- Да они все, примерно, одинаковые – товар, количество, цена...
- Все? Примерно?

Оказалось, Денди получает котировки не с одной биржи, а с разных. У каждой – свой формат таблиц. В некоторых (опять ощущается дух большого ВЦ!) все наименования написаны КАПСЛОКОМ, в некоторых – и вовсе CYRLAT – это когда кириллический текст написан латиницей! У кого-то артикул был после количества, у других он шёл до наименования товара, у третьих он отсутствовал. И так далее!!!

У меня просто потемнело в глазах. Я делал импорт под один формат – а их тут уже с десяток, а брокеры, как оказалось, постоянно заключают договоры с новыми биржами! И везде – везде! – программисты писали базы в своих форматах!

Продолжение следует.

P.S. Каждый раз сажусь за продолжение этой истории с желанием решительно её закончить в новой главе. И каждый раз - вылезают новые действующие лица, ситуации и подробности, с ними связанные. Их уже сейчас повылазило на могучее повествование о том времени.
Поэтому уже сложно прогнозировать - когда и чем закончится этот цикл. Обнаружил - многие технические подробности, которые тогда были частью моего мира, утратили детали, размылись в очертаниях. Поэтому буду признателен за дополнения и поправки.

UPD:

Продолжение:

Как мы программировали в 90-е. Часть #04

Показать полностью 3
[моё] 90-е Программирование Брокер Биржа Foxpro Софт Длиннопост
9
1188
qt2017
qt2017
IT-юмор

У каждого изобретения своё предназначение⁠⁠

5 лет назад

#comment_177799713

У каждого изобретения своё предназначение
Показать полностью 1
Скриншот Программист Длиннопост Foxpro Комментарии Комментарии на Пикабу Завод
106
69
Enot11rus
Enot11rus

Продолжение поста «Отвечаю на вопрос по ГАИшным базам»⁠⁠1

5 лет назад

Как раньше работали базы:

Стоял модемный пул на три линии. Городские точки регистрации транспорта сливали изменения и подкачивали обновления баз раз в день. Районы раз в неделю. В случае чего можно было подцепить еще два модема.

И один из програмеров решил, что он сильно умный. Он создал две виртуальные точки регистрации транспорта, на которые подкачивал нужную ему инфу.

Тут всё очень просто: угоняют крузак под заказ, обращаются к нему, он снимает крузак с розыска, крузак уезжает в Ингушетию. Профит!

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


Закончилось всё ожидаемо. Чувак вошёл во вкус, снял (как он думал) с розыска сразу партию машин. Только на виртуальном сервере. Вот только всех их тормознули на границе.

Чувака нашли в лесополосе. В разных лесополосах.


Были и еще забавные случаи.

Начальник ГАИ небольшого подразделения с крайних северов р.Коми присылает запрос:

"За совершение преступления, предусмотренного статьей 322223322 разыскивается легковой автомобиль белого цвета. Прошу предоставить список всех легковых автомобилей белого цвета, зарегистрированных, либо снятых с регистрации на территории р.Коми, а так же Ярославской, Вологодской, Ленинградской и Московской областей. Так же прошу предоставить список всех нынешних и бывших владельцев этих автомобилей с актуальными и бывшими адресами их проживания".

Не, при желании можно за пару суток сделать такую выборку. Только он просил факсом отправить. При попытке объяснить по телефону, что таким количеством бумаги для факса можно четыре раза обмотать планету он согласился, что можно отправить выборку курьером, распечатав на листах А4.


И если вы думаете, что "В связи с тяжелым материальным положением прошу предоставить знак ограничения скорости 40км/час на две недели", то вот зря вы так думаете.

У местечковых гайцов всегда были знаки ограничения в загашнике.

Показать полностью
[моё] ГАИ Налоги Глюки Foxpro Мат Ответ на пост Текст
12
317
Enot11rus
Enot11rus

Отвечаю на вопрос по ГАИшным базам⁠⁠1

5 лет назад

Специально поинтересовался у бывшего програмера ИЦ ГАИ.

Отвечаю на вопрос по ГАИшным базам

Итак. 2003г.

К начальнику областного ГАИ приходят налоговики, которых переадресовывают в ИЦ.

Вопрос следующий:

- Нам надо чтоб базы ГАИ, чтоб смотреть у кого какие машины были есть и будут и всех хозяев машины бывших и будущих и чтоб по объему двигателя налоги сами начислялись и платились.


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

Это примерно как один знакомый делал "Школьный Линукс". За пару дней запилил сборку, где на Убунту прикручена оболочка от винды, оупен офис, какая-то графика и всё. Ему за это дали зарплату, а ГОРОНО попилило 2 миллиона. Хорошая, кстати, сборка. Работает даже на самом унылом говне.


Но я отвлёкся.

Итак. Начальник ИЦ ГАИ, старый еврей, тут же запрашивает на это:

- три новых компа

- двух сотрудников в помощь

- три-четыре месяца.


Налоговики говорят: "Да вы охуели" и идут жаловаться начальнику ГАИ.

После недолгих переговоров гаишному програмеру дают две недели, комп и сотрудника, которого ни кто ни разу не видел.

Через неделю налоговики приходят за результатами, видят, что софт не готов и требуют просто копию баз. И идут нахуй, то есть за письменным приказам начальника ГАИ.

С письменного приказа начИЦ отдаёт копию. Только баз.

Вы вообще представляете себе, что такое базы без оболочки? Это примерно как насыпать алфавит а сказать "вот вам Большая Советская Энциклопедия, пользуйтесь на здоровье!".


Я кстати, пытался подрядиться сделать нормальную графическую оболочку для этих баз под "Visual FOX". Ну его нахуй, там такой бардак в базах)


Дальше - веселее!

Налоговики нашли какого-то спеца, который смог извлечь из баз хоть какую-то инфу. И тут понеслось!!!!

Люди начали получать налоги за ВООБЩЕ ВСЕ машины, которые когда-либо им принадлежали.

А так же налоги начали начислять всем бывшим, нынешним и, паходу, будущим владельцам одной и той же машины)))

В том числе за машины, которые давно сгнили на свалке.


Народ начал толпами щемиться в налоговую. Налоговая тупо повесила объявление "По всем вопросам обращаться в областное ГАИ" и номер кабинета програмеров.

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

А дальше програмеры напечатали и повесили объявление следующего смысла:

"Уважаемые автовладельцы! В связи с глюком баз данных налоговой произошло недоразумение. Мы нихуя сделать не можем. Чтобы не платить налоги за машины, которых у Вас нет, заявляйте об угоне".

И тут понеслось)))

Чем закончилась эта хуйня я не знаю.


Фиг бы с ними с теми, кто торгует машинами. Там мужики ушлые, с крепкими нервами и найдут выход из любой ситуации.

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


А пока я печатаю дополнение можно устроить срач)))

Показать полностью
[моё] ГАИ Налоги Глюки Foxpro Мат
34
S.Michaels
Лига программистов

Литература по visual foxpro⁠⁠

5 лет назад

Доброго времени суток друзья! Хочу выучить visual foxpro 6/7/8. Но нет литературы в сети, желательно от основ к практике. Тоисть язык довольно старый и инфы по нему почти нет. Находил только толковые видеокурсы на Ютуб, но они на испанском! Может у кого то есть подборка материалов, чтобы поделится, вы даже представить себе не можете, как я буду благодарен! Заранее горячо благодарю Вас, о мои спасители.

[моё] Foxpro Программирование Текст
27
NeBuduIgrat
NeBuduIgrat

Для тех кто в теме.⁠⁠

10 лет назад
Microsoft Visual SlowPro
Для тех кто в теме.
[моё] Foxpro Программирование Слоупок
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии