English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1424) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.04.27. 20:05)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés
Σ: 16 post

TCH  (statz) Főfasz
#1, Főfasz (10443)
3920 | #21a0 | ^ | Idézet | Thu, 15 Nov 2012 22:35:00 +01
31.46.*.* Linux x86 Opera Classic Hungary *.catv.pool.telekom.hu
@kemi:
ez olyan mikrofos felfogás, hogy szórjuk szét a szemetet a memóriában. :P
Ja, erről beszéltem. :P
@kemi:
Strukturáltan tudomásom szerint nem lehet ilyesmit csinálni, hogy adatot rejteni egy dinamikus struktúrában. Hozzáférhet bárki a structhoz, semmi nem garantálja, hogy mindenki interfészfüggvényen keresztül fog adatokat kiolvasni, vagyis ha módosítasz át kell nézni az összes hivatkozást, ami egy többezer soros projektnél nem kis meló.
Ezt nagyon rosszul tudod kemi, te abból indultál ki, hogy kell deklarálni valahol egy structot, ami alapján történnek a dolgok, de nem erről van szó.
Valószínűleg azt értetted félre, hogy ragaszkodtunk a struct kulcsszóhoz, de az itt most nem a C-s deklarált adatstruktúrát takarta, hanem csak azt, hogy sima adatszerkezet amiben a widget properties van letárolva.
És ez az adatszerkezet nem forrás szinten van deklarálva, hanem vagy a builder rakja össze a leírók alapján és csak gépi kód szinten létezik, a forrásban sehol nem látszik és nem is hozzáférhető vagy pedig, ha dinamikusan csinálod, akkor is csak az API-n keresztül teheted, amik megint csak már a GUI widgetset natív részei, azaz nem basztathatod őket, nem kerülheted meg őket. Azaz, dehogynem, gépi kódból, de azt OOP alatt is megteheted. :P
És mivel csak az API függvényeit basztathatod, pontosan ugyanolyan átlátható lesz, mintha OOP-al csináltad volna, csak kevesebb memóriát eszik és gyorsabb. :P

A függvénymeghívás pedig ASM szinten kb. két féle képpen szokott kinézni: a program vagy lementegeti a verembe a paramétereket, vagy regiszterben adja át őket. És mind a két esetben egy sima ugrás van utána. Ojjektumról szó sincs. Gépi kód szinten nincs ojjektum és nem is volt.
És ennek megfelelően nem létezik olyan feladat, amit ne lehetne megoldani nélkülük. A "struct" pedig még egyszer mondom, nem látszik a programozó felől, interface acces only.
@kemi:
A LibreOffice tud PDF-be menteni. Nem próbáltátok ki?
Weblapon kellett PDF-et generálni.
Tegnap berúgtam a Super Com-ot, hogy Antarctic Adventure-zzek egyet, de a gamepad nem akarta vinni mind a gombokat, csak a jobbra/balra/start/select gombok mentek. Mondom WTF, megint bekontaktolt ez a szar? Megmozgattam, elkezdett össze-vissza pauzolni, mondom ja. Megint. Egyébként is szokta, már elég régóta csinálja, meg volt törve benne 1-2 vezeték.
Ezúttal meguntam, szétkaptam, leforrasztottam, lecsíptem és újrakötöttem. Farewell kontakthibák.
Visszadugom a pad-et és a játék ugyanazt csinálja. Mondom WTF, mi ez? Kipróbáltam öt másik játékon és tök faszán ment.
Gondoltam, lehet, hogy már annyira koszos a cartridge érintkezője, hogy valamit trágyául olvasott be a memóriába és szarul működik a programban valami? Amúgyis kedves szokása, hogy csak sokadik berakásra indul el. Mármint a cartridge. Egyébként meg megörvendeztet egy db fekete képernyővel. (Egyszóval ez is kontaktos.)
Cartridge szétkap, érintkezők acetonnal lemos, összerak, bedug. A menü akadékoskodás nélkül jön fel az első bedugásra, farewell kontakthibák itt is.

De ez a geci játék még mindig nem veszi be a fel/le/A/B gombokat.
Mi a halál van, bazdmeg. Álltam felette, mint Bálám fasza a szamárban és nem értettem.
Aztán hirtelen ötlettől vezérelve kirántottam a nemrégiben megjavított és ezért ismét üzembe helyezett pisztolyovicsot és láss csodát, rögtön ment minden gomb. Visszadugtam a pisztolyt, elkezdtem nyomkodni a ravaszt és a pingvin még ugrálni is kezdett.
Hát ez kész bazdmeg, ilyet én még nem láttam. Az Antarctic Adventure valami érthetetlen ok miatt - lévén 1 player only - nézi, hogy mi van a másik porton és, ha be van dugva a pisztoly, akkor összeakad. Ügyes.
Sufnituning rovatunkat hallották.
A Wikipedia nálatok is szarakszik? Nálam az előbb nem jött be a CSS-e egyetlen wiki-s oldalnak sem.


kemi  (statz) Főfasz
#2, Főfasz (2970)
169 | #21a1 | ^ | Idézet | Thu, 15 Nov 2012 22:44:40 +01
78.131.*.* winnyogsz Google Chrome Hungary 78.131.*.*
@TCH:
És ez az adatszerkezet nem forrás szinten van deklarálva
Vagyis kódszinten nem tudsz létrehozni ilyesmit, erre valamiféle API támogatás kell. Erről beszélek.


TCH  (statz) Főfasz
#1, Főfasz (10443)
912 | #21a2 | ^ | Idézet | Thu, 15 Nov 2012 23:22:20 +01
31.46.*.* Linux x86 Opera Classic Hungary *.catv.pool.telekom.hu
@kemi:
Vagyis kódszinten nem tudsz létrehozni ilyesmit, erre valamiféle API támogatás kell. Erről beszélek.
Hogy micsoda? Dehát volt ennek a mondatnak egy másik fele is!
@TCH:
vagy pedig, ha dinamikusan csinálod, akkor is csak az API-n keresztül teheted
Vagyis éppenhogy lehet!
Áruld már el plz., hogy most pl. egy dinamikusan létrehozott gombnál miért jobb az, hogy
bazmeg = new button;
bazmeg->left = 300;
bazmeg->top = 400;
bazmeg->width = 180;
bazmeg->height = 90;
bazmeg->caption = 'kabbe';
bazmeg->onclick = &klikk();
, mint az, hogy
new_button('bazmeg');
set_button_left('bazmeg', 300);
set_button_top('bazmeg', 400);
set_button_width('bazmeg', 180);
set_button_height('bazmeg', 90);
set_button_caption('bazmeg', 'kabbe');
set_button_onclick('bazmeg', &klikk());


kemi  (statz) Főfasz
#2, Főfasz (2970)
1246 | #21a3 | ^ | Idézet | Fri, 16 Nov 2012 08:16:21 +01
78.131.*.* winnyogsz Google Chrome Hungary *.pool.hdsnet.hu
@TCH:
new_button('bazmeg');
set_button_left('bazmeg', 300);
set_button_top('bazmeg', 400);
set_button_width('bazmeg', 180);
set_button_height('bazmeg', 90);
set_button_caption('bazmeg', 'kabbe');
set_button_onclick('bazmeg', &klikk());
Teljesen ugyanaz. Megint oda jutottunk, hogy OOP megközelítés nem OOP eszközökkel. Na és mi van akkor, ha nem widgetet, hanem valami saját adatot szeretnél ellenőrzötten módosíthatóvá tenni. Kódszinten létezik, és semmi nem akadályoz meg senkit, hogy közvetlenül hozzáférjen, és ne interfészfüggvényt hívjon.
@http://en.wikipedia.org/wiki/Object_(computer_science):
Objects in "object-oriented programming" basically are data structures combined with the associated processing routines.
Ebben a megfogalmazásban valami ilyesmi is objektum:
int x;
void set_x(int val) {
    x = val << 8;
}

int get_x() {
    return x >> 8;
}
Csak ilyenkor senki nem akadályozza meg a programozót, aki úgy gondolja gyorsabb hozzáférni az inthez, mint interfészfüggvényt hívni. Így aztán ha változtatni kell át kell nézni az egész kódot.

De látom te megrögzötten anti OOP-s vagy.


TCH  (statz) Főfasz
#1, Főfasz (10443)
2023 | #21a4 | ^ | Idézet | Fri, 16 Nov 2012 12:30:40 +01
80.99.*.* Linux x86 Google Chrome Hungary *.catv.broadband.hu
@kemi:
Megint oda jutottunk, hogy OOP megközelítés nem OOP eszközökkel.
Nem, ez nem objektum, nem OOP, köze nincs hozzá.
@kemi:
Ebben a megfogalmazásban valami ilyesmi is objektum:
int x;
void set_x(int val) {
    x = val << 8;
}

int get_x() {
    return x >> 8;
}
Ez mióta ojjektum?
@kemi:
Na és mi van akkor, ha nem widgetet, hanem valami saját adatot szeretnél ellenőrzötten módosíthatóvá tenni. Kódszinten létezik, és semmi nem akadályoz meg senkit, hogy közvetlenül hozzáférjen, és ne interfészfüggvényt hívjon.
Csak az a baj, hogy ha annyira az ki akarja kerülni az interface hívást, azt az OOP se védi ki! Átfirkálja a faszi az osztályt, beírja a maga kis függvényét, ami megkerüli az ellenőrzést és csumi!
@kemi:
De látom te megrögzötten anti OOP-s vagy.
Nem kemi, én megrögzötten csak ms ellenes vagyok, az OOP-al alapvetően nem lenne bajom, ha nem erőltetnék agyon!
De őszintén szólva, te azzal jöttél, hogy az OOP GUI-ra való, ezzel szemben te először néhány sima tömb/string konverter függvényt ültettél át OOP-ra; ebből indult ki a vita, hiszen annak aztán tényleg semmi értelme nem volt. Utána azt mondtad, hogy GUI-n nem-OOP módon gány lesz a kód. Elismerem, ha az ember ránéz egy GTK-s kódra, akkor óhatatlanul erre a következtetésre jut, de mutattam ellenpéldát, hogy nem kell, hogy gány legyen.
És most már arról beszélünk, hogy a nyelv, illetve a paradigma akadályozza meg a programozót abban, hogy ostobaságot csináljon.
Erre igazából ugyanúgy két dolgot tudok mondani, mint amit saxusnak is mondtam: Egyfelől semmilyen nyelv vagy paradigma nem tudja megakadályozni, hogy a programozó ostobaságot csináljon, másfelől meg akit meg nyelvszinten kéne megakadályozni abban, hogy baromságokat csináljon, azt szakmai szinten kell megakadályozni, ne programozzon. Azért vannak ennyire elhízott programok, mert abból áll a szakma, hogy az inkompetens idióták fasságai ellen védekezik a rendszer, csak éppen hiábavalóan, ez meg is látszik a szoftverparkon...


kemi  (statz) Főfasz
#2, Főfasz (2970)
1258 | #21a5 | ^ | Idézet | Fri, 16 Nov 2012 15:57:48 +01
78.131.*.* winnyogsz Google Chrome Hungary *.pool.hdsnet.hu
@TCH:
Átfirkálja a faszi az osztályt
Hát ilyen formában aaz ellen nem vééd. Egyszerűen lecseréled a private kulcsszót publicra, és máris hozzá lehet férni az adattagokhoz. De ezért van ilyen konvenció, hogy adattag sose legyen public. A fejlesztőkörnyezetek szólnak, ha jól tudom a GCC-t is fel lehet paraméterezni, hogy warningoljon ilyesmiért.
@TCH:
az OOP-al alapvetően nem lenne bajom, ha nem erőltetnék agyon!
A C++ nem kényszeríti ki, meg nem M$ módjára kell használni. C#-ban nincs destruktor, meg memóriafelszabadító utasítás, várni kell a szemétgyűjtőre, ha épp arra jár szabadítsa már fel a már nem használt objektumokat. És persze nem garantált, hogy egy program futása során egyszer is lefut, meghívhatod manuálisan, másodpercekig fut, és még akkor se garantált, hogy felszabadítja azt az objektumot amit szeretnél. C++-ban ha már nem kell az objektum, meghívod a destruktorát, és már fel is szabadult az érintett memóriaterület. Az meg végképp marhaság, hogy a billentyűlenyomásra várakoztató függvény objektumba csomagolva adja vissza, hogy mi volt a leütött billentyű, holott visszaadhatna egyszerűen egy scan kódot. Ezért mondom, ahol nem muszáj nem kell használni, ahol praktikus jól jön.


TCH  (statz) Főfasz
#1, Főfasz (10443)
2057 | #21a6 | ^ | Idézet | Fri, 16 Nov 2012 16:25:39 +01
80.99.*.* Linux x86 Google Chrome Hungary *.catv.broadband.hu
@kemi:
Hát ilyen formában aaz ellen nem vééd.
Na, hát akkor mi értelme is van ezeknek a kódszinten létező protected/private adatoknak, ha egyszer - OOP vagy sem - kikerülhető? Minek kellett akkor ide az OOP? Azért, hogy egy kódszinten ugyanolyan sérülékeny, de legalább sokkal nagyobb és lassabb megoldás legyen, csak az elv kedvéért?
@kemi:
De ezért van ilyen konvenció, hogy adattag sose legyen public.
De kemi, konvenciókat OOP nélkül is lehet hozni; ennyi erővel hozok egy konvenciót, hogy az x értékét ne basztassák közvetlenül, mert érzékeny adat és használják az interface-t.
@kemi:
A C++ nem kényszeríti ki, meg nem M$ módjára kell használni.
Én a C++-t nem bántottam, semmi bajom nincs vele. Az m$ féle használat meg itt - kivételesen - kissé sántít, mert a dzsuva is ilyen és az nem m$.
@kemi:
C#-ban nincs destruktor
OMG.
@kemi:
meg memóriafelszabadító utasítás
OMG.
@kemi:
várni kell a szemétgyűjtőre,
OMG!
@kemi:
És persze nem garantált, hogy egy program futása során egyszer is lefut
OMG!
@kemi:
másodpercekig fut
OMG!!!
@kemi:
és még akkor se garantált, hogy felszabadítja azt az objektumot amit szeretnél.
WTF?!!!
@kemi:
Az meg végképp marhaság, hogy a billentyűlenyomásra várakoztató függvény objektumba csomagolva adja vissza, hogy mi volt a leütött billentyű, holott visszaadhatna egyszerűen egy scan kódot.
Rakni fogok facepalm bbcode-kat a vendégkönyvbe. Erre már képtelen vagyok mit mondani.
@kemi:
Ezért mondom, ahol nem muszáj nem kell használni, ahol praktikus jól jön.
Jó, oké, ez így oké lenne, de:
 •  Hol praktikus?
 •  Minek tetted be a string/array konvertereket egy osztályba? Ugye nem akarod azt mondani, hogy ott az praktikus lenne, hogy ötször annyit allokálgat, amikor épp előtte szóltál nekem, hogy egyszer kéne allokálni a ciklus előtt, nem pedig alatta folyamatosan. (Amiben lehet, hogy igazad is van, ki fogom benchmarkolni.)


kemi  (statz) Főfasz
#2, Főfasz (2970)
371 | #21a7 | ^ | Idézet | Fri, 16 Nov 2012 16:42:28 +01
78.131.*.* winnyogsz Google Chrome Hungary *.pool.hdsnet.hu
@TCH:
Na, hát akkor mi értelme is van ezeknek a kódszinten létező protected/private adatoknak, ha egyszer - OOP vagy sem - kikerülhető?
A forrásba bele lehet nyúlkálni, de nem illik. Ha akarod kommentbe is odaírhatod, hogy nebasztasd. A hülye programozó ellen meg semmi nem véd. De elképzelhető, hogy nincs forrás, csak tárgykód, akkor viszont nem lehet belenyúlni.


Prometheus  (statz) Főfasz
#3, Főfasz (1824)
84 | #21a8 | ^ | Idézet | Fri, 16 Nov 2012 16:48:43 +01
84.0.*.* winhate Mozilla Firefox Hungary *.dsl.pool.telekom.hu
Flood3r, mit is mondtál, hol csapkodjam az asztalt, ha még mindig nincs meg a maszk?


TCH  (statz) Főfasz
#1, Főfasz (10443)
651 | #21a9 | ^ | Idézet | Fri, 16 Nov 2012 17:34:16 +01
80.99.*.* Linux x86 Google Chrome Hungary *.catv.broadband.hu
@kemi:
A forrásba bele lehet nyúlkálni, de nem illik. Ha akarod kommentbe is odaírhatod, hogy nebasztasd.
Hát ez nagyon hatékony védelem. :P (És ez is tök mindegy, hogy OOP vagy sem.)
@kemi:
A hülye programozó ellen meg semmi nem véd.
Hát ez az. Akkor mire is van az OOP?
@kemi:
De elképzelhető, hogy nincs forrás, csak tárgykód, akkor viszont nem lehet belenyúlni.
Na ja, de ez megint teljesen független attól, hogy OOP vagy sem; ha nincs forrás, akkor ugyanúgy nem tudod basztatni a változót, mert fingod sincs róla, hogy ott van. (Oké, disassembly a barátod, de az ellen az OOP sem véd.)

Viszont, a két kérdésem felett átsiklottál.


Flood3r  (statz) Lófasz
#8, Lófasz (838)
264 | #21aa | ^ | Idézet | Fri, 16 Nov 2012 18:30:57 +01
94.21.*.* winhate Mozilla Firefox Hungary *.pool.digikabel.hu
@Prometheus:
Flood3r, mit is mondtál, hol csapkodjam az asztalt, ha még mindig nincs meg a maszk?


Azt nekem kell csapkodni. Ha még egy darabig nem jön meg, indítok egy paypal dispute-ot és visszautalja a pénzt. Nem tom hol a francba nyelődött el az a fos.


TCH  (statz) Főfasz
#1, Főfasz (10443)
142 | #21ab | ^ | Idézet | Fri, 16 Nov 2012 18:33:57 +01
80.99.*.* Linux x86 Google Chrome Hungary *.catv.broadband.hu
@Flood3r:
Nem tom hol a francba nyelődött el az a fos.
Valahol a pósta egyik raktárában.
Tű a szénakazalban 2012 (C) magyarpósta.


Prometheus  (statz) Főfasz
#3, Főfasz (1824)
71 | #21ac | ^ | Idézet | Fri, 16 Nov 2012 19:03:26 +01
84.0.*.* winhate Mozilla Firefox Hungary *.dsl.pool.telekom.hu
Köszi, Flood3r.
Még nem jött póstai értesítő, tehát nem tehetek semmit.


saxus  (statz) Agyfasz
#9, Agyfasz (419)
2180 | #21ad | ^ | Idézet | Fri, 16 Nov 2012 19:36:45 +01
31.46.*.* Apple Mac OS X x86 Apple Safari Hungary *.dsl.pool.telekom.hu
"A C++ nem kényszeríti ki, meg nem M$ módjára kell használni."

Ha mar itt tartunk, lassan az MSVC++ jobban all a C++11 tamogatassal, mint a GCC.

"C#-ban nincs destruktor"

Tevedes, van destructor (finalizernek hivja a CLR)

"meg memóriafelszabadító utasítás"

Mar hogy ne volna. :) IL kodba erdemes neha belenezni.

"várni kell a szemétgyűjtőre"

Var a halal, fut az magatol a hatterben es ez igy van jol. Egyebkent tegyuk hozza: ez a CLR resze, nem a C# nyelve.

És persze nem garantált, hogy egy program futása során egyszer is lefut, meghívhatod manuálisan, másodpercekig fut, és még akkor se garantált, hogy felszabadítja azt az objektumot amit szeretnél.

Ahogy TCH is mondta (igaz egesz mas okbol) WTF? :)

"C++-ban ha már nem kell az objektum, meghívod a destruktorát, és már fel is szabadult az érintett memóriaterület."

Es .NET-ben nem ugyanigy mukodik? :) Kulonbseg, hogy nem neked kell vadaszni ezeket. Mellesleg komolyabb C++ projekteknel szinte kivetel nelkul hasznalnak valamilyen GC jellegu megoldast.

"Az meg végképp marhaság, hogy a billentyűlenyomásra várakoztató függvény objektumba csomagolva adja vissza, hogy mi volt a leütött billentyű, holott visszaadhatna egyszerűen egy scan kódot"

Ehelyet a kis suttyo visszaad neked egy immutable osztalyt a billentyuzet teljes allapotterevel, hogy ha te 2 nap mulva akarsz foglalkozni azzal az eredmennyel akkor is konzisztensen ugyanazt az eredmenyt kapd a kulonfele valtobillentyuk allapotarol is :) Na meg visszakapod az esemenyt kivalto objektumot meg egy csomo egyeb adatot, ami alkalomadtan kellhet. Egy alapvetoen 50 Hz-vel mukodo billentyuzet eseten azt hiszem nem fogok megijedni attol a minimalis plusz adatmennyisegtol.

Btw. erdemes .NET temakorben elolvasni a CLR via C#-ot. Ravilagit nehany erdekes dologra a .NET-tel kapcsolatban.

----------------------------------

Totalmas: TCH: megvan meg a IG2DAT_E kodja? Elkerhetem? :)
Masik: Nem tudod, hogy ezek az .xv fajlokat mi a retek eszi meg? (MMint az IG2-n kivul) Jo lenne valami szabvanyos cuccba atkonvertalni (mondjuk .obj+.mtl), tobbi cucc ugy nezem total szabvanyos BMP meg wav)


saxus  (statz) Agyfasz
#9, Agyfasz (419)
1020 | #21ae | ^ | Idézet | Fri, 16 Nov 2012 19:46:26 +01
31.46.*.* Apple Mac OS X x86 Apple Safari Hungary *.dsl.pool.telekom.hu
"Hát ez az. Akkor mire is van az OOP?"

Kopipasztanal hatekonyabb kodujrafelhasznalas (szarmaztatas), absztrakcio (pl. nem foglalkozol vele, milyen Stream, lehet File, Network, ZipStream, kifele egysegesnek nez ki), egysegek kialakitasa, retegezett programszerkezetek kialakitasa, (foleg parhuzamositott programoknal) egyszerubb egy zart egyseg konzisztenciajanak fenntartasa, meg sok-sok ilyen egyeb hasznos dolog. Az egesz lathatosagi moka csak egy mellekes dolog.

Meg mondjuk meg lehetne beszelni az Actor modellrol (ld. Erlang), ami valahogy kimaradt a C++(Java/NET/egyeb haverjai) vonulatbol. Bar ennek nyomai mutatkoznak pl. a C#5 asyncnel na meg ahogy nezem manapsag a legtobb OOP nyelv nekiallt mindenfele funkcionalis nyelvbol atorokiteni dolgokat, ld. LinQ, clojure, ezekhez kapcsolodoan mindenfele anonym adatszerkezet es fuggvenyek, stb. Na meg Java (pontosabban JVM) vonalon a Scala, meg mintha picit ujra eloterbe kerultek volna a tisztan funkcionalis nyelvek, mint Lisp, haskell meg ilyesmik.


kemi  (statz) Főfasz
#2, Főfasz (2970)
587 | #21af | ^ | Idézet | Fri, 16 Nov 2012 20:27:26 +01
78.131.*.* winnyogsz Google Chrome Hungary *.pool.hdsnet.hu
@saxus:
Kopipasztanal hatekonyabb kodujrafelhasznalas (szarmaztatas), absztrakcio (pl. nem foglalkozol vele, milyen Stream, lehet File, Network, ZipStream, kifele egysegesnek nez ki), egysegek kialakitasa, retegezett programszerkezetek kialakitasa, (foleg parhuzamositott programoknal) egyszerubb egy zart egyseg konzisztenciajanak fenntartasa, meg sok-sok ilyen egyeb hasznos dolog.
Én is ezekre próbáltam rávilágítani.
@saxus:
Ha mar itt tartunk, lassan az MSVC++ jobban all a C++11 tamogatassal, mint a GCC.
Ezt nem vitatom, de a dotnet, meg a java egy kalap bloatware fos.


English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1424) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.04.27. 20:05)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés

Név: (max 255 byte)

Email: (max 255 byte) Nem kötelező!

Üzenet: (max 65536 kar.) 65536-0=65536




crap_vkn v4.34.0 by TCH
Thx to saxus for the escaped string decoder function (PHP), the realIP function (PHP) & the SQL handle layer (PHP), to thookerov for the int_divide function (PHP), to Jeff Anderson for the getSelText function (JS), to Alex King for the insertAtCursor function (JS), Flood3r for the new CSS styles, Pety for the spamprotection idea and some design and comfort ideas, MaxMind for the IP2Country database, famfamfam for the flags of countries and an unknown PHP programmer for the removeAccents function.



Kecskebaszók ide!