Oct 11

ISAPI Rewrite модул за IIS

В Apache (web сървър)има един много полезен модул. Казва се mod_rewrite. С негова помощ можете да модифицирате хедърите на пристигащите HTTP заявки на базата на регулярни изрази и разнообразни други условия. Ето един малък пример:

[code]RewriteCond %{HTTP_USER_AGENT} msie.*[I]
RewriteRule ^/$ /page.msie.html [L]

RewriteCond %{HTTP_USER_AGENT} firefox.* [I]
RewriteRule ^/$ /page.firefox.html [L]
[/code]

Тези два реда се четат така: ако браузерът е MS Internet Explorerзамести всички заявкиза “/” към страницата “/page.msie.html”. А въпросният документ може да използва възможности, специфични само за IE. В случай, че отворите “/” от Firefox, то ще се изпълни само второто (първото правило RewriteCondе false) и ще се отвори страница, специфична за Firefox.

Continue reading

Oct 04

Какво е MaxConnectionsPerServer и MaxConnectionsPer1_0Server?

Първо малко предистория в два примера:
Пример 1:
Искате да свалите няколко (големи) файла чрез Internet Explorer. Избирате първия линк, указвате пътя за съхранение. Правите същото и с втория линк. Но когато се опитате да повторите нещата с третия линк – прозорчето за SAVE не излиза, докато не се източи някой от предишните файлове;

Пример 2:
Представете си, че имате AJAX приложение. Неговата цел е едновременно да направи ping към пет определени IP адреси и динамично да покаже резултата в web страницата, без да я обновява по класическия начин. Към нашата представа добавяме и факта, че към три от IP адресите няма връзка, т.е. командата ping ще върне отговор “Request Timed Out”. При нормални обстоятелства и наличие на връзка ping.exe изпраща 4 пакета и получава 4 отговора за по-малко от 2 секунди. При липса на връзка обаче ping.exe се бави около 5 секунди. Зареждаме нашата страница с AJAX пингалката и наблюдаваме резултата: страницата се запълва с информация последователно, а под “едновременно” явно се разбира почти едновременно, защото част от резултатите излизат след като първите няколко ping-а са приключили. Най-интересното е, че ако докато чакаме изхода от ping-овете направим refresh (F5 или CTRL+F5) страницата тотално “забива” за не малко време.

Ефектът с увисването на страницата се наблюдава както при Internet Explorer, така и при Firefox, независимо дали WEB сървъра е IIS или Apache.

Continue reading

Sep 19

Управление на деривати

Публична тайна е, че в повечето домове има една телефонна линия, към която са свързани два или повече телефонни апарати (т.нар. деривати), най-вече за удобство. Страничният ефект: ако вдигнете слушалките на апаратите всички чуват разговора – нещо като конферентна връзка с елементи на подслушване :). Това определено е проблем, когато използвате модем за достъп до Интернет – връзката просто се разпада.

Можете да разрешите казуса много елегантно чрез малко тинол, поялник, около 5 лв. и свободно време 🙂

Continue reading

Sep 05

Полезно ли е преписването от Интернет? :)

Преди 2-3 години ми се наложи да напиша програма, която стартира друго приложение в кода си. Логично, попитах google 🙂 . Намерих това, което ми трябва. Даже си го отделих в unit, който съдържа често използвани процедури и фунцкии. До тук добре.
Малко след това трябваше да се направи нишково приложение (Multi Threaded Аpplication), което да стартирапо 30външни приложения едновременно и постоянно – като цяло интензивнен процес. Направих необходимото и пуснах програмата в действие. За лоша моя изненада тулчето ми зависваше след няколко дни работа и състоянието на компютъра, на който се изпълняваше беше трагично: “Low Of System Resources”… Очевадно беше, че някъде съм забравил да освободя памет т.е. т.нар. Memory Leak (изтичане на памет). Прекарах доста време пред не чак толкова сложната си програма, но не постигнах никакъв положителен ефект – на пръв поглед всичко беше ОК. Последваха интензивни тестове, които показаха, че приложението ми яде памет…но къде?!?
Continue reading

Aug 26

Странен проблем с PhpMailer, Subject полето на кирилица и host.bg

[UPDATED – 28.03.2009]

Не знам дали се случва при всички клиенти на host.bg, но при една моя страница, която се хоства там определено има проблем с изпращането на мейли чрез средствата на PHPMailer [http://phpmailer.codeworxtech.com/index.php ]. При използване на PHP mail() функцията и наличие на думи, написани на кирилица в полето Subject често се появява съобщението за грешка:

Language string failed to load: instantiate

Continue reading