Před 70 lety, 7. června 1954, ve věku 41 let, zemřel Alan Turing, britský matematik, logik, kryptoanalytik a zakladatel moderní informatiky.
NiceGUI umožňuje používat webový prohlížeč jako frontend pro kód v Pythonu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.6. Z novinek lze vypíchnout lepší integraci LLM (OpenAI, Google AI, Ollama) nebo podporu Matter 1.3.
IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.
Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.
Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.
Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.
Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.
*
a nakonec o topic proměnné $_
a jejím nepsání.
-> $a, @b, :$x, :$y, *@positional, *%named { dd $a, $b, $x, $y, @positional, %named }kde
$a, @b
jsou poziční parametry a @positional
je slurp pole ostatních pozičních parametrů a podobně $x, $y
jsou jmenné parametry a %named
je slurp hash ostatních jmených parametrů.
Tento blok můžeme definovat, ale i pomocí zástupných proměnných
{ dd $^a, @^b, $:x, $:y, @_, %_ } #u pozičních parametrů záleží na lexikografickém uspořádání. Ukažme několik příkladů:
{ dd ($^a, @^b, $:x, $:y, @_, %_) }( 1, (2, 3), 4, :32x, :12z, :1y ); #(1, (2, 3), 32, 1, [4], {:z(12)}) say (^5)».&{ $^a + 1 }; #(1 2 3 4 5) — voláme podpogram jako metodu, pamatujete první kapitolu say (^5).map: { $^a + 1 }; #(1 2 3 4 5) — přibližně totéž co výše for (^6) { #0 2 1 say "$^a $^c $^b"; #3 5 4 }; for (<a b c> Z ^3+1).flat { #(1 a) say ($^number, $^letter) #(2 b) — number je lexikograficky větší než letter }; #(3 c)Všimněte si jak
for
předá počet hodnot, podle toho kolik je v bloku zástupných (pozičních) parametrů.
*
*
.
Příklady:
say ( *.chars + * )("ahoj", 2); #6 my &multiply_three_numbers = * * * * *; #1. 3. a 5. * jsou parametry say multiply_three_numbers 2, 3, 2; #12 #2. a 4. * je binární operátor násobení say (^5)».&( * + 1 ); #(1 2 3 4 5) — kulaté závorky místo hranatých say (^5).map: * + 1 ; #(1 2 3 4 5) — zápis map bez závorek say (^5).&( ** + 1 ); #(1 2 3 4 5) — ** je tzv. hyperwhateverHvězdičku můžeme použít jako zástupný znak i v jiných případech, většinou když chceme něco bez omezení nebo ve významu co možná nejvíc. Některé příklady využití whatever:
my @matrix = ( (1, 2, 3), ('a', 'b', 'c'), ('x', 'y', 'z') ); say @matrix[*]; #((1 2 3) (a b c) (x y z)) say @matrix[*-1;*]; #(x y z) — poslední řádek say @matrix[*;2]; #(3 c z) — druhý sloupec my @e=@matrix[*;*]; say @e[*]; #(1 2 3 a b c x y z) say @e[2 .. *]; #(3 a b c x y z) say @e[0 .. *-4]; #(1 2 3 a b c) say @e.pick(*); #(3 x c y a z 1 b 2) — náhodné pořadí for 21 .. * Z~ '×' xx * Z~ @e { #27×x say $^a if $^a ~~ '27×x' ff *; #28×y } #29×z
$_
$_
. Topic proměnná je zapisovatelná. Používají ji různé příkazy a často není potřeba ani psát. Především pro každou metodu jde zapsat .metoda
jako zkrácený zápis pro $_.metoda
, for
a given
nastavují $_
. Topic proměnnou lze použít jako zástupnou proměnou v bloku. when
porovnává s touto proměnou, s///
resp. m//
implicitně nahrazuje resp. hledá v této proměnné atd. Raději místo dalšího vypisování uvedu pár příkladů:
$_="ahoj"; say .chars; say ( $OUTER::_, $_ for ^2 ); #((ahoj 0) (ahoj 1)) — tady nelze použít $^a před for není blok s/aho/čau /; .say; #čau j my ( $a, $b, $c ) = 0, 1, 2; for $a, $b, $c { #0 say .++; #1 }; #2 say "$a $b $c"; #1 2 3 my @a = < abba kolo oko vede >; say grep { True when .flip }, @a; #(abba oko) for 21 .. * Z~ '×' xx * Z~ @e { #27×x — srovnejte s předešlou kapitolou .say if '27×x' ff *; #28×y } #29×z my @b = < ahoj jak se vede >; say @b.first({ .=chop; .chars > 2 }); #s say @b; #[aho ja s vede]
Tiskni Sdílej:
vyjádřili přímo v tomto vlákněTo by platilo tak pred rokmi, dnes musíš ľudí dokopať, aby mali jednoduchú možnosť voľby :) Je pravda, že aj ja som migroval kvôli jednoduchosti na PHP, pretože to fungovalo Out of the box a ostatné jazyky mali úplne kulové, teda jediné naozaj použiteľné boli len Perl, PHP a mne ostatné jazyky prídu aj dnes viac náročné na spojazdnenie a správnu konfiguráciu.
my &multiply_three_numbers = * * * * *;
dava uplne nove moznosti pro opravdu poradne obfuscovany kod. Nechapu, kdo mohl neco takoveho vymyslet. Funkcionalita to je zajimava, ale mohli pouzit aspon nejaky jiny znak.
*
opatrně, &multiply_three_numbers
jsem uvedl jako zajímavost. Někde mi, především u jednoduchých map, grep, …
, připadá ten zápis přirozený .grep: * > 3;
, .sort: *.chars;
atd. A nebál bych se ani čitelnosti u něčeho takového .map: * * 1.328;
.
for 21 .. * Z~ '×' xx * Z~ @e { #27×x say $^a if $^a ~~ '27×x' ff *; #28×y }