Тези дни прекарах дълги часове мъчейки се да пусна някаква Jabber имплементация. Всичко тръгна от там, че ми трябва някаква добра IM система. Омръзна ми да се занимавам с ICQ и да търпя непрекъснатите проблеми и промени на ICQ протокола. Последната глупост, само от преди няколко дни – както си работеше нормално, изведнъж излезе, че половината хора от листа ми не са ме ауторизирали. При което аз спрях да ги виждам online. Стана ми ясно, че това е поредна промяна на протокола, и преди се е случвало. За смисъла от въпросната ауторизация пък въобще не ми се говори. Повечето хора обаче, намират за необходимо да задават, че новите им контакти трябва да бъдат ауторизирани. Може би това ги кара да се чустват сигурно. Пореден пример за “the false sense of security”. Както и да е, отписах го за пореден път ICQ и хукнах да пускам Jabber. Jabber или XMPP, както му казват от извесно време, представлява една изключително сложна мешавица от стандарти, XML, модули, транспорти, имплементации и други. Не си спомням да съм хабил толкова усилия за да пусна една проста чат система от ранните IRC години насам. Да, всъшност XMPP е много хубаво нещо и света има нужда от точно такова, но може още доста да се работи по неговата използваемост от простосмъртни хора. Ако не user-friendly, може поне да се направи малко повече administrator-friendly, поне за тези части от него, които представляват един прост чат. След като пробвах няколко различни имплементации, спрях се на тази. Хареса ми, защото ми се стори разумно конфигурацията да е разделена на няколко XML файла, вместо да е един голям. Освен това сървърът е разделен на няколко процеса. В последствие, това се оказа недостатък, защото в отделните XML файлове се срещат много общи неща. Оказа се, че трябва да напиша един и същи текст в 5 различни файла. Някаква елементарна грешка, която така и не намерих, ми отне половин ден. Накрая реших проблема, като създадох отново всичките конфигурационни файлове. Останалите проблеми бяха свързани с недостатъци от страна на различните Jabber клиенти. По-старите не поддържат STARTTLS, трябва да се ползва отделен SSL порт, което пък води до проблеми с новите клиенти, ако човек иска да ползва само SSL връзка. Искаше ми се тук да напиша някакви конкретни промени, които са необходими за пускането. Това обаче не може да стане, защото файловете са огромни, трудни за четене и пълни с коментари. По принцип използването на XML файлове за конфигуриране от хора е една много, много лоша идея. Каквото и да прави човек, не трябва да трие нищо от тях, защото после става абсурдно четенето и разбирането им. Всички коментари трябва да си стоят там, каквото не е необходимо просто се коментира.