Byla vydána verze 1.93.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Svobodný operační systém ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, slaví 30. narozeniny.
Společnost Raspberry Pi má nově v nabídce flash disky Raspberry Pi Flash Drive: 128 GB za 30 dolarů a 256 GB za 55 dolarů.
Technologie Skip pro multiplatformní mobilní vývoj, která umožňuje vývojářům vytvářet iOS a Android aplikace z jediné Swift a SwiftUI kódové základny, se s vydáním verze 1.7 stala open source.
Na GitHubu byl zveřejněn algoritmus "Pro vás" sociální sítě 𝕏.
Byla vydána nová major verze 34.0.0 webového prohlížeče Pale Moon (Wikipedie) vycházejícího z Firefoxu. Přehled novinek v poznámkách k vydání.
Win8DE je desktopové prostředí pro Wayland, inspirované nechvalně proslulým uživatelským rozhraním Metro z Windows 8. Nabízí dlaždicové rozhraní s velkými tlačítky a jednoduchou navigací, optimalizované pro dotyková zařízení. Cílem projektu je přetvořit design operačního systému Windows 8 do funkčního a minimalistického rozhraní vhodného pro každodenní použití na Linuxu.
Laboratoře CZ.NIC vydaly Datovku 4.28.0 a Mobilní Datovku 2.6.0. Hlavní novinkou je ukládání rozpracovaných datových zpráv do konceptů. Datovka je svobodné multiplatformní aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi.
Unix Pipe Game je vzdělávací karetní hra zaměřená na děti a rodiče, která děti učí používat unixové příkazy prostřednictvím interaktivních úkolů. Klíčovým prvkem hry je využití symbolu | pro pipeline neboli 'rouru', který umožňuje propojit výstupy a vstupy jednotlivých unixových příkazů, v tomto případě vytištěných na kartičkách. Předpokládá se, že rodič má alespoň nějaké povědomí o unixových příkazech a jejich provazování pomocí |.
… více »PCIem je linuxový framework, který vytváří virtuální zařízení PCIe pomocí technik, které umožňují hostitelskému operačnímu systému rozpoznat tyto syntetické 'neexistující' karty jako fyzické zařízení přítomné na sběrnici. Framework PCIem je primárně zamýšlen jako pomůcka pro vývoj a testování ovladačů bez nutnosti použít skutečný hardware. Dle tvrzení projektu si fungování PCIem můžeme představit jako MITM (Man-in-the-Middle), který se nachází mezi ovladači a kernelem.
Při zveřejnění svého skriptu jsem tak trochu doufal, že se najde někdo, kdo by mi s jeho úpravou pomohl, respektive jej alespoň okomentoval (které části přepsat a jak, co je hrůza, co ujde...) a já bych měl tak možnost se naučit psát "čistší" programy. To se bohužel zatím nestalo, nicméně já na svůj příšerný skript nezanevřel a proběhla další várka úprav. Takže co je nového?
Nejvetší změnou je přechod od dlouhého_skriptu_s_minimem_procedur k programu sestávajícího se ze třídy a několika kratších metod. To podstatně usnadní jeho použití i v jiných programech. Další změnou je rozdělení komunikace se serverem IDOSu do více kroků a změna zpracování výstupů. Výsledky (nalezená spojení či možnosti na výběr při nepřesně zadaných koncových bodech) jsou dostupné i prostřednictvím seznamů. Dále jsem se zbavil dočasných souborů a (povetšinou) přešel na unicode retězce. A v neposlední řadě jsem opravil chybu, která nastávala při nepřesně zadaném počátečním i koncovém bodě hledaného spojení. Uživatelům, jsou-li jací, proto doporučuji přechod na novějši verzi.
Budu rád, když se ke skriptu vyjádříte a navrhnete další úpravy a vylepšení. Dostupný je stále na stejné adrese.
UPDATE: Jak už to tak chodí, chvíli po zveřejnění zápisku jsem nalezl chybu. Při zadání neexistujícího cíle se skript zacyklil. Již je to (doufám) opraveno, stahujte tedy verzi 0.35.
Tiskni
Sdílej:
, navíc python zrovna nepoužívám...
if kod == KOD_NEJEDNOZNACNE_KONCOVE_BODY: ...
else: ...
if(podm){} ?
Bloky se odlišují pomocí odsazení... je to šílený.
No, jak se to vezme. Me jako navacka v pythonu a pokrocilyho v bashi, perlu a amatera jinych docela hodne zmatlo, kdyz jsem pripsal jeden radek v python kodu a pri spusteni me to vyfuckovalo, ze mam blby zarovnani. Podival jsem se znovu, zarovnani bylo ok. Pak mi teprve doslo, ze python sice rozpoznava bloky podle odsazeni, ale ne podle vizulaniho odsazeni, ale podle poctu znaku. Takze milej uzivateli, neni whitespace jako whitespace. 8 mezer PROSTE NENI stejne jako 4 taby nastaveni na sirku 2 znaky.
Jinak me to taky docela stve z toho duvodu, ze nemuzu napsat python kod na jeden radek, napr. v cmdline.
No, python je mozna pro zacatecniky, ale ne pro pokrocily. Proto se u me moc nechyt. Ale ne, trosku mi tam vadi i funkce, schovavany za pseudo metody. Na tom se pak zacatecnici uci pekne blbe OOP.
Pocitac to vidi jak je to v tom souboru. To ze ruzne programy interpretuji delku tabu ruzne, je problem s taby, ne Pythonem. Doporucoval bych v Python zdrojacich taby vubec nepouzivat (mit v editoru nastavene nahrad taby mezerami).
else cast tak uz prece neni mozne se v tom rozumne orientovat, kdezto pekne naformatovany kod s pouzitim zavorek je prehledny vzdycky.
Python to prostě takhle má - podmínka končí dvojtečkou, blok kódu pro danou podmínku je odsazený whitespacem (případně je napsaný hned za dvojtečkou, pokud je toho jen na jeden rádek).
a nedari se mi vymyslet srozumitelnejsi reseni s generatory. Jeste jednou diky.
def parsuj_spojeni():
def generator_radku(file):
for line in file:
.. nejake zpracovani vstupni radky line
if pocet_spoju > max_pocet_spoju: break
yield line
return
pocet_spoju=0
gr=generator_radku(file)
for line in gr:
while not re.search("cosi",line): gr.next()
.. zpracovani prvniho stavu
while not re.search("cosi dalsiho",line): gr.next()
.. zpracovani druheho stavu
...
pocet_spoju+=1
Zkratka, zakladni myslenka je, mit vstupy (v tomto pripade radky) ktera chcete prijimat tim stavovym automatem schovane v tom generatoru, a stavy toho automatu implementovat jako normalni body v kodu, ktere si proste vzdy vyzadaji prislusny ocekavany vstup (bud pomoci gr.next() nebo pomoci for cyklu pres gr).
Tak bych to asi delal ja, je to citelnejsi nez studovat prechod mezi stavy a co ktery stav znamena.