Po 26 letech od protiprávního policejního zásahu, který byl spuštěn na základě podnětu společnosti Microsoft, Obvodní soud pro Prahu 2 rozsudkem potvrdil, že Mironet prokázal významnou část svého nároku na náhradu škody vůči Ministerstvu spravedlnosti ČR. Soudem nyní přiznaná část nároku znamená rekordní odškodné, jaké kdy české soudy přiznaly za nesprávný postup státu. Spor byl rozdělen na několik škod, u pravomocně uzavřených částí
… více »Lehké desktopové prostředí LXQt bylo vydáno ve verzi 2.4.0. Jde o převážně opravné vydání s drobnými vylepšeními podpory Waylandu.
Počítačová hra Kingdom Come: Deliverance 2 českého studia Warhorse získala cenu BAFTA v kategorii nejlepší příběh. V konkurenci pěti dalších nominovaných děl porazila i úspěšnou francouzskou hru Clair Obscur: Expedition 33, která v letošním ročníku získala cenu za nejlepší hru roku.
Projekt KDE oslaví v říjnu 30 let. Matthias Ettrich poslal 14. října 1996 do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu. Důležité milníky jsou zobrazeny na časové ose KDE.
Byly vyhlášeny výsledky letošní volby vedoucí/ho projektu Debian (DPL, Wikipedie). Poprvé povede Debian žena. Novou vedoucí je Sruthi Chandran. Letos byla jedinou kandidátkou. Kandidovala již v letech 2020, 2021, 2024 a 2025. Na konferenci DebConf19 měla přednášku Is Debian (and Free Software) gender diverse enough?
Byla vydána nová verze 10.3 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Přidána byla podpora Orange Pi 4 LTS. Přibyl balíček Prometheus.
Implementace VPN softwaru WireGuard (Wikipedie) pro Windows, tj. WireGuard pro Windows a WireGuardNT, dospěly do verze 1.0.
V Pekingu dnes proběhl 2. ročník půlmaratonu humanoidních robotů. První 3 místa obsadili roboti Honor Lightning v různých týmech. Nový rekord autonomního robota je 50 minut a 26 sekund. Operátorem řízený robot to zvládl i s pádem za 48 minut a 19 sekund. Řízení roboti měli časovou penalizaci 20 %. Před rokem nejrychlejší robot zvládl půlmaraton za 2 hodiny 40 minut a 42 sekund. Aktuální lidský rekord drží Jacob Kiplimo z Ugandy s časem 57 minut a 20 sekund [𝕏].
Stanislav Fort, vedoucí vědecký pracovník z Vlčkovy 'kyberbezpečnostní' firmy AISLE, zkoumal dopady Anthropic Mythos (nový AI model od Anthropicu zaměřený na hledání chyb, který před nedávnem vyplašil celý svět) a předvedl, že schopnosti umělé inteligence nejsou lineárně závislé na velikosti nebo ceně modelu a dokázal, že i některé otevřené modely zvládly v řadě testů odhalit ve zdrojových kódech stejné chyby jako Mythos (například FreeBSD CVE-2026-4747) a to s výrazně nižšími provozními náklady.
Federální návrh zákona H.R.8250 'Parents Decide Act', 13. dubna předložený demokratem Joshem Gottheimerem a podpořený republikánkou Elise Stefanik coby spolupředkladatelkou (cosponsor), by v případě svého schválení nařizoval všem výrobcům operačních systémů při nastavování zařízení ověřovat věk uživatelů a při používání poskytovat tento věkový údaj aplikacím třetích stran. Hlavní rozdíl oproti kalifornskému zákonu AB 1043 a kolorádskému SB26-051 je ten, že federální návrh by platil rovnou pro celé USA.
replacement je volitelný čtvrtý parametr. Někdy potřebujete získat část řetězce podle indexů, někdy část řetězce podle indexů potřebujete nahradit – a Perl má funkci, která to podle způsobu použití umí obojí, případně i najednou. Řekl bych, že je to takové typicky perlovské řešení.
substr vrací podřetězec určený indexem a délkou (2. a 3. parametr). Čtvrtý parametr nijak neovlivňuje vracenou hodnotu, ale původní řetězec předaný jako 1. parametr.
V pseudokódu využívajícím trojparametrický substr() to dělá zhruba tohle:
$result = substr($string, $offset, $length); $string = substr($string, 0, $offset) + $replacement + substr($string, $length+$offset, strlen($string)-$length-1); return $resultPřičemž
$string není zkopírovaná hodnota, ale je to pořád ten „původní“, tj. funkce změní jeho hodnotu i z pohledu kódu, který funkci vyvolal.
Overview
perl Perl overview (this section)
perlintro Perl introduction for beginners
perltoc Perl documentation table of contents
Tutorials
perlreftut Perl references short introduction
perldsc Perl data structures intro
perllol Perl data structures: arrays of arrays
perlrequick Perl regular expressions quick start
perlretut Perl regular expressions tutorial
perlboot Perl OO tutorial for beginners
perltoot Perl OO tutorial, part 1
perltooc Perl OO tutorial, part 2
perlbot Perl OO tricks and examples
perlperf Perl Performance and Optimization Techniques
perlstyle Perl style guide
perlcheat Perl cheat sheet
perltrap Perl traps for the unwary
perldebtut Perl debugging tutorial
perlfaq Perl frequently asked questions
perlfaq1 General Questions About Perl
perlfaq2 Obtaining and Learning about Perl
perlfaq3 Programming Tools
perlfaq4 Data Manipulation
perlfaq5 Files and Formats
perlfaq6 Regexes
perlfaq7 Perl Language Issues
perlfaq8 System Interaction
Reference Manual
perlsyn Perl syntax
perldata Perl data structures
perlop Perl operators and precedence
perlsub Perl subroutines
perlfunc Perl built-in functions
perlopentut Perl open() tutorial
perlpacktut Perl pack() and unpack() tutorial
perlpod Perl plain old documentation
perlpodspec Perl plain old documentation format specification
perlrun Perl execution and options
perldiag Perl diagnostic messages
perllexwarn Perl warnings and their control
perldebug Perl debugging
perlvar Perl predefined variables
perlre Perl regular expressions, the rest of the story
perlrebackslash Perl regular expression backslash sequences
perlrecharclass Perl regular expression character classes
perlreref Perl regular expressions quick reference
perlref Perl references, the rest of the story
perlform Perl formats
perlobj Perl objects
perltie Perl objects hidden behind simple variables
perldbmfilter Perl DBM filters
To je opravdu tak tezky zadat man perlfunc a najit si, co presne substr dela???
Jednak, perl substr lze pouzit i jako lvalue, cili substr($var,X,Y) = "neco";. A kdyz si popis substr poradne prectete, tak zjistite, ze:
An alternative to using substr() as an lvalue is to specify the replacement string as the 4th argument. This allows you to replace parts of the EXPR and return what was there before in one operation, just as you can with splice().Pokud neovladate EN, urcite se daji tyhle man stranky najit i v CZ. Pokud nechapete vyznam, nezacinejte programovat a jdete delat neco jineho.
k cemu tam je ten ctvrty parametrnebo
Takze pri takomto pouziti ("") je tam zbytocnynebo
to je nejake divne, pripada me ze u takove funkce replacement neni potreba. Hledat v diskuzi spravnou odpoved by mel autor zapisku a pak opravit blog, aby to kazdy dalsi ctenar videl hned. Je blbost, aby kazdy ctenar pak prochazel diskuzi a hledal, jestli uz tam nekdo spravne reseni nenapsal. A kdyz jsem videl ty "vestecke" reakce (viz vyse), tak jsem nemel chut se tim dal hrabat, kdyz odpoved je primo v manu. Misto tehle zbytecnych uvah si kolegove diskutujici a autor mohli behem 5 minut v manu najit, proc je tam ctvrty parametr a co presne dela. Podobne nesnasim blogy stylu
Zjistil jsem, ze tohle nefunguje, dokud nezapnu tamten prepinac. Nevim proc, ale proste to tak je.A pak nakonec dotycny zjisti, ze mel proste neco v systemu spatne a proto to nefungovalo a ten jiny prepinac byla jen souhra nahod. Bohuzel, driv na Linuxu byli pouze odbornici, kteri se zajimalo, jak ta vec funguje. Dneska se do toho stoura kazdy, ale navody ctou jen nekteri.
perldoc -f substr
$a = 0; $b = ++$a; say "$a - $b"; # 1 - 1 $a = 0; $b = $a++; say "$a - $b"; # 1 - 0 $a = "abc"; $b = substr ($a, 0, 1) = "X"; say "$a - $b"; # Xbc - X $a = "abc"; $b = substr ($a, 0, 1, "X"); say "$a - $b"; # Xbc - a
V manuálu je to skutečně dobře (anglicky) podáno, budu rozhodně používat. Hledal jsem předtím i na webu, ale bohužel jsem narazil na ne příliš dobré stránky, které se funkcí substr() se 4 parametry příliš nezabývaly a vysvětlení chybělo, z toho plynula má frustrace. Teď je tedy chování funkce substr() v PERLu jasné. Uvidíme, na co zajímavého ještě v knize narazím.
Misto hledani jehly v kupce sena radeji prohledate cely stoh?Já při práci místo nesmyslných příměrů používám hlavu :).
perl -aF'/\s+/' -ne '$s{$F[0]}++;END{foreach $ip (keys(%s)) {print "$f $s{$f}\n";}' /var/log/apache/access.log. Moc dobre to nejde, vid?

cut -d' ' -f1 /var/log/access.log | uniq -c


perl -F'/\s/' -apple '$s{$F[0]}++}for(keys%s){$_.=" $s{$_}"'
Jinak, chtel jsem ten perl videt prepsanej v pythonu:)Nejsem si jistej jestli jsem dostatečně dobře pochopil co to dělá, ale:
python -c "print '\n'.join(set(map(lambda x: x.split()[0], open('/var/log/apache/access.log').readlines())))"
Log apache zrovna nemám po ruce, takže jsem to zkoušel na testovacím souboru..
python -c "d = map(lambda x: x.split()[0], open('/var/log/apache/access.log').readlines()); print '\n'.join([str(y) + ' ' + x for x, y in dict([[x, d.count(x)] for x in d]).items()])"
Je to už ale hnusně nepřehledné, napsal bych si na to radši klasický script nebo použil << EOF.
Dost možná bys došel úplně k jinému postupu a to, že bys to celé dělal v interaktivním pythonu, kde bysis seznam řádků postupně upravoval a vytáhl z něj naprosto libovolné výstupy.Tenhle postup jsem musel pracně vymýšlet, protože chtěl vidět ekvivalent svého perlového příkazu. Kdybych to dělal v interaktivním režimu, vypadalo by úplně, ale úplně jinak.
Tenhle postup jsem musel pracně vymýšlet, protože chtěl vidět ekvivalent svého perlového příkazu. Kdybych to dělal v interaktivním režimu, vypadalo by úplně, ale úplně jinak.Jasně, tak jsem to myslel. Jen jsem nevěděl, jestli s tím máš už nějaké zkušenosti.
python -c 'import sys, itertools; print "\n".join(("%s %s" % (k, c) for k, c in sorted(((len(list(g)), k) for k, g in itertools.groupby(sorted(l.split()[0] for l in open(sys.argv[1], "r")))), reverse=True)))' access.log
Zde je ještě indentovaná verze.
import sys, itertools
print "\n".join(
("%s %s" % (k, c) for k, c in
sorted(
( (len(list(g)), k) for k, g in
itertools.groupby(
sorted(l.split()[0] for l in open(sys.argv[1], "r")))), reverse=True)))
awk '$1 != prev {print $1; prev = $1;}' /var/log/access.log
No, zkus si odinstalovat perl u uvidis, kolik balicku se ti s tim odinstaluje, protoze bude perl zavislost. Mozna ti to ani nepujde, protoze perl bude systemova zavislost.Tak jsem to zkusil a dost by to bolelo :D 570 balíků by to vzalo s sebou a dalším ~200 by se nelíbyla nevyřešená závislost :S
Jinak, perl mi prijde lepsi - zkus si v pythonu udelat perl -aF'/\s+/' -ne '$s{$F[0]}++;END{foreach $ip (keys(%s)) {print "$f $s{$f}\n";}' /var/log/apache/access.log. Moc dobre to nejde, vid?Erm… na tohle svůj názor psát radši nebudu :D. P.S.: Používám perl, awk i python.
while ( $uinp = <> ) {
$tinp = chomp($uinp);
exit 1 if ( $uinp eq "quit" );
eval($uinp);
}
[pavlix@traveller ~]$ python3 Python 3.2 (r32:88445, Feb 21 2011, 21:11:06) [GCC 4.6.0 20110212 (Red Hat 4.6.0-0.7)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 3 + 4 7 >>> from fractions import Fraction >>> Fraction(3) / Fraction(4) Fraction(3, 4) >>> _ + Fraction(1, 2) Fraction(5, 4) >>> quit Use quit() or Ctrl-D (i.e. EOF) to exit >>> quit() [pavlix@traveller ~]$To jen abys věděl, o co se jedná. Další flame na toto téma je zbytečný.
Ja VIM, jak funguje interaktivni shell v Python, v Perl holt nemas holt interaktivni shell primo, ale pomuzes si evalem. Nepredpokladam, zes ten eval vubec zkousel, jinak bys vedel, ze tam muzes delat to same, cos predvedl s Pythonem, nacitat moduly, psat subrutiny....
Jestli hledas kamose na flejm, tak si vybral spatne
Hele clovece, jak ty muzes vest kurzy, tobe teda asertivita nic nerikaAž mi budeš platit, budu se k tobě chovat pozitivně i když budeš mlít kraviny :). Za daných okolností mi připadají moje reakce dostatečně asertivní. Btw, jdu změnit patičku, aby tě tam neprovokoval ten Python :). Chápu, že tě to může rušit :).
Ja VIM, jak funguje interaktivni shell v Python, v Perl holt nemas holt interaktivni shell primo, ale pomuzes si evalem. Nepredpokladam, zes ten eval vubec zkousel, jinak bys vedel, ze tam muzes delat to same, cos predvedl s Pythonem, nacitat moduly, psat subrutiny....„To samé“ to je asi tak jako když řekneš, že v assembleru jde dělat to samé jako v perlu. Technicky budeš mít samozřejmě pravdu v obou případech, ale použitelnost je značně odlišná.
Jestli hledas kamose na flejm, tak si vybral spatneTo sis vybral špatně
.
Jinak ale musim nabidku odmitnout - ne ze bych mel nejake vyhrady vuci tvym znalostem, ale mit v tymu nekoho, kdo takhle seka zobakem, to radsi ne... :-P
Btw, jdu změnit patičku, aby tě tam neprovokoval ten Python :). Chápu, že tě to může rušit :).
Z ceho tak usuzujes? Ja proti Pythonu celkem nic nemam, sice mi nesedi, ale respektuji, pokud se ho nekdo rozhodne pouzivat...
To sis vybral špatně
.
Hele, ty mas problem poznat odlehcenejsi ton diskuze? trochu mi prijde, ze beres vsechno strasne vazne, za kazdou vetou hledas narazku ci osobni utok... Ber to trochu s nadsazkou, ne kazdy, kdo prijde do diskuze, se chce hadat... I kdyz co tak v posledni dobe sleduju, tak se prevazna cast diskuzi zvrhne v hadku o nejakou blbost :(
Takze kdyz ti nekdo plati, tam mu lezes do pr...?Mezi lezením do prdele a korektním jednáním s blbcem je určitý rozdíl... ale musím říct, že ve své pracovní praxi s blbcem spolupracuju velmi zřídkakdy. Většinou se z toho dá nějak vyvlíknout nebo včas odmítnout.
Jinak ale musim nabidku odmitnout - ne ze bych mel nejake vyhrady vuci tvym znalostem, ale mit v tymu nekoho, kdo takhle seka zobakem, to radsi ne... :-PPokud jsi to pochopil jako nabídku, měl bys uvažovat o lepším parseru na sarkasmus či alespoň nadsázku :). Jinak mám drobné podezření, že v tvém týmu z principu bude minimálně jeden člověk, který bude mít nutkání vytvářet v týmu problém. Osobně bych se toho dost nerad účastnil :).
Hele, ty mas problem poznat odlehcenejsi ton diskuze?Myslel jsem, že ho máš ty :).
Ja nemam problem poznat odlehcenejsi ton. Ale ty by ses mel zamyslet na tim, ze neustale reagovat kousavymi komentari, urazkami a napadanim ti dobrou povest nezajisti. Jak jsem si vsiml v jinych dizkuzich, neni tohle zdaleka vyjimka...Nápodobně.
>
Mě přišlo, že píšu docela srozumitelně.Prave ze vubec, co se vam v debugeru nelibilo?
luky@ntb:~$ perl -debile_cti_man Loading DB routines from perl5db.pl version 1.32 Editor support available. Enter h or `h h' for help, or `man perldebug' for more help. main::(-e:1): bile_cti_man DB<1> p 7 + 3 10 DB<2> use Number::Fraction DB<3> $a = new Number::Fraction(3) / new Number::Fraction(4) DB<4> p $a 3/4 DB<5> $a += 5 DB<6> p $a 23/4
Tiskni
Sdílej: