Плохая дока или ее отсутствие?..
Какими иногда путями узнаешь о некоторых особенностях языка программирования, операционной системы или СУБД… Ну нет у меня времени и желания внимательно читать всю доку по PHP, например.
Поясню: как много людей, программирующих на PHP, знают о существовании в нем конструкции <?=$variable?>? Я о ее существовании узнал вчера. Из чужого листинга. Для хохмы попытался найти ее через «Table of Contents» родной доки. Не удалось. Пришлось набирать в командной строке магическое grep '[%\?] *= *\$' * чтобы узнать, что эта, довольно полезная фича, упоминается в доке аж два раза, но эпизодически, и в разделе «Escaping from HTML». Кто бы мог подумать? Там, кстати, говорится, что это shortcut к echo. Тогда такой вопрос: почему бы этот самый shortcut не поместить рядом с echo (раздел « String function») или хотя бы дать ссылку на него в «see also…»?
Еще хуже дело обстоит с PostgreSQL. Для интереса зайдите в Postgres monitor (psql) и наберите: \dd regexeqjoinsel. — «O!», — думаете вы — «новая функция!». Не спешите искать информацию по ней в официальной доке. Там эта функция даже не упоминается. Кстати, это далеко не единственный пример.
Это что касается софта под Unix. Документация для платформы Windows обычно составлена лучше. По крайней мере та ее часть, что от Microsoft. Конечно, мало кто знает, что такое HTA или WScript, но информации по ним вполне достаточно, просто эти вещи мало кому нужны.
У Microsoft другая крайность — описывать все тщательно, но с опозданием. Меня вот интересует вполне конкретный вопрос: в чем с точки зрения разработчика разница между Jet4.00SP5 и Jet 3.00? Боюсь, придется подождать пару месяцев, до выхода
Кстати, с начинающим наступать Миллениумом вас!
Как мне кажется. Генетика
Больной, испуганно, доктору:
— Доктор, что это у меня?!
— АаААааааа!!!8-O Что это у вас?!
(анекдот)
Глядя на визжащее, скулящее, повизгивающее сосредоточие страха, раболепно ползающее у ног своей хозяйки — бабки неопределенного возраста, невольно задумываешься, что может сотворить человек, если дать ему в руки генетику. Я говорю о болонках (или как там называются эти маленькие, визгливо потявкивающие трусливые комочки?) и их прародителей — волках.
Становится страшно.
Если человек, имея возможность изменять животное лишь косвенно, наворотил такое, представляю что будет, когда человечеству удастся расшифровать ДНК, когда оно научится дешево изменять генотип и выращивать жизнеспособных особей заданной конфигурации. У меня есть множество знакомых, которые завели себе какую — нибудь уродливую породистую кошку или собаку только для того, чтобы было «не как у всех». Теперь представьте себе скажем… гигантскую муху с человеческими глазами, того же пушного таракана размером с ладонь.
Конечно, придется издать некий закон, запрещающий,
Людям, которые живут по правилу «после меня хоть потоп», советую почитать литературу о генетически измененных продуктах. В этих самых продуктах я ничего плохого не вижу, просто хочу сказать — начало положено.
Недокументированные возможности
Если не всем, то многим, известно, что в практически в любом устройстве есть ,так называемые, «недокументированные возможности». Первое мое знакомство с ними состоялось еще на примере команд Ассемблера к компьютеру
Время от времени я просматриваю exe-файлы браузеров и их dll-ки, в надежде узнать
Простой опыт показывает, что информацию о них в сети найти можно, если очень постараться. После
- SUBDOC — «определяет субдокумент с собственным окружением. Может быть вложен.» Что бы это значило? Эксперименты ни к чему не привели.
- HYPE — Судя по косвенным ссылкам раньше воспроизводил
какой-то звук. Оставлен как заглушка. - MQUOTE — Средство для цитирования почтовых сообщений.
- COLORMAP — упоминается как параметр (PRIVATE|DITHERED|YES|NO) тега EMBED. Похоже используется
в каком-то плагине.
На большее моего терпения не хватило. Так вопрос о том, что такое CELL, CHARLES, JEAN, NSCP_CLOSE, NSCP_OPEN, NSCP_REBLOCK, UNKNOWN и т. д. остается открытым.
Недокументированные… Окончание.
Вместо предисловия.
Сегодня Google выдал мне
Так что в списке подозреваемых на полезную нагрузку остались: CHARLES, JEAN, UNKNOWN и INPUT TYPE=JOT.
Внимательное изучение этой самой страницы увеличило вышеприведенный список еще на два экземпляра: INPUT TYPE=READONLY и INPUT TYPE=OBJECT. Что означает первый, стало понятно после полевого испытания — создается текстовое поле, которое нельзя редактировать. Для чего служит второй, станет понятно ниже. Кроме того, на той же странице я с удивлением узнал, что у тега INPUT есть атрибут HEIGHT.
Все вышеперечисленное вдохнуло в меня новые силы и я, с утроенной энергией, взялся за поисковые машины…
Через пару минут поиска, видимо найдя
Атрибут JOT предназначен для вывода поля перьевого ввода произвольного размера (атрибут SIZE="xsize,ysize"), размер по умолчанию 200×50, перешел в Netscape, судя по всему, из браузера Mosaic. Используется совместно с атрибутом SRC.
OBJECT создает невизуальный элемент формы для сбора данных от заданного Java-компонента, расположенного на странице. Java-компонент задается при помощи атрибута NAME, который должен быть равен атрибуту ID предыдущего объявления компонента. Его данные попадут на сервер когда пользователь нажмет на кнопку SUBMIT (немного сумбурный перевод, но, думаю, смысл ясен).
Чтение исходников (спасибо AllTheWeb) показало, что тег UNKNOWN — никакой не тег, а абстрактное обозначение любого неизвестного тега, встречающегося в заголовке документа. Сделан этот финт ушами для пропуска контента неизвестных контейнеров. CHARLES и JEAN — это не что иное, как загадочные, но уже не поддерживаемые «теги» INLINEINPUTDOTTED и INLINEINPUTTHICK.
Теги, начинающиеся с букв NSCP были предназначены для внутренних целей браузера, в частности, NSCP_CLOSE закрывал все незакрытые теги, что позволяло «сливать» воедино два незавершенных документа.
Из тех же исходников, кстати, видно, что побочным действием тега HR является закрытие блочного тега P, что действительно имеет место.
Что касается тега COLORMAP, то тут не все так кристально ясно. Это, безусловно, тег, что подтверждает чтение исходников, у него есть атрибут SRC и нет закрывающей пары. Судя по комментариям в коде, этот тег задает карту цвета, которая будет использоваться для всех картинок страницы. Но для чего это нужно, и каков формат этой карты ссылок — неясно. Кроме того сама, процедура обработки тега стоит под #IFNDEF, так что непонятно, работает он в текущей версии Netscape или отключен.
Тег HYPE был введен «just for fun» и работает
Из других любопытных открытий — существование атрибута SUPPRESS, который заставляет (его значения — TRUE и FALSE) тег LAYER игнорировать свое содержимое до закрывающей пары и того же атрибута у тега A (anchor), только с другим значением — его использование ведет к появлению рамки вокруг ссылки в момент нажатия, как в MSIE. Только непонятно, исходники какой из версий я смотрел — одной из будущих,
В общем, я остался доволен сегодняшним результатом поиска. :) И хотя, остались еще
Разгон. S3. MCLK
Я снимаю с себя всю ответственность за любые последствия подобного разгона.
Речь пойдет о небольшой, по современным меркам (113Кб), утилите MSLK. Она предназначена для разгона видео карт Cirrus Logic (
Программа работает под управлением DOS или Windows (в полноэкранном режиме) и позволяет увеличить быстродействие на пять, а если повезет, то и на 10%. После своего запуска она сообщит вам информацию о производителе, модели и доступных настройках вашей видео карты. Вот для примера та информация, которая утилита вывела на моем домашнем компьютере:
Video card MCLK utility v0.90с 07/28/96, chips_lib v093с 05/04/97
FAMILY= S3 ... CHIP= PCI Virge DX/GX ... REVISION= 01
1-cycle EDO RAM
Adjustable settings:
0 S3 Trio/Virge MCLK programming
1 Trio64V+/Virge memory page-mode control
2 S3-864/964/Trio CAS', OE' strech time, WE' delay
3 S3Trio RAS' timing control (2 parameters)
4 S3Trio 2MCLK/3MCLK timing controls
5 function NOT availableЭто означает, что на своей старенькой карточке я смогу изменить пять настроек. Список возможных значений параметра и его текущее значение можно посмотреть, запустив программу с цифрой параметра (от 0 до 5), например, так: MCLK /0.
Если программа неправильно определила вашу карту, ее тип можно задать вручную при помощи параметра /F. Для примера. Предположим у вас S3 — 968.
Набираем MSLK /F, получаем:
Supported families
------------------
0 Generic VGA
1 Cirrus Logic
2 S3, Inc.
3 Tseng Labs
4 Trident MicrosystemsВыбираем третьего по счету производителя (MSLK /F 2), получаем:
S3 accelerator
0 S3-801/805
…
7 S3-968
8 S3-325 (Virge)
9 S3-988 (Virge/VX)Наша карта — под номером 7. Набираем MSKL /F 2 7 Примечание: при использовании параметра /F он должен стоять первым!
Настройка параметров карты осуществляется вызовом программы с указанием настраиваемого параметра и его нового значения или значений. Например, так: MCLK /0 1 1 1 или с выбором видеокарты, так: MCLK /F 1 1 /0 32
Если пожадничать, и слишком разогнать карту, то изображение может пропасть. В этом случае помогает только перезагрузка. Советую войти под «голым» DOS’ом и поэкспериментировать. После подбора оптимальных параметров, вызов программы с соответствующими параметрами можно вставить в AUTOEXEC.BAT.
Более подробная документация (правда, на английском) распространяется вместе с программой.
О безопасности в Unix
О безопасности
Сегодня побывал в шкуре киношного кул хацкера, из тех, что подбирают пароли с третьего раза. Правда, попыток я сделал побольше, да и пароль не подобрал… в общем, все по порядку.
Сидел я у нашего постмастера Сергея, консультировался по поводу мультидоменной настройки sendmail. Примерно на середине разговора нас прервали — зашел его начальник, Сергей ушел с ним забрать
Примерно через 5—10 минут (я как раз вбивал
Теория о том, что совпала hash-сумма, или, что я нашел «инженерный» пароль, не подтвердилась. После прихода Сергея мы провели «следственный эксперимент» — он заблокировал консоль и ввел ту же комбинацию.
Так что единственное разумное объяснение, которое пришло мне в голову, заключается в следующем. Похоже разработчики включили в свой продукт одну недокументированную особенность — система пускает человека, который в течение долгого времени вводит парольные последовательности, некоторая часть которых совпадает по буквенному составу и/или длине с правильным паролем. «Cчитая», что хозяин забыл пароль.
Остается только догадываться, сколько еще таких «недокументированных возможностей» зашито в софт, которому мы привыкли доверять безопасность нашего компьютера.
Что происходит?
Почему на протяжении последней недели ко мне в ICQ стучатся , я проследил ее айпишку, оказалось она выходит через того же провайдера что и я. Я туда позвонил и выяснил какой пользователь сидит сейчас на этом IP-е. Имя совпало, дальше я копать не стал, просто пригрозил, что узнаю, где она живет и перевел ее в Ignore List. Дольше всего я проговорил с девушкой по имени Света. Она дала мне свой номер пейджера и я, воспользовавшись
Все девушки утверждают, что меня не знают. Причину по которым они решили пообщаться со мной чаще всего сообщают
Так что же происходит? Случайность? Верится. С трудом. Розыгрыш? Ни у одного из моих знакомых нет одновременно двух ресурсов для этого необходимых: терпения и времени.
Одна из девушек, я уже про нее упоминал, Света, прокололась: отступила от сценария и дала понять, что знает, где я работаю. На вопрос откуда, сказала, что это ей сказал я. По Аське. Я специально выгрузил Аськин лог и пересмотрел весь наш разговор. Там я ни единым словом не упомянул где именно я работаю.
Сегодня в моем
P.S. Что называется «когда верстался этот номер».
Только что мне позвонила Света и сказала, что скоро доедет до компьютерного класса и выйдет в Инет. Хочет со мной поговорить.
Виртуальная пьянка
Многие слышали о такой вещи, как виртуальный секс.
Вот только представьте себе такой разговор:
MegaDestroyer: с какой начнем?
SuperCrasher: давай с «Пшеничной».
MegaDestroyer: с «Пшеничной», так с «Пшеничной». Разливай.
SuperCrasher: BlackKiller, ты чего молчишь? Опять dial-up отвалился?
BlackKiller: Тут я.
SuperCrasher: ОК. Не торопясь, достаю бутылку, срезаю ножом пробку и разливаю.
\^/ \^/ \~/
BlackKiller: Стоп! А почему меня обделили?
SuperCrasher: Pardon, \^/ \^/ \^/
MegaDestroyer: Ну, выпьем. За нас!
SuperCrasher: \_/
BlackKiller: \_/ Хорошо пошла…
MegaDestroyer: \_/ Угу…Представили? Ну не красота? Заметьте, утром никакого похмелья или пищевого отравления, драки по пьяни с привлечением мебели или порчи оной. Как максимум — выяснение отношения в Quake или VirtuaFigter, да и то, при условии наличия выделенки. В связи со стремительно приближающимся Новым Годом (вы, кстати, уже купили мандарины?), вышесказанное становится еще более актуальным.
Так что, все на освоение безграничных возможностей Интернета и, возможно,
P.S. Автор не несет ответственности за появление вирутальной алкогольной зависимости, синдрома виртуальной алкогольной интоксикации или виртуальной заменительной рвотной реакции. Кроме того, автор считает нужным поставить читателя в известность о незафиксированных случаях виртуального похмелья, якобы имевших место быть в одном из городов Алтайского края, хотя факты проявления этого явления достоверными считать нельзя.
P.P.S. Специально для господ из оффлайновых изданий: все сказанное в предыдущем абзаце не более чем шутка.
Хедэйк
Как работает естественный отбор? Кто не убежал — того съели, потомства не осталось,
Интересно, а у животных болит голова? Глядя на мою кошку Кошмарку, я начинаю в этом сомневаться.
Медики утверждают, что в головном мозге, ровно как и в костях черепа, нет нервной ткани, так что сама голова болеть не может. Головная боль должна означать, что у вас
Тогда мне тем более не понятно, зачем нужен этот маппинг боли на голову. Если верить в высший разум, сваявший человека, можно предположить, что «это не баг, это фича», предназначенная для мониторинга (слежения за) состояния человека.
Жаль, что меня все равно не удовлетворит ни одно объяснение, в смысле, что
Так что, буду терпеть. Главное не шевелить головой…
HTA (HTML application)
После появления на свет WebICQ, я получил множество писем с просьбами рассказать, что такое HTA и WScript. О WScript
HTA (или HTML Application) — так называемые «безбраузерные приложения», выполнение которых — одна из возможностей браузера Internet Explorer 5.0. С точки зрения пользователя, такая программа ничем (кроме, разве что, расширения) не отличается от любой другой: имеет заголовок окна, свою иконку, отображается в панели задач и т. п.
С точки зрения программиста, HTA — обычная
Тег заголовка позволяет программисту управлять некоторыми параметрами созданного приложения. Выглядит он, как простой
Параметры перечисляются внутри тега, например, так, как это показано ниже:
<HTA:APPLICATION ID="oHTA"
APPLICATIONNAME="myApp"
VERSION="1.0"
WINDOWSTATE="maximize" />Хотя параметров довольно много (все они перечислены в Таблице 1), мне, например, очень не хватает еще двух: WIDTH и HEIGHT, которые позволили бы задавать размер окна, не вызывая методов JScript или VBScript.
Таблица 1
| Параметр | В JavaScript | Назначение | Значения |
| APPLICATIONNAME | applicationName | Имя приложения | строка |
| BORDER | border | Тип бордюрa | thin, dialog, none, thin |
| BORDERSTYLE | borderStyle | Стиль бордюра внутри HTA | normal, complex, raised, static, sunken |
| CAPTION | caption | Наличие заголовка | yes, no |
| commandLine | Содержимое командной строки | ||
| CONTEXTMENU | contextMenu | Управляет наличием меню правой кнопки мыши | yes, no |
| ICON | icon | Задает иконку приложения | URL (строка) |
| INNERBORDER | innerBorder | Внутренний бордюр | yes, no |
| MAXIMIZEBUTTON | maximizeButton | Управляет кнопкой «развернуть» | yes, no |
| MINIMIZEBUTTON | minimizeButton | Управляет кнопкой «свернуть» | yes, no |
| NAVIGABLE (только для IE 5.5) | navigable | Переход по ссылке произойдет в окне HTA | no, yes |
| SCROLL | scroll | Наличие scroll bars | yes, no, auto |
| SCROLLFLAT | scrollFlat | Управление стилем scroll bars | no, yes |
| SELECTION | selection | Управляет возможностью выделения текста внутри HTA | yes, no |
| SHOWINTASKBAR | showInTaskBar | Отображать ли в панели задач | yes, no |
| SINGLEINSTANCE | singleInstance | Запретить запуск второго экземпляра? | no, yes |
| SYSMENU | sysMenu | Управляет наличием системного меню | yes, no |
| VERSION | version | Версия HTA | строка |
| WINDOWSTATE | windowState | Начальный размер окна | normal, minimize, maximize |
Как видно из таблицы, все параметры приложения (большинство в режиме
Отсутствие системы безопасности означает, что разработчику предоставлена полная свобода доступа к ActiveX, а значит файловой системе и WScript. Кроме того, программист имеет возможность, при помощи атрибута APPLICATION, явно указать содержимое какого из внутренних фреймов может получить доступ к объектам приложения: <IFRAME SRC=content.htm APPLICATION=yes>.
Исходя из концепции безбраузерного приложения, Microsoft исключила из HTA функцию автозаполнения (AutoComplete of form) и закрыла доступ к объекту external.
Более подробно о HTA (на английском языке) можно почитать на сайте Microsoft MSDN.
Поиск в Сети
Каждый раз, когда мне нужно найти в Интернете
Наконец, все это мне надоело и я решил сегодня порыться в закромах сетевых обозревателей, собственной памяти, своих закладках и собрать все найденные ссылки на одной странице.
Итак, начну я со всем известных поисковых машин
Эквивалентом этим поисковым машинам в англоязычных ресурсах я считаю не AltaVista с Yahoo!, а менее известные (но более мощные, как я имел время убедиться) AllTheWeb и Google. В среднем, эти машины ищут быстрее и находят бо́льший объем информации. Особенно рекомендую вторую.
Переходим к поиску программ и прочих файлов, расположенных на FTP. А точнее к FTP-поисковикам. Из рунетовских особенно рекомендую Files.ru и FileSearch, из забугорных, кроме Lycos FTPsearch, ничего не вспоминается.
Тесно к FTP-поисковикам примыкают более специализированные — поисковики бесплатных программ. Раньше я чаще всего пользовался, теперь сдающим уже свои позиции, ListSoft. Сейчас предпочтение отдаю конкурирующим FreeSoft и FreeWare. Обозреватели упоминают еще
Большое спасибо создателям поисковых машин, специализирующихся на поиске драйверов для всевозможных видеокарт, модемов и проч. В Рунете из таких мне вспомнился Drivers.ru, из англоязычных, не раз меня выручавший, DriverZone.
Самая многочисленная группа — растущие как грибы MP3-искалки. Поскольку пользуюсь ими редко, ничего определенного сказать не могу, просто перечислю: Oth Net, Music Lycos, Italia
Как можно тише и незаметнее упомяну о Crack.ru, Cracks.ru и небезызвестной Astalavista. :) Что они ищут — ясно из названия первых двух.
Поиск картинок. С этой задачей справятся, уже вышеупомянутые, Yandex и Aport, а также, выуженный из моих закладок CreativePro.
Так, что у нас осталось? Осталось упомянуть о сайте с говорящим названием Referats.ru и двух словарях сокращений — Sokr.ru (на русском) и AcronymFinder (на английском).
Это все, что я смог вспомнить, ниже я буду добавлять поисковые машины, о которых я узнаю позднее.
Нашел поисковик по схемам: «РадиоЛоцман». Поисковики по товарам в различных городах Price.ru (Москва, С.П., Екатеринбург, Новосибирск, Минск) и «Где купить?» (Казань).
Мышь EzBrowser+
Примерно полгода назад, я вздумал проапгрейдить свой старенький
На следующий день я твердо решил прикупить новую клавиатуру. Зашел я за клавиатурой, а вышел, держа в руках новую мышь EzBrowser и переходник PS/2 ⭤ AT для клавы. :)
Серый («металлик») корпус и провод, полупрозрачное дно из красного пластика с подсветкой, встроенная камера, делающая до 1500 снимков в секунду (именно так мышь понимает в какую сторону ее смещают) — все это поразило меня до глубины души, и заставило мой кошелек несколько похудеть.
Первая половина дня ушла на полевые испытания и рассказы всем встречным — поперечным, чем хороша моя новая любимица…
Прошло полгода. Знакомые моих знакомых рассказали своим знакомым, что знакомый знакомых их знакомых приобрел мышь c камерой в пузе и может бесплатно проконсультировать по поводу ее плюсов, минусов, стоимости в разных уголках планеты и вообще обо всем, с ней связанном. Получив на этой неделе. примерно, трехсотое письмо, я решив, что так больше нельзя, решил написать небольшую заметку, так сказать, FAQ и давать всем желающим ссылку.
Итак.… EzBrowser, так же как и ее сородич из Microsoft, действительно, может нормально ездить по чему угодно: ноге, столу, стене, бумаге, по всему, у чего есть фактура. А вот по моему новому коврику, сделанному из переработанных шин и, раскрашенному австралийскими школьниками, она ездить отказалась.
Эта мышь не засоряется, не начинает пробуксовывать со временем, и нормально реагирует на прямой свет от лампы, фонарика, солнца, луны и прочих источников света.
Как с ней играется в Quake я не знаю. Я не играю в Quake, так же как и в HalfLife, Motorhead 2 и прочие фантики на раздевание. Но замечено, что мышь иногда может вести себя очень неадекватно, особенно, во время резкого старта после долгого простоя. Выражается это в беспорядочном скакании курсора по всему экрану. Для меня это не страшно, для игрока в Quake, наверное тоже. Там нет долгих простоев.
Дешевле всего купить ее можно в Москве. Где именно? Не знаю. Зайдите на Price.ru, и посмотрите. Цены в других городах я также не знаю. Позвоните в магазин, и спросите. Жители Москвы,
Смотрится она очень здорово и необычно. Гостей можно развлекать подсветкой дна, которая отключается через некоторое время, если мышь не двигается. Третьей кнопки у нее нет, зато есть колесико, на которое тоже можно нажимать, как кнопку, или использовать его по прямому назначению — прокрутки окна.
С мышью поставляется специальный софт, но нужен он больше для настройки действия совершаемого по нажатию на колесико. Все ставится и настраивается элементарно, никаких проблем замечено не было.
Кажется ничего не забыл. А! Насчет считывания этой мышью
Интернет версия 2.0. Beta
Мегабайт — американское название килобайта.
(народная мудрость)
Люблю я маленький софт.
Думаю, если бы Microsoft делала программы, отвечающие ее названию, она была бы моей любимой фирмой. А пока, все с точностью наоборот.
Между тем, на Microsoft свет клином не сошелся. К счастью, есть люди, заботящиеся не о наличии красивых иконок и анимированных пиктограмм, а о функциональности и размере программы. Удивительно, но факт: существует
К счастью, люди есть… К несчастью, у этих людей нет достаточного количества денег, чтобы устроить своим продуктам мощный промоушн и встать в один ряд с монстрами программостроения. Я говорю о рынке программного обеспечения, хотя, в любой области ситуация та же. С чем это связано? Я считаю — с несовершенством информационной среды. С ее незащищенностью от недостоверной информации и убогими возможностями поиска. В идеале, все должно быть несколько
Я не призываю ввести цензуру в Сети, просто нужен механизм подтверждения подлинности информации. Если сертификата нет — пользователь сам решает, верить информации или не верить. Да и сертификату, в конечном счете, тоже. Право на выбор традиционно остается за пользователем.
А пока все останется
Кот Экслера (aka Бублик)
Как вы думаете, до какого размера может вырасти кот? Особенно если его надлежащим образом кормить? Ну? Два, четыре, восемь килограмм?
Полгода назад, зайдя в мясной отдел местного магазина, я увидел кота размером в полтора раза больше моего и понял — недооценил я кошачий род. Наверное, сказалось выбранное котом место жительства. Такая кошара запросто могла бы дать отпор некоторым собакам среднего роста. Увидев его, я подумал — ну все, для этого вида животных это предел.
Но когда сегодня я, зайдя на сайт Экслера, увидел во что превратился его кастрированный кот Бублик, раздобревший на сочинских харчах, я чуть не упал в обморок.
Поначалу, увидев эти фотографии, я подумал, что тут не обошлось без фотошопа, но, приглядевшись внимательно к фото, и вспомнив, что Экслер не знает даже, где в фотошопе стёрка, а где карандаш,
Вот, что делает с животными хороший уход и кастрация. :)
Инструмент Веб-верстальщика
Иногда
Мне это все порядком поднадоело и я решил узнать, нет ли
Я решил посмотреть, как это можно сделать проще, а заодно, если получится, осчастливить
Естественно, при таком наличии меда не обошлось без ложки дёгтя.
Программа представляет из себя батник с вкраплениями из ассемблерных подпрограмм. После запуска программа все сделает сама, кроме перезапуска. Его надо сделать самостоятельно. Скачивается очень быстро — всего 991 байт в архиве, сжато ZIP’ом.
P.S. Позже IE resizer был переписан на Windows Script Host. Запускается под Windows 98/ME/NT Option Pack/200x.
99 бутылок: SHS SSI, Price Convertor Small Talk
Эпопея о бутылках с пивом продолжается. Сегодня вашему вниманию предлагается тексты программы, выводящие песню о бутылках на языках Small HTTP Server SSI и Price Convertor Short Talk 2.00rc2.
7. Small HTTP Server SSI. Вариант реализации SSI для SHS, написанного Максом Фиоктистовым. Файл должен называться index.shtm.
<!--#if expr="$b=No" -->
<BODY BGCOLOR=BLACK TEXT=WHITE>
No more bottles of beer...<BR>
Go to the store and buy some more...<BR>
99 bottles of beer.</BODY>
<!--#break -->
<!--#endif -->
<!--#set var="" value="" -->
<!--#set var="N" value="No" -->
<!--#set var="9" value="8" -->
<!--#set var="8" value="7" -->
<!--#set var="7" value="6" -->
<!--#set var="6" value="5" -->
<!--#set var="5" value="4" -->
<!--#set var="4" value="3" -->
<!--#set var="3" value="2" -->
<!--#set var="2" value="1" -->
<!--#set var="1" value="0" -->
<!--#set var="0" value="9" -->
<!--#if expr="!$a" -->
<!--#set var="a" value="9" -->
<!--#set var="b" value="9" -->
<!--#set var="s" value="bottles" -->
<!--#set var="m" value="$s" -->
<!--#endif -->
<!--#set var="t" value="$a" -->
<!--#if expr="$b=0" -->
<!--#set var="c" value="$a" -->
<!--#elif expr="$a>0" -->
<!--#set var="c" value="t" -->
<!--#endif -->
<!--#set var="d" value="$b" -->
<!--#if expr="$a=||$a=0||$c=1" -->
<!--#set var="c" value="" -->
<!--#endif -->
<!--#if expr="$d=1&&$c=" -->
<!--#set var="d" value="N" -->
<!--#elif expr="$d=2&&$c=" -->
<!--#set var="m" value="bottle" -->
<!--#endif -->
<HEAD>
<META HTTP-EQUIV="Refresh" Content="1;URL=index.shtm?a=<!--#echo var="$c" -->
&b=<!--#echo var="$d" -->&m=<!--#echo var="m" -->
&s=<!--#echo var="m" -->">
</HEAD>
<BODY BGCOLOR=BLACK TEXT=WHITE>
<!--#echo var="a" --><!--#echo var="b" -->
<!--#echo var="s" --> of beer on the wall,<BR>
Take one and pass it around,<BR>
<!--#echo var="$c" --><!--#echo var="$d" -->
<!--#echo var="m" --> of beer on the wall.
</BODY>8. Price Contertor Small Talk 2.00rc2. Этот язык я придумал сам, реализован он был примерно в 1998 году, как внутреннее средство управления программой обработки прайсов, представленных виде файлов Excel.
BEGIN
"99"
mov a "bottle(s) of beer on the wall."
END
WORK "*"
eq "No"
if
echo "No more bottles of beer..."
echo "Go to the store and buy some more..."
echo "99 bottles of beer."
break ""
endif
else
delete
mov Y a
.
echo
echo "Take one and pass it around,"
mov Y "1"
-
eq "0"
if
mov Y "No"
endif
delete
mov Y a
.
echo
endelse
prev
ENDWindows 2000. Впечатления
С появлением Windows 2000 все как будто сошли с ума. Даже те, кто до сих пор морщился при слове Microsoft, как будто надели на глаза розовые очки. Я, проработавший на этой системе со времени ее появления, совершенно не замечаю плюсов ее использования перед гораздо более стабильной Windows 95 OSR2.
Что же приводится в качестве аргументов? Система сделана по технологии и на ядре NT. Это не аргумент. Это сообщение, причем несущее очень мало информации. Один тот факт, что первое сделано по технологии второго или с использованием его части, еще ни о чем не говорит.
Монтирование. Первое, что люди вспоминают. Лично мне, наличие этого самого монтирования глубоко фиолетово. Тем более, что эта «новая возможность» на самом деле довольна бородата. В UNIX’ах и прочих *INIX’ах эта возможность была с рождения, так же как и в
Стабильность. Об этом я мог бы сказать много. Матерных слов. Но не буду. Windows 2000 зависает по самым невероятных причинам. Мне, как человеку работающему еще и с Linux Slackware, где крутится Apache, Postgres, MySQL, miniSQL, Sendmail, FTP и т. д., есть с чем сравнивать.
Многопользовательская система. Это вы зря. Для безопасности нужно ограничить запись в реестр. Без возможности записи многие приложения (Photoshop, например) работать не будут. Приходится разрешать запись в некоторые ветки. Вы просто не представляете во сколько разных веток пишут свои данные некоторые приложения. Случается так, что программы буквально прячут свои данные в этом необъятном дереве. Например, серийный номер. Таким образом получается, что нормально работать под ней можно только с правами администратора.
Что еще? Защита от DLL Hell? Не смешите. Через
Microsoft в очередной раз сделала рывок. Только опять не вперед, а в сторону.
Грамотно
Все кругом поправляют, замечают, советуют. Говори, пиши, употребляй слова правильно. Одно забываю сказать — как это сделать? В прямом смысле. Нет, конечно, на меня еще не посмотрят как на идиота, если я употреблю в приличном обществе слово «позвонишь» с ударением, как ему и положено, на последнем слоге. Но уже при слове «красИвее» на меня начинают коситься, а упоминание «строчна́я» вызывает у собеседников нервный смешок.
Вывод? Какие бы усилия я не делал, мне не подняться по уровню грамотности над людьми из основного моего круга общения. Моя речь неизбежно будет стачиваться, меняться, упрощаться. И с этим ничего не поделаешь, да и делать я ничего не собираюсь.
А как же, скажете вы, письменная грамотность? Не знаю, не пробовал. А если серьезно, то на ее наличие/отсутствие влияют другие факторы. Текстовая часть Интернета и книги. И то и другое я читаю каждый день и, в максимально допустимых количествах. Я не обладаю заученной грамотностью, так что приходится пользоваться грамотностью заимствованной. Проще говоря, пишу я, руководствуясь не правилами, почерпнутыми из учебников, а интуицией, базирующейся на обобщениях, сделанных на основе прочитанного. Наверное, как и многие из вас. Это еще, кстати неверно, называют «врожденной грамотностью»… или безграмотностью. :) У кого как.
Совсем другое дело ошибки стилевые. Но и тут есть оправдание. Эти ошибки следствие того, что фраза, которую я хотел записать, а то и смысл, который я хочу вложить в текст могут измениться в моей голове в процессе написания. Так и получается, что начал я с одной мысли, а закончил — другую. Правится это все элементарно — банальной вычиткой собственных текстов. Вот только не у всех хватает на это времени.
Так что буду писать как пишется, говорить как слышится и обильно снабжать все это ошибками разнообразных мастей. :) И уберите свои грязные манипуляторы, это святое, мое личное право. :) На худой конец, считайте, что пишу я не на русском, а, скажем, на украинском (для украинцев — болгарском). С сим позвольте откланяться…
Софт. FAR 1.70b2, MySQL, PostgreSQL…
Новость дня — вышел FAR 1.70b2 build 321. С некоторый пор этот, один из лучших (скажу лучший — заклюют :) файловых менеджеров, разрабатывается не одним человеком, а группой разработчиков (FAR Team). С этих же самых пор список WhatsNew каждой новой версии поражает своим размером. Вот и на этот раз, я насчитал 64 пункта! Приставки Beta бояться не нужно, FAR Team обещает выпустить release только в случае полного отсутствия багов. То есть никогда :). Так что — качать!
Продолжая тему FARa.
Смешно, но факт — я знаю людей, которые пользуются FARом, начиная чуть ли не с первой версии и не знают о существовании такий вещи, как плагины. На всякий случай, сообщу. Сам FAR — это еще не все. К нему существуют «довески», называемые плагинами, которые сильно расширяют его функциональность. Например, есть плагины для чтения почты, работы с FTP через Proxy-сервер, проигрывания музыкальных файлов (точнее управления WinAMP’ом) и многого другого. Плагины можно взять на сайте PlugRing, ссылка на который есть в конце статьи (см. «ссылки по теме»).
Из других новостей мира вареза — появление MySQL
Так что, если будете выбирать СУБД для Веба… вы знаете, что я бы посоветовал.
Мой дедушка — хакер. Найдено в FIDO
Увидел сегодня в fido7.ru.anekdot. Помещаю без всяких комментариев, кроме одно — автор не я. А жаль…
Мой дедушка - хакер
Мой дедушка никогда не работал. "Якi ж хакер работает!"
- говаривал он. Он не писал интегрированных систем, утилит и
даже вирусов - он избегал операционных систем. Он не
пользовался окнами. Hе было в его комнате и дверей. Общался
он только со своими старыми друзьями по сетям: обменяются
парой сообшений, а потом Дедушка подвесит систему, обратится
к порту напрямую, и приговаривает:
- Теперь позвольте пару слов без протокола...
Jump
"JMP IP", - подумал однажды Дедушка и повис.
Завтрак
Дедушка никогда не завтракал дома. Рано утром он
надевал свой макинтош, клал в карман apple и отправлялся в
Space bar, где заказывал hot keys с инвалидной мидией и
стаканчиком холодного ребута.
Power user
В соседнем доме жил Power User. Каждое утро он открывал
окно и говорил "Hello, world!". Hа это Дедушка презрительно
фыркал - он не любил user'ов, особенно power.
- Утюг тоже power user, - говаривал он.
Ignored
Однажды к Дедушке прибежала молоденькая лаборантка:
- Мистер Hackerley, это ужасно! Я беременна! Что
делать? Может, аборт?
Поскольку Retry был явно неуместен, Дедушка
игнорировал, и дал мне возможность написать эти строки.
Hаследство
Однажды Дедушка застал своего пятилетнего сына за
вызовом системного прерывания, и устроил ему головомойку. И
сколько баловник не оправдывался, что, дескать прерывание-то
было UNDOCUMENTED, Дедушка лишил его наследства.
Поэтому мы, Дедушкины потомки, и не унаследовали его
монографию `Hacker's Methods'.
Far Call
Однажды Дедушка отсиживался от multiuser'ов в верхних
адресах видеопамяти. Вдруг в IP он увидел свой адрес. "FA",
- издал Дедушка боевой КЛИч и запретил прерывания. Hе
помогло - процессор неумолимо приближался к дедушкиной
run-time библиотеке.
- Far call! - выругался дедушка и подвесил систему.Парсим Лебедева, Emax, PHP 4.0.4
Артемий Лебедев и компания опубликовали язык своего заочно знаменитого Парсера. Непонятно, чем они так гордились? С точки зрения программиста — обычный предпроцессор, тот же PHP — гораздо логичнее, понятнее и функциональнее, а с точки зрения не программиста, как мне кажется, — кошмарное нагромождение скобочек, стрелочек и значков «@». Нет, увольте.
Сегодня я решился
- Девушка молодая, задумчивая;
- Пора пришла;
- Я птица слабая, мне тяжело лететь;
- Двое в сторонке;
- Дуб Ангела;
- Монастырь.
Особенно понравилась первая, причем до такой степени, что я, активный противник фотографий и рисунков на десктопе, не удержался. Хотя понимаю, что ставить такое на десктоп — кощунство, ничего поделать с собой не могу.
Не скажу, что с нетерпением этого ожидал,
Дядя Ваня — это вкусно…
Смотрю фильм ужасов, который, по обыкновению всех фильмов, перемежается рекламой. Фильм вызывает лишь смех (ковыряют ножом
Раз уж затронули рекламу, давайте поговорим поподробнее. Для меня вообще реклама — штука странная. В том смысле, что, по идее, она должна создать у меня положительный настрой по отношению к товару. То ли у креаторов
Конечно это крайний случай. Обычно реклама у меня не вызывает никаких эмоций вообще, разве что кроме скуки.
Было время, когда я, на протяжении примерно трех лет, каждый день прочитывал примерно по одной фантастической книге, которыми меня снабжали три моих друга, каждый из которых собрал более чем солидную библиотеку. Мне настолько нравилось читать, что не засыпал пока не прочитывал все, что мне приносили. Однажды я засиделся до 7 утра.
Прочитав такое количество книг, не имеющих ничего общего с реальностью, я очень хорошо стал понимать, что следует воспринимать всерьез, а что — мир, который рушится, когда закрываешь последнюю страницу книги. Вот и рекламу я воспринимаю как плохую фантастическую книгу или, что ближе к телевидению, нудный фильм. И у меня мысли не возникает, что происходящее на экране — часть реальности.
У моей матери собственного иммунитета нет.
Баннерная реклама. Только не бейте…
К сожалению, фильтровать рекламу «в телевизоре» мы не научились, зато
Для начала отмазка.
Итак. Для начала надо разобраться, как собственно осуществляется фильтрация подобного рода. Все очень просто. Пользователь (или изготовитель фильтра) прописывает некий набор правил, согласно которым, программа определяет, что есть баннер, а что — нет. Напрашивается вывод: чтобы ваши баннеры проходили
- Либо назвать их так или сунуть в такой каталог, что бы правила, заданные в программе, их не опознали;
- Либо сделать
что-то, что бы добавить правило (а значит отличить баннерот не-баннера) не представлялось возможным.
Первый вариант отметаем сразу. По очевидным соображениям — если правил, заданных в программе, не хватает для опознания, пользователь добавит новое. Вариант номер два кажется более привлекательным, только как достичь того о чем я говорю?
Нужно будет внести
<IMG SRC=http://your.host.ru/aa12/a.gif>
<IMG SRC=http://your.host.ru/priale/sila/duaa1/1808500.jpg>и т. д.
Популярные
Остается добавить, что схема успешно испытана и скоро будет запущена под одним из региональных порталов. Парочку подводных камней предлагается найти и разбить самостоятельно. Чтобы жизнь малиной не казалась. :)
Opera 5.01. Опять Парсер. Etc
Только что узнал о выходе Opera 5.01. С чем и поздравляю всех немногочисленных пока поклонников этого, потенциально популярного браузера. Краткий список изменений со слов сайта «Абсолютно все о браузере Opera» выглядит так:
- Добавлены функции поиска на кнопку «Go» (ввод)
- Новые shotcuts в почтовой программе
- Исправлены проблемы с прокси
- Оптимизирована работа ICQ
- Косметические изменения в окне новостей
- Изменения в самом файле Оперы
- Исправлена ошибка в Ecmascript
Да, чуть не забыл представить эту замечательную программу тем, кто с ней еще не знаком: это очень маленький, быстрый браузер с поддержкой практически всего чего только можно. Для программистов и верстальщиков: к сожалению пока нет нормальной поддержки DOM, в HTML— и WAP— отрисовке еще множество глюков. Радует, что проект быстро развивается, возможно к версии так
Лебедевский «Parser» до сих пор не дает покоя сетевым обозревателям. Сегодня журнал «Интернет.Ру» разродился интервью с создателем Парсера Константином Моршневым. Интервью коротенькое (а о чем
В той же статье Моршнев обещает открыть нам глаза на другое свое детище — уже упомянутый мною «Imprimatur!». Не нужно быть семи пядей во лбу, чтобы догадаться, какой доменный адрес будет иметь сайт ему посвященный. Я — догадался. Правда на сам сайт войти не получится, доступ запрещен. Но работа над подпиткой утихающей уже шумихи вокруг лебедевской студии продолжается.
99 бутылок: ASP (JScript и JavaScript), Parser
Жаждались? Судя по кислым лицам — нет. Итак, представляю очередную серию из мыльного сериала «99 бутылок пива на стене». На этот раз, на стене амбициозный Парсер с хорошей родословной, но плохой внешностью
9. Parser (втрой версии) студии Артемии Лебедева. Предпроцессор для генерации
^var[i;99]
^while[i>0;
^var[i] bottle^if[i!=1;s;] of beer on the wall, ^var[i]
bottle^if[i==1;s;] of beer.<BR>
Take one and pass it around,<BR>
^var[i;-;1]
^if[i;^var[i];No] bottle^if[i!=1;s;] of beer on the wall.<BR>
<BR>
]
No more bottles of beer...<BR>
Go to the store and buy some more...<BR>
99 bottles of beer.10. ASP JScript и JavaScript. Одновременно. Первый — серверный язык, второй — клиентский. Испытано под IE 5.0, Opera 5.01, Netscape 4.75, Netscape 6.0 и IIS5.
<!-- <%@ LANGUAGE = JScript %>
<% //>
//</%> --> <SCRIPT LANGUAGE=JavaScript>
for (k = ' of beer on the wall',o='', i = 99; i>0; i--)
{
a = i+' bottle'+(i-1?'s':'')
o+= a+k+', '+a+' of beer...<BR>'+
'Take one down, pass it around.<BR>'+
(i-1?i-1:'No ')+' bottle'+(i-2?'s':'')+k+'.'+
'<BR><BR>'
}
o+= 'No more bottles of beer...<br>'+
'Go to the store and buy some more...<br>'+
'99 bottles of beer.'
if (typeof(document)!='undefined') document.write (o); else
if (typeof(Response)!='undefined') Response.Write (o)
// </SCRIPT> <!-- // < %> -->