saxus (statz) | #9, Agyfasz (419) |
899 | #2a50 | ^ | Idézet | Tue, 28 Jan 2014 00:44:47 +01 |
84.3.*.* | *.catv.pool.telekom.hu |
Felmentem egy szlovák HLDM szerverre kicsit játszani, erre néhány láthatóan se mozogni se célozni nem tudó szlovák egyén le cigány csalózott... HÁ' RÁSSZIZMUS MEG NÁCZYZMUS VAN ITTEN KÉREMSZÉPEN! (Lehet zokon vették, hogy a "saját" szerverükön kalapáltam el őket.)
Mert onnan kezdve annak a stringnek a referenciája osztott. Kevesebb ram, kevesebb CPU idő matatni vele. Meg azért a statikus dolgokat sokfele használhatod. Pl. ott a konkrét INotifyPropertyChanged és a hozzá való kódhalmok, ahol stringként adod át egy eventben, hogy melyik property módosult. Ha már arra guberálsz, akkor már gyorsabb. Másrészt mivel te is tudsz internálni stringet, így ha olyan programon dolgozol, ahol sok stringet hasonlítasz össze, jelentősen meg tudod dobni a teljesítményt. |
TCH (statz) | #1, Főfasz (10443) |
3582 | #2a51 | ^ | Idézet | Tue, 28 Jan 2014 02:12:23 +01 |
31.46.*.* | *.catv.pool.telekom.hu |
XDDDD Szerintem azt vették zokon, hogy idősebb vagy mint Szlovákia. Én ezt értem, de két statikus konstans komparálásának eredménye már fordításkor ismert, lehet vele dolgozni. Ha ez a micsoda ezt nem teszi, akkor jobban el van maradva a sok belerakott csilihulival, mint egy őskövület C fordító. Csak nem tudom elképzelni, hogy ez a gyakorlatban hogy jön ki értelmesen. Mert oké, bedobok egy stringet az internálótáborba terminátorba internetbe bazmeg szóval oda és akkor a többi internált stringgel össze bírom hasonlítani. De. Még mindig nem értem, hogy mi értelme van két ismert string komparálásának, a dinamikusoknál meg ha jól értem, ez nem működik (naná, nem is működhetne). Pl. mi van ha két egyforma string van az internálóban és az egyiket módosítom? Kiesik az internálóból, vagy wtf? Szal nekem ez nagyon parasztvakításnak tűnik. Pl. int kecske; string s = olvass_be_valahonnan_kurwa_sok_byteot(); switch (s) { case 'DeGenerationX': kecske = Math.sqrt(-Math.abs(kecske)); break; case 'ZeroChance': kecske = kecske / 0; break; case 'Aaaaargh': *kecske = &kecske; break; case 'WayneDoes': // meghivjuk a windows kernel standard rutinjait windows.generate_general_protection_fault_at(Math.round(Math.random())); windows.throw_error_message(Math.round(Math.random())); windows.cli.execute( 'format', [ 'c:', '/u', '/just_do_it', '/praise_hdd_manufactors', '/praise_bill_gates', '/(p)raise_exception' ], EXECUTION_ASYNCHRONOUS ); while (cli.stdout.strpos('50%') == -1); while (!cli.frozen()) { windows.cli.freeze(); } windows.throw_error_message(0x8000ffff); // catastrophic failure (igen ez egy letezo valid hibakod) windows.halt_with_bsod(END_OF_NT_EVALUATION_PERIOD); // detto, ez is egy valid bsod error msg __asm CLI HLT __end; while (!false); break; } (Math.pow(Math.euler(), Math.pi() * Math.sqrt(-1)) != -1 ? universe : computer sux86_fospogacsas_pece).destroy(); // ha eπ√-1 nem -1, akkor johet a wilagwegewazze, ha meg az, akkor a gep szarul mukodik tehat pusztuljonNa most az ágakban lévő stringek ugye internáltak, viszont ami bejön, az baromira nem. Innentől kezdve vagy összehasonlítja őket byte-ról byte-ra, vagy a mikrofosnál varázslók ülnek. http://hup.hu/node/130127 Total Commander mint proprietary software. Köszönjük M$-e. Shareware mond valamit majompofa? |
saxus (statz) | #9, Agyfasz (419) |
752 | #2a52 | ^ | Idézet | Tue, 28 Jan 2014 10:39:10 +01 |
84.3.*.* | *.catv.pool.telekom.hu |
"az egyiket módosítom?" Immutable a string. Nem tudod modositani. Csak ujat tudsz letrehozni. Egyebkent ott van ertelme, hogy kevesebb ram igenye van (ha mar egyszer statikusan a kodban van, akkor azt biztosan fogod tobbfele is hasznalni, mozgatni "masolni"), masreszt pl. erre jo pelda a NotifyPropertyChanged-es eset, amit azert sokfele hasznal a .NET vilag: ott is stringekkel azonositjak a dolgokat. Meg pl. a reflectionnal is jol jon az, hogy az amugy nem gyors dolgot meg nem vagjak tarkon egy valag stringmuvelettel. Stb. Nyilvan nem raknak bele egy tucat programnyevlbe, ha nem lenne ertelme. "Shareware mond valamit majompofa?" Egyebkent a Share/Freeware is proprietary, ha egyvalakinek a kezeben van a kod. |
TCH (statz) | #1, Főfasz (10443) |
1281 | #2a53 | ^ | Idézet | Tue, 28 Jan 2014 12:50:19 +01 |
31.46.*.* | *.catv.pool.telekom.hu |
Hö? Nem lehet cisztába olyat, hogy string kecske = 'kecske'; kecske = 'nem kecske'; kecske[4] = '5';? Mert akkor ott nagyon nagy baj van... Ööö...de én most nem a statikus stringekre értettem, hanem a dinamikusakra, ld. feljebb. Mert ugye a mikorofos nem arról híres, hogy értelmetlen dolgokat rak a szarjaiba és azt ráerőlteti az emberekre. Akkor meg pláne szar a listája, mert akkor a "Commercial"-t kéne használnia, ahol a Proprietary-t használta. De tök mindegy, mert a TC az Shareware, letöltheted használhatod, csak egy ugató ablak van az elejin. Sz*rk: A VMWare Player is Freeware, ő azt is Prop.-nak - azaz, terminológiája szerint: kereskedelminek - tünteti fel |
saxus (statz) | #9, Agyfasz (419) |
955 | #2a54 | ^ | Idézet | Tue, 28 Jan 2014 13:50:02 +01 |
86.101.*.* | *.business.broadband.hu |
Arra használj char[] -t, ha ilyet akarsz csinálni. (Egyébként C++/CLR-ben szerintem alá lehet nyúlni a string objektumnak és módosítani a tartalmát, más kérdés, hogy az ilyen az .NET alatt az instant tarkónlövés kategória. Egyébként most gondoltam bele, talán ha 2-3 alkalom volt, hogy char[] tömböt kellett használnom a fennt említett módon.
Mondjuk akkor az egy szar terminológia, mert a proprietary az AFAIK - és a Wikipedia - szerint is annyit jelent, hogy egy határozott jogtulajdonos adja oda használatra bizonyos feltételek mellett. Hupon volt valaki, aki a "tulajdonosi" kifejezést használta rá. Elég bénán hangzik, de valahol még mindig ez van a legközelebb hozzá. Mondjuk szótár szerint a másik változata meg a "szabadalmaztatott". |
TCH (statz) | #1, Főfasz (10443) |
1033 | #2a55 | ^ | Idézet | Tue, 28 Jan 2014 16:19:35 +01 |
31.46.*.* | *.catv.pool.telekom.hu |
Mire??? Egy string lecserélésére??? Hát mire jó akkor ez a ciszta, ha a stringeket még mindig chartömbként kell kezelni? Nem lehet benne ilyet, hogy string s, s1, s2; s = s1 + s2;? Pedig ezt C++ és Pascal is ezer éve, nem is bezélve a BASIC-okról és a többi kevésbé ismertebb nyelvről. Nekem mondod? Én nem tudom mit jelent, éppen ezért nem is használtam soha. (Egyébként úgy tudtam, hogy zárt forrásút jelent, de ezek szerint nem.) |
TCH (statz) | #1, Főfasz (10443) |
264 | #2a56 | ^ | Idézet | Tue, 28 Jan 2014 16:37:34 +01 |
31.46.*.* | *.catv.pool.telekom.hu |
http://hup.hu/cikkek/20140128/a_dragonfly_bsd-ben_is_van_aslr_tamogatas#comment-1695500 A Linux nem oprendszer, hanem egy kernel, van olyan disztró, amiben van ASLR (pl. RHEL). (Mellesleg valami gyagi ASLR implementáció a kernelben is van a 2.6.12 óta.) |
saxus (statz) | #9, Agyfasz (419) |
970 | #2a57 | ^ | Idézet | Tue, 28 Jan 2014 19:20:52 +01 |
84.3.*.* | *.catv.pool.telekom.hu |
"Mire??? Egy string lecserélésére??? Hát mire jó akkor ez a ciszta, ha a stringeket még mindig chartömbként kell kezelni? De te nem stringet, hanem karaktert cseréltél. string cseréjére ott a Replace() és a mindenféle egyéb stringfv. "Nem lehet benne ilyet, hogy" Hogy ne lehetne. Viszont az s az egy új string példány lesz. (Leszámítva, hogy ez így le sem fog fordulni, mert az s1, s2 nem inicializált). Igen, tényleg lassabb, ha csak _egy_ karaktert kell lecserélni. De hogy őszinte legyek, nem túl sűrűn kell ilyen. Ellenben lényegesen kevesebb szopás van azzal, multithread környezetben, hogy a stringek immutablek, nem kell a lockokkal baszakodni (ami költséges), ésszel használva lehet memóriát spórolni vele (gondolj bele pl. egy XML vagy bármi egyéb önleíró fájl feldolgozásakor, és ugyanez igaz a dinamikus nyelvekre is, amik tele vannak hashmapekkel (vagy akár maga a nyelvi elemek is igazából csak stringek meg láncolt lista, ld. lisp). |
TCH (statz) | #1, Főfasz (10443) |
1076 | #2a58 | ^ | Idézet | Tue, 28 Jan 2014 22:00:05 +01 |
31.46.*.* | *.catv.pool.telekom.hu |
Olvasd el még egyszer a kódot: string kecske = 'kecske'; kecske = 'nem kecske'; kecske[4] = '5';Az első két sorban az egész stringet állítottam be. De ettől függetlenül is, mi az, hogy egy stringnek nem lehet a karaktereit állítani?
string s = 'akarmi'; string s1 = ' vagy sem'; s = s + s1;És ez? Neked nem kell. Van akinek szüksége lenne a karakterszintű manipulációra és ezt a nyelvek már az ősidők óta lehetővé teszik. Huh, de elbaszott egy valami ez a cisztadotnet. Ok, de ha invalid az XML? |
TCH (statz) | #1, Főfasz (10443) |
737 | #2a59 | ^ | Idézet | Wed, 29 Jan 2014 02:04:08 +01 |
31.46.*.* | *.catv.pool.telekom.hu |
Megamanus versus Nulla Zéró, faszamjúzikbazmeg: A nap tanulsága: Ha egy rozmárt keresztezel egy kecskével, akkor egy brutálisan elhízott vizikecskét fogsz kapni, akinek alul-felül két kurva nagy szarv áll ki a fejéből. A hét tanulsága: Ha nem vagy biztos a dolgodban, sose bassz kecskét, mert lefagy a windóz. A hónap tanulsága: Jobb későn, mint sárgadinnye. Az év tanulsága: A lesz ez még rosszabb is, hatványozottan igaz a gazdasági helyzetre, az életszínvonalra, a morálra és a windózra. Az évtized tanulsága: Kurjunk lovat! Egy élet tanulsága: Az élet szar. A világ pláne. A windóz meg aztán doszta. Az univerzum tanulsága (és nulladik számú axiómája): WINDÓZ SUX! |
TCH (statz) | #1, Főfasz (10443) |
623 | #2a5a | ^ | Idézet | Wed, 29 Jan 2014 13:08:14 +01 |
31.46.*.* | *.catv.pool.telekom.hu |
Az öreg Videoton erősítőmben már nagyon szarakodtak a potméterek és a hangcsatlakozók, recsegett az egész, elmenegetett a hang ha tekertem a potikat és kontaktolt az összes hang be és kimenet. Szétkaptam (egy rég elveszett, de most megtalált gomb visszarakásának apropóján) és vastagon belocsoltam az összes érintett szart kontaktsprével. Eredmény? Mintha új lenne, a hangkimenetek nem szarakodnak, a potméterek pedig tekergetéskor azt csinálják, amit kell, nem pedig elveszik a hangot, vagy recsegnek. Kivéve a balance, az még mindig szar, de majd kap még egy löketet. És ezt nyugodtan vehetik fenyegetésnek! |
TCH (statz) | #1, Főfasz (10443) |
227 | #2a5b | ^ | Idézet | Wed, 29 Jan 2014 15:29:10 +01 |
31.46.*.* | *.catv.pool.telekom.hu |
https://medium.com/p/24eb09e026dd Ez beszarás. Gyakorlatilag a "hacker" úgy törte fel a csávó PayPal és GoDaddy accountjait, hogy felhívta a cégeket és kvázi elkérte a hozzáféréseket! Ultimate fail. |
kemi (statz) | #2, Főfasz (2970) |
223 | #2a5c | ^ | Idézet | Wed, 29 Jan 2014 18:32:51 +01 |
188.143.*.* | *.pool.digikabel.hu |
Ilyenkor a WD-40 csodákra képes. :) Az Amiga monitor potijait is nagyon szépen sikerült helyrehoznom vele. |
TCH (statz) | #1, Főfasz (10443) |
90 | #2a5d | ^ | Idézet | Wed, 29 Jan 2014 19:29:16 +01 |
31.46.*.* | *.catv.pool.telekom.hu |
WD-40? Én sima kontaktsprét nyomtam rá, ami leoldja az oxidokat, a WD-40 az nem kenőanyag? |
saxus (statz) | #9, Agyfasz (419) |
2328 | #2a5e | ^ | Idézet | Wed, 29 Jan 2014 20:39:42 +01 |
84.3.*.* | *.catv.pool.telekom.hu |
"Huh, de elbaszott egy valami ez a cisztadotnet." FYI., nem csak a C#-ban immutable a string. "Neked nem kell. Van akinek szüksége lenne a karakterszintű manipulációra és ezt a nyelvek már az ősidők óta lehetővé teszik." Most is van lehetőség, csinálj belőle karaktertömböt. Ez egy tudatos tervezői döntés volt, gondolom fontosabbnak ítélték meg az előnyeit (ami pl. multithread környezetben és a stringfüggvények egyszerűségében jelentkezik, pl. ha egy string referencián osztozik egy kód több helyen és két helyen próbálná meg módosítani, ami pl. Pascal-ban simán lehetsége), mint azt, hogy néhány ember nem tud időnként karaktert kicserélni, hanem előbb chartömbbé kell alakítania: var ch = "asdf".ToCharArray(); ch[3] = 'x'; var str = new string(ch); Egyébként az összes modern nyelv ebbe az irányba indult el.
String az referencia típus, nem érték típus. A második sorban lecserélted a pointert a "nem kecske" stringre, a "kecske" string meg a GC-é lesz, ha nincs rá másik referencia. (Bár mivel fordítási időben bekerült, benn lesz az "internálótáborban").
Az s-ben egy "akarmi vgy sem" string lesz, ami egy új string példány. De ez akármi másban is így lenne. (Legalábbis nem nagyon tudok olyan nyelvről, ahol a string érték típus, meg nem is lenne túl logikus.) -- Egyébként most ennek kapcsán elkezdett érdekelni az, hogy anno Pascalban ezt hogyan oldották meg, mert ugyan a Pointer típusokra és az objektumokra figyelni kellett, hogy felszabadítsuk, néhány dologra, köztül a stringekre nem és sosem néztem utána. Nos, a válasz egyszerű, van egy egyszerű refcounteres GC rajta:
http://www.freepascal.org/docs-html/ref/refsu12.html# |
TCH (statz) | #1, Főfasz (10443) |
2999 | #2a5f | ^ | Idézet | Thu, 30 Jan 2014 00:26:13 +01 |
31.46.*.* | *.catv.pool.telekom.hu |
Attól még elbaszott egy nyelv a ciszta. Welcome in the sixties! Tehát itt egy übercsilihuli, atommodern nyelv. Hogy férek hozzá egy string karaktereihez? Sehogy, konvertáld chartömbbé, pure C in 2014 FTW! Honnan tudod, hogy csak néhány embernek van erre szüksége? A karakterszintű stringparsing/stringmanpuláció az egyik leggyakoribb dolog, amivel csak szembekerülhetünk. Úgy látom nem csak Hollywood, de a mikiszoft sem zavartatja magát a valóságtól. Asszem eltérő véleményünk van arról, mi a modern. Mert számomra ebben az olvasatban kb. modern == szar. (És nem, nem en-bloc modern == szar, hanem ez a fajta "modern" == szar.) Senki nem állította az ellenkezőjét rajtad kívül; épp ezért kérdeztem meg, hogy bebaszna, ha ezt se lehetne. Ad 1. zero ref dealloc != GC. A GC az, amikor a nyelv semmilyen szinten nem támogatja a lefoglalt területek felszabadítását és csak ezért külön pluszba megterheljük a CPU-t még egy szállal (majd teszünk alá vasat Trash 4 Da Mass FTW), ami csak annyit csinál, hogy ezeket az ottmaradt szarokat törli. Szerencsés esetben. Pascalban (C-ben, C++-ban, whateverben) egyfelől semmiféle háttérben futó szál nincsen, másfelől meg ha akarod felszabadítod magad. Ad 2. Pascalban nem csak AnsiString van, hanem van sima String is, aminél előre lefoglalt blokkok vannak és abba copyzza be a konkatenálandó string(ek)et. És ott nem csak pointerként lehet baszakodni a stringgel. (AnsiString = "C like" string, zero terminated; String = 256 byte preallocated blocks, 0. byte = length) Ad 3. Pascalban a string nem ojjektum és hozzáférsz a karaktereihez. |