Итак, речь пойдет о таком великолепном языке, как ассемблер. Для начала давайте разберем, в чем же его великолепие?
1) Безграничные возможности. Подробнее:
2) Обширные возможности оптимизации. Только на ассемблере можно оптимизировать программу так, чтобы в ней не тратилось ни единого такта процессорного времени. Для этих целей есть возможность выравнивания массива в памяти, возможность управлять распределением команд на конвейеры (вру. Возможности нет. Но так как размер каждой команды известен заранее, то можно точно сказать, в какой конвейер пойдет одна команда, а в какой следующая). В том числе возможность оптимизировать занимаемую память - как под машинный код, так и под данные.
3) Обширные возможности создания программ. Ассемлер по сути язык императивный, но кто посмеет сказать, что этот язык не может поддерживать методологию ООП? Или что он не может быть функциональным? Или логическим? Все языки, абсолютно все языки программирования нужны лишь для того, чтобы упростить работу с ассемблером, но они не могут заменить его. Да, конечно, использование объектно-ориентированного (или тем более функционального) метода программирования на ассемблере весьма трудоемко. Точнее, этот процесс требует от программиста коллосального внимания, логики, памяти и т.д. Но тем не менее, тот факт, что никто не может и не хочет этого сделать еще не означает, что это невозможно.
4) Низкий уровень разработанных программ. Если есть в системе какое-то устройство и если оно правильно работает, то единсвтенный язык, который со 100% гарантией сможет работать с этим устройством - ассемблер. Собственно, вирусы (которые по сути являются маленькими иголками, способными проникнуть даже в самую маленькую дырочку, оставленную между огромными монолитами объектов, созданных другими, высокоуровневыми языками) в большинстве своем созданы на ассемблере (а остальные - на С++ с ассемблерными вставками) , потому как такие тонкости возможны только на нем.
А теперь о соответсвующих каждому вышеописанному пункту недостатках:
1) Безграничные сложности. Подробнее:
2) Обширные возможности оптимизации скромно ожидают своего гуру программирования, способного использовать все эти возможности. В отличие от автоматизированных компиляторов для высокоуровневых языков, ассемблерный интерпретатор не может оптимизировать код, если этого не сделал сам программист. Поэтому чтобы использовать все эти возможности, нужно для начала их знать и уметь ими пользоваться.
3) Обширным возможностям создания программ перекрывает кислород обширная сложность создания даже простых программ. Действие, которое в высокоуровневом языке занимает одну строку, в ассемблере может занимать целую страницу, в которой нужно будет точно расставить каждую команду. Объектно-ориентированный подход возможен, но на чистом ассемблере это будет выглядеть как обычный императивный код. Хотя, даже не императивный. Это будет просто сплошной поток кода и данных. Процедура в ассемблере - это просто абстрактный указатель на какое-то место в этом коде. А функциональный подход на чистом ассемблере вообще по сути невозможен (если брать в расчет такие возможности, как, например, ленивый код), точнее этот подход не будет иметь смысла, т.к. никакого упрощения программирования не выйдет.
4) Низкий уровень программ. Только низкий. Это означает, что программа аккуратно огибает все неровности архитектуры целевого компьютера. И программист должен подробно описать каждый такой изгиб на теле программы. А если это большая программа? Тогда только на перечисление всех этих "изгибов" и "неровностей" уйдет пару лет, не говоря уже о том, чтобы их подробно описать. Компиляторы высокоуровневых языков берут все это на себя, давая программисту возможность оперировать огромными частями программы с легкостью одной строчки.
А теперь "апогей" этой статейки - все эти недостатки могут быть бесследно стерты с истории ассемблера если в него просто добавить макросы. Разработка компилятора для ассемблера с хорошими макросами займет времени не больше, чем разработка какого-нибудь компилятора Visual C++, но вот результат будет гораздо лучше, т.к. язык, обладающий преимуществами и лишенный недостатков чистого ассемблера, - это величайший язык. Ведь если хорошо постараться с разработкой макросов, сделать их использование свободным, не стесняющим возможностей чистого ассемблера, то тогда вполне можно будет создать такой вот величайший язык. Было бы желание. Но почему-то у великих кампаний нет желания связываться с ассемблером, им проще списать его в число древних ископаемых, которые уже не способны сравниться с их могучими титанами С++, Object Pascal, Basic, Fortran, Lisp, Prolog, и т.д. и т.п. Собственно, ассемблер пытались списать со счетов с тех самых пор, когда в обиходе стали использоваться высокоуровневые языки (а это более двадцати лет назад), но безуспешно. FASM (Flat Assembler) - первая (известная мне) попытка реализовать такие макросы. Но этот ассемблер поддерживает (если поддерживает) всего-лишь один человек, соответственно несмотря на отличные, оригинальные и многофункциональные макросы, FASM все еще не может избавиться от своих недостатков, хотя и уменьшил их сравнительно с TASM, MASM или другими ассемблерами. К тому же у него нет хорошего IDE, т.к. Fresh - единственный более-менее удобный IDE - не может поравняться с современными интерфейсными монстрами.
Выводы из рассуждений: единственные две вещи, необходимые для того, чтобы на долгие и долгие годы возродить ассемблер и поднять его на несколько порядков выше высокоуровневых языков, это проработанный язык макросов и многофункциональный IDE. И эти две вещи не являются чем-то невозможным (ведь язык макросов едва ли будет сложнее, чем какой-нибудь язык С++, а уж IDE тем более легкая задача для таких матерых фирм, как Borland или мелкомягкие (впрочем, последние никогда не возьмутся за это, ведь у них же есть такой великолепный язык, как бейсик, компилятор для которого когда-то написал мальчик билли)). Но проблема в том, что все бояться ассемблера, как черт ладана.
Никогда не используйте флешгада... Удаляйте его, предварительно скачав Download Master - и нервы спокойнее будут... Если бы я это раньше сделал, то может быть имел бы шанс выспаться. А теперь уже поздно.
Только что вернулся с собеседования о приеме на работу... Просто ужасно... Мне за себя стыдно. Не мог посчитать такие элементарные вещи! Сначала я нормально решал, быстро. А потом словно мозги ссохлись и завалились куда-то за язык (потому что там было очень сухо). Ну ладно. Мне дали эти задачи на дом. Поэтому не все еще потеряно.
Примечание: любой из нижеописанных материалов не может быть перекопирован в какой-бы то ни было форме без письменного согласия владельцев авторских прав. Но поскольку мое преступление совершено не из корыстных побуждений и не ради наживы, а так же поскольку мне откровенно плевать на все правила =), то я плевать хотел на это правило =)
В этом номере мы представляем книгу Синклера Евилгеста, вышедшую в издательстве Abdominal Press в 2002 году. Это первый известный опыт создания художественного произведения по мотивам технической документации. В несколько аллегорической форме книга повествует об освоении простым человеком трудной науки пользования MS Windows и психологические аспекты восприятия им сначала концепций администрирования, а затем и разработки приложений под эту платформу.
Стоит отметить, что, по словам автора, книга полностью основана на совершенно реальных фактах, большинство из которых освещены в таких популярных источниках, как MSDN. С другой стороны, это не просто перевод руководства пользователя на брутальный язык квинтэссенции постмодернизма, в котором автор позиционирует бихейвиористические дисторсии своего депрессивного эгрегора, а скорее творческое развитие темы психологических аспектов восприятия современного цифрового мира подсознанием обыкновенного хомо сапиенс, который еще триста лет назад не мог себе представить такой простой концепции, как шифрование с асимметричным ключом.
Безусловно, трудно составить представление о произведении по междометиям критиков, а даже краткий пересказ фабулы займет слишком много журнального места (сам роман – это пухлый том в 850 страниц), не говоря уже о том, что он убьет добрую долю удовольствия от прочтения книги, а потому, не раскрывая деталей сюжета, процитируем два кратких отрывка.
Блуждание профиля
...После определения звания постового я задержал взгляд на сержантском погоне чуть дольше, чем нужно, и над ним проявился назойливый желтый тултип: "Хлопни по шеврону, чтобы достичь дополнительные возможности". Пока я переводил фразу обратно на английский, фоном думая всякие гадости про мастерство русификаторов, рука уже потянулась хлопнуть для ознакомления с дополнительными возможностями сержанта, ибо внешний вид его внушал сомнения в наличии хотя бы основных. И даже если они и были, то места для размещения их на широких сержантских плечах хватило бы с избытком.
К счастью, потенциальный хлопок, который мог привести меня к использованию тех возможностей, о которых и знать-то не очень хочется, был прерван диалогом столь высокой модальности, что обо всех коммуникациях с прочими элементами визуального интерфейса пришлось забыть. Тематика диалога безошибочно опознавалась по его заголовку, и я не обратил внимания на мелкий шрифт внизу, сообщавший какие-то полезные подробности. Я и так понял, что невыполнение данного запроса на авторизацию грозит мне потерей доступа ко всему окружению как минимум до вмешательства администратора. У меня был в запасе способ временно поднять свои привилегии, но пользоваться им без веской причины я не хотел, и предъявил требуемые документы. Как же был я удивлен, когда в авторизации мне было отказано! К счастью, локальные политики не были установлены в параноидальный режим, и мне предоставили как минимум еще одну попытку.
Вторая попытка тоже не удалась! На этот раз я посмотрел на отказ внимательнее: "Предоставленный мандат конфликтует с существующим списком мандатов". Произведя уже ставший привычным перевод на английский, я понял, в чем дело. Ошибка 1219 могла быть вызвана только тем, что в прошлый раз я предъявил Серегин паспорт вместо своего! Я привычно посмотрел на часы в правом нижнем углу (00:19), отметив также, что процессор совсем не загружен. Похоже, вечерняя прогулка оборачивалась неприятностями...
Проводник
...Проводник вел меня извилистыми путями, терпеливо ожидая каждый раз, когда я приостанавливался, чтобы ознакомиться с чем-либо поближе, и покорно продолжал путь, как только я решал, куда двинуться дальше.
Я так и не успел понять, в какой момент я последовал неверному пути. Возможно, я просто оговорился, а может быть, я случайно взял какой-то другой адрес вместо того хранилища документации, которое хотел найти.
Так или иначе, но вместо привычной серости некоммерческого учреждения, в которое посетители приходят столь редко, что у счетчика посещений успевают приржаветь предпоследняя цифра, я обнаружил зрелище не слишком одетой девушки, которая недвусмысленно предложила мне пообщаться теснее.
Она выглядела точь-в-точь как мои подростковые сновидения, и даже, подобно им, была окутана легкой дымкой. Глаза ее волшебно блестели, и она этак ненавязчиво двигала плечиком, пробуждая где-то в дебрях моей души инстинкт защитника, в такт постукиванию маленьких изящных пальчиков по бронзовому изгибу бедра, которое вызывало совершенно противоположное желание немедленно напасть на нее. Я, признаться, не обратил внимание на окружавшую ее обстановку, но и теперь я вполне уверен в том, что оно, при всей своей пестрой аляповатости, создавало идеальную оправу этому истинному бриллианту, дополняя и оттеняя ее неземную красоту.
Увы, мой жизненный опыт подсказывал мне, что соглашаться на общение не стоит. Во-первых, это - единственная симпатичная девушка в этом местоположении, и ее работа – завлекать клиентов. Внутри же я обнаружу негустую стайку женщин, похожих на синих куриц времен перестройки, которые будут показывать себя в ракурсах, заставляющих задуматься о пенсии по инвалидности и прочих неприятных вещах. Во-вторых, меня неизбежно пригласят пройти в особую зону, естественно платную. И, если я совершу глупость показать свою кредитную карточку, то меня будут медленно лишать честно заработанных денег – как тот жалостливый хозяин, который отрубал хвост собачке по частям. И так до тех пор, пока исчерпается либо счет, либо срок годности карточки.
Поэтому я молча полюбовался на красавицу, пытаясь вспомнить, как звали ту мою одноклассницу, на которую она была похожа, и тихо сказал проводнику следующий адрес. Проводник, не говоря ни слова, двинулся прочь, а я за ним, но тут дорогу нам преградили сразу две женщины, одетые ничуть не скромнее первой, вразнобой заголосив: «Как, вы уже уходите?» Они не были похожи на моих одноклассниц, и мне немедленно захотелось от них отделаться.
Сначала я честно пытался вежливо отвечать на заданные мне вопросы (ах уж эта привычка играть по правилам!), но быстро понял, к чему они клонят. Когда мне задали вопрос «Вы покидаете нас, потому что не знаете, что пользование кредитной картой в пределах нашего портала абсолютно безопасно?», я просто оттолкнул одну из девиц и попытался пройти. Как же! Не дав мне сделать и шагу, она вернулась с двумя подругами! Я все еще думал о своей однокласснице, и потому повторил попытку. На этот раз девица не вернулась, но к месту событий резво подбежали еще четверо, и, перебивая друг друга, стали настойчиво приглашать меня познакомиться поближе. Это уже напоминало толпу.
Меня несколько нервируют большие собрания людей, потому я не люблю вокзалы и ездить в метро, и я слегка запаниковал. Надеясь на свою силу и то, что я успею убежать, стоит мне прорвать их ряды, я бросился напролом, мягко, но настойчиво отталкивая этих девиц. Увы! Каждая дама с резвостью, похвальной в другой обстановке, присылала все новых и новых сообщниц.
Остановившись, я обнаружил себя в окружении приличных размеров толпы женщин, разных, но чем-то похожих друг на друга. Они галдели, подмигивали, и делали неприличные телодвижения, пытаясь меня завлечь. Оставаясь на месте, я огляделся, и попытался успокоиться. По крайней мере, обнаженная плоть прибывать перестала – ага, те, кого я еще не прогнал, не рисковали бежать за подмогой, рискуя пропустить момент, когда я сдамся и выберу кого-нибудь из них.
«Проводник!» - подумал я. «Надо пристрелить проводника!»
Другого выхода не было. Я сосредоточился, и, найдя его хэндл, убил его безо всякой жалости...
27 характерных отличий киношных компьютеров
Суперкомпьютеры, которые использует HАСА, ЦРУ, или другое правительственное учреждение, всегда имеют очень простой графический интерфейс.
Если же графического интерфейса нет, то используется чрезвычайно мощная текстовая командная оболочка, понимающая литературный английский (такая оболочка предоставляет доступ к любой нужной информации, стоит только набрать что-то вроде "ACCESS THE SECRET FILES" на первой попавшейся клавиатуре).
У текстовых редакторов нет курсора.
Никогда не используется пробел при наборе текста.
Персонажи фильмов никогда не печатают с ошибками.
На любом мониторе буквы имеют размер в несколько сантиметров.
Для того, чтобы заразить компьютер разрушительным вирусом, достаточно просто набрать "UPLOAD VIRUS" (фильм "Fortress").
Все компьютеры соединены. Вы можете считать информацию с компьютера главного негодяя даже в том случае, если он выключен.
Мощные компьютеры пищат при каждом нажатии на клавиши или перерисовке экрана.
Некоторые компьютеры замедляют вывод на экран так, чтобы вы могли читать текст по мере вывода, а наиболее продвинутые компьютеры при этом еще и эмулируют звук матричного принтера.
Все панели управления работают под напряжением в тысячи вольт и имеют вмонтированные взрывные устройства.
О сбое компьютера вы узнаете по яркой вспышке, клубам дыма, фонтану искр и взрыву, который отбросит вас от клавиатуры.
После набора текста компьютер можно спокойно выключить, не сохранив данные.
Хакер способен взломать самую крутую защиту, угадав пароль со второго раза.
Вы можете обойти сообщение "PERMISSION DENIED" с помощью команды "OVERRIDE" (фильм "Demolition Man").
Любой компьютер загружается не более чем за 2 секунды (вместо примерно 2 минут для обычного РС или получаса для больших систем, которые могут работать 24 часа в день 365 дней в году без перезагрузки).
Сложные вычисления и загрузка больших объемов данных завершаются не более чем за три секунды. Модемы в фильмах обычно передают данные со скоростью не менее двух гигабайт в секунду.
Когда перегревается главный компьютер атомной станции или ракетной базы, все панели управления взрываются – непосредственно перед взрывом всего здания
Если вы просматриваете файл, а его кто-то удаляет, то файл исчезает с экрана (фильм "Clear and Present Danger")
Если на дискете есть зашифрованные файлы, то стоит вам вставить ее в дисковод – и у вас сразу запросят пароль.
компьютеры могут обмениваться информацией друг с другом независимо от того, кто их изготовил и в какой галактике (фильм "Independence Day").
Любые дискеты читаются на любом компьютере, оснащенном дисководом, любые программы идут на любой платформе.
Чем совершеннее компьютер, тем больше у него кнопок (фильм "Aliens"). При этом работа на таком компьютере требует весьма профессионального оператора, так как на кнопках нет никаких надписей, за исключением кнопки "SELF-DESTRUCT")
Большинство компьютеров, даже самые маленькие, способны работать в режиме воспроизведения реалистичной трехмерной интерактивной анимации фотографического качества
Лаптопы всегда могут работать в режиме полноэкранного видеофона в режиме реального времени и имеют производительность, сопоставимую с Cray'ем
Когда персонаж смотрит на монитор, изображение настолько яркое, что проецируется на его лицо (фильмы "Alien" или "2001")
Поиск в интернете всегда дает вам именно то, что вы искали, независимо от того, насколько общие ключевые слова вы задали (в фильме "Mission Impossible" Том Кpyз задал поиск по ключевым словам "file" и "computer" и получил 3 (три) ссылки).
Идеальный тестер
Автор: Антон Злыгостев aka Sinclair
The RSDN Group
Источник: RSDN Magazine #2-2004
Опубликовано: 24.06.2004
Исправлено: 13.03.2005
Версия текста: 1.0
Любой сотрудник некрупной IT-компании подтвердит, что четверг – самый скучный день недели. В самом деле - в понедельник все разгребают пришедшую за выходные почту, ругаются с поставщиками кофе и воды для кулера, и курят на лестнице, рассказывая друг другу анекдоты для борьбы со сном и похмельем. Во вторник задачи розданы, силы свежи, и код пишется на одном дыхании. В среду количество полезной работы за единицу времени достигает своего апогея... Пятница, естественно, проходит под знаком ожидания чьего-нибудь дня рождения или просто пивной вечеринки, поэтому квака начинается с самого утра, и большинство народу даже не делает вид, что работает. Те немногие, кто затрудняется имитацией деятельности, держат Экслера или RSDN открытым в пятом окне эксплорера, чтобы в таскбаре не было видно адреса.
А вот четверг – это момент кризиса. Переход от работы к удовольствию. Начинать читать обзоры фильмов еще рановато, а работать не дают мысли о завтрашней пятнице.
Этот четверг ничем не отличался от обычных. Часов с 12 я начал испытывать просто нестерпимое желание найти повод поотлынивать. Поэтому когда в аське всплыл вопрос шефа "Не хочешь пособеседовать тестеров?", я долго не думал.
Напрягаться я не собирался, благо "собеседников" и без меня было вполне достаточно – технический директор, директор по маркетингу и главный (он же единственный) сисадмин.
Заливая четвертую за сегодня кружку Nescafe Gold водой из кулера (наш народ зовет эту жидкость смолой, за цвет, вкус и консистенцию), я пообщался с директорами и выяснил, что, во-первых, место у нас одно, а во-вторых, кандидатов двое. Такой высокий конкурс директор по маркетингу объяснял грамотным проведением рекрутинговой кампании (он сам составлял макет объявления для нашего сайта), а технический директор – замедлением падения курса доллара. Поскольку мы работаем на заказчиков, не говорящих по-русски, за курсом доллара наши сотрудники следят пристальнее, чем ребята из Редмонда за курсом акций Microsoft.
Налив себе кофе, мы переместились в конференц-зал.
Первым кандидатом оказалась симпатичная девушка в джинсах и свитере. Я пропустил мимо ушей ее резюме, обратив внимание лишь на упоминание какого-то сертификата Quality Assurance Engineer. Во время собеседования девушка вела себя довольно-таки уверенно, то и дело поминала Transition Phase, CMM, ISO9000 и трехлетний опыт работы. Все это время я смотрел в окно и думал о том, что сидеть она будет в комнате через коридор, и что я не смогу использовать обычный лексикон при объяснении тонких моментов тест-плана.
Вторым был парень-студент, во взгляде которого читалась острейшая нужда в денежных средствах. На этот раз я принял участие в собеседовании и узнал, что он – гениальный программист и веб-дизайнер, что у него даже есть свой сайт, и что он сейчас пишет IDE для PHP на MAC. Я бы выяснил, почему он предпочитает MAC, но поймал взгляд технического директора и свернул беседу.
После ухода кандидатов мы несколько минут поспорили о проблемах девушек в чисто мужских коллективах и проблемах излишней амбициозности читателей журнала ксакеп, и сошлись на том, что "теперь хоть матов будет меньше", - девушка была очевидным выбором. Мы уже направились к выходу, когда у технического зазвонил мобильник. Обменявшись парой реплик со своим собеседником, технический зажал микрофон рукой и шепотом известил нас о том, что у входа в офис ждет еще один кандидат. Мы переглянулись. Решение было уже принято, но как-то неудобно было давать от ворот поворот человеку, не поленившемуся притащиться к нам на окраину. Технический велел охране впустить, и мы вернулись в конференц-зал.
Третий кандидат выглядел немного моложе моих лет. Улыбнувшись, он представился и сел в кресло, бросив папку на стол. Маркетинговый директор порылся у себя в бумагах и спросил:
- Извините, я что-то не вижу вашего резюме. Вы не присылали его нам?
- Присылал, - ответил кандидат, с интересом оглядываясь вокруг, - Но у вас почтовый сервер глючит.
Это было не очень хорошее начало. Мы все-таки IT-компания, и достаточно тщательно следим за тем, чтобы у нас все работало. Если у него нет резюме – пусть так и скажет и не тратит наше время. Технический директор с некоторой даже обидой спросил:
- Может быть, проблема все же не в сервере? Со связью что-нибудь, или почтовый клиент не сработал? Вы, кстати, не с мейл.ру отправляли?
- Нет, - ответил кандидат, продолжая оглядываться. Его внимание привлекла настольная лампа. Щелкнув пару раз выключателем, он сказал: "Смотрите-ка!" – и полез под стол. Лампа вспыхнула и перегорела. Кандидат вылез из-под стола и продолжил:
- Если оставить выключатель в промежуточном положении, а потом включить шнур в розетку, лампа перегорит!
- Спасибо. Может быть, вы принесли резюме с собой? - поинтересовался я.
- Да, конечно, вот оно, - он подал лист А4, - а вот это - распечатка ответа вашего почтового сервера, - он подал еще один лист.
Сисадмин с интересом взял его из моих рук и пробежал глазами:
- Но!.. А как?.. Странно... Я сейчас! - с этими словами он почти выбежал из комнаты.
Директора тем временем изучали резюме. Я смотрел на кандидата. Он повернулся назад, и что-то настраивал в кресле. Это было обычное пятилапое офисное чудовище на колесиках, распространитель сколиоза и отложения солей. Наконец в кресле что-то щелкнуло, и потенциальный тестер оказался на полу. Это, казалось, ничуть его не расстроило:
- Я так и знал! Дефект в системе регулировки пневматического амортизатора. Если отогнуть ручку вверх, а потом вбок...
- Принеси ему стул, - попросил меня технический директор, и я вышел из комнаты.
В коридоре я встретил сисадмина. На его лице было такое выражение, как если бы он обнаружил пиво в одной из бутылей для кулера.
- Что там с почтовиком? - спросил я.
- Ты будешь смеяться. В его письме MIME-boundary нарушает RFC 2046. Ничего страшного, но наш сервер падает при приеме такого текста! Измени хотя бы один символ – все пройдет нормально. Я посмотрел в логи – сервер падал четыре раза в понедельник. Судя по всему, именно из-за этого товарища.
Вернувшись, мы застали технического директора за попытками задвинуть жалюзи. Кандидат увлеченно объяснял, каким именно способом он сумел их заклинить. Маркетинговый директор смотрел на него уже почти с ненавистью. За какие-то пять минут это чудо сумело сломать лампу, кресло, жалюзи и продемонстировать багу в нашем почтовике.
- А вот стол у вас хороший, основательный! - сказал кандидат. Как говорил Оззи Осборн, "я начал понимать, что приходит время прощаться".
- Мы с вами свяжемся, до свидания.
- Можно, я от вас позвоню? - спросил этот демон разрушения.
- НЕТ! - ответил технический директор таким голосом, что кандидат мгновенно исчез.
Налив себе еще немного кофе, мы обсудили результаты собеседования. Увы, девушка не прошла.
Сертификат QA Engineer не заменит природного таланта - с таким парнем в команде нам просто не удастся сдать софт, если в нем будет хотя бы один баг.
Завтра пятница, значит – знакомство с новым членом коллектива. Пиво и бильярд в Потерянном Кластере. Пожалуй, я лучше пойду в Пива.NET - пусть попса, но мало ли что он захочет протестировать в баре...
Чудо-программист
У нас в банкирской конторе "Сикоморский и Цесаревич" был программист Вася. Это был чудо-программист.
Программист Вася писал программы на Дельфи. При компиляции он никогда не обращал внимания на хинты и ворнинги. Вася выделял память только тогда, когда возникал аксесс виолэйшын. Если указатель при инициализации случайно указывал на уже выделенную область памяти, то память Вася не выделял.
Один раз Вася написал программу для ГЦИ ЦБ РФ. Программа постоянно висла, и Вася написал для нее вотчдог, который раз в минуту пингал программу, и, в случае чего, перегружал машину. Но программа грузилась гораздо дольше минуты, поэтому вотчдог, грузящийся первым, не получал ответа, и перегружал машину сразу. В таком режиме программа проработала около 4-х месяцев, прежде чем кто-то что-то заметил.
Еще программист Вася написал программу отслеживания объектов на видеокартинке. Для этой цели он запускал стандартную программу, идущую в комплекте с камерой, которая оверлеем выдавала картинку на экран, а потом эту самую картинку прямо из видеопамяти и считывал. Один раз программа показала огромного размера объект, находящийся в неположенном месте, и имеющий явно враждебные намерения по отношению к ГУ ЦБ РФ по Орловской области. Когда пришли разбираться, оказалось, что этим объектом был мессадж бокс с аксесс виолэйшыном. Васина программа считала его из видеопамяти вместе с картинкой.
Еще Вася написал программу для чистки временной директории. Он readdir`ом рекурсивно считывал все директории, начиная с корня временной, и удалял из них все файлы. Надо ли говорить, что первой считанной им директорией была директория с названием ".."? Программа успокаивалась только тогда, когда доходила до своп-файла Windows.
Вот такой у нас был программист Вася.
Из книги "Персональные ЭВМ в инженерной практике", М. Радио и связь, 1989.
...Одним из примеров громоздкой и, по мнению авторов, бесполезной надстройки является интегрированная система WINDOWS фирмы Microsoft. Эта система занимает почти 1 Мбайт дисковой памяти и рассчитана на преимущественное использование совместно с устройством типа ”мышь”...
...Таким образом, читатель уже понял, что среди надстроек над ДОС бывают довольно бесполезные системы, которые только выглядят красиво, а на самом деле отнимают время пользователя, память на дисках и оперативную память ЭВМ. Обманчивая красота таких систем, однако, сильно воздействует на неискушенных пользователей, которые не имели практики работы на машине. Инерция мышления бывает столь сильна, что авторам приходилось наблюдать, как люди, начавшие работать с подобной надстройкой, впоследствии с трудом заставляют себя изучать команды ДОС. Хочется предостеречь от этой ошибки читателей ...
Q&A
Q: У меня не хватает денег на новую мышку, и я хочу разогнать старую. Это можно сделать?
A: Прежде всего нелишне будет напомнить, что всякий разгон – дело чреватое, и, следуя нашим советам, вы действуете на свой страх и риск. Но, в принципе, большинство мышей, выпущенных до 1999 года, успешно разгоняются. Следует, однако, учесть возможные побочные эффекты. Во-первых, во избежание пробуксовок рекомендуем поставить в мышь шипованную резину. Во-вторых, в разогнанной мыши из-за высокой частоты вращения шарика возникает сильный гироскопический эффект, препятствующий отклонению мыши от курса. При программировании или веб-серфинге это не помешает, а вот художнику, которому часто приходится водить мышь по кривой траектории, может создать проблемы. В-третьих, разогнанную мышь необходимо оснастить коробкой передач хотя бы на три скорости – иначе потери мощности сведут все выгоды от разгона фактически к нулю. Ну и, наконец, вам понадобится установить на мышь кулер, который будет отгонять запах горелой резины подальше от рабочего места. Если же ваша мышь выпущена после 1999, то, скорее всего, сделать ничего нельзя: в современных мышах возможность разгона заблокирована аппаратно, а в оптических этому и вовсе препятствует фундаментальный принцип постоянства скорости света.
Q: Когда я сижу за компьютером больше 30 часов подряд, у меня начинают уставать глаза, болит голова и хочется спать. Мой друг говорит, что это из-за низкой частоты кадров. Как ее увеличить?
A: К сожалению, никак: это аппаратное ограничение конструкции монитора. Но проблему негативного воздействия мерцания на глаза можно решить с помощью стробоскопического эффекта: для этого надо моргать с частотой кадровой развертки.
Q: У меня есть пишущий сидюк, но нет болванок R/W. Как мне сделать новую запись на обычную болванку?
A: Вопреки распространенному мнению, на обычные болванки тоже можно писать несколько раз. Причем даже с двух сторон. Для этого вам потребуется обычный фломастер. Информацию следует записывать по часовой стрелке, от краев диска к центру. Количество информации, которую можно записать таким образом, зависит от плотности строк и степени сжатия букв. Этот способ имеет и то преимущество, что для считывания вообще не требуется CD драйв (достаточно обычного сканера), а очистить диск для новой записи можно с помощью простого ластика, смоченного в спирте. Следует, однако, помнить, что метод непригоден для записи звуковых файлов и исполняемых модулей.
Q: Я купил себе крутые колонки, но у меня проблема. Когда я врубаю их на полную мощность, стол так трясется, что компьютер съезжает и падает на пол. Я сменил уже пять драйверов звуковухи и три компьютера. Помогите плиз!
A: Эту проблему легко решить, если отрегулировать длину проводов, идущих к колонкам. Разница должна равняться половине длины волны электрического сигнала. Тогда сигнал будет приходить в левую и правую колонку в противофазе, и вибрация будет взаимно гаситься. Кроме того, рекомендуем укоротить провод питания компьютера – тогда при падении компьютер успеет сам себя выключить и запарковать винчестер.
Q: Хочу купить себе новый корпус, но не знаю, какой выбрать - десктоп или тауэр. Подскажите, какой из них быстрее?
A: Они одинаковы по быстродействию. Хотя в tower'ах электроны, двигаясь по проводам сверху вниз, разгоняются под действием силы тяжести, но они в такой же степени замедляются, когда движутся в обратном направлении, так что суммарный эффект будет таким же, как в desktop-е. Выигрыша можно добиться только в узком классе задач, где данные передаются преимущественно в одном направлении (причем важно не перепутать, в каком именно). Но есть еще одна тонкость. Двигаясь в вертикальном направлении, электроны совершают работу в поле силы тяжести, что требует дополнительного расхода энергии – так что корпуса типа tower менее экономичны.
Q: Мой друг говорит, что винчестер должен крутиться без остановок, тогда от нагревания его емкость увеличивается. Это правда? Если да, то грозит ли выключение потерей данных?
A: Нет, это неправда. Существует, правда, другой эффект, способный увеличить емкость винчестера: под действием центробежной силы данные постепенно смещаются к краю диска и уплотняются там, освобождая место в центральной зоне. Но такой прирост емкости незначителен, а использование этого эффекта требует сложного перепозиционирования головок, поэтому с ним предпочитают бороться. Современные высокоскоростные винчестеры IBM, например, при непрерывной работе периодически останавливаются на несколько секунд, чтобы данные вернулись на место.
Q: Как убить процесс в Win2K (98)
A: Способов несколько
1. Шотган. Пара выстрелов в системник и процесс будет убит наповал. Побочный эффект – будут убиты все остальные процессы.
2. Веревочкой привязываешь лоток сидюка к кнопке резета. Потом программно выдвигаешь лоток. Недостаток – процесс будет убит не окончательно, после перезагрузки его можно будет запустить по новой.
3. Чисто программный. Считываешь с SMBus частоту вращения кулера. Затем начинаешь шевелить головками винта и сидюка с такой же частотой. В результате крыльчатка кулера попадет в резонанс и через некоторое время развалится. В результате остановки кулера процессор перегреется и повиснет. Процесс, естественно, убьется. Если процессор – Athlon, то, возможно, и навсегда.
В подарок папе
Итак, малыши, главное, что вы должны проверить – это отсутствие дома папы. Это для того, чтобы подарок для папы стал действительно сюрпризом. Затем – совсем немного ловкости, сноpовки – и готово.
Так, с помощью ножниц папины дискеты быстро превращаются в легкие и пушистые снежинки. Вырезая их, не сильно сгибайте дискеты, возможно папа будет потом ими пользоваться и будет ругаться, если они не будут правильно вставляться в дисковод.
Из мелко раздробленных компакт-дисков получаются замечательные маленькие льдинки, которыми вы можете украсить коврик для мышки, предварительно смазав его каким-нибудь клеем.
Отсоединив мышку, дорисуйте ей маминым лаком для ногтей глазки. Затем аккуратно подрежьте и распушите хвостик. Также ножовкой разрежьте пополам шарик, приклейте получившиеся части плоской стороной к бокам корпуса мышки и покрасьте в черный цвет. Видите, какие получились замечательные ушки!
И, наконец, фиеста. Снимите крышку с корпуса системного блока и аккуратно засыпьте в нем пустые места гвоздиками или шурупами. На худой конец можете просто вставить большую отвертку. Затем поставьте крышку на место. Представляете, как обрадуется папа, включив компьютер и увидев самый настоящий фейерверк! И если вы хорошо постараетесь, то папа сможет увидеть его даже в доме напротив.
Сюрприз готов. Теперь только осталось дождаться папы. И еще, маленькое замечание. Чтобы папа понял, что это действительно новогодний подарок, а не просто ваша обычная ежедневная шутка, необходимо правильно себя вести. Сразу после фейерверка громко скажите папе: "С Новым Годом!", подойдите к нему и попросите пойти с ним играть в снежки. Я думаю, сегодня он согласится.
И не забудьте соблюсти меры безопасности. Держитесь от папы подальше во время включения компьютера и ни в коем случае не сидите в это время у него на руках. Ведь папу может очень сильно тряхнуть током, а тогда пострадаете и вы.
А что скажет мама? – спросите вы. А мама, я думаю, вас поддержит. И если вы ее уговорите, то наверняка еще и поможет. Ведь она тоже любит папу.
Травник
Мастдай висючий – многолетнее растение семейства мелкомягких. Изначально произрастало в Северной Америке, откуда распространилось по всему миру. Обладает большими красивыми листьями прямоугольной формы, которые сворачиваются, если ткнуть в угол.
Умеренно ядовито, обладает наркотическим действием; попавшие в зависимость от мастдая, как правило, не могут самостоятельно избавиться от этого пристрастия, даже сознавая его пагубность. Растение весьма капризно и требует постоянного заботливого ухода; у себя на родине растет только на почве, обильно удобренной долларовыми купюрами, однако отечественными селекционерами выведены разновидности, не требующие такого удобрения.
В народной медицине применяется при слабоумии, расстройствах речи, чтения и письма, заторможенности; не избавляет от самих заболеваний, но их симптомы перестают бросаться в глаза.
Хакер кусачий (взлом-трава) – неприметное на вид растение, произрастающее в глухих, скрытых от света местах. Это растение окружено многочисленными легендами и домыслами; все слышали о хакере, но мало кто его видел. В большинстве стран продажа и приобретение плодов хакера запрещено законом. Hародная медицина рекомендует его как средство от любых запоров, а также парольной забывчивости. Согласно народным поверьям, цветущий хакер, найденный в ночь на Ивана Купалу, избавляет от нужды в деньгах.
Ламер вонючий (облом-трава, ложный хакер) – растение, внешне практически не отличимое от хакера, но не обладающее целебными свойствами последнего. Если его задеть, издает резкий неприятный запах.
Фидошник полуночный (почтовик, мыльник) – многолетнее растение, широко распространенное в нашей стране. Растет вблизи телефонных линий. Днем пребывает в сонном состоянии, по ночам распускается (иногда до неприличия). Hекоторые экземпляры фидошника обладают целебными свойствами, но немало и тех, которые вызывают тяжелое отравление.
Размножается почкованием пойнтов, а также спорами, которые можно в изобилии наблюдать в так называемых конференциях (областях произрастания фидошника). Цветы фидошника обладают характерным пивным запахом.
Чата комнатная (треп-трава, клаводав) – растение семейства сетевых. Употребление листьев чаты может вызвать отравление (так называемую чаталепсию).
Симптомами чаталепсии являются недержание речи, утрата чувства времени и реальности, покраснение глаз, в тяжелых случаях – бессвязный бред, судороги в кистях и пальцах, утрата работоспособности, возникновение зависимости наркотического типа. В то же время в малых дозах и под наблюдением врача чата может применяться при депрессии, остром и хроническом безделье.
Релизник глючный (бета сырая) – растение с большими красивыми цветами, издающими приятный аромат. Однако любоваться им можно только издали. Принесенные домой, его цветы быстро вянут и повисают, а плоды, хотя и кажутся поначалу приятными на вкус, спустя некоторое время вызывают весьма неприятные симптомы (тошнота, рвота, головная боль, повышенная раздражительность).
Будучи посажен в один горшок с мастдаем, может убить последний. В геологических отложениях третичного досового периода найдены окаменелости другого растения этого рода – релизника безглючного, но к нашему времени оно, судя по всему, полностью вымерло.
Бутявка системная (загрузень) – многолетнее растение семейства дискетных. Его часто можно встретить в тихих, темных, укромных местах: шкафах, ящиках столов. Корень бутявки применяется при тяжелых отравлениях мастдаем висючим и бетой сырой.
Видюха тайваньская – растение семейства многоцветных. У одного экземпляра видюхи может быть более полутора миллионов цветов! Растет преимущественно на Тайване и в Сингапуре. Hе следует путать этот вид с видюхой китайской (ложной видюхой), употребление которой чревато непредсказуемыми последствиями.
Hастойка из цветов видюхи применяется как антидепрессант; в то же время обладает легким наркотическим воздействием, особенно при выраженной игровой зависимости. Побочным эффектом может быть резь и покраснение глаз. Противопоказанием к применению также является дальтонизм.
Аська пискучая (пагерус мирабилис) – растение семейства сетевых, широко распространенное как у нас, так и за рубежом. С помощью аськи можно контролировать состояние окружающей среды: на чистых телефонных линиях она цветет зелеными, а на грязных – коричневыми цветами.
Широко известна необычная способность аськи издавать звуки, когда ее пинают. Относительно ее полезности до сих пор идут споры; многие считают аську вредным сорняком и относятся соответственно – существует даже выражение "послать по аське" (ср. "послать по матушке"). В русских деревнях в последнее время распространился обычай обрывать аське баннеры.
Юзер Вася Чайников решил приобрести себе компьютер. Новый компьютер стоит в фирме 1000 у. е. Но, поскольку у Васи уже был блок питания, он решил докупить остальное и собрать компьютер самостоятельно. Он купил материнскую плату за 100 у. е., процессор за 200 у. е., винчестер за 150 у. е. и монитор за 300 у. е. Сколько у. е. сэкономил Вася Чайников, если на третьей секунде работы его блок питания сжег все остальные комплектующие?
Юзер Вася Чайников познакомился в чате с 16-летней девушкой Машей и попросил прислать ее фотку. Так как Маша не знает других форматов, кроме bmp, ее фотка занимает 15 Мб. У Васи коннект с провайдером на 2400 бит/сек. При этом связь рвется каждые 20 минут, а дозвон после этого занимает 30 минут. Льготный тариф действует с 3:00 до 5:00. Сколько лет будет девушке Маше, когда Вася докачает ее фотку?
Программистка Клава Мышкина в рабочее время ищет в сети кулинарные рецепты. Yandex дал ей 983 ссылки, а Rambler – 736. Насколько Yandex вреднее Rambler для производственного процесса?
Хакер Вова Крутой написал программу, подбирающую пароль из 8 символов за час. За какое время Вова Крутой подберет забытый пароль из 32 символов к своему собственному компьютеру, на котором находится единственный экземпляр программы?
Когда юзер Вася Чайников получает письмо, в котором ему обещают на халяву $10 000, он всегда следует изложенным там инструкциям. В результате на следующий день его адрес попадает еще в два спамерских листа рассылки.Сколько денег надеется получить на халяву Вася Чайников спустя три месяца? Как скоро он станет потенциально богаче Билла Гейтса?
Программист Сидор Пентюхов пишет девушке, с которой познакомился в чате, 2 письма в день объемом по 4 килобайта каждое, а юзер Вася Чайников – 5 писем по 2 килобайта. Каков будет их суммарный траффик к тому моменту, когда они обнаружат, что переписываются друг с другом? (мое прим.: здесь Лепра, случаем, не пробегала?)
Согласно закону Мура, вычислительная мощность компьютеров удваивается каждые 18 месяцев. Каждая следующая версия продуктов корпорации Microsoft работает в полтора раза медленней предыдущей. С какой скоростью корпорация Microsoft должна выпускать новые версии, чтобы пользователи не заметили действия закона Мура?
Признаки того, что Вы слишком серьезно воспринимаете COM:
После смерти Вашего домашнего животного лучшее объяснение, что Вы смогли сказать детям, звучало так: "Счетчик ссылок Шарика наконец-то достиг нуля".
Как получить канал передачи данных с бешеной скоростью и без затей?
Приносит девочка из школы сочинение, оценка – три с минусом. Комментарий учителя – "не по теме, слишком много цитат". Девочка плачет, мол за что... Папаша-фидошник читает и говорит: – ну как же... оффтопик, овеpквотинг...
VP> Может, кто-то знаком с экстpемальным пpогpаммиpованием?
Я занимался. Вчеpа. В кваpтиpе +4 гpадyса, освещение пеpиодически вырyбается. Садишься на стyл, на колени ноyтбyк, на пол кеpосиновyю лампy (чтобы теплый воздyх дал возможность оттаять вентилятоpy, котоpый по пpостоте дyшевной все еще чего-то пытается охлаждать). Пальцы от холода болят. К yказательным пальцам бинтом пpиматывается каpандаш, чтобы не было больно тыкать в клавиши обмоpоженными подyшечками пальцев. Язык пpогpаммиpования особого значения не имеет.
Нагрузим грузовик CD-ROM-ами...
Оценим количество дисков, которое влезет в кузов. Один диск – примерно 1 мм толщиной. Возьмем 1.1, чтобы учесть неплотность прилегания и погрешность измерения (я поленился лезть за штангелем, прикинул линейкой). Возьмем глубину кузова за полметра. Грузовики бывают разные, но у нас, предположим, будет вот такой. Ну и площадь кузова примем равной 10 кв.м. Опять же, бывают больше, бывают меньше, наш – 10.
В такой грузовик влезет (500/1.1 диска в высоту и ((10000*10000)/(120*1) = 94 диска в одном слое. Это порядка 3 000 000 дисков. Трех миллионов, если прописью.
Это около 1800 терабайт. При скорости в 100 км/ч и расстоянии в 100 км скорость передачи данных будет около 520 гигабайт в секунду.
Дотошные будут спрашивать, мол, откуда эти диски взялись, за какое время они будут записаны и за какое – прочитаны, и сколько это все будет стоить, но мы ответим протестующе и гневно – "Гражданин! Пятьсот гиг в секунду! Не ломай кайф!"
Сегодня Госдума РФ приняла во втором чтении поправки в ст. 1 и 15 в федеральный закон "О противодействии экстремистской деятельности". Они устанавливают новые признаки террористической деятельности.
Теперь экстремистской деятельности будет считаться любое воспрепятствование законному воздействию органов государственной власти и избирательных комиссий, а также соединенное с насилием или угрозой его применения.
Также экстремизмом признается публичная клевета в отношении высших чиновников РФ и субъектов РФ при исполнении ими своих должностных обязанностей. Однако сам факт клеветы придется устанавливать в судебном порядке.
Особенно огорчил последний абзац. Потому что под по нему можно обвинить человека независимо от того, говорил ли он правду или клеветал. Для наших чиновников правды нет, поэтому все - клевета. И если СМИ скажет что-то "неугодное", то есть предлог чтобы закрыть им рот.
Мда... Оглядываясь вокруг себя, я иногда чувствую себя просто эдаким интеллигентом, заучкой и вообще интеллектуальным человеком =) Впрочем, в кругу своих уважаемых избранных это чувство встает на свое место =)
А вообще, лучше не сравнивать себя с другими - легче жить будет =)
Смерть 17-месячной жительницы Филадельфии Элайи Турман (Alayiah Turman) наступила в результате тяжких телесных повреждений, которые нанес девочке ее же собственный отец.
25-летний Тайрон Спеллман (Tyrone Spellman) славился своей страстной привязанностью к видеоиграм. В порыве азарта молодой папаша забывал обо всем, включая свою любимую дочь. Однажды, пребывая в подобном экстатическом состоянии, Спеллман рассчитывал пройти очередную игру, однако осуществить заветную цель помешала маленькая Элайа, случайно выдернувшая из розетки шнур видеоприставки. Рассерженный отец несколько раз ударил дочку, после чего обнаружил, что девочка не дышит. Вернувшейся домой жене испуганный Спеллман сказал, что малышка заснула. Горе-отцу уже предъявлено обвинение в убийстве.
Вот такая была новость. А знаете какие к ней были комментарии? Очень добрые. Даже этот папаша выглядит как школьник, случайно порвавший листок в журнале для оценок. От простых рекомендаций "да расхуячить его надо" до подробного описания процесса "дайте мне его на пять минут, я его пидарну, устрою ему варфаламеевскую ночь и утро стрелецкой казни вместе взятые", в том числе и пожелания нескорой и мучительной смерти, а простых обзывательств - ублюдок, еблан, чмо, сволочь, пидар и прочее - нет лишь в каждом десятом комментарии, в том числе в моем. Я оставил комментарий с обращением к народу, призывая взглянуть на себя немного. Что вы об этом думаете? Только не надо говорить про виновного, да, случай ужасный, но это очевидно всем, в этом мнение едино. А о наказании говорить не нам, не мы судьи. Я имею в виду именно реакцию толпы.
Блин, какие типы ударов могут быть использованы в уличном бою? Я только "Хук" придумал и "Удар с размаха". Зачем мне это? Для игры. Вот, для подтверждения, черновик алгоритма боя выкладываю за морем.
- Бой пошаговый (можно и иначе, но это не аркада, а тактика)
- Главным атрибутом боя является параметр "Действия" (идея взята из Fallout). "Действия" делятся БД (быстрые действия) и СД (Сильные/силовые действия).
- Количество действий определяется по атрибутам игрока. Усталость и низкое здоровье уменьшают количество действий. Тип, количество и вес брони так же уменьшают количество действий.
- Действия распределяются на атаку, блок и уворачивание.
- Для каждого вида оружия существует определенный список типов удара. Каждый тип несколько изменяет свойства оружия при ударе. (Для примера - мечем можно ткнуть либо рубить; первый тип увеличивает вероятность пробить броню или блок, но уменьшает урон, вторым типом менее вероятно пробить броню или блок, но урон будет больше)
- Удар наносится по нескольким точкам - голова, плечи, грудь, спина, живот,
поясница, бедро и голень.
Голова - существенная вероятность промаха, но почти наверняка удар будет
смертельным, если броня будет пробита.
Плечи - небольшая вероятность промаха и возможность обезаружить противника.
Грудь - почти нулевая вероятность промаха, но не очень серьезные повреждения
Спина - большая вероятность промаха, но большая возможность нанести критическую
травму
Живот - почти нулевая вероятность промаха, но не очень серьезные повреждения
Поясница - средняя вероятность промаха, не очень большие повреждения и возможность
нанести критическую травму
Бедро - существенная вероятность промаха, но большая вероятность нанести противнику
травму.
Голень - большая вероятность промаха, но большая вероятность нанести противнику
травму.
- Урон от удара определяется оружием, броней, атрибутами и умениями атакующего и обороняющегося.
- Получение критической травмы означает, что игрок не сможет наносить или блокировать
удары.
- Получение обычной травмы означает, что игрок потеряет половину своих ОД.
- Вероятность получения травмы обычно небольшая - 5-10%; критической травмы - 1-5%.
- Есть несколько видов травм, каждая из которых уменьшает определенные атрибуты.
- Чем больше очков быстрого действия будет выделено на удар, тем меньше вероятность промаха.
- Чем больше очков силового действия будет выделено на удар, тем больший урон наносится при успешном ударе.
- Блок ставится на те же точки. Блок значительно уменьшает повреждения от удара.
- Вероятность пробить блок обычно небольшая.
- Чем больше очков быстрого действия будет выделено на блок, тем больше вероятность отбить удар.
- Чем больше очков силового действия будет выделено на блок, тем меньше повреждений от блокированного удара.
- Щит (является тяжелой броней) добавляет свойства щита как тяжелой брони блокируемой точке, но многократно уменьшает вероятность успешного блока.
- Навык "Тактика" увеличивает вероятность избежать удар. Бой между умелыми бойцами может быть продолжительным не потому, что у них много здоровья (напротив, уровень здоровья не меняется с повышением уровня игрока), а потому, что они умело уворачиваются от удара или же блокируют его.
- Все БД и СД, не потраченные на удар или блок, идут на уворачивание.
- Количество БД и СД на удар/блок варьируется от минимального до максимального. Оба этих значения определяются по типу оружия и удара/наличию и свойствам щита, точке атаки/блока, атрибутам атакующего/обороняющегося, навыкам атакующего/обороняющегося.
- Существует два типа брони: легкая и тяжелая.
- Тяжелая броня полностью защищает от ударов. Существует вероятность пробить ее. Если она пробита, то уменьшает урон на 25%.
- Вероятность пробивания тяжелой брони определяется оружием (тип, свойства, качество), броней (тип, свойства, качество)(в расчет берется только та броня, на которую пришелся удар - если удар по голове, то броней является только шлем, а не суммарные или среднеарифметические свойства всей брони), а так же силой атакующего;
- Легкая броня не защищает от удара, но эффективнее уменьшает урон, чем пробитая тяжелая броня.
- Каждое оружие обладает свойствами:
Тип - тип оружия (меч (короткий, длинный, клеймор), топор (топор, секира), булава(булава, цеп), пика(копье, пика), лук(короткий, длинный, арбалет), ружье(короткое, длинное)
Сплав - металл, из которого сделано оружие (медь, железо, сталь, булатная сталь, сталь и титан, титан, титан и алмаз - артефакты)
Урон - минимальный урон от оружия. Увеличивается в соотв. с атрибутами и навыками игрока и типом удара.
Вес - вес оружия. Влияет на минимальное и максимальное количество БД и СД на удар.
Пробивание - уровень пробивания тяжелой брони.
Качество - уровень износа оружия. Чем меньше это свойство, тем меньше урон от удара и тем больше вероятность сломать оружие.
//Константы: (Приблизительные значения. Будут меняться по ходу разработки игры)
//Точки:
//Все константы этой группы - числа типа Float, умноженное на 100. Их фактическое значение будет [число]/100
//Разрыв бедренной артерии (Уменьшение здоровья на 100% в час)
ГоленьВерПромаха = 75
ГоленьВерТравмы = 15
ГоленьВерКритТравмы = 0
ГоленьМнож = 150
//Травмы голени:
//Ушиб голени (Вын-25%, Скр-25%)
//Трещина берцовой кости (Сил-25%, Вын-25%)
//Вывих голеностопного сустава (Скр-25%)
//Типы ударов:
// Вес оружия является множителем для БД и СД.
// Броня является множителем для уровня брони оружия.
// Формула (Урон*(УдарСД-МинСД)+УронМин)/100 является множителем для урона оружия.
// Формула (Блок*(УдарБД-МинБД)+БлокМин)/100 определяет вероятность пробивания блока.
// Формула (Броня*((УдарБД-МинБД)+(УдарСД-МинСД))+100)/200 является множителем для уровня пробивания брони оружия.
//Меч:
//Колющий - прямой быстрый короткий удар. Наиболее требователен к СД, наносит не такие большие повреждения, но наиболее эффективно пробивает броню и блок.
КолющийМечМинБД = 1
КолющийМечМксБД = 24
КолющийМечМинСД = 4
КолющийМечМксСД = 8
КолющийМечУрон = 10 //От 70 до 110
КолющийМечУронМин = 70
КолющийМечБлок = 3 //От 21 до 90
КолющийМечБлокМин = 21
КолющийМечБроня = 3,0 //До 140
//Секущий - Боковой размах и удар. Наносит хорошие повреждения, но из-за большой площади удара не так эффективен против брони.
СекущийМечМинБД = 3
СекущийМечМксБД = 16
СекущийМечМинСД = 3
СекущийМечМксСД = 16
СекущийМечУрон = 5,4 // от 100 до 170
СекущийМечУронМин = 100
СекущийМечБлок = 4 // от 18 до 60
СекущийМечБлокМин = 18
СекущийМечБроня = 1,5 // до 120
//Рубящий - Размах с плеча и мощный удар. Из-за большого расстояния размаха требует много БД. Очень большие повреждения, хорошо пробивает броню, но легко блокируется.
РубящийМечМинБД = 4
РубящийМечМксБД = 8
РубящийМечМинСД = 2
РубящийМечМксСД = 24
РубящийМечУрон = 4,5 // от 120 до 220
РубящийМечУронМин = 120
РубящийМечБлок = 2,5 //от 5 до 15
РубящийМечБлокМин = 5
РубящийМечБроня = 1,5 // до 120
//Топор:
//Секущий - удар с размаху. Достаточно эффективно пробивает броню и не требует много БД и СД. Эффективен против блока.
СекущийТопорМинБД = 2
СекущийТопорМксБД = 24
СекущийТопорМинСД = 2
СекущийТопорМксСД = 8
СекущийТопорУрон = 10 //от 100 до 160
СекущийТопорУронМин = 100
СекущийТопорБлок = 1,8 //от 18 до 60
СекущийТопорБлокМин = 20
СекущийТопорБроня = 1,5 //до 120
//Рубящий - размах с плеча и удар. Слишком неточный, чтобы пробить броню, но не требователен к БД и СД.
РубящийТопорМинБД = 3
РубящийТопорМксБД = 16
РубящийТопорМинСД = 1
РубящийТопорМксСД = 16
РубящийТопорУрон = 6 //от 100 до 190
РубящийТопорУронМин = 100
РубящийТопорБлок = 2,3 //от 10 до 40
РубящийТопорБлокМин = 10
РубящийТопорБроня = 1,5 //до 120
//Диагональный - размах с противоположного плеча и удар. Смертоносный удар. Тоже не точный, но это вполне компенсируется силой удара.
ДиагональныйТопорМинБД = 4
ДиагональныйТопорМксБД = 8
ДиагональныйТопорМинСД = 1
ДиагональныйТопорМксСД = 24
ДиагональныйТопорУрон = 4,8 //от 120 до 230
ДиагональныйТопорУронМин = 120
ДиагональныйТопорБлок = 2,25 //от 5 до 10
ДиагональныйТопорБлокМин = 5
ДиагональныйТопорБроня = 2,22 //до 130
//Булава:
//Секущий - удар с размаху.
СекущийБулаваМинБД = 2
СекущийБулаваМксБД = 24
СекущийБулаваМинСД = 2
СекущийБулаваМксСД = 8
СекущийБулаваУрон = 10 //от 100 до 160
СекущийБулаваУронМин = 100
СекущийБулаваБлок = 3,5 //от 18 до 60
СекущийБулаваБлокМин = 18
СекущийБулаваБроня =
//Рубящий - размах с плеча и удар.
РубящийБулаваМинБД = 3
РубящийБулаваМксБД = 16
РубящийБулаваМинСД = 1
РубящийБулаваМксСД = 16
РубящийБулаваУрон = 6 //От 100 до 190
РубящийБулаваУронМин = 100
РубящийБулаваБлок = 2,3 //от 10 до 40
РубящийБулаваБлокМин = 10
РубящийБулаваБроня = 1,5 //до 120
//Диагональный - размах с противоположного плеча и удар.
ДиагональныйБулаваМинБД = 4
ДиагональныйБулаваМксБД = 8
ДиагональныйБулаваМинСД = 1
ДиагональныйБулаваМксСД = 24
ДиагональныйБулаваУрон = 4,8 //от 120 до 230
ДиагональныйБулаваУронМин = 120
ДиагональныйБулаваБлок = 2,25 //от 5 до 10
ДиагональныйБулаваБлокМин = 5
ДиагональныйБулаваБроня = 2,22 //до 130
//Пика:
//Колющий сверху - размах над плечем и удар. (мизинец палец ближе всего к острию)
КолющийВПикаМинБД
КолющийВПикаМксБД
КолющийВПикаМинСД
КолющийВПикаМксСД
КолющийВПикаУрон
КолющийВПикаУронМин
КолющийВПикаБлок
КолющийВПикаБлокМин
КолющийВПикаБроня
//Колющий снизу - размах под плечем и удар. (большой палец ближе всего к острию)
КолющийНПикаМинБД
КолющийНПикаМксБД
КолющийНПикаМинСД
КолющийНПикаМксСД
КолющийНПикаУрон
КолющийНПикаУронМин
КолющийНПикаБлок
КолющийНПикаБлокМин
КолющийНПикаБроня
//Лук:
//Выстрел - выстрел из лука.
ВыстрелЛукМинБД
ВыстрелЛукМксБД
ВыстрелЛукМинСД
ВыстрелЛукМксСД
ВыстрелЛукУрон
ВыстрелЛукУронМин
ВыстрелЛукБлок
ВыстрелЛукБлокМин
ВыстрелЛукБроня
//Ружье:
//Выстрел - выстрел из ружья.
ВыстрелРужьеМинБД
ВыстрелРужьеМксБД
ВыстрелРужьеМинСД
ВыстрелРужьеМксСД
ВыстрелРужьеУрон
ВыстрелРужьеУронМин
ВыстрелРужьеБлок
ВыстрелРужьеБлокМин
ВыстрелРужьеБроня
//Рукопашка
//Хук
//Удар с размаха
//
БДПромах = 10 //Количество БД, при котором штраф промаха переходит в бонус уменьшения промаха.
Алгоритм:
ТипУдара - объект, содержащий все данные о нанесенном ударе.
Точка - точка удара
БД - количество БД, выделенных на удар
СД - количество СД, выделенных на удар
МинБД - минимальное количество БД, необходимое для удара
МинСД - минимальное количество СД, необходимое для удара
МксБД - максимальное количество БД, необходимое для удара
МксСД - максимальное количество СД, необходимое для удара
Урон - множитель урона оружия (относительный, т.е. не умноженный на СД и не добавленный к УронМин)
УронМин - минимальное значение урона. (добавляется к Урон * (СД - МинСД))
Блок - вероятность пробивания блока (относительная)
Бля, как же я не навижу этот сраный краснодар, этих кубаноидов, эти рожи, эту жару... Здесь люди - не люди, а кубаноиды. Я не знаю, как на других форумах, но тут! Бля... Если не сумничал, если не обматерил или не нахамил на худой конец - значит жизнь прошла даром! Вот сколько раз смотрю объявления - "Такое дерьмо на двести рублей в магазине продается", "А слабо написать подробнее?!", "Да ты вообще чмо" и т.д. Как же я все это ненавижу...
Первый официальный чемпионат для игроков-казуалов WorldWide Web Games, организованный компанией Fun Technologies, состоялся в минувшие выходные в Голливуде, штат Калифорния.
На протяжении 12 часов более 70 игроков со всего мира боролись за титул "лучшего казуала планеты" (World's Best Casual Gamer) в следующих популярных кибердисциплинах: Bejeweled 2, Solitaire и Zuma. Победителем чемпионата оказалась миловидная американка индийского происхождения Кавита Ялаварти (Kavitha Yalavarthi) из Одессы, штат Техас), получившая в награду чек на $1 млн.
Ну бля, нашли кого хвалить - геймеров! Да лучше бы она работой занялась, или наукой, или хотя бы культурой. А то геймерша, а ей еще за это миллион долларов. Эх, мир катится все в то же место. Как сказал Пелевин - "это поезд, который едет к обрыву. Едет уже бесконечно долго, но рано или поздно, он все равно окажется там." (не дословно)
Нет, не только мечта. Смыслом жизни большинства людей по большей части является именно какие-либо ближайшие действия, как то - позавтракать, поехать на работу, сходить в магазин и т.д. Все эти дела просто отвлекают на себя всю деятельность человека. Не хочешь же ты сказать, что ты постоянно думаешь о том, почему ты живешь в данный момент, почему бы тебе не прекратить свою жизнь. Более высокая цель обычно обладает меньшим приоритетом, т.к. выполняется за счет вот таких мелких целей. Пока человек что-то делает, он видит свой смысл в том, чтобы это сделать. Как только он бездельничает, ему не остается ничего другого, кроме как думать, а вот тут уже появляются идеалы, мечты, поиски смысла жизни и т.д. Иначе говоря - мечты есть, но они занимают лишь малую часть твоего сознания, точнее они живут в тебе не так долго, как повседневные мелочи. Зачем жить иначе? Затем, что природа запрограммировала нас жить. Просто жить. Жаль, но она не сказала, зачем нам жить и зачем она сама существует. Кстати, на это предложение можно было бы ответить - "если мы не в силах что-либо понять, осмыслить или вообразить, то это не значит, что этого нет". Но только этот же ответ можно использовать и как аргумент в доказательство отсутсвия смысла, ведь многие точно так же не могут помыслить, как можно жить без смысла =)
Вообще, когда я начал осознавать, что смысла нет, сам мир вокруг меня стал меняться. Собственно, теперь мне кажется странным, если бы был этот самый смысл. Почему? Потому, что природа - не живое существо. Она не мыслит. Ее вообще нет. Природа - это обобщенное название всего этого живого мира, природа - это с позволения сказать процесс развития молекул (грубо говоря). И человек по сути - это сложноорганизованная группа молекул. С такой точки зрения у человека просто не может быть смысла. Он просто есть. Точно так же, как есть, например, камень (ведь это тоже куча молекул, хоть и не настолько структурированных и организованных, но тем не менее). Он просто есть.
А вообще, если ты цель видишь в стремлении к мечте - то это тоже хорошо =) Ведь это такая же цель. Для жизни не имеет значения, как ты живешь, главное, чтобы ты жил как можно дольше (ну и желательно, чтобы ты помог еще одной или нескольким жизням зародиться).
Из всего этого коммента вывод: так что живи и радуйся =))))
Что я пропустил? Почему померли все дневниковцы? Ну, почти все, пара ветеранов остались. Но это не меняет ситуации! Школа? Так, блин, раньше поактивнее все же люди оживали, а сейчас что-то вообще никого.
"И тишина... А вдоль дороги - мертвые с косами стоят!" (с - за..л этот значек)
"X3 - Reunion" - вот пример великолепной игры. Один только базовый мануал на нее тянет на целую книгу. При этом как программа он ничуть не пострадал от огромной почти настоящей игровой вселенной, движек использует практически все современные эффекты, достаточно оптимизирован, учитывая динамичность мира, и, вроде бы, достаточно надежен. Но, впрочем, главное в этой игре не движек, а именно огромнейшая вселенная, множество возможностей, реальные масштабы. Я еще не видел игры, в которой бы самый маленький юнит был хотя бы в сто раз меньше, чем самый большой. А здесь... Простой Argon Buster выглядит рядом с Boron H2, как килька, рядом с китом, т.е. в тысячи раз меньше. А сто видов фабрик? Не шаблонных, нет, для каждой из них есть своя модель. Кстати, отдельное слово стоит сказать о проработке моделей... Полигоны видны, но они абсолютно не бросаются в глаза, а глядя на большие модели создается впечатление, будто там несколько сотен тысяч полигонов (тем более с отлично проработанными эффектами пиксель шадинга на текстурах). Текстуры вообще самые большие из всех, что я когда-либо видел. И весьма разнообразные, не повторяются через каждые несколько сантиметров, как в других играх. Я даже не представляю, как ВСЕ ЭТО умещается в пяти сотнях файлов, занимающих общей суммой три с половиной (а на NTFS'е даже меньше, чем два с половиной) гигабайта и выдает превосходный FPS. Особенно это превосходство чувствуется, глядя на бой - когда два десятка легких кораблей искрят и пестрят всевозможными видами лазеров и бластеров. Кстати, практически все время вокруг игрока летает не меньше полсотни всяких объектов - кораблей, "зданий", астероидов и т.д. Вот за это разработчикам не просто мое почтение, им за это памятник можно поставить. Но только после того, как они добавят нормальную систему помощи. Потому что изучать возможности методом тыка... Проще самому сделать такую же игру!
"X3 - Reunion" - вот пример великолепной игры. Один только базовый мануал на нее тянет на целую книгу. При этом как программа он ничуть не пострадал от огромной почти настоящей игровой вселенной, движек использует практически все современные эффекты, достаточно оптимизирован, учитывая динамичность мира, и, вроде бы, достаточно надежен. Но, впрочем, главное в этой игре не движек, а именно огромнейшая вселенная, множество возможностей, реальные масштабы. Я еще не видел игры, в которой бы самый маленький юнит был хотя бы в сто раз меньше, чем самый большой. А здесь... Простой Argon Buster выглядит рядом с Boron H2, как килька, рядом с китом, т.е. в тысячи раз меньше. А сто видов фабрик? Не шаблонных, нет, для каждой из них есть своя модель. Кстати, отдельное слово стоит сказать о проработке моделей... Полигоны видны, но они абсолютно не бросаются в глаза, а глядя на большие модели создается впечатление, будто там несколько сотен тысяч полигонов (тем более с отлично проработанными эффектами пиксель шадинга на текстурах). Текстуры вообще самые большие из всех, что я когда-либо видел. И весьма разнообразные, не повторяются через каждые несколько сантиметров, как в других играх. Я даже не представляю, как ВСЕ ЭТО умещается в пяти сотнях файлов, занимающих общей суммой три с половиной (а на NTFS'е даже меньше, чем два с половиной) гигабайта и выдает превосходный FPS. Особенно это превосходство чувствуется, глядя на бой - когда два десятка легких кораблей искрят и пестрят всевозможными видами лазеров и бластеров. Кстати, практически все время вокруг игрока летает не меньше полсотни всяких объектов - кораблей, "зданий", астероидов и т.д. Вот за это разработчикам не просто мое почтение, им за это памятник можно поставить. Но только после того, как они добавят нормальную систему помощи. Потому что изучать возможности методом тыка... Проще самому сделать такую же игру!
http://www.scepsis.ru/library/id_794.html очень хотелось бы услышать твой комментарий по поводу этой статьи. Все-таки, ведь именно ты чаще всего заявляешь о поддержке толерантности правительством.
-----------
Алекс К to Killen
Во-первых, авторы сразу называют задержанных виновными:
"Рынок они взрывали по мотивам национальной ненависти". Хотя на самом деле виновность и тем более мотивы может установить только суд, а до решения суда подозреваемый, согласно Конституции, считается невиновным. Я уже не говорю о том, что у журналистов нет доступа к материалам следствия, чтобы делать такие выводы.
Уже не раз были прецеденты, когда либеральные СМИ обвиняли кого-то в преступлениях на почве национальной розни, а потом оказывалось, что и у подозреваемых было алиби, и убили совсем другие люди совсем по другим мотивам.
Такое сознательное пренебрежение законом и этикой сразу снижает доверие к журналистам. Похоже, они просто выполняют определённый заказ. Читаем дальше.
Дальше длинные, со ссылками на неназванные "источники" (знаем мы эти источники!) рассуждения о "моде на фашизм". Что ж, авторы имеют право на своё мнение. Но надо отличать мнение от фактов. А факты там проскакивают забавные:
Только он [Копцев] тронул кого-то в синагоге, и ему сразу впаяли 13 лет! А вот эти убили по 40 человек на Северном Кавказе, и им дали по 5 лет, и они через 2,5 года вышли.
Вот это действительно ФАКТ, потому что легко проверяется и подтверждается. Добавлю, что Копцеву дали СТРОГИЙ режим, а террористам Басаева дают ОБЩИЙ (а то и вовсе амнистируют). Да, и ещё приговор копцеву обжалован: теперь требуют уже не 13, а 16 лет.
Ты задал вопрос о "поддержке толерантности правительством". Что это, как не ФАКТ такой поддержки?
А вот несколько ниже журналисты "недоговаривают"факты:
Аналогичный случай после Копцева был в Ростове – нападение на ростовскую синагогу. Буквально вчера суд второй инстанции отменил приговор суда первой инстанции, который признал нападавшего психически больным и отправил на принудительное лечение. Суд его признал психически здоровым. И что дальше? Дал срок? Нет! Освободил от наказания.
Это правда, но не вся. Вся правда в том, что 1) нападавший никого даже не поранил; 2) он был...евреем!!!
Об этом подробно писали ростовские газеты, за подробностями отсылаю к ЖЖ-юзеру ростовчанину her_shadow.
Дальше читаем. Фактов нет, одни домыслы. Ну, например, некий "Айдер Муджабаев" (???), делая "вывод" о том, что, дескать, скинхедов направляет правительство, говорит:
Видимо, кто-то всем этим управляет. Потому что, с какой стати, вот мы (!?!? - А.К.) любили грузин 600 лет (??!! - А.К.) и вдруг перестали
Кто это "мы"? И откуда 600 лет, если Грузия попросилась в состав России только в 1783 году? И почему "любили грузин", он что , спрашивал у всего народа? Забыл и анекдоты про грузин, и то, как "любили" грузина Берию?
В общем, дешёвые фантазии, замешанные на откровенной лжи.
Дальше читаем:
"существует масса других организаций. Есть, например, Национал-социалистическое общество"
Ага, существует. Только вот эти организации одну за другой громят, а лидерам дают вполне реальные сроки по 282-ой статье. Это тоже ФАКТ, который авторы замалчивают. Если же разгромлены и посажены до сих пор не все организации, то корректно было бы не искать в этом параноидальные версии заговора, а элементарно сравнить с тем, сколько у нас непосаженных преступников по другим статьям. Например, в Москве и СПб совершенно открыто, в магазинах, продаются пиратские компакт-диски, и что? Кого посадили?
Обычная недоработка карательных органов, которые просто неспособны эффективно работать.
Вывод ангажированных журналистов закономерен: «Мода на фашизм спускается в народные массы исключительно благодаря стараниям чиновников различных уровней».
Что тут сказать? Они вообще представляют, в каком мире живут? Разве чиновник может "спустить моду"? Ведь не спускали же в 70-е годы чиновники моду на джинсы или брюки клёш, это в принципе невозможно! Уж если чиновники что-то делают, то неуклюже пытаются помешать национализму. Так, ТОЛЬКО В ПЕТЕРБУРГЕ на пропаганду толерантности выделено 314 миллионов рублей. Вдумайся! Это огромная цифра! Или посмотри на государственные каналы ТВ, по котором день и ночь пропагандируют негров, пидаров и чеченов... Так что если мода на фашизм и идёт сверху, то она возникает спонтанно, как протест против всего вышеперечисленного, наложенного на скотские условия жизни.
В общем, вывод у меня один: меньше слушай журналистов. Пытайся вычленить из потока речей ФАКТЫ, прояснить ФАКТЫ как можно подробнее и сопоставляй их САМОСТОЯТЕЛЬНО, а не как тебе подсказывают.
Да, и ещё. Есть такая штука у проклятых журналюг - тенденциозное представление фактов. Это не прямая ложь, но недалеко от неё.
Ну например. Некто снял фильм про скинхедов. Это факт? Факт. (Я не проверял, но поверим на слово, что МК не врёт). Кто-то убил негра. Факт? Тоже факт.
Так вот, журналисты могут часами говорить об этом ЕДИНИЧНОМ случае так, чтобы у слушателя создалось впечатление, что в каждом городе нашей многострадальной страны каждый день зверски убивают сотни негров. И ни слова не сказать о действительно МАССОВОМ явлении, когда кавказцы убивают, грабят, насилуют русских (а это действительно происходит в каждом городе).
Только тогда, когда мы сопоставим эти явления, оценим их масштаб, мы сможем понять, что из них ЕДИНИЧНОЕ, СЛУЧАЙНОЕ явление, а что МАССОВОЕ, ЗАКОНОМЕРНОЕ. Что причина, а что следствие. И, соответственно, что действительно опасно, а что рассосётся само собой, когда уберут причину.
Поэтому больше читай статистики, независимых цифр, и меньше слушай эмоциональных выкриков.