пятница, 19 февраля 2010 г.

Сор в избе

Рабочий день 12-го февраля начался необычно. Как только я пришёл на работу, сослуживец кинул мне ссылку на внутренний форум технической поддержки конторы провайдера, где я работаю. Суть темы в том, что провайдер убрал тариф "Первый+", не уведомив об этом пользователей, что положено по договору.
Весь текст темы
После прочтения этой темы я добавил следующее:

Интересно узнавать о работе других отделов из сообщений на форуме. Жаль, что даже внутри всё держится в секрете.
В связи с этим вспоминается принцип Кирхгофа:

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

Математическое обоснование честности.

После моего сообщения сослуживец добавил следующее:

Наши IT-шники предложили...

Это особенно мило... Йа "горд" за компанию

Часов в 12 я отправился на обед. По возвращении обнаружил, что наши сообщения удалили, а тему закрыли. Также мне сообщили, что со мной хотел поговорить Kir, он же генеральный директор. В итоге со мной поговорил Сергей, начальник отдела ПО. Потом он также поговорил и с сослуживцем.
Мне вменялся вынос сора из избы. "Разговор" был построен таким образом, что я должен был почувствовать себя предателем. К слову сказать, Сергей привёл интересный (и неверный) пример: "Если тебе будет изменять жена и всем об этому трубить, тебе будет приятно?".
Никому я, естественно, не изменял. Но то, что я публично высказался о внутренних проблемах конторы, меня заинтересовало самого. Я обсудил этот случай с несколькими знакомыми и с психологом.
Выяснилось, что я сделал публичное высказывание из-за того, что не доверяю начальству - Сергею, Kir'у и т.д..
Причины для этого имеются: моё мнение начальство не интересует, мои предложения тоже.
Видимо, поэтому я и захотел "отделиться" от конторы, потому что таким обманом была попрана честь всех сотрудников конторы, что меня, естественно, не устроило. Другие сослуживцы говорили, что им стыдно говорить, что они работают в этой конторе, такая у неё репутация.
Вот такие пироги...

пятница, 5 февраля 2010 г.

Mass effect 2

Today I've finished the game. It was amazing. The best game in the last 2 years. For me, "Mass effect" is "Fallout" of the beginning of 21st century.
As it has been described in various reviews the ME2 has outperformed ME1 in everything. Bioware fixed all annoying things and made the game just brilliant: it's fast, good-looking, interesting and it can teach you if you are careful enough.
The dialogs can teach. The paragon-renegade decisions let you see how people react. Some of the dialogs are deep thoughts about our real world.

The deep thought that transfered from ME1 to ME2, the thought that made "Mass effect" a unique game in my eyes. In ME1 it has been said by Sovereign, now by Legion.

Shepard: Some of the geth followed Sovereign. The "heretics".
Legion: The heretics accepted their technology.
The Old Machines [Reapers] offered to give us our future. The geth will achieve their own future.
Shepard: What difference does it make how you acquire a certain technology?
Legion: Technology is not a straight line. There are many paths to the same end.
Accepting another's path blinds you to alternatives. Nazara -- Sovereign -- said this itself:
"Your civilization is based upon the technology of the mass relays. Our technology. By using it, your society develops along the paths we desire."


Accepting another's path blinds you to alternatives.
That's why a man should learn how things work if he wants to be able not just to follow and believe, but to lead and understand.

Your civilization is based upon the technology of the mass relays. Our technology. By using it, your society develops along the paths we desire.
We live in the world of rules created by others and thus develop along the paths the 'others' desire. That's a more elaborate stage of slavery, a hidden one. You live, you work, and you think this is life. But a small amount of people own large companies and can afford almost anything in life, they are modern kings. We develop the paths they desire...

--- RU ---
Mass effect 2

Сегодня я прошёл игру. Это было замечательно. Лучшая игра за последние два года. Для меня "Mass effect" - это "Fallout" начала 21-го века. Как было описано в разнообразных обзорах, ME2 превзошёл ME1 во всём. Bioware исправили все нудные вещи и создали блестящую игру: она быстрая, хорошо выглядящая, интересная, а также она может научить уму-разуму, если Вы будете достаточно внимательны.
Диалоги могут научить. Хорошие-плохие решения позволяют увидеть, как реагируют на них люди. Некоторые диалоги являются глубокими мыслями о нашем реальном мире.

Глубокая мысль, перекочевавшая из ME1 в ME2, мысль, которая сделала "Mass effect" уникальной игрой в моих глазах. В ME1 она была произнесена Властелином (Sovereign), теперь Легионом (Legion).

Шепард: Некоторые из гетов (Geth) последовали за Властелином. "Еретики".
Легион: Еретики приняли их технологии. Старые Машины [Пожинатели (Reapers)] предложили нам наше будущее.
Геты достигнут сами своего будущего.
Шепард: Есть ли разница, каким путём достаются технологии?
Легион: Технологии не прямая линия. Существует много путей для достижения одной и той же цели. Принятие чужого пути скрывает от тебя другие пути достижения.
Назара -- Властелин -- сам сказал это:
"Ваша цивилизация основана на технологии ретрансляторов массы (Mass relays). Нашей технологии. Используя её, ваше общество развивается путём, выбранным нами".

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

Ваша цивилизация основана на технологии ретрансляторов массы (Mass relays). Нашей технологии. Используя её, ваше общество развивается путём, выбранным нами.
Мы живём в мире правил, созданных другими. Таким образом, мы развиваемся по пути, выбранному ими. Это более продвинутое состояние рабства - скрытое. Вы живёте, вы работаете и думаете, что это жизнь. Но небольшая группа людей владеет огромными компаниями, они могут позволить себе почти всё в этой жизни, они современные короли. Мы развиваемся по пути, выбранному ими...

понедельник, 1 февраля 2010 г.

Does an incorrect environment force you to an incorrect behaviour?

Today I understood my grudge against Delphi IDE and Object Pascal in general (I'm forced to use Delphi 7 at work).
One of my Delphi applications is Switch management GUI which looks like this:

The IP list is rendered within cxGrid component from DevExpress. It consists of two columns - row number and IP. I wanted to implement copying (WM_COPY) of the second column value only, but cxGrid does not allow this, because it copies the whole line, all the columns.
I did not implement handling of Ctrl+C, because there exist another standard shortcut for copying things in Windows - Ctrl+Insert. So handling concrete key bindings is wrong.
There's WM_COPY Windows message. Unfortunately, the cxGrid intercepts these messages, so I have no opportunity to handle it myself.
So I has to do one of the two bad things:
1) handle concrete key binding;
2) obey cxGrid limitation.
I chose the latter of two evils: I hid the first column. Now copying of the whole cxGrid line only copies one column value. At the same time I screwed the functionality up.

I saw the same bad pattern in Object Pascal, of which many people talked about already: interface and implementation within a single (!) file, call back functions on events, etc.. I wish I could use Qt4.

Thus I came to a question: "Does an incorrect environment force you to an incorrect behaviour?"
I'm forced to follow bad coding style, how does that affect me? Does it make my coding bad too? Does it corrupt my judgement?
I think yes. That makes me want to quit this job.

--- RU ---

Влияет ли неверное окружение к принятию неверных решений?

Сегодня я понял своё неприятие Delphi IDE и Object Pascal в принципе (я вынужден использовать Delphi 7 на работе).
Одно из моих приложений - ГУИ управления свитчами - выглядит следующим образом:

Список IP выводится в компоненте cxGrid от DevExpress. Он состоит из двух колонок - номер строки и IP. Я хотел реализовать копирование (WM_COPY) значения лишь во втором столбце, но cxGrid не позволяет это сделать, т.к. копирует всю строку, т.е. значения в обоих колонках.
Я не реализовал отлов Ctrl+C, т.к. существует ещё одно стандартное сочетание клавиш для копирования в Windows - это Ctrl+Insert. Поэтому ловить конкретные сочетания плохо.
Существует сообщение Windows WM_COPY. К сожалению, cxGrid перехватывает эти сообщения, поэтому я не могу переопределить его.
Приходится выбирать из двух неверных вещей:
1) ловить конкретные сочетания клавиш;
2) смириться с ограничениями cxGrid.
Я выбрал второе из зол: скрыл первый столбец. Теперь копирование всей строки cxGrid лишь копирует значение одной колонки. В то же время, я ухудшил функциональность.

Ту же неверную схему я наблюдаю и в Object Pascal, о которой уже говорили многие: интерфейс и реализация в пределах одного (!) файла, обратный вызов (callback) на события и т.п.. Жаль, что я не могу использовать Qt4.

Таким образом я пришёл к вопросу: "Влияет ли неверное окружение к принятию неверных решений?" Я вынужден следовать неверному стилю написания кода, как это влияет на меня? Делает ли это мой стиль написания кода неверным тоже? Искажает ли это мои суждения?
Думаю, да. Это вызывает у меня желание покинуть работу.