Aszimmetrikus megérthetőségű / futtathatóságú nyílt forráskód

Van egy UCLA forrású cikk itt, amely arról ír, hogy el lehet ködösíteni (obfuscate) úgy egy programkódot, hogy a megértéséhez nagyságrendekkel nagyobb erőforrás kelljen, mint ami pluszban megjelenik a (ködösítés miatt a) futtatáskor.

Van új a nap alatt. :-) Engem meglepett, hogy (lényegében) azt az elvet, hogy "két számot összeszorozni könnyű, de szorzatot bontani nehéz", lehet alkalmazni ilyen szinten is.

A felhasználásával kapcsolatban arról írnak (az lwn.net-en is), hogy pl. egy-egy biztonsági hiba javítására szolgáló folt (patch) esetén is használható, amikor nem szeretnék a folttal együtt a hiba jellegét is közzétenni. No meg a "szellemi tulajdon védelme" című nóta is eldalolható annak, aki szereti az ilyesmit.

Mindenesetre érdekes. Némi extrapolációval oda is vezethet mindez, hogy nem biztos, hogy a nyílt forráskód egyben megérhető forráskód is lesz a jövőben.

Hozzászólások

kodosites? Juj, jo lenne, ha nem jatszanank onjelolt nyelvujitot. Abbol eleg egy is az oldalon.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. 

Miért, az obfuscatinget hogy szokás fordítani?

Onjelolt nyelvujito nem is vagyok, esetleg önjelölt. (De ezt vállalom is; megvan hozzá a hátterem a 10 lefordított Kiskapus szakkönyv után.) Ennek ellentéte a lusta informatikus, aki kényelmesen mindent meghagy angolul. Amúgy a cikk érdemi része is érdekel?

Én tudok azonosulni azzal, amit a Kiskapu célul tűzött ki. Senki nem állítja, hogy teljes siker volt minden magyarítási törekvésük, de legalább megpróbálták. Nekem tetszett. Valahol el kell kezdeni a nyelvi beemelés feladatát; ők elkezdték. Néhány kifejezés meghonosodott, néhány nem. Ez van.

Igeként még nem találkoztam vele, de mint "obfuscator" igen.
De még1x: nem erre a konkrét esetre céloztam, csak általánosságban jegyeztem meg. Volt pár rémisztő kísérlet és a Kiskapu kiadó élen járt az ilyen horrorisztikus fordításokban.
Sok, egyébként szakmailag nagyon jó könyvet raktam vissza a polcra, miután beleolvastam és megállapítottam, hogy nem lefordították, hanem "megmagyarták" az adott írást. ;)
(arra mindig lusta voltam, hogy amazonról vagy hasonló helyről hozassak olvasnivalót, pedig Robert C. Martin könyveit szívesen olvasgattam volna. De már a Clean Code fordítása is megfeküdte a gyomromat sajnos, pedig az még egész jó lett)

Nem érdekes, hogy ki mivel azonosul. Személy szerint nekem sincs bajom sem a Kiskapuval, sem azzal, hogy egyáltalán vannak magyar nyelvű szakkönyvek. Legyenek is, annak ellenére támogatom az ötletet, hogy szinte kizárólag angolul olvasok ilyet. Ettől még lehet, hogy másnak szüksége van rá.

Viszont ettől még nem szabadna megideologizálni az olyan fordítások létjogosultságát, melyek félrevezetőek vagy akadályozóak.

>"Valahol el kell kezdeni a nyelvi beemelés feladatát;"
Nem, nem kell !
Mondom ezt úgy, hogy nem tudok angolul. Mégis rá vagyok kényszerülve, hogy megértsem vagy lefordítsam a szakmai blogokat, fórumokat. Így a szakkifejezéseket is angolul tanulja meg az ember. Hagy ne keljen már azokat a szavakat újból tanulni pár év múlva magyarul is, ráadásul úgy, hogy fogalma sincs az embernek, mi is volt az eredeti szó. Aki ezt nem fogja fel az nem informatikus szerintem.

Azért a "kifejezett zárak" - különösen, hogy "kifejezett zár" kifejezésre a google semmit sem talált, komoly fejtörést okozott. Végül a linux-flame listán találtam meg, hogy explicit locks volt eredetiben. :D

(megnézném, pl. a java fordító mit szólna az "elvont osztály A...;" definícióhoz ;) )

Kénytelen vagyok bemenni a zsákutcádba és megkérdezni mi a tökömért nem tudsz érdemben a témához hozzászólni és miért kell kötekedni? Annyira idegesítőek és fárasztóak az ilyen idióta hozzászólások egy szakmai fórumon/blogon. Gondolkozz mielőtt gerjeszted fölöslegesen a feszültséget! Köszi
Üdv,
Gábor

Hát akkor mit jelent mégis? A ködösítés pont egy olyan fogalom, ami kivételesen visszaadja azt, amit az obfuscation jelent: adott kódrészlet összezavarása, "homályossá" tétele a nehezebb megérthetőség érdekében. Erre a magyar nyelv kifejezetten használja a ködösít igét, pl. mikor valaki nem akarja, hogy más megértse, amit mondanak neki.

Vannak tényleg ostoba fordítások (zárvány, elvont osztály, brr..), de ez egy kifejezetten elfogadható fogalom.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

ködösít:
bekavar; hazudik direkt azért, hogy homályosítsa a dolgot és összekuszálja a szálakat

Az obfuscationt inkabb csak osszekuszalasnak mondanam. Nincs ennyire negativ szinezete a szo eredeti jelentesenek, mint amit a kodosites sugall.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. 

Nem azzal van baj, hogy leírod a véleményed, mert az akár igaz is lehet, csak nem értem, hogy miért kell földbe döngölni a másikat.
Lehetne pozitív kicsengéssel is kijavítani/kiegészíteni a dolgokat, nem magas lóról oktatni.

Sokszor tapasztalom általában magyar szakmai fórumokon, hogy a kommentelők csak a hibát keresik, és szinte ellenfélnek tekintik a többieket. Nem értem, hogy miért jó ez. Nem vagyok egy verbális pacifista, de olyan lehangoló ilyen hozzászólásokat olvasni.

"proletár lájk" (nem tudom, kitől láttam ezt a +1/subs helyett :) )

Dehamárnyelvészkedünk: nem aszimmetrikus az az asszimetrikus?

Mint az "egyenlőre" ;)
Az "asszimetrikus" minden szempontból értelmetlen. Olyan szó van, hogy "szimmetrikus". Az "a" meg... minek hívják? Fosztóképző? Valami ilyes... Szóval attól, hogy terjed, még nem helyes. :)
Persze az is igaz, hogy én még ventillátorként tanultam a ventilátort...

A hasonlatot nem érzem teljesen találónak. Az "egyenlőre" téves szóképzés, mert valamiképp az "egyenlő" szót érzi benne a használója, nem pedig az "egy-előre" szerkezetet. Az asszimetrikus viszont egy hangzás szerinti leírás, aminek időnként van létjogosultsága. Pontosabban: létjogosultságtól függetlenül egyszerűen elterjed és kész. Egy példa: (bár nekem nem különösebben tetszik, de ma már) használható az "Atilla" alak is.

Nagyon érdekes ez a gondolat. Én úgy gondolom, hogy egy olyan rendszernél, ahol fontos a felbukkant hibákra való minél korábbi reagálás, nem éri meg ilyennel vesződni, mert nehézzé teszi a közösségi munkát.

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)

És erre a következtetésre vajon úgy jutottak el, hogy megnézték azt, hogy a fogyatékosok által írt kódot sokkal nehezebb karbantartani, mint bárkiét, aki csak egy minimálisan is próbálja tisztességes módon űzni a kódlapátolóét?

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Azért tegye fel a kezét, aki elolvasta és meg is értette mi van benne!

Ugyanis nem egy egyszerű téma. Pedig korábban (amikor még phd-t akartam csinálni) elég sok CS papert olvastam, de erre úgy tippelném, hogy minimum hetek munkája lenne egyáltalán felkészülni a szükséges előismeretekből.

Igazából pont azon gondolkodtam, hogy mennyi munka lenne erre egy referencia implementációt adni. Appendix A-ban végülis adtak egy lépéssort rá, de ezt egy praktikus programnyelvre alkalmazni azért igényel még pár igencsak nemtriviális lépést.
---
Régóta vágyok én, az androidok mezonkincsére már!

amikor nem szeretnék a folttal együtt a hiba jellegét is közzétenni. No meg a "szellemi tulajdon védelme" című nóta is eldalolható annak, aki szereti az ilyesmit.

karbantarthatosag nem rulez?

Némi extrapolációval oda is vezethet mindez, hogy nem biztos, hogy a nyílt forráskód egyben megérhető forráskód is lesz a jövőben.

ami egyuttal a hozzajarulok szamat is drasztikusan lecsokkenti. Nekem ongyilkos taktikanak tunik...

Diktatorok kezikonyve

Nem mindenki akar hozzájárulókat. Mondjuk egy cég felhasznál egy kódot, amelynek lincence megköveteli a módosítások nyílt forrású közzétételét, de nem szeretné a saját hozzájárulását nyilvánosságra hozni. Voálá, nyílt a forrás, de mégsem. Védve van a törvény szerint. Szomorú. Nem?

És rögtön kirendelnek mellé egy MEO-st, aki ellenőrzi, hogy a GPLv4 alatt kiadott szoftverek forráskódja megfelel-e az általa támasztott követelményeknek? ;)
Mert ugye a kód érthetőségét elég nehéz úgy definiálni, hogy objektíven el tudd dönteni, megfelel-e neki az adott kód vagy sem. :)

Gondoltam, érzékelhető az irónia, nem véletlenül használtam a "MEO"-t :)

De komolyan: létezik olyan, hogy a GPL betartását ilyen mértékben ellenőrizzék? Biztosan gyenge a fantáziám, de valahogy nehezen tudok elképzelni egy objektív ellenőrző bizottságot, akik rá merik mondani egy programra, hogy nem használhat GPL licencet, mert nehezen olvasható a kódja...

Ha a GPLv123-ba bekerül, hogy az x programnyelven írt kódnak meg kell felelnie a GPLv123_x_coding_standards -ben foglalt feltételeknek ahhoz, hogy GPLv123 alatt legyen terjeszthető, akkor ugyan rigorózus ellenőrzés még nem lesz, de magát a GPLv123-at nem fogja jogszerűen használni az, aki a kódolási szabványnak meg nem felelő programot alkot.

hogy a megértéséhez nagyságrendekkel nagyobb erőforrás kelljen, mint ami pluszban megjelenik a (ködösítés miatt a) futtatáskor

óóó, ilyen már eddig is volt, úgy hívják, Perl :)
---------------------------
���������������������������

Mit jelent az, hogy aszimmetrikus megérthetőség?
______________________
this comment is cc by-nc 2.5

Hülyeség, hogy ez az aszimmetrikus megértés működés közben, mert én nem aszimmetrikusan értem meg azt, hogy mi az, hogy aszimmetrikus megérthetőség, hanem jelenleg fogalmam sincs arról, hogy mit jelent az aszimmetrikus megérthetőség.

Hülyeség maga az aszimmetria szó használata is itt, mert egyvalami dolgot csak egészben lehet megérteni. Igaz, hogy valaminek a félremagyarázott jelentése már nem az, ami eredeti információként indult el a küldőtől és ez a vevő szempontjából (ha ezt a küldő figyeli) félreértésre ad okot, de ezt már a vevő – a küldőnek birtokában lévő lényegi információ tudta nélkül – már új, más információként kezeli.

A külső szemlélő meg azt látja, hogy a küldő jól átverte a vevőt. Különben is miért nem lehet értelmesen megfogalmazni az aszimmetrikus megértést (legyen hát) kétértelműre?
______________________
this comment is cc by-nc 2.5

adott egy feladat, amit lekodolsz 'trukkosen', ennek a nehezsegi foka pl 3. Jon bela, aki megnezi az amugy open source kodot, es ahhoz, hogy megertse, mit csinal a kod, bele kell feccolni 35-40 egysegnyi melot, annyira ossze van zavarva. Tehat azert aszimmetrikus, mert konnyu a kodot osszezavarni, de nehez azt kihamozni. Gondolj pl. a crypt fuggvenyre analogiahoz...

Diktatorok kezikonyve