JavaScript klašu mantošana

JavaScript ir gaužām nepateicīga valoda, ja ir vēlme rakstīt objektorientētu kodu. Vienkāršas klases veidot ir vēl salīdzinoši vienkārši (izmantojot funkciju prototipus). Taču jau tik elementāra konstrukcija kā klašu mantošana rada zināmas problēmas. Zemāk ir piemērs vienam no risinājumiem kā, neizmantojot ārējas bibliotēkas, iespējams izveidot klašu mantošanu JavaScript valodā.

// Vienkārša klase ar divām metodēm, no kurām viena tiks pārlādēta.
function BaseClass() { }
BaseClass.prototype.showMessage = function() { alert("BaseClass"); }
BaseClass.prototype.execute = function() { this.showMessage(); }

// Atvasinātā klase
function DerivedClass() { }
// Nosakam, no kuras klases atvasinām
DerivedClass.prototype = new BaseClass();
// saglabājam atsauci, no kuras varēs izsaukt bāzes klases metodes
DerivedClass.prototype.base = BaseClass.prototype;
// Pārlādējam metodi
DerivedClass.prototype.showMessage = function() {
    alert("DerivedClass");
    // izsaucam bāzes klases metodi
    this.base.showMessage.call(this);
}

// Izveidojam atvasinātās klases objektu
var obj = new DerivedClass();
// Izsaucam metodi, ko tā manto no BaseClass
obj.execute();
// execute() parāda divus ziņojumus:
// vispirms "DerivedClass", pēc tam "BaseClass".

E-pastu jaunumi uz miga.lv servera

Nesenā miga.lv programmatūras atjaunināšana uz SmarterMail 6.0 izraisīja mēstuļu filtra nekorektu darbību, tika veikta nozīmīga izmaiņa mēstuļu filtrēšanā – ieviests greylisting (wikipedia). Īsumā – šis filtrs nepazīstamu sūtītāju e-pastus pirmajā reizē noraida. Īstie sūtītāji vienmēr mēģina vēlreiz, bet mēstuļu sūtītāji taupa savus resursus un atkārtoti vēstuli nosūtīt mēģina gaužām reti.

Šis filtrs uzreiz akceptē visus sūtītājus, kas atrodas Latvijā – pagaidām mēstules no Latvijas datoriem tiek sūtītas gana reti, kā arī dažādus populārākos e-pastu servisus, piemēram, gmail. Tādēļ galvenie cietēji ir dažādas tīmekļa lapas, kas, piemēram, sūta foruma reģistrācijas apstiprinājumus. Šie apstiprinājumi tagad var kavēties līdz pat 15 vai 30 minūtēm, atkarībā no sūtītāja.

Labā ziņa ir tā, ka katrs lietotājs savos uzstādījumos šo filtru var atslēgt, ja, piemēram, nepieciešams steidzami saņemt minēto reģistrācijas apstiprināšanas e-pastu.

Papildus šim jauninājumam šodien tika atjaunināta programmatūra uz SmarterMail 6.1.3518 versiju (izmaiņu saraksts), kurā solīta mēstuļu filtra SpamAssassin darbības uzlabošanās. Šī filtra sliktā darbība bija galvenais iemesls, kāpēc pēdējās pāris nedēļās mēstuļu atpazīšana bija tik sliktā līmenī.

Nobeigumā daži attēli, kas parāda greylisting noderīgumu.

Ienākošo mēstuļu skaits pa dienām (te gan jāņem vērā, ka pēdējās nedēļās daļa mēstuļu netika atpazītas):
Ienākošo mēstuļu skaits

Kopējais ienākošo un izejošo e-pastu skaits pa dienām:
Ienākošo un izejošo e-pastu skaits

Izejošo SMTP savienojumu skaits pa dienām (parāda, cik daudz savienojumu agrāk tika veidoti, lai paziņotu kādam citam serverim, ka mēstules adresāts nav atrasts):
Izejošo SMTP savienojumu skaits

Jauna SmarterMail 6.0 versija uz miga.lv

Uz miga.lv ir atjaunināta e-pasta servera versija uz SmarterMail 6.0 (izmaiņu saraksts). Izmaiņas nav pārāk mainījušas mail.miga.lv saskarni, taču daži jaunumi ir. Piemēram, e-pastu saraksts vairs nedalās lapās, bet ir viens garš, skrollējams saraksts. Kā arī uzstādījumu sadaļā parādījusies iespēja nomigrēt uz savu kontu visus datus no citas esošas pastkastītes (piemēram, gmail).

Krietni uzlabots arī mēstuļu filtrs - tagad mēstules tiek filtrētas, izmantojot daudz vairāk dažādus bloku sarakstus (RBL), kas, cerams, aizsargās pret gadījumiem, kad kādu IP kāds no servisiem nobloķējis netaisnīgi.

miga.lv lapai jauns izskats

http://miga.lv lapai tika veikta kosmētiskā operācija, kas, cerams, to padarīs daudz pievilcīgāku jebkura apmeklētāja acīs. Cerība arī, ka nedaudz uzlabosies google meklētājā, kur meklējot "hostings" līdz šim migas lapa pirmajās desmit lapās nebija atrodama.

Pagaidām reģistrācija un pārvaldes modulis tiek izmantots no vecās versijas, bet ar laiku arī tas tiks nomainīts.

P.S. Pārvarēju sevi un miga.lv šobrīd ir pirmā lapa, kur kolonnu izkārtojumu veidoju ar tīru CSS, bez tabulām. Nebija jau nemaz tik grūti, kā varētu likties.

Virtuālais DVD disks iekš Windows 7

Windows 7 gan piedāvā iebūvētu programmiņu, kas ļauj ierakstīt .iso failu saturu diskā, taču nenodrošina veidu, lai tos varētu atvērt kā virtuālos diskus. Šiem mērķiem kopš sen seniem laikiem tika izmantots Daemon Tools, taču uz Windows 7 pēdējās bezmaksas versijas nestrādā (bezgalīgs instalē-pārstartējas process). Strādājot veca 3.17 versija, bet to neesmu pārbaudījis.

Izmēģināju tādu lietu kā MagicDisc. Instalējas ātri, strādā ok. Galvenā problēma - nav iespēja (vismaz neatradu) .iso failu automātiski atvērt ar dubultklikšķi.

Galu galā paliku pie Virtual CloneDrive. Arī bezmaksas, arī neliels izmērā un strādā korekti (uz Windows 7 x64 Enterprise).

IIS7 FTP SSL konfigurēšana

Nokonfigurēt IIS7 piedāvāto FTP protokola šifrēšanu, izmantojot SSL, nebija gluži tik elementāri, kā būtu gribējies. Ja neizmantotu FTP virtuālos hostus, tad viss būtu bijis vienkāršāk, bet diemžēl šoreiz tā nebija.

Viss it kā diezgan vienkārši - atveram FTP saitu un izvēlamies SSL sertifikātu. Nekā, piedzīvoju kļūdu: "534 Local policy on server does not allow TLS secure connections". Izrādās, SSL sertifikāts jānorāda nevis konkrētam saitam, bet gan visam serverim. Principā jau loģiski, jo enkriptēšana ir nepieciešama vēl pirms tiek ievadīts lietotāja vārds.

Bet, norādot sertifikātu serverim, dabūju kļūdu "431 Failed to setup secure session." kā atbildi uz "PROT P" komandu. Te nu izrādījās, ka konkrētam saitam SSL sertifikāts tomēr ir vajadzīgs, lai nodrošinātu datu konekcijas enkriptēšanu.

Nobeigumā varbūt noderīgs links par FTP SSL konfigurēšanu ar visām bildītēm, kā arī pamācību, kā konfigurēt Windows iebūvēto ugunsmūri: Configuring FTP Firewall Settings.

miga.lv atjaunots SSL sertifikāts

Šodien tika atjaunots SSL sertifikāts miga.lv servisiem (FTPS, HTTPS, IIS7 remote management). Iepriekšējā sertifikāta derīguma termiņš izbeidzās pirms pāris dienām tāpēc iespējams, ka kāds redzēja atbilstošos brīdinājumus.

Neliela piebilde - kad sertifikāta pieprasījums tiek izpildīts, nevajag jauno sertifikātu kaut kādu iemeslu dēļ dzēst ārā. Otru reizi izpildīt sertifikāta pieprasījumu nav iespējams. Kļūda, kura man izleca otrajā mēģinājumā, bija "certEnroll::CX509Enrollment::p_InstallResponse: ASN1 bad tag value met. 0x8009310b (ASN: 267)". Paglāba informācija šajā rakstā: The Way I See It. Pievienoju sertifikātu ar roku un izpildīju rakstā minēto pēdējo komandu, lai sertifikātam atjaunotu privāto atslēgu.