Bylo oznámeno vydání nové verze 8.1 "Hoare" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Doprovodný příspěvek na blogu Khronosu rozebírá kódování a dekódování videa pomocí Vulkan Compute Shaders v FFmpeg.
Byl představen open-source a open-hardware prototyp nízkonákladového raketometu kategorie MANPADS, který byl sestaven z běžně dostupné elektroniky a komponent vytištěných na 3D tiskárně. Raketa využívá skládací stabilizační křidélka a canardovou stabilizaci aktivně řízenou palubním letovým počítačem ESP32, vybaveným inerciální měřicí jednotkou MPU6050 (gyroskop a akcelerometr). Přenosné odpalovací zařízení obsahuje GPS,
… více »Vědci z univerzity La Sapienza v Římě vyvinuli systém, který dokáže identifikovat jednotlivce pouze na základě toho, jak narušují signály Wi-Fi. Autoři tuto novou technologii nazvali WhoFi. Na rozdíl od tradičních biometrických systémů, jako jsou skenery otisků prstů a rozpoznávání obličeje, nevyžaduje tato metoda přímý fyzický kontakt ani vizuální vstupy. WhoFi může také sledovat jednotlivce na větší ploše než kamera s pevnou polohou; stačí, je-li k dispozici Wi-Fi síť.
SuperTux (Wikipedie), tj. klasická 2D plošinovka inspirovaná sérií Super Mario, byl vydán v nové verzi 0.7.0. Videoukázka na YouTube. Hrát lze i ve webovém prohlížeči.
Ageless Linux je linuxová distribuce vytvořená jako politický protest proti kalifornskému zákonu o věkovém ověřování uživatelů na úrovni OS (AB 1043). Kromě běžného instalačního obrazu je k dispozici i konverzní skript, který kompatibilní systém označí za Ageless Linux a levné jednodeskové počítače v ceně 12$ s předinstalovaným Ageless Linuxem, které se chystají autoři projektu dávat dětem. Ageless Linux je registrován jako operační
… více »PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují
… více »GIMP 3.2 byl oficiálně vydán (Mastodon, 𝕏). Přehled novinek v poznámkách k vydání.
FRANK OS je open-source operační systém pro mikrokontrolér RP2350 (s FRANK M2 board) postavený na FreeRTOS, který přetváří tento levný čip na plně funkční počítač s desktopovým uživatelským rozhraním ve stylu Windows 95 se správcem oken, terminálem, prohlížečem souborů a knihovnou aplikací, ovládaný PS/2 myší a klávesnicí, s DVI video výstupem. Otázkou zůstává, zda by 520 KB SRAM stačilo každému 😅.
Administrativa amerického prezidenta Donalda Trumpa by měla dostat zhruba deset miliard dolarů (asi 214 miliard Kč) za zprostředkování dohody o převzetí kontroly nad aktivitami sociální sítě TikTok ve Spojených státech.
Projekt Debian aktualizoval obrazy stabilní větve „Trixie“ (13.4). Shrnuje opravy za poslední dva měsíce, 111 aktualizovaných balíčků a 67 bezpečnostních hlášení. Opravy se týkají mj. chyb v glibc nebo webovém serveru Apache.
Kdybyste se měli učit znovu programovat, v jakém jazyce by to bylo?
V dnešní době se na výuku programování používá jazyk Pascal, případně Java (možná i C#). A co vy, pokud byste si mohli vybrat jazyk, v němž se chcete naučit programovat, jaký by to byl? Byl by to Ada, Pascal, C, C++, C#, Java, Lisp, Perl, Python, Ruby, Scheme, Visual Basic, anebo úplně jiný? Který jazyk by to byl?
Já se učil programovat v Basicu na ZX Spectru, na GOTO, DIM, GOSUB už asi nikdy nezapomenu
. Pak jsem se dostal k Pascalu, a jeho kouzelné uses crt a věčné begin, end, var. Jenže poté, co jsem poznal C se mi Pascal přestal líbit a dodnes k němu mám nevysvětlitelný odpor. C je naprosto magický jazyk, jeho oprátory ++, ^, %, *, & člověka přesvědčí, že tohle je ten správný jazyk pro velké programátory.
C++ mě zase tolik neuchvátil, jeho ukecanost std::map mě přišla zbytečná a samotný Bjarne Stroustrup, tvůrce jazyka, pronesl něco ve smyslu, že v C++ je možné si snadno ustřelit celou nohu. Nicméně objektové programování jsem používal prvně v něm (v Object Pascalu, který byl v TP 7.0, to moc nešlo). Naproti tomu, když jsem poznal Javu, zjistil jsem, že tento jazyk programátora přímo vede k používání tříd a také návrhových vzorů (teda v porovnání s C++).
Přesto bych si na první seznámení s programováním nevybral ani jeden z nich. Pokud bych znova začínal, chtěl bych se učit Python. Podle mě je to jazyk, který nepostrádá jistou eleganci, ale zároveň je velmi mocný a pokrývá většinu oblastí, takže má praktickou použitelnost. Dokonce si říkám, že se těžko nenajde oblast, kde by Python neexistoval, snad mimo systémového programování.
Neznám sice Perl, k němuž je přirovnáván, ale výrok Bruce Eckella o Pythonu jako spustitelném pseudokódu a Perlu jako spustitelném šumu na lince asi hovoří za své. Můžu jen říct, že mi na počátku přišel kód v Pythonu srozumitelnější, než jeho protějšek v Perlu.
Na závěr přidávám pár odkazů
Jaký jazyk byste nejraději si vybrali jako výukový?
Update: Honza "thingwath" Bartoš, alias NBA, mi připomněl, původní vznik slova Python. Tak vězte, název tohoto jazyka vznikl ze slavných Monthy Python. To, kdybyste se divili, že nejčastější název metaproměnné v Pythonu není foo, ale spam.
Tiskni
Sdílej:
Ono je hlavně důležité, aby se člověk naučil algoritmicky myslet a aby měl určité povědomí o tom, jak počítač pracuje. Na konkrétním jazyce pak až tak moc nezáleží (pomineme-li speciality typu LISP nebo Prolog).
def dictionary():
return {'jeden':1,'dva':2}
Podobný příklad (ať už jakkoliv nesmyslný) by v C++ by zabral daleko více místa, sice by byl efektivnější a rychlejší, ale pro výuku je to IMHO irelevantní.
), co je to vim a jak se to krucinál vypne a většinu práce jsem stejně dělal ve Windows. Takže je možné a pravděpodobné, že mi tohle uniklo. Ostatně když si vzpomenu, jaký jsem byl ještě koncem minulého tisíciletí 100% přesvědčený "widlák", eh, škoda mluvit.
.
. Pak zbude jenom g++, ale to pak nesmí dělat změny mezi verzemi.
libstdc++)
#!/usr/bin/perl
# 472-byte qrpff, Keith Winstein and Marc Horowitz
# MPEG 2 PS VOB file -> descrambled output on stdout.
# where k1..k5 are the title key bytes in least to most-significant order
s''$/=\2048;while(<>){G=29;R=142;if((@a=unqT="C*",_)[20]&48){D=89;_=unqb24,qT,@
b=map{ord qB8,unqb8,qT,_^$a[--D]}@INC;s/...$/1$&/;Q=unqV,qb25,_;H=73;O=$b[4]<<9
|256|$b[3];Q=Q>>8^(P=(E=255)&(Q>>12^Q>>4^Q/8^Q))<<17,O=O>>8^(E&(F=(S=O>>14&7^O)
^S*8^S<<6))<<9,_=(map{U=_%16orE^=R^=110&(S=(unqT,"\xb\ntd\xbz\x14d")[_/16%8]);E
^=(72,@z=(64,72,G^=12*(U-2?0:S&17)),H^=_%64?12:0,@z)[_%8]}(16..271))[_]^((D>>=8
)+=P+(~F&E))for@a[128..$#a]}print+qT,@a}';s/[D-HO-U_]/\$$&/g;s/q/pack+/g;eval
nebo tohle:
#!/usr/bin/perl -w
# 531-byte qrpff-fast, Keith Winstein and Marc Horowitz
# MPEG 2 PS VOB file on stdin -> descrambled output on stdout
# arguments: title key bytes in least to most-significant order
$_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(
$m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16
-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h
=5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$
d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^
$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^
(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval
tak jsem z toho takový trošku nesvůj
), takže kvůli tomu bych se Perlu nebál. Taková vepřovina se dá napsat klidně i v Pascalu nebo C.
.
Ale 8051 nebo v mém případně PIC není počítač a nenapadá mě jaký by to mohlo mít pro kohokoliv přínos, krom toho, že pochopí, že jednočipy nejsou počítač
Jiná otázka by to asi byla, kdyby někdo opravdu ty jednočipy chtěl programovat a ne se jen něco učit, uznávám.
A tato zařízení se kombinací C a assembleru budou asi programovat navždy, protože u nich nepozoruji žádný důvod dělat to nějak jinak. Hm, ale nezabývám se tím a ani nechci
. Presto musim uznat, ze prejit z pythonu na perl je pro mne asi jako presednout ze mercedesu do trabanta (ok, to jsem prehnal - tak do fabie). Pri cteni satrapova textu jsem se chvilema musel hodne oklepavat (kontexty, skalary, mnoho sytax. konstrukci) a blahorecit pythonu za jeho cistotu.
Chteli jste pohled zacinajiciho, tak tady jste ho dostali
.
Nevím, ale nebyl by přeci jen lepší jazyk, který by člověku dovolil napsat program u kterého vidí, že skutečně něco dělá, aniž by si musel neustále dávat pozor na který kus paměti tahle proměnná vlastně ukazuje?
PHP au au. Používat PHP mimo web jsem ještě nikoho neviděl (do zrcadla se nedívám
) a sledovat zoufalství začátečníků, kteří nemají ani tu nejmenší představu jak vůbec funguje HTTP protokol, hm…
Otázka je, jak by vypadaly výsledky, kdyby se do nich ládovalo něco jiného ;-)No, v příštím roce budeme navíc brát Pascal
(není to úžasný nápad, začít s C a pak pokračovat s Pascalem?
).
add r1, add r2, r3, když mají v assembleru sečíst tři čísla. Jen podotýkám, že v době, kdy jsem tam chodil já, tak jsme takové problémy neměli.
Ad správa paměti, v jednom předmětu jsme dělali v Pascalu jednoduchý garbage collector, takže dnes jsem o to vděčnější, že něco takového udělali někteří už za mě.
S tou pamětí... Podle mne má člověk přinejmenším zkusit dělat si správu paměti sám. Lidi, kteří se naučí jazyk, který má X jako zabudovanou vlasnost (X = správa paměti, hashové tabulky, RTTI, HTTP sessions, ...), většinou netuší, jak taková věc funguje a jak ji využívat správně a efektivně -- k tomu je zapotřebí pohled o úroveň níž.No a na jakou až úroveň jít? Nejsem fyzik a nevím k čemu všemu už se při rozebírání světa dostali, ale nemyslím, že by k efektivnímu programování bylo třeba rozumět dejme tomu polovodičům
). Ale netvrdím, že mi to v programování nějak výrazně pomáhá
dám tam bublesort, počítače jsou dneska rychlé...a to je bubblesort "jen" kvadratický. Je pořád dost lidí, kteří se klidně hotoví použít algoritmus s exponenciální nebo faktoriální složitostí! Ostatně, vzpomínám na to, když jsem ve škole, v předmětu "Problémy a algoritmy", chtěl ukládat data do (sekvenčně prohledávaného) pole s tím, že "jich není zase tolik". Když se mi před očima program brutálně zpomaloval, bylo mi jasné, že takhle to nejde
f(n){return n<2?1:f(n-1)+f(n-2);}
Tedy v K&R céčku, 'gcc -Wall' by měl asi řeči… Pří troše štěstí by možná mohlo projít i
f(n){return n<2?1:f(--n)+f(--n);}
int f(int n){return n<2?1:f(n-1)+f(n-2);}
atd.
-ansi, -pedantic, -std=c89, -std=c99 i další. GCC (3.3.5) to vždy přeložilo.
-Wall vyhodí jeden warning, s -std=c99 dva… Ale v těch učebnicích to takhle samozřejmě nevypadá, tam je to hezky rozepsáno. Na příšernosti té implementace to ovšem nic nemění…
To je nejspíš věčný omyl, s podobným způsobem uvažování jsem se poprvé setkal už někdy kolem roku 1988…
var A : array[1..N] of integer…" Druhá skupina měla Kryla (našeho "pedagoga" jmenovat nebudu, on za to vlastně nemůže), do počítačové učebny se za celé pololetí nepodívali, o Pascalu se začali bavit až asi po čtvrt roce, ale o programování se toho naučili podstatně více než my; u nás to bylo tak, že kdo programovat uměl, výklad ignoroval, a kdo ne, ten se z něj stejně nic nenaučil. Ponaučení ponechám laskavému čtenáři za cvičení…
, já IQ jenom viděl, ale nedělal na nich. Já začínal na Spectru a Didaktiku a potom přišly PC, nejdřív XT, pak 286 a 386. Nikdy nezapomenu na grafiku Hercules, 5,25'' diskety a zelenou barvu na monitoru. To byly časy!
Vlastně si ještě matně vzpomínám na 8'' diskety, co používaly ve výpočetním středisku u mamky v práci, ale to mi bylo tak pět.