Patch Perl modulu

Technický odbor působí v oblasti správy, údržby a vývoje technických systémů strany a jejích technických zařízení a poskytuje servis ostatním orgánům strany.

Moderátor: Odbor - technicky

Pravidla fóra
  • Sem vkládejte připomínky k činnosti technického odboru. Ke každému podnětu založte nové téma.
  • Na dotazy a podněty odpovídají dobrovolníci, buďte prosím ohleduplní. Svá podání pište slušně a požadavky formulujte dostatečně určitě.
  • Místo odkazů do jiných fór citujte celé texty, protože lidé mají zobrazování některých fór vypnuté.
  • V podatelně se nediskutuje a jakmile bylo podání vyřešeno, téma se zamyká.
Další informace můžete nalézt na následujících místech:
Zamčeno
Uživatelský avatar
Petr.Vileta
Člen KS Plzeňský kraj
Příspěvky: 31208
Registrován: 22 črc 2009, 18:12
Profese: Celkem Spokojený Důchodce
Bydliště: Plzeň 2
Dal poděkování: 27841 poděkování
Dostal poděkování: 23739 poděkování
Kontaktovat uživatele:

Patch Perl modulu

Příspěvek od Petr.Vileta »

V generatoru QR code mi to pri nevhodnem vyplneni formulare hazi chybu, protoze je chyba v Perl modulu /usr/share/perl5/GD/Barcode/QRcode.pm
Autorovi uz jsem o te chybe psal pred rokem, ale evidentne na to prdi.

Vygeneroval jsem diff, ale nejsem si jisty, ze je vygenerovany spravne (diffum moc nerozumim) a take jsou tam nejake podivne znaky a nejsem si jisty, ze to spravne projde.

Kód: Vybrat vše

--- l:\temp\xx\qrcode.pm	Sat Mar 08 16:13:14 2008
+++ qrcode.pm	Sun Jul 10 17:17:04 2011
@@ -110,7 +110,9 @@
         $aDatBit[$iDatCnt] = $iMaxDatBits-$iTotalBits;
     }
     elsif ($iTotalBits > $iMaxDatBits){
-        die "Overflow error. version $oSelf->{Version}\n" . 
+#        die "Overflow error. version $oSelf->{Version}\n" . 
+#            "total bits: $iTotalBits  max bits: $iMaxDatBits\n";
+        return "Overflow error. version $oSelf->{Version}\n" . 
             "total bits: $iTotalBits  max bits: $iMaxDatBits\n";
     }
     # 8ƒrƒbƒg’PˆĘ‚ɕފ„
Takze prosim puvodni kod

Kód: Vybrat vše

    elsif ($iTotalBits > $iMaxDatBits){
        die "Overflow error. version $oSelf->{Version}\n" . 
            "total bits: $iTotalBits  max bits: $iMaxDatBits\n"; 
}
nahradit timhle

Kód: Vybrat vše

    elsif ($iTotalBits > $iMaxDatBits){
#        die "Overflow error. version $oSelf->{Version}\n" . 
#            "total bits: $iTotalBits  max bits: $iMaxDatBits\n"; 
        return "Overflow error. version $oSelf->{Version}\n" . 
            "total bits: $iTotalBits  max bits: $iMaxDatBits\n"; 
}
prikaz die je v celem souboru opravdu jen jednou
Kumulovaný zastupitel a člen finančních výborů zastupitelstev Města Plzně a Městského obvodu Plzeň 2.
tel: 608 445 655 (odpoledne a večer)
stínový ministr švihlých nápadů a fórista
----------------------------------------
Mějme vždy na paměti: Běžný občan je až ten poslední, komu bychom chtěli něco zakazovat.
Uživatelský avatar
Lukas.Novy
Příspěvky: 21224
Registrován: 02 črc 2009, 22:45
Profese: specialista pocitacove bezpecnosti
Bydliště: Praha, V Klaudu 42
Dal poděkování: 2361 poděkování
Dostal poděkování: 11863 poděkování
Kontaktovat uživatele:

Re: Patch Perl modulu

Příspěvek od Lukas.Novy »

A nebude ti staci, kdyz si ty bity pred volanim modulu spocitas? at si nezatahujeme cruft do systemu?
pani nováková povídala, že u vás na balkóně
sou furt ňáký kluci, kouřej a smějou se.
| ‒ | – | — | ― | … | „ | “ | ‚ | ‘ | » | « | ½ | ¼ | ¾ | × | ‰ | ® | © | ™ | Fotku Stierlitze jako avatara mi zakazali, toz sem nahodil catvatara.
Uživatelský avatar
Petr.Vileta
Člen KS Plzeňský kraj
Příspěvky: 31208
Registrován: 22 črc 2009, 18:12
Profese: Celkem Spokojený Důchodce
Bydliště: Plzeň 2
Dal poděkování: 27841 poděkování
Dostal poděkování: 23739 poděkování
Kontaktovat uživatele:

Re: Patch Perl modulu

Příspěvek od Petr.Vileta »

Lukas Novy píše:A nebude ti staci, kdyz si ty bity pred volanim modulu spocitas? at si nezatahujeme cruft do systemu?
No on je na to v tom modulu prave dost slozity vypocet. Tam je jediny problem a bohuzel ho dost autoru modulu casto opakuje, ze misto "return chybova hlaska" pouzijou "die chybova hlaska". U skriptu je to OK, protoze po chybe nema smysl pokracovat, ale u modulu je to kravina, protoze ti chyba v modulu sestreli cely skript. Proste obecne volani funkce musi vzdycky projit, bud s chybou, nebo bez chyby a funkce musi vratit vysledek a errorstatus.
Kumulovaný zastupitel a člen finančních výborů zastupitelstev Města Plzně a Městského obvodu Plzeň 2.
tel: 608 445 655 (odpoledne a večer)
stínový ministr švihlých nápadů a fórista
----------------------------------------
Mějme vždy na paměti: Běžný občan je až ten poslední, komu bychom chtěli něco zakazovat.
Uživatelský avatar
Lukas.Novy
Příspěvky: 21224
Registrován: 02 črc 2009, 22:45
Profese: specialista pocitacove bezpecnosti
Bydliště: Praha, V Klaudu 42
Dal poděkování: 2361 poděkování
Dostal poděkování: 11863 poděkování
Kontaktovat uživatele:

Re: Patch Perl modulu

Příspěvek od Lukas.Novy »

A nemuzes to die chytit? die je totiz vicemene vyjimka

tenhle pattern vypada slibne:
http://perldesignpatterns.com/?TryCatch
pani nováková povídala, že u vás na balkóně
sou furt ňáký kluci, kouřej a smějou se.
| ‒ | – | — | ― | … | „ | “ | ‚ | ‘ | » | « | ½ | ¼ | ¾ | × | ‰ | ® | © | ™ | Fotku Stierlitze jako avatara mi zakazali, toz sem nahodil catvatara.
Uživatelský avatar
Petr.Vileta
Člen KS Plzeňský kraj
Příspěvky: 31208
Registrován: 22 črc 2009, 18:12
Profese: Celkem Spokojený Důchodce
Bydliště: Plzeň 2
Dal poděkování: 27841 poděkování
Dostal poděkování: 23739 poděkování
Kontaktovat uživatele:

Re: Patch Perl modulu

Příspěvek od Petr.Vileta »

Lukas Novy píše:A nemuzes to die chytit? die je totiz vicemene vyjimka

tenhle pattern vypada slibne:
http://perldesignpatterns.com/?TryCatch
Hmm, system Microsoft? Chybu ve dvou bajtech opravime instalaci 10MB knihovny :twisted:

Ja bezne odchytavam die takhle

Kód: Vybrat vše

$SIG{'__DIE__'}=sub {nejaky kod;};
ale pro die v modulu to bohuzel nefunguje. Plati to jen pro die ve skriptu.

Proste to v tom modulu zmen a nekam do adresare s PATCHema hod ten diff ;) Ostatne QRcode.pm pouzivam jen ja a ohlidam si to. Jeste to mohu dopsat jako komentar do skriptu, kdyby to nekdo nekdy po me hledal.
Kumulovaný zastupitel a člen finančních výborů zastupitelstev Města Plzně a Městského obvodu Plzeň 2.
tel: 608 445 655 (odpoledne a večer)
stínový ministr švihlých nápadů a fórista
----------------------------------------
Mějme vždy na paměti: Běžný občan je až ten poslední, komu bychom chtěli něco zakazovat.
Uživatelský avatar
Lukas.Novy
Příspěvky: 21224
Registrován: 02 črc 2009, 22:45
Profese: specialista pocitacove bezpecnosti
Bydliště: Praha, V Klaudu 42
Dal poděkování: 2361 poděkování
Dostal poděkování: 11863 poděkování
Kontaktovat uživatele:

Re: Patch Perl modulu

Příspěvek od Lukas.Novy »

Nehodlam opravovat neco, co neni chyba.

Precti si jeste jednou ten design-pattern. Proste obal to volani funkce knihovny do eval blocku a pak koukni jestli ti to umrelo pomoci $@.

To, ze chapes die jako exit a ono tomu tak neni, je jenom tvoje chyba.
perldoc píše: die raises an exception. Inside an eval the error message is stuffed into $@ and the eval is terminated with the undefined value. If the exception is outside of all enclosing evals, then the uncaught exception prints LIST to STDERR and exits with a non-zero value. If you need to exit the process with a specific exit code, see exit.
Tito uživatelé poděkovali autorovi Lukas.Novy za příspěvek:
Ondrej.Profant
pani nováková povídala, že u vás na balkóně
sou furt ňáký kluci, kouřej a smějou se.
| ‒ | – | — | ― | … | „ | “ | ‚ | ‘ | » | « | ½ | ¼ | ¾ | × | ‰ | ® | © | ™ | Fotku Stierlitze jako avatara mi zakazali, toz sem nahodil catvatara.
Uživatelský avatar
Petr.Vileta
Člen KS Plzeňský kraj
Příspěvky: 31208
Registrován: 22 črc 2009, 18:12
Profese: Celkem Spokojený Důchodce
Bydliště: Plzeň 2
Dal poděkování: 27841 poděkování
Dostal poděkování: 23739 poděkování
Kontaktovat uživatele:

Re: Patch Perl modulu

Příspěvek od Petr.Vileta »

Ale je to chyba. V navodu pro tvorbu modulu se pise, ze autor nikdy nema pouzivat die, ale vzdy se musi z modulu (z libovolne jeho funkce) vratit zpet tam, odkud to bylo volane.

puvodni muj kod

Kód: Vybrat vše

$gd=GD::Barcode->new('QRcode',$text,
		{ Ecc => $ecc,
		Version => $ver,
		ModuleSize => $size, });
jsem upravil na

Kód: Vybrat vše

local $@;
my $cc='$gd=' . "GD::Barcode->new('QRcode','" . $text . "',
			{ Ecc => '" . $ecc . "', Version => "
			. $ver . ", ModuleSize => "
			. $size . " })";
eval $cc;
undef $gd if($@);
a funguje to, ale stve me obchazet zrejmou chybu modulu pomoci eval.
Kumulovaný zastupitel a člen finančních výborů zastupitelstev Města Plzně a Městského obvodu Plzeň 2.
tel: 608 445 655 (odpoledne a večer)
stínový ministr švihlých nápadů a fórista
----------------------------------------
Mějme vždy na paměti: Běžný občan je až ten poslední, komu bychom chtěli něco zakazovat.
Uživatelský avatar
Lukas.Novy
Příspěvky: 21224
Registrován: 02 črc 2009, 22:45
Profese: specialista pocitacove bezpecnosti
Bydliště: Praha, V Klaudu 42
Dal poděkování: 2361 poděkování
Dostal poděkování: 11863 poděkování
Kontaktovat uživatele:

Re: Patch Perl modulu

Příspěvek od Lukas.Novy »

Dokumentace nic takoveho nerika. Pri objektovem pristupu je zcela normalne vracet se vyjimkou. Jinak rikal sem ti, at pouzijes eval block ne eval prikaz, pak to nebude vypadat tak debilne. Cetl si vubec ten pattern? Nevim jak vic ti to vysvetlit.

Predelej to na eval block, tohle je bezpecnosti chyba jak do pr*dele.
pani nováková povídala, že u vás na balkóně
sou furt ňáký kluci, kouřej a smějou se.
| ‒ | – | — | ― | … | „ | “ | ‚ | ‘ | » | « | ½ | ¼ | ¾ | × | ‰ | ® | © | ™ | Fotku Stierlitze jako avatara mi zakazali, toz sem nahodil catvatara.
Uživatelský avatar
Lukas.Novy
Příspěvky: 21224
Registrován: 02 črc 2009, 22:45
Profese: specialista pocitacove bezpecnosti
Bydliště: Praha, V Klaudu 42
Dal poděkování: 2361 poděkování
Dostal poděkování: 11863 poděkování
Kontaktovat uživatele:

Re: Patch Perl modulu

Příspěvek od Lukas.Novy »

Zavrit vlakno prosim.
pani nováková povídala, že u vás na balkóně
sou furt ňáký kluci, kouřej a smějou se.
| ‒ | – | — | ― | … | „ | “ | ‚ | ‘ | » | « | ½ | ¼ | ¾ | × | ‰ | ® | © | ™ | Fotku Stierlitze jako avatara mi zakazali, toz sem nahodil catvatara.
Zamčeno

Zpět na „Podatelna technického odboru“