PixiEditor byl vydán ve verzi 2.0. Jedná se o multiplatformní univerzální all-in-one 2D grafický editor. Zvládne rastrovou i vektorovou grafiku, pixel art, k tomu animace a efekty pomocí uzlového grafu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GNU LGPL 3.0.
Byly představeny novinky v Raspberry Pi Connect for Organisations. Vylepšen byl protokol auditu pro lepší zabezpečení. Raspberry Pi Connect je oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče. Verze pro organizace je placená. Cena je 0,50 dolaru za zařízení za měsíc.
CISA (Cybersecurity and Infrastructure Security Agency) oznámila veřejnou dostupnost škálovatelné a distribuované platformy Thorium pro automatizovanou analýzu malwaru. Zdrojové kódy jsou k dispozici na GitHubu.
Ubuntu nově pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 3. snapshot Ubuntu 25.10 (Questing Quokka).
Společnost Proton AG stojící za Proton Mailem a dalšími službami přidala do svého portfolia Proton Authenticator. S otevřeným zdrojovým kódem a k dispozici na všech zařízeních. Snadno a bezpečně synchronizujte a zálohujte své 2FA kódy. K používání nepotřebujete Proton Account.
Argentinec, který byl náhodně zachycen Google Street View kamerou, jak se zcela nahý prochází po svém dvorku, vysoudil od internetového giganta odškodné. Soud uznal, že jeho soukromí bylo opravdu porušeno – Google mu má vyplatit v přepočtu asi 12 500 dolarů.
Eben Upton, CEO Raspberry Pi Holdings, informuje o RP2350 A4, RP2354 a nové hackerské výzvě. Nový mikrokontrolér RP2350 A4 řeší chyby, i bezpečnostní, předchozího RP2350 A2. RP2354 je varianta RP2350 s 2 MB paměti. Vyhlášena byla nová hackerská výzva. Vyhrát lze 20 000 dolarů.
Představen byl notebook TUXEDO InfinityBook Pro 15 Gen10 s procesorem AMD Ryzen AI 300, integrovanou grafikou AMD Radeon 800M, 15,3 palcovým displejem s rozlišením 2560x1600 pixelů. V konfiguraci si lze vybrat až 128 GB RAM. Koupit jej lze s nainstalovaným TUXEDO OS nebo Ubuntu 24.04 LTS.
Po půl roce od vydání verze 2.41 byla vydána nová verze 2.42 knihovny glibc (GNU C Library). Přehled novinek v poznámkách k vydání a v souboru NEWS. Vypíchnout lze například podporu SFrame. Opraveny jsou zranitelnosti CVE-2025-0395, CVE-2025-5702, CVE-2025-5745 a CVE-2025-8058.
Byla vydána nová verze 9.15 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.
unit crt
a hlavně turbo vision - to byla věc, to se s (n)curses nedá srovnat.
Jasne, nemuzes si vytvorit promennou jen pro jeden blok kodu, aniz bys ten blok kodu vystrcil do procedury/funkce, ale uprimne, jak casto potrebujes neco takoveho delat?V každém for-cyklu? Ono
for (int i=0;i<length;i++)
je o trochu menší prasárna než int i; for (i=0;i<length;i++)
, ale nevim jak se to dělá v pascalu - neviděl jsem ho od maturity.
Dost praktické to může být třeba i v definici makra, např.
#define SYSTEM_ERROR(x) { \ std::ostringstream errmsg; \ errmsg << x; \ throw system_error(errmsg.str()); \ }
Je to stylově čistší v tom, že je tím jasně deklarováno, že proměnná je lokální pro daný cyklus a pokud se někde později vyskytne stejnojmenná proměnná, nemá s ní naprosto nic společného. Někdy to třeba může pomoci odhalit zapomenutou inicializaci, kterou by její nechtěná inicializace předchozím for cyklem zamaskovala.
Za sebe můžu říct, že postupem času mi začala filosofie "deklarovat až když je potřeba a jen tam, kde je potřeba" být trochu bližší než původní "všechno se nadeklaruje na začátku" a jsem docela rád, že C99 tuhle možnost z C++ převzalo.
Dále mi přijde jako naprostá blbost používat pro přiřazení := a pro porovnání = to je pro mě naprosto nelogická věc.
IMHO je to dost logické, ale nepříliš praktické. Dokonce bych řekl, že takové detaily dobře ilustrují rozdíl mezi Wirthovým a K&R přístupem: Kernighan a Ritchie ve své knize dokonce uvádějí, že když se rozhodovali, udělali si na nějakém vzorku svých programů statistiku a zjistili, že přiřazení je podstatně víc než porovnání na rovnost. Proto zvolili jednodušší symbol pro přiřazení. Naopak Wirth se podle všeho rozhodoval spíš podle logiky a přirozenosti. Takových příkladů se dá najít víc - např. nikoho, kdo se aspoň na chvíli zamyslel nad praktickou stránkou věci, by nemohlo napadnout dát logickým operátorům vyšší prioritu než porovnání; Wirth to očividně neudělal, takže se každý test, zda hodnota leží v intervalu, musí závorkovat.
Write
/WriteLn
a jejich magické "automatické" parametry), ale je jich relativně málo.
Jako jazyk "sám o sobě" není špatný, pokud se použije pro výuku neprogramátorů, ale v opačném případě je tu prbklém právě v té "kočkopsovitosti" - pro ty, co pak budou programovat v něčem jiném (což budou téměř určitě tak jako tak muset), to bude znamenat nutnost odnaučit se zbytečně mnoho věcí.
Je to jako učit se jezdit na tříkolce - je bezpečná a na první pohled má to nejlepší z obou světů, ale budoucí (moto)cyklisti se na ní nenaučí držet rovnováhu a pro automobilisty je to zas příliš podobné kolu.
V Pythone, či Jave sa nikdy nenaučím o smerníkoch, či v C++ nikdy o Lambda výrazoch (v C++0x že vraj budú).No vzhledem k tomu, že drtivá většina výuky C směrníky používá ve smyslu obyčejné reference někam, tak si troufám říct, že se o nich člověk nic moc nenaučí ani v C. BTW: Java RealTime Specification umožňuje přímý přístup k paměti
Mě osobně ta bezzávorková begin-end syntax přijde krajně nepřehledná.Naprosto jasně: begin znamená začátek, end znamená konec. Na první pohled je z toho zjevné, co to má znamenat. Závorka je jenom obrázek, jehož význam si musíš domyslet.
Begin a end jsou klasická slova, takže mi v kódu dost splývala se zbytkem a bylo to pro mě dost nepřehledné (a na odsazení nezáleželo).Od toho existují editory se zvýrazňováním syntaxe (nebo přesněji existují editory, které zvýrazňovat syntaxi neumí, i když teď mě žádný nenapadá)
Nevidím důvod, proč nyní již od začátku nezačít s nějakým objektově orientovaným jazykem
Nevidím důvod, proč začínat s objektově orientovaným jazykem
Pascal je podle mě má nejhorší syntaxi ze všech jazyků co znám
Ale většina knih i článků o algoritmizaci používá velice podobnou syntaxi.
Osobně si myslím, že pro začátečníka je důležitá jednoduchost (a logičnost) syntaxe a sémantiky.
kterych se da rict ze nemaji konkurenci nemaji s objektovym pristupem mnoho spolecneho, takove openssl, apache, vnitrek linuxu, klasicke unixove nastroje a tak dal.Vnitřek Linuxu je hodně objektově orientovaný. Jenom na to nepoužívá objektový jazyk
class Abc
si zatím nevšímejte" vs. "Takhle se definuje třída, takhle se vytváří objekt, toho public static void main
si zatím nevšímejte".
Packal je podle mě nejhorší odpad mezi programovacími jazyky. Kdyby nevznikl, mohlo být na školách (a možná i na světě) lépe.
Packal kombinuje nevýhody nízkoúrovňových jazyků (nemá garbage collection, negarantuje konzistentní paměťové reference, podpora pro dynamicky alokované struktury je ubohá, rozumná práce se stringy prakticky neexistuje) s nevýhodami vysokoúrovňových jazyků ((téměř) žádná přímá práce s pamětí, žádná aritmetika pointerů). K tomu přidává další (těžko klasifikovatelné) nevýhody, například nesmyslné indexování polí od 1 a hloupou volací konvenci, která (mimo jiné) předem vylučuje variadické funkce.
Packal vymyslel teoretik, který netušil, jak má jazyk vypadat, a všechno zpackal. Cokoliv je lepší. Všechny ostatní jazyky mají jakousi rozumnou ideu. Drtivá většina jejich nevýhod se dá ospravedlnit výhodami, které z toho plynou. Packal má jen samé nevýhody a na oplátku nenabízí vůbec nic.
například nesmyslné indexování polí od 1
Indexuje se od čísla, které si určí programátor, navíc se může indexovat i výčtovými typy.
Novější Pascaly, co se dnes učí na školách, si v některých věcech polepšily.
Pravda, poznámku ohledně indexování beru zpět. To jsem si spletl s jiným nepovedeným jazykem.
Nevím, které Packaly se dnes učí. Já jsem zažil FPC a GPC. Samozřejmě je pěkné mít v Packalu pointerovou aritmetiku nebo operátory typu +=
. Ale není pak lepší prostě místo toho použít C?
Pokud se těmi „novějšími Packaly“ rozumí něco kolem Lazarusu nebo (už dávno mrtvého) Delphi, ani tohle není žádná výhra. O zásadních chybách v návrhu ObjectPackalu by se daly napsat celé stránky. Nemyslím si, že by se něco takového mělo učit.
Ano, myslel jsem nové Delphi případně Delphi Prism. Bohužel ty jazyky nejsou vzájemně kompatibilní.
BTW, přece jen tam s tím indexováním byl nějaký problém, ale týkal se pouze stringů. Pokud si to správně pamatuju, stringy měly maximálně 255 B a na indexu 0 byl byte s délkou stringu. Tudíž string samotný byl indexovaný od 1. Pokud vím, některé implementace byly navržené tak nesmyslně, že všechny stringy kromě konstantních se alokovaly napevno po 256 bytech bez ohledu na skutečnou délku.
V novějších Packalech se samozřejmě objevila jiná reprezentace, která už nesmyslná omezení nemá.
Když už jsme u vkládání do červeno-černých stromů, tak takhle to lze udělat v jazycích, které mají pattern matching (toto je Haskell):
data Color = R | B data RB a = E | T Color (RB a) a (RB a) insert :: Ord a => a -> RB a -> RB a insert x s = T B a z b where T _ a z b = ins s ins E = T R E x E ins s@(T B a y b) | x<y = balance (ins a) y b | x>y = balance a y (ins b) | otherwise = s ins s@(T R a y b) | x<y = T R (ins a) y b | x>y = T R a y (ins b) | otherwise = s balance :: RB a -> a -> RB a -> RB a balance (T R a x b) y (T R c z d) = T R (T B a x b) y (T B c z d) balance (T R (T R a x b) y c) z d = T R (T B a x b) y (T B c z d) balance (T R a x (T R b y c)) z d = T R (T B a x b) y (T B c z d) balance a x (T R b y (T R c z d)) = T R (T B a x b) y (T B c z d) balance a x (T R (T R b y c) z d) = T R (T B a x b) y (T B c z d) balance a x b = T B a x b
Kód jsem si půjčil ze stránky Red Black Trees
Tiskni
Sdílej: