Hirdetés

javascript osztály, publikus/privát metódussal

Ezeket mindig elfelejtem:

C = function() { //Begin of class C

var m1 = function(){
alert('m1');
};

m2 = function(){
alert('m2');
};


this.m3 = function(){
alert('m3');
};

this.m4 = function(){
m1();
m2();
//m3(); m3 is not a function
this.m3();
};




}; //End of class C

//m1(); //m1 is not defined
//m2(); //m2 is not defined
//m3(); //m3 is not defined

//C.m1(); //C.m1 is not a function
//C.m2(); //C.m2 is not a function
//C.m3(); //C.m3 is not a function

var c = new C();

//m1(); //m1 is not defined
//m2(); //OK "m2"
//m3(); //m3 is not defined

//c.m1(); //c.m1 is not a function
//c.m2(); //c.m2 is not a function
//c.m3(); //OK "m3"

c.m4(); //"m1","m2", "m3"

Laptop hdd hűtése

Mostanában hamar felment 57 fokra a merevlemez hőmérséklete a Hard Disk Sentinel szerint , ilyen melegen már tartottam az adatvesztéstől, kénytelen voltam kikacsolni a laptopot. Mivel kikapcsolt állapotban nehézkes a használata, jobbnak láttam más megoldást keresni.

A laptop egy Acer Aspire 5024WLMI, 80 gigabájtos Seagate Momentus 4200.2 ATA merevlemezzel. A laptopot használtan kaptam, de nem volt sok program rajta az előre telepített Windows XP-n kívűl. Feltettem rá a vmplayer-t, így fut a háttérben a Linux, webfejlesztéshez ez kiváló környezet.

Mivel ölben tartva használom, ezért régóta teszek alá tartó lapot. Előszőr egy polcdarab volt, azután fabrikáltam egyet magamnak, a szellőzőknél kivágva, de nem használt eleget.

Néztem laptop tartókat, de olyat nem akartam venni, amiben ventilátor van, mert zajos, meg minek fogyassza az áramot.

Végül találtam egy nagyon jó tartót, fémhálós, úgyhogy szabadon jár a levegő a laptop alatt, ráadásul meg is emeli a gépet, úgyhogy a ruhám se akadályozza a levegő útját.

Java hozzáférés-vezérlés II/II

Míg egy Java osztály hozzáférhetőségének két szintje van (public és default), az osztály tagjainak (változók, metódusok) négy : public, protected, default és private. A default vagy más néven csomag-szint az, amikor nem írunk semmit a tag elé.

Az osztály-tagok hozzáférhetősége azt jelenti, hogy egy kódrészlet meghívhatja a metódust, megváltoztathatja/kiolvashatja a változót.
Ehhez természetesen az adott kódrészletnek hozzá kell férnie az osztályhoz. Tehát ha a szóban forgó kódrészlet "nem látja" az osztályt, akkor nem fogja tudni meghívni a metódusát sem. Ezért ebben a cikkben mindig feltételezem, hogy a vizsgált osztály látható.

A hozzáférést szabályozó szót a tag elé kell írni. Nézzük a szinteket:

public a tag látható bárki számára
private a tag csak a saját osztálya számára látható
[default] a tag csomagjából látható
protected mint a default, plussz még alosztályokban látható a tag (örökölhető)

Védekezés DDOS támadáskor

Pár napja rettentően lelassult a Debian Linuxon futó Apache webszerverem. Újraindítás után 1 perccel az error logban ez volt:

server reached MaxClients setting, consider raising the MaxClients setting

Eszembe se jutott növelni a MaxClients értékét (nem warez site-ról van szó). Az access.log-ban semmi rendkívüli nem volt. A szerverben 2 giga ram van, az kb. 1,5 gigával több a szükségesnél. A winchesterek rendben, a raid tömb egészséges, a 150 giga helynek a 10%-a foglalt, úgyhogy tovább vizsgáltam az Apache-ot.

A webszerver status információihoz a /etc/apache2/apache2.conf-ban ki kell szedni a # jeleket innen:

<IfModule mod_status.c>
#
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the ".example.com" to match your domain to enable.
#
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from localhost
</Location>
</IfModule>

Java hozzáférés-vezérlés II/I

Java-ban négy hozzáférési szint (access level) van, de csak három hozzáférés-módosító (access modifier). Ezek használata néha még a gyakorlott programozók számára se mindig teljesen világos.

A módosítók : protected, private, public
A szintek ugyanezek, plussz még az, amikor nem írunk módosítót, ez az alap (default), vagy másképpen csomag-szint (package level).

A szintek erősség szerinti sorrendben a leggyengébbel kezdve: public, [alap],protected, private.

Mit "védünk" a hozzáférési szintekkel? Osztályokat, metódusokat és változókat, a módosítókat is ezek deklarációi elé kell írnunk.

Kezdjük az osztályokhoz való hozzáférési szintekkel.

A class szó elé csak a public módosító kerülhet, az "alap"-pal együtt így összesen két szinten szabályozhatjuk a "hozzáférést". Osztályoknál ez egyszerűen a láthatóság, azaz "ki" láthat egy osztályt. Ha "valaki" nem lát egy osztályt, azzal nem csinálhat semmit, tehát nem példányosíthatja, nem terjesztheti ki, stb. Olyan, mintha számára nem is létezne.

Hibernate őű-hiba

Egy apró programot fejlesztettem Java-ban, gondoltam JDBC helyett tanulok valami kényelmesebbet. Így esett a választásom a Hibernate-ra.

Egy excel fájlból töltöttem fel MySQL táblát. Persze rögtön észrevettem, hogy az ő/ű helyett ? jelenik meg, de gondoltam, majd a végére hagyom a megoldást.
Nem volt könnyű megtalálni.

Mivel a többi ékezet jó volt, gyanítottam, hogy valami latin1-es tárolási gond lesz.
A MySQL tábla dumpja meg is mutatta, hogy bizony a default charset latin1, a kívánatos utf8 helyett.

(Ez előtt persze sok-sok kört futottam azzal, hogy az excel fájlt különböző karakterkódolásokkal mentettem el meg olvastam be Java-val, meg mindenfélét állítgattam a connection stringen meg a hibernate.cfg.xml-ben.)

Most már csak ki kellett találnom, hogy hozathatnám létre a táblákat a Hibernate-tel úgy, hogy utf8 kódolással tárolja a karaktereket.

Ilyen beállítást nem találtam.