...
...

Софт для линуксоида

Umbrello
About: инструмент моделирования диаграмм UML
License: GPL
Copyright(C) 2001 Paul Hensgen
Link: сайт

Моделировать или нет — дело каждого программиста в отдельности. Сильно подозреваю, что ни Линус Торвальдс, ни Ричард Столлман не моделировали. На то они и гении, чтобы писать гигантские программы, удерживая в голове все их части до мельчайших подробностей. А как быть обычным программистам, которым нужно в какие-то сроки написать пару мегабайт кода? Можно ли следовать их примеру? Создатели языка UML Грейди Буч (Grady Booch), Джеймс Рамбо (James Rumbaugh) и Айвар Джекобсон (Ivar Jacobson) приводят такой пример. Если вам нужно соорудить собачью конуру, вы можете приступать к этому, как только раздобудете пару досок, молоток, горсть гвоздей и пилу. И даже если из стен конуры потом будут торчать острые концы гвоздей, а крыша протекать, бедное животное будет вынуждено жить в таком "доме". В крайнем случае можно "сменить" собаку. Зато задавшись целью построить небоскреб, было бы очень неразумно браться за дело, имея только груду досок, гвоздей и молоток. Такое масштабное строительство обязательно потребует больших капиталовложений, и малейший просчет во время работы повлечет огромные убытки. Затем и нужны архитекторы с их планами и чертежами, чтобы минимизировать возможность ошибки и построить именно то, что хочет заказчик. Но, хотя сложные здания без участия архитекторов не строят со времен Стоунхенджа, многие до сих пор пытаются писать серьезные программы без предварительного моделирования. О ценности такого подхода судите по результатам:-). Тем же, кто проникся моей пропагандой, советую присмотреться к утилите Umbrello. Такая вот неброская с виду программка, оказывается, очень хорошо помогает строить различные диаграммы на языке UML. На скриншоте показана диаграмма вариантов использования "Компьютерной газеты".

Umbrello умеет строить все основные типы диаграмм: классов, последовательностей, коопераций, прецедентов, состояний, деятельностей, компонентов и развертывания. Каждый объект начиная с классов и заканчивая их ассоциациями обладает свойствами. Для их редактирования присутствуют соответствующие мастера. Так что, даже если вы призабыли UML, моделировать будет легко: мастера помогут выбрать правильное решение. Как и любое уважающее себя CASE-средство, Umbrello умеет работать с кодом. Импортировать классы можно из исходников на C++, а генерировать файлы на основе моделей можно для языков из дли-и-инного списка, самыми важными из которых будут C++ и Java. В целях эксперимента я набросал несколько классов с разными связями между ними и сгенерировал исходник на C++. Так вот, Umbrello сообразил, в принципе, неплохой код. А когда я повозился немного с мастером генерации кода, умудрился сварганить почти такой же исходник, какой пишу вручную.

AA-lib
About: библиотека ASCII-Art
License: GPL
Copyright(C) 1998-2001 by Jan Hubicka and Kamil Toman
Link: сайт

Уж и не знаю, знаком ли современный пользователь ПК с таким древним искусством, как ASCII-Art. Штука эта не блещет особым эстетизмом и не несет никакой пользы. Так, просто забавная выдумка какого-то гения на заре компьютерной эры. ASCII-Art — это способ "рисования" изображений при помощи символов, которые можно набрать с клавиатуры. В простейшем случае это текстовые смайлики, которые раньше использовались и в чатах, и в форумах/конференциях. Одним словом, палеолит, эпоха каменного рубила. Однако, как это часто бывает, такая простая бесхитростная вещица не покидает сердец своих поклонников и продолжает жить даже тогда, когда надобность в ней отпала. AA-lib — библиотека функций для рисования как раз в стиле ASCII-Art. Ее используют несколько программ — в основном редакторы все тех же ASCII-Art-картинок. Но самое поразительное применение ей я встретил в MPlayer'е. Если вы подумали, что MPlayer использует AA-lib для вывода изображения во время проигрывания фильма, то... оказались на 100% правы! Представляете, каково это — смотреть фильм не в привычном графическом режиме, а в ASCII-Art! Честное слово, издалека даже не разберешь, что на экране одни буквы и цифры. Я немало времени потратил, чтобы сделать красивый скриншот для газеты, но так у меня ничего и не вышло: это нужно видеть именно на экране монитора. Даже самая качественная полиграфия не передаст всю оригинальность идеи ASCII-Art. Впрочем, если кого-то заинтересовала эта тема — пишите, и я вышлю вам скриншоты.

История создания AA-Lib не менее оригинальна, чем сама библиотека. Как-то раз Ян Хубика и Камил Томан купили себе два старых Herkules'а в качестве дополнительных мониторов. На дворе стоял 98-й год. С трудом себе представляю, как они подключили эти ископаемые времен ZX-Spectrum к своим компам. Видимо, видеокарты для этого подобрали на ближайшей свалке. Зачем им понадобился этот мусор, и как с них еще и деньги за него взяли, авторы тоже не знают. Скорее всего, их обуревали такие же чувства, какие испытывает археолог, когда находит черепки какого-нибудь древнего горшка. Пятьсот лет назад в этот "сосуд" отправлял свои нужды какой-нибудь ремесленник, а сейчас горшок представляет для кого-то культурную и историческую ценность. Короче, купили мониторы, подключили к компам — и давай думать, а как же их использовать — деньги-то уплачены? В конце концов было найдено поистине великолепное решение: Ян Хубика решил использовать свой Herkules для вывода логотипа Linux во время загрузки. Если кто-то помнит, в старых дистрибутивах, пока грузился Linux, в левом верхнем углу монитора выводился желтоносый пингвин. Вот для демонстрации этого пингвина Ян Хубика и отвел отдельный монитор. А для приведения логотипа к виду, который можно было бы отобразить на Herkules'е, была написана первая версия AA-Lib. Кстати, как поступил со своим Herkules'ом Камил Томан, история умалчивает.

FCEU
About: эмулятор NES (в народе — Nintendo)
License: GPL
Copyright(C) 2003 by Xodnizel
Link: сайт

Вот почему люди до сих пор играют в древние игрушки, для которых уже и платформы-то, кроме эмулятора, нету? Это в наше-то время всяких Unreal да Warcraft со всеми их трехмерностями и красивостями! Наверное, ответ в том, что, несмотря на все внешние прибамбасы, игры не становятся лучше со временем. Давным-давно, когда играли в основном на приставках, игры были проще и как-то натуральнее. Геймеры довольствовались малым, а игры не претендовали на все свободное и несвободное время человека. И при всей примитивности графики тогда делали потрясающий геймплей. Сейчас все по- другому: геймер сильно искушен, его уже не завлечешь даже просто качественной игрой. Нужна обязательно инновация, захватывающий сюжет и непременно самая крутая графика. Что ж, IT-индустрия действительно иногда выдает такие шедевры. Но за это, как дьявол требует взамен душу, так игры забирают всю личную жизнь человека.

Вот мне больше по душе старые игры начала 90-х. Запустил, скажем, Pacman, погонял полчасика — и все, на весь день наигрался. А работают мои любимые игрушки под эмулятором Nintendo — FCEU. Это, в общем-то, обычный эмулятор, со всем полагающимся набором свойств включая и сохранение/восстановление дампа памяти. То есть даже в самых сложных играх проиграть практически нельзя — сохраняться-то можно в любой момент. Правда, есть у FCEU две фишки, которые привели меня в дикий восторг. Первая — это эмуляция цветов телевизора. То есть игра с этой опцией будет идти в той гамме цветов, какую выдавали тогда, в начале 90-х, наши не самые лучшие телевизоры. Полное погружение в прошлое, машина времени. А вторая — это нестандартное расположение кнопок управления. Мы-то в аркады играем как? Стрелки — направления движения, Ctrl — стрелять, Alt — прыгать и т.д. В FCEU за направление движения отвечают клавиши w, z, a, s (вверх, вниз, влево, вправо). Кнопкам геймпада a и b соответствуют клавиши на цифровой клавиатуре 2 и 3. Первая мысль, которая приходит в голову: "КАКОЕ ИЗВРАЩЕНИЕ!!!" Не спешите с выводами. Положите клавиатуру на колени и возьмите ее руками с обеих сторон. Волшебным образом окажется, что большой палец левой руки точно попадает на клавиши направления, а большой палец правой — на 2 и 3 (a и b). То есть на ваших глазах обычная клавиатура превратилась в самый настоящий геймпад! Впрочем, если кому- то неудобно, клавиши можно переназначить. В домашнем каталоге в папке .fceultra будет файл конфигурации fceu98.cfg — в нем можно сделать соответствующие настройки.

Дмитрий Бушенко, nop@list.ru

© Компьютерная газета

полезные ссылки
Корпусные камеры видеонаблюдения