?

Log in

No account? Create an account

Троян комплит.

Силел на работе, никого не трогал. Решил частоиспользуемые модули скомпилить в dll. Ну для теста сделал dll с функцией showmessage. Стал в другом проекте ее подключать и нате. Касперский объявил прогу трояном. Хз почему.
Тут же отчет ушел в системный отдел. Прогу отправили в Касперскому, запечатанную в пластиковой баночке. А я сижу и офигеваю как так. :)

Гопники.

Сегодня стал свидетелем фактически астрономического явления. Шел на обед и на главной улице перед зданием увидел 3х классических гопников. Слегка подвыпивших и громко о чем-то споривших на блатном (как мне показалось) языке. Обычно такие персонажи тусят возле алкомагазинов или у подьездов и то вечерами, а тут среди бела дня.
Давно не писал, но думаю это интересная история.
Случилось так, что я снимал квартиру у предприятия, в котором работаю. Договор был на год, и хотя все убеждали что договор продлят, в итоге нас с квартиры попросили. Но поскольку изначально квартира была пустой нам пришлось в нее купить хоть какую-то кухню и стиральную машину. Съезжая с квартиры мы не знали куда деть все это хозяйство и нашли простой выход найти жильца, с которым после нас заключили договор на эту квартиру и договорится о покупке. Нам повезло, нашли. Договорились показать кухню. И после показа он согласился с покупкой кухни, стиральной машинки и микроволновки. Цену обговорили всех все устроило. Далее я предложил заключить договор купли-продажи. На что будущий жилец ответил "да я ж все оплачу!", на что я сказал "я не сомневаюсь, договор - чистая формальность. Заодно и потренируюсь в заключении договоров." Указал срок оплаты через 2 месяца с момента подписания, чтобы можно было по частям погасить.

Ну и по окончании срока договоров начались приключения. Человек сначала свалил в Питер и не отвечал на звонки. Затем мы нашли его через "вконтакт" (спасибо всевидящим соцсетям). Вышли на связь и договорились что по приезду он позвонит и все оплатит. Естественно не позвонил и не оплатил. После очередного "завтрака" решил что пора угрожать. Написал что подам в суд и обращусь в соц.отдел, который предоставил ему это жилье и пожалуюсь с требованием выселить (есть при коммерческом найме такой пункт, что при поступлении жалоб соцотдел может расторгнуть договор найма). Если бы я выиграл суд и соц.отдел пошел бы мне на встречу, из-за неуплаченных 50 тыс. он потерял бы примерно 200 выплатив мне 50 тыс по договору и примерно 150 переплаты по ипотечным процентам, и 200 тыс. потерял бы при последующем съеме жилья (имеется в виду за год). Мое сообщение как-то моментально подействовало на неплательщика и деньги нашлись буквально через несколько дней. Больше всего в этом всем забавляли ситуации "я позвоню вечером" и тишина. Или "в субботу утром зайду и занесу всю сумму" и тишина. В конечном итоге человек пришел с обещанием занести всю сумму, но занес из 50 только 30 тыс. При этом не взяв расписки. Сегодня опять написал ему с требованием погасить оставшуюся сумму. В итоге его родня перевела на карту не 20 500, а 25 000. (то есть, переплатили). И сразу же повалились СМС "Ой, я переплатил, как бы мне обратно 5 тыс. забрать?). Какое-то время боролся с соблазном также растянуть удовольствие на месяц-полтора и покормить в ответку завтраками, но договорились что верну лишние деньги завтра.

Как я уже говорил, человек отдал мне деньги не взяв расписки. То есть по договору он все еще должен мне 50 тыс. :) С другой стороны, он мог первый лист договора взять и перепечатать сумму на один рубль (у нас договор был скреплен, и подписи стояли только на последнем листе). Тогда было бы весело. Бегал бы по судам доказывая что моя версия договора правильная.

В данном истории с одной стороны я составил кривой договор, а с другой безответственный покупатель, который сначала не оценил свои возможности по покупке, а потом тянул с оплатой. При этом как-то невнимательно отнесясь к деталям. Сроки просрочены. Сумму всегда называл 50 тыс., а не 50 500 (пришлось в переписке это отдельно уточнять, чтобы при личной встрече не доказывать).

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

На текущий момент задолженности покрыта. А договор оставлю на черный день. Когда денег не будет - предъявлю "неплательщику" (шутка конечно) ;-)


P.S.
Повезло новому квартиранту что он со мной заключил договор, а не с brakhma например. Тот бы его к текущему моменту оставил бы без штанов. =)
Ну и жаль, что я не указал пеню по просрочка даты оплаты. В следующий раз буду умней и хитрей.

Микки Финн.

« – Н-да, по моим сведениям, этот коктейль хорошо известен в некоторых кварталах и называется «Микки Финн», – пробормотал коронер.
– Совершенно верно, – сказал доктор Ригг. – Наверняка убитый, ничего не подозревая, выпил этот коктейль и уже через несколько минут потерял сознание».

В романе «Часы» («The Hours») американского писателя Майкла Каннингема (Michael Cunningham), откуда и взят этот фрагмент диалога, речь идёт о событиях начала ХХ века. Коктейль «Микки Финн» – не авторский вымысел. Алкогольный напиток с добавленным в него сильнодействующим снотворным (хлоральгидратом) впервые пустил в оборот владелец чикагского бара «Одинокая звезда» («Lone Star») Микки Финн (Mickey Finn). Ещё в декабре 1903 года несколько чикагских газет сообщили, что в баре Финна состоятельным клиентам подмешивают в питьё снотворное, а когда они теряют сознание, их выводят на задворки и грабят.

Но развития эта информация тогда не получила. Те немногие жертвы, которых удалось установить полиции, по существу дела ничего сообщить не могли – напиток Финна им напрочь отбивал память. Тем не менее название адского коктейля не только вошло в обиход, но его стали наливать и в других злачных местах Чикаго. Только в июне 1918 года, после многих месяцев слежки, полиции удалось взять с поличным четырёх организаторов и более 100 официантов. В ходе следствия выяснилось, что система нейтрализации и ограбления клиентов была поставлена на поток.

Некий аптекарь и его жена изготовляли зелье, получившее название Knockout-Drops (в переводе с английского «нокаутирующие капли»), а два сотрудника городского профсоюза официантов сбывали его доверенным лицам из числа персонала увеселительных заведений. Обвинительное заключение содержало множество эпизодов, в числе которых было отравление свыше 100 участников банкета в Чикагском университете, ставшее причиной смерти троих из гостей.

В Германии Knockout-Drops (нем. Knockout-Tropfen) имеют давнее и весьма широкое хождение в кругах криминальной молодёжи. Но современные микки финны используют их не столько для ограблений, сколько для совершения изнасилований. Сегодня чаще всего применяют раствор Gamma-Hydroxy-Buttersure (сокр. GBH, на криминальном слэнге Liquid Ecstasy – «ликвид экстази»), реже Gamma-Butyrolakton (сокр. GBL), а также Benzodiazepine, Flunitrazepam и Temazepam (специально перечисляем эти названия: в преступном мире они и без того известны, а вот родителям некоторых молодых людей знание этих названий может оказаться полезным).

Чуть солоноватый на вкус раствор GBH, смешанный с алкоголем, не изменяет его цвета и запаха. Но уже через минут 15 жертва надолго (до нескольких часов) теряет сознание, а придя в себя, абсолютно не помнит, что с ней происходило.

В последнее время в федеральном Союзе женских консультаций и служб спасения (Bundesverband Frauenberatungsstellen und Frauennotrufe, сокр. BFF) отмечают рост числа изнасилований женщин с использованием Knockout-Tropfen. Полиция по мере возможностей пресекает распространение этих опасных наркотических средств, выявляя дилеров и покупателей и привлекая их к уголовной ответственности (согласно § 179 Уголовного кодекса ФРГ, за сексуальные действия в отношении лиц, неспособных оказать сопротивление, предусмотрено до 10 лет лишения свободы). Но потерпевшие редко заявляют о случившемся.

«Когда действие Knockout-Tropfen заканчивается, жертвы ничего не помнят о том, что с ними произошло, но ощущают сильную головную боль, тошноту, находятся в подавленном состоянии, – говорит женский психолог Катя Григер (Katja Grieger) из BFF. – И уже через 10 – 12 часов после приёма капель обнаружить их в организме человека крайне сложно. Чем раньше жертва обратится к нам ли, к врачу или в полицию, тем больше шансов на то, что факт применения Knockout-Tropfen установят.

Чтобы не стать жертвой насильников, соблюдайте простейшие меры безопасности. Бывая в барах или дискотеках, не оставляйте без присмотра напитки в открытых бутылках или стаканах. Отказывайтесь от напитков, которыми вас пытаются угостить незнакомцы. Внезапно почувствовав себя плохо, немедленно обращайтесь к друзьям, с которыми вы пришли, или к охранникам заведения, или вызывайте полицию. Учтите: даже незначительная передозировка Knockout-Tropfen может привести к остановке дыхания, коме и смерти».

Коктейль «Микки Финн» с добавлением Knockout-Tropfen применяют не только отпетые уголовники. Вот два недавних случая. Старшеклассник одной из гессенских гимназий на вечеринке с друзьями подлил снадобье в бокал отошедшей на минутку одноклассницы. Заметившей его манипуляции общей знакомой на вопрос, что он делает, недоросль, смешавшись, ответил, что хочет посмотреть, что из этого выйдет.

Паскудник был с позором изгнан с вечеринки. Другой случай: 37-летний Райнер Х., директор одного из банков в Цюрихе, четвёртый месяц сидит в предварительном заключении по обвинению в изнасилованиях нескольких женщин, которых он привёл в беспомощное состояние, угостив напитками с Knockout-Tropfen.

Можно, конечно, посокрушаться по поводу падения нравов современной молодёжи. Но продуктивней, пожалуй, принять к сведению рекомендации психолога Кати Григер.

Сергей Дебрер, Русская Германия

RMI в Java

Уф. Наигрался я с удаленным вызовом процедур в java.

Говорят, что это старая технология, но все равно было любопытно поковыряться.
Пример перелопачивал у Якова Файна из курса по джаве. В его примере регистрация процедур и создания серверов происходила на одной машине. Я хотел разобраться и понять как это будет работать если регистратура, сервер и клиент будут находится на разных.
Раскидал как надо методы. Запустил, все работает.
Теперь надо дописать реализацию, чтобы сервер при создании мог себя регистрировать. :)

Фасад.

Недавно столкнулся с проблемой. Есть несколько задач, которые используют по сути одни и теже классы. Ну и встал вопрос, как это дело можно объединить, чтобы не мучатся при подключении юнитов и вызове функций.
Сначала была идея все в библиотеку запихнуть и подгружать dll, но потом выяснилось, что dll на Delphi подгружает vcl библиотеку (которая отвечает за UI) и в итоге dll весит минимум 15 Мб.
Второй вариант был все объединить в один модуль и его подключать. Но такое решение тоже не подошло, поскольку иногда надо использовать модулю по отдельности и связывать их никак нельзя.
Выручил добрый друг "Фасад". Сделал класс, в котором объявил все нужные мне методы и функции. А внутри класса подключил все остальные.
В итоге, если вдруг начинаю писать новое приложение, я просто подключаю все модули, которые мне нужны, а в классах всегда обращаюсь к фасаду и его методам класса. Все. ;)

Уверен что есть решение лучше, но пока я вот такое придумал и оно работает.

java

Начал смотреть учебный курс Якова Файна и не могу оторваться. Настолько доступно все объясняет. После этого джава оказалась очень дружелюбным языком. Все логично и просто. Конечно, в Eclipse UI надо писать вручную, но в этом тоже есть свои плюсы. Знаешь где что располагается и где лежит. :)

Tags:

DLL в Delphi

На работе была свободная минута (пятница ведь). Ну и появилась идея, есть у меня несколько программных модулей, которые используют одни и те же классы. Дай, думаю, объединю их в DLL и будет мне счастье. Подключаешь библиотеку и берешь нужные функции. Не надо постоянно подключать кучу юнитов.

Почитал урок как это все делается. Ничего страшного нет. Но когда стал библиотеку писать, Дельфя руганулась, мол, раз ты использовать формы решил, то давай подключим библиотеку vcl. Я согласился и скомпилил. Все работало как надо. Тока вот, dll получилась на 15 метров! И это с простейшей функцией показа сообщений и ошибок.
А мой скомпилированный проект весит всего 9.

Такой вот поворот. Но зато, если использовать обычные функции и методы класса (без UI), то думаю, удобно будет. К томуже, если что-то надо поменять или дополнить, то просто в библиотеке меняется функция и не надо менять клиент. =)

Tags:

Седня-таки дописал программку. Задача простая - "производственный календарь". Старый говнокод сохранил ради перлов, таких как ID в формете int или функция принимающая параметр, но никак его не использующая или проверка значения не по свойству объекта, а по видимому значению на экране "если выходной, то действие 1, иначе - действие 2".

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

Для начала убрал из архитектуры сервер приложений, так как он ничего не делал и ничего не решал. Точнее, он занимался тем, что принимал от пользователя запрос и передавал его серверу, а потом результат точно также передавал обратно клиенту. Гемора с сопровождением намного больше чем пользы. Взял двузвенку. Кстати, решил проблему входа в систему при компиляции. Раньше надо было в проекте постоянно править строку подключения (в зависимости от базы). Щас если параметров нет - появляется окошко с полями "логин, пароль, база".

Теперь самое главное - решить вопрос с распространением библиотек под Oracle. Думаю, админы помогут по сети раскидать. А то в прошлый раз, когда все пользователи запустили мою двузвенную первую прогу, все накрылось медным тазом. Вплоть до отключения серверов. Тогда меня спас случай. В этот раз буду тестировать тщательнее. :)

Вернемс к задаче. Поскольку информация представляется в виде таблицы, сделал наблюдаемый объект, который содержит координаты на сетке ну и в случае изменений - оповещает своих наблюдателей, которые перерисовывают нужные ячейки, а не всю таблицу целиком. Производительность - возросла в разы.

Кстати, хотел сделать "наблюдаемого наблюдателя" (хехе), то есть объект (который хранит суммарную информацию) следит за элементами, и в случае их изменений изменяет себя и дает своему наблюдателю сигнал о том что он изменился. Это как скульптура где "собака смотрит на кошку, которая смотрит на мышку, которая смотрит на сыр" :)
Но, к счастью отказался от этой идеи, иначе код стал бы намного путанней.

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

Ну и зашибись. Сейчас тыкаю в экран и самому любопытно наблюдать как там все перерисовывается и изменяется. =)

С экспортом в Excel тоже не парился долго. Раз объекты на сетке экрана имеют координаты, значит их также можно в в сетку excel перевести. =)))

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

Итого, в предыдущей версии было 2 пакета хранимых процедур общей суммой за 20 штут, сейчас со всей задачей управляются 7-8 процедур и функций. И в клиенте 3 формы и десяток методов (вместе с вспомогательными).

Красатень! :)