Отучился я на специальности «Программное обеспечение ВТ и АС», но потом подался в ремонтники железа. Полученные знания потихоньку утрачивались, а новые касались совершенно других проблем. В один прекрасный момент хорошие знакомые попросили в сжатые сроки написать диплом по специальности, на которой я учился. Тема: «Сетевая реляционная БД». Отмазаться не получилось. Так как на работу отводили неделю, об изучении чего-то нового речи быть не могло: на одну пояснительную записку и плакаты ушло бы три-четыре дня. Писать предлагалось на Delphi 6. Надо отметить, что во время моего обучения на предмете «Базы данных» мы проходили досовский FoxPro 2.6, соответственно, про SQL я только слышал, а о сетевых БД знал только то, что они есть.
Поставленная задача была выполнена. Результатом стал клиент-серверный программный комплекс. Программа-сервер открывала файл MDB через ADO и ждала запросов от клиентских приложений. Клиентские приложения общались с сервером через DirectPlay (компонент DirectX, предназначенный для простой реализации сетевых игр), используя самопальный язык запросов. Получив от клиента запрос, сервер мог искать в БД данные методами FindFirst/FindNext либо создавать новые записи из полученных данных. Все запросы попадали в некое подобие FIFO-буфера, в котором происходила «сборка» фрагментированных запросов, а также отбрасывание огрызков. Контроль доступа к базе осуществлялся методами всё того же DirectPlay. Защита от одновременного редактирования записи была реализована путём добавления специального поля в корневой таблице: если значение в нём равно единице, то запись уже кто-то редактирует.
Как ни странно, весь этот кошмар работал. Тест проводили четыре добровольца. За десять минут активной манипуляции данными сбоев не было, а для диплома больше и не надо. Диплом был сдан на отлично, так как в текст программы никто не заглядывал, а на экране всё выглядело вполне пристойно.
Самый смак был после диплома: человек, сдававший эту работу, додумался действительно внедрить её на предприятии, где проходил практику. По его словам, всё работало; единственное — иногда приходилось пользоваться интерфейсом прямого редактирования данных в серверной части программы, чтобы снимать признак редактирования записи при повисании клиента (механизм транзакций я реализовать не успел).
Если кому это чудо попадётся — пожалуйста, не обижайтесь. Я не думал, что этим кто-то будет реально пользоваться.
#11094: Сталлоне не обнаружено
12:45 19.06.2013, IT happens
1986 год. Проникновение в квартиру. Дверь выломана, ничего не взято. На стареньком телевизоре — записка:
Взломщиков быстро нашли. На допросе они сказали, что навели их соседи, и сообщили, какие именно. Оперативники — тут как тут. Соседи рассказали, что незадолго до этого во взломанной квартире работал мастер, который, по их словам, «чинил видеомагнитофон», периодически произнося слово «видеосигнал».
О том, что чинил мастер вовсе не видеомагнитофон, а тот самый старенький телевизор, и что видеосигнал бывает не только в видеомагнитофоне, но и в телевизоре, неграмотные соседи-наводчики не знали.
#11095: Великий китайский файрволокопатель
12:15 20.06.2013, IT happens
Присматривал я себе китайский смартфон. В РФ продаётся тысяч за одиннадцать. Иду на известный китайский аукцион. На этом сайте я впервые. Там ценник в районе восьми тысяч. Посмотрел подробности (естественно, без регистрации) и пошёл себе спокойно работать дальше. Страничку закрыл.
Минут через пятнадцать письмо на рабочий мейл падает. Открываю. Написано на характерном китайско-русском диалекте: мы-де есть посредники русскоязычные между вами и тем самым аукционом, давай, регистрируйся, будет тебе пять баксов на счёт и всякое другое счастье.
И вот тут мне серьёзно поплохело. Это ж за то время, что я сайт изучал, они каким-то хитрым скриптом через корпоративный и персональный файрволы залезли на комп, просканировали быстренько, вычислили мой адрес и прислали спам! Как страшно жить…
Иду к админу, жалуюсь. Меняется в лице. Потом начинает ржать: ему тоже спам от этого интегратора сегодня приходил. Совпало.
#11096: Пауза — для тормозов
12:15 20.06.2013, IT happens
Поймал коллегу (начинающего сисадмина) за отладкой BAT-файла интересным способом. Паренёк запускал файл из Проводника и быстро нажимал Print Screen, иногда успевая поймать окошко с выводом консоли.
#11097: А во лбу @$# горит
12:15 20.06.2013, IT happens
Тихий декабрьский вечер. В кабинете четыре админа и ещё три человека из другого отдела. Работы нет, каждый занят каким-то своим делом. В кабинете царит тишина и покой. Один из админов звонит в техподдержку Ростелекома и, чтобы не держать трубку возле уха, оставляет телефон на громкой связи.