Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2007-07-31

Медики, блин :)

Смеялся: про медиков. То, что Экслер называет "баннизм".

2007-07-22

тоже забавно, PHP headers_sent & CGI mode

Да, кому забавно, а у кого сайт работать перестает.
Есть на сайте программулина, на PHP, выдает клиенту файл по номеру.
Для указания правильного mime используется функция header()
И все это дело внутри некоего фреймворка, который тоже, не будь дурак, всякие хидеры пишет.
Правда отгрузка файла сбрасывает все буферы и когда далее по коду фреймворк хочет выдать свои заголовки, проверка headers_sent() его обламывает.

Все это в теории и работает только если PHP подключен как модуль Апача, типа так:
LoadModule php5_module "d:/httpd/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "d:/httpd/php"

А если подключить пыха как CGI обработчик, типа так:
ScriptAlias /php5/ "D:/httpd/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php5/php-cgi.exe"
всё. Браузер перестает понимать, что ему присылают. Потому как фреймворк посылает свои заголовки, потому как проверка headers_sent() уже не срабатывает.

Я не стал разбираться, фича это или бага. Я понял, что если уж так планеты сложились, что надо пользоваться режимом CGI, то, будь любезен, всю работу с заголовками оберни в свой код. А лучше это сделать при любых вариантах. Спокойнее.

2007-07-20

Забавные вещи с CSS & expression

Кратко опишу ситуацию словами.
Была сделана страница, под браузер IE6. Работала.
Потом случился браузер IE7.
Страница стала вывавать (нестабильно) сообщение при загрузке:

"divContent не определен" или вроде того.

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

Видимо выражение срабатывало до того как закачается блок, параметры которого используются в выражении.
Ну, пришлось стиль с expression подключить в теле документа после всех этих блоков.
типа так:

Лекарство:
в теле < body > ближе к концу страницы:

< style type="text/css" >
@import url("general.detail.css");
< / style >

А было так:

< header >
< link rel="stylesheet" type="text/css" href="general.detail.css" >

...

в стилях:

#divHeader {
width: expression((divContent.clientHeight < divContent.scrollHeight) ? (document.body.clientWidth - 16 + 'px') : (document.body.clientWidth + 'px'));
}

причем
divContent
ниже в тексте документа чем
divHeader

полезно:
http://stepbystep.htmlbook.ru/?id=44

2007-07-12

почему я не люблю Мелкософт

Рисую в красках: купил человек MS Office. Давно, году эдак в 2001. Понятно, офис у него версии 2000. Работал с ним (или на нем?) и по ходу учился программировать. Как научился, решил автоматизировать некоторые свои работы с помощью честно укупленного офиса. Ведь все знают, офис тем и хорош, что его можно программно заставить делать многое.

И полез человек на сайт Мелкософта за документацией на программные интерфейсы... А поскольку шел уже 2007 год и вышел офис 2007...

Уже догадались? А я вот до сих пор не могу поверить. Может плохо искали? Короче, нету на сайте МелкихИмягких документации на офисы старее 2007. То что осталось, практически бесполезно. А поскольку программные интерфейсы офисных пакетов на месте не стояли (тоже вопрос, с каких таких понадобилось менять интерфейсы?) то существующая документация не помогает автоматизироваться со старым офисом.
И что делать? Старый офис честно куплен, но использовать его нельзя, потому что документацию не догадались вовремя скачать и сохранить. Надо новый покупать? И пока не поздно, качать все, что только может понадобиться?

Билли сказал - каждые 5 лет вы должны по новой покупать у нас программы. И мечтает Билли о том, чтобы мы не покупали софт а брали напрокат.

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)