Byla vydána nová verze 4.5 svobodného notačního programu MuseScore (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.
Byla vydána nová verze 8.6.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2025. Na programu je celá řada zajímavých přednášek a workshopů. Vstup je zdarma. Přednášky lze sledovat i online na YouTube.
Byla vydána nová verze 2.49.0 distribuovaného systému správy verzí Git. Přispělo 89 vývojářů, z toho 24 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Premiér Petr Fiala (ODS) dnes na síti X vyloučil, že by za jeho vlády mohla začít platit vyhláška, podle níž by poskytovatelé internetového připojení měli uchovávat adresy internetových stránek, na které se lidé připojují.
Flock 2025, tj. konference pro přispěvatele a příznivce Fedory, proběhne od 5. do 8. června v Praze.
Zemřel Mark Klein, který dlouhá léta pracoval pro telekomunikační firmu AT&T a proslavil se jako whistleblower, když zveřejnil informace o spolupráci AT&T s agenturou NSA. Cílem spolupráce bylo sledovat veškerou komunikaci občanů za pomocí zařízeních v místnosti 641A. O spolupráci obou subjektů napsal knihu Wiring Up The Big Brother Machine...And Fighting It.
Byla vydána nová verze 16 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
Texas Instruments představil nejmenší mikrokontrolér na světě MSPM0C1104. Je o 38 % menší než současné nejmenší mikrokontroléry. Má pouze 1,38 mm².
Resorty vnitra a průmyslu a obchodu navrhují, aby poskytovatelé připojení k internetu zaznamenávali, které weby lidé navštěvují. K těmto citlivým informacím má mít přístup i policie a zpravodajské služby. Vyplývá to z návrhu vyhlášky. Resort vnitra ale obavy o soukromí odmítá. Tvrdí, že díky změně budou policisté schopni vyšetřování lépe cílit a ušetří tak soukromí těch, kterých se jejich činnost netýká.
Podle toho obrázku to vypadá, jako kdyby tam naportovali Eclipse
Koukám, že to používají v ČSOB.
http://pharo.org/success
Jak se programy ve Smalltalku vlastně verzují?
Reálných samostatných aplikací, které by využívaly přímo Morphic, je velmi málo. Většina projektů je zaměřena na web. Ale zmínil bych např. http://www.drgeo.eu/ nebo http://www.phratch.com/. Pro aplikace se standardním GUI se dá použít třeba Phobos využívající XULRunner (screenshoty).
Snahy o sblížení se s okolním světem a zpřístupnění Phara nováčkům samozřejmě jsou. Viz integrace Gitu, předpřipravené konfigurace projektů, Pharo nově nabízí image bez GUI atd. Ale především na dokumentační frontě je potřeba pořádná ofenziva.
V podstate se to cely musi ohackovat, aby se daly kody verzovat ve forme textuProč myslíte, že je dobrý nápad verzovat na úrovni textu?
jsou na urovni kulickoveho pocitadla.A jaké nástroje jsou na vyšší úrovni? Právě problém je v tom, že většina nástrojů funguje pouze na úrovni textu – nerozpoznají například ekvivalentní kód (ani v triviálních situacích), nejsou schopny změny inteligentně prezentovat (například při přejmenování proměnné musíte revidovat každý řádek, kde se jméno změnilo), nejsou schopny inteligentě mergovat (například stačí ve dvou větvích přejmenovat věci blízko sebe a dostanete zbytečné konflikty nebo naopak, když změny nejsou blízko sebe a jsou konfliktní, tak konflikt nedostanete).
že správa textového kódu je všeobecně známá a zavedená a proto pro ní existuje mnoho nástrojů na vše.Právě ty nástroje na správu textu nejsou většinou vhodné na správu programů – mnohem raději bych ukládal informaci, která říká, že se proměnná v nějaké funkci s nějakým typem přejmenovala, než informaci, že se změnilo deset písmen na 5., 7., a 12. řádku v nějakém souboru.
při reálné práci potřebujete něco, co každý používá a co je považováno za standardProč?
Smalltalk má nedostačující napojení na okolní svět - je to prostě svět sám pro sebe.A potřebuje napojení na okolní svět? Co vám brání udělat lepší nástroje, než používá okolní svět? To, že nějaký nástroj nebo postup používá většina lidí, ještě neznamená, že je to dobrá volba.
A potřebuje napojení na okolní svět? Co vám brání udělat lepší nástroje, než používá okolní svět?Cas, vetsinou je totiz levnejsi si ten nastroj koupit a venovat se vlastnimu projektu.
Což o to, tohle všechno by se mi líbilo možná je tohle příští generace verzovacích systémů, ale není to tak jednoduché:
Což by nemusel být žádný problém. Když to dokáže kdejaký editor zvýrazňující syntax...
- Muselo by se verzovat na úrovni syntaktického stromu a verzovací systém by musel rozumět syntaxi mnoha různých jazyků.
Když to dokáže kdejaký editor zvýrazňující syntax...Často to ty editory nedělají úplně správně. Kromě toho u některých jazyků jde měnit syntax, což editory většinou vůbec nezvládají. Další problémy by byly s tím, když například používáte novou verzi jazyka nebo nějaký fork jazyka, který má jinou syntax. Pro zajímavější funkcionalitu by byla potřeba i sémantika. Nicméně Pharo je uzavřený svět a Smalltalk není tak komplikovaný jazyk (je to pravda?), takže by nemuselo být složité udělat lepší nástroje?
Když se nepovede zvýraznění syntaxe, tak to až takové tragédie není, máš to jen špatně obarvené, ale pokud pomocí toho chceš verzovat, musí to být 100% spolehlivé. Aplikace patche musí vést za všech okolností na stejný výsledek.
Což o to, já bych i chtěl, ostatně nemyslím si, že by současné DVCS (Mercurial, Git, Bazaar…) byly nějaké finální stádium – dokonalost – a nečeká nás nic dalšího. Nevím, jestli budeme mít někdy plně sémantické patche, ale možná by pro začátek šlo ke klasickému řádkovému patchi přidat metadata typu: „přejmenoval jsem proměnnou“, „přesunul jsem metodu na jiné místo bez vlivu na funkčnost“, „změnil jsem předka třídy“. Časem se ten formát „prostý text“ možná dostane na úroveň jiných formátů (Java, C++, SQL, Smalltalk…) a bude jen zvláštním případem – strom bude plochý a uzlem bude jeden řádek, možná slovo.
Nicméně je to běh na dlouhou trať a vyžaduje to, aby verzovací systém perfektně rozuměl těm jazykům, měl modul pro každý z nich a podporoval aktuální verzi těch jazyků. Zároveň potřebuješ i podporu IDE a nemůžeš pak používat nic jiného, protože je potřeba, aby editor věděl, co děláš a průběžně zaznamenával tvoji činnost, ne jen zpětně porovnal původní a výsledný stav.
A má to širší souvislosti – když už budeš mít nástroje (ne jen kompilátor), které tak dobře rozumí danému jazyku, nemusíš programovat jen psaním kódu, můžeš ten program upravovat víc vizuálně, v nějakém WYSIWYM editoru, mít graf toho programu, který neslouží jen jako needitovatelná dokumentace, ale můžeš do něj sáhnout, něco někam přesunout, přidat vazbu, natáhnout šipku z jedné metody do druhé… Spíš tohle bude předcházet těm sémantickým patchům – protože pak (až nebudeš editovat jen text), je budeš opravdu potřebovat (informace, že se změnil řádek 123 ti nic moc neřekne). To se týká i takových kancelářských textových editorů, grafických editorů, střihu videa atd.
Pokud je z toho ve výsledku zase textový patch, tak je to nástroj nezávislý na verzovacím systému a v pohodě jde používat ty dnešní (Mercurial, Git, Bazaar…). Takových nástrojů je už teď celkem dost – různá IDE, která umí refaktorovat kód nebo hledat výskyty využití (kde se skutečně daná metoda/funkce volá, ne jen nějaké primitivní vyhledávání textů), nebo různé parsery, generátory, transformátory, transpilery… nebo analyzátory kódu (často integrovaná do IDE), které ti najdou chyby, podezřelá místa nebo dají návrhy na optimalizaci.
Tady bych jako příklad použil samotné Pharo. Máte rozepsán vlastní projekt a najednou narazíte na nějakou snadno opravitelnou chybu základním systému. Prostě ji hned opravíte, napíšete krátký záznam do issue trackeru a se získaným číslem problému commitnete vybrané změny ze své image do inboxu. Záznam v issue trackeru označíte jako uzavřený, načež na něj za chvíli vlítne automat, který upravené verze balíčků zkusí nahrát a prohnat testy. Když to projde, označí se oprava jako vhodná pro lidské zhodnocení. Balíčky z několika uzavřených problémů integrátor zmerguje a vytvoří tak novou verzi Phara, kterou následně automaticky prožene CI dalšími důkladnými testy a je-li vše v pořádku, publikuje. Git v tom v současné chvíli hraje podružnou roli archivace výsledků. Úplně nepoužitelné to celé není. Přikládám screenshot Monticella při porovnání dvou balíčků.
Nicméně příští verze Phara se má na Git zaměřit. Důvody jsou pěkně sepsány zde: http://smallworks.eu/web/blog/2014-01-16-Why-Im-using-git.
U neceho vetsiho se chyba bude muset nahlasit zakaznikum, polovina z nich ten fix odmitne, protoze je chyba neovlivnuje a alespon jeden to bude chtit upravit uplne jinak, takze nakonec skoncite u spousty vetvi, mezi kterejma budete ruzne slucovat ruzne zaplaty.
Když se takhle dodavatel chová, tak špatně skončí bez ohledu na použitou technologii.
Neukazuje to na špatnou architekturu aplikace, když je potřeba pro každého zákazníka jedna větev?
Tak nějak…
Viděl bych to tak, že by to chtělo mít sdílené jádro + implementaci specifickou pro každého zákazníka. Například.
To je jedna z možností, vytvořit nějaký framework a pro jednotlivé zákazníky dodávat jeho aplikaci, parametrizaci (součástí níž je i spustitelný kód). Další z možností je mít společný základ, který je sám o sobě spustitelný a do něj přidávat moduly – s tím, že některé moduly budou pro všechny a jiné pro konkrétní zákazníky. Tenhle přístup je mi bližší, ale i ten první dává smysl.
A jak todle vyresi to, ze zakaznik odmitne zaplaty do spolecneho jadra, ktere ho neovlivnuji?Neukazuje to na špatnou architekturu aplikace, když je potřeba pro každého zákazníka jedna větev?Tak nějak…
Viděl bych to tak, že by to chtělo mít sdílené jádro + implementaci specifickou pro každého zákazníka. Například.To je jedna z možností, vytvořit nějaký framework a pro jednotlivé zákazníky dodávat jeho aplikaci, parametrizaci (součástí níž je i spustitelný kód). Další z možností je mít společný základ, který je sám o sobě spustitelný a do něj přidávat moduly – s tím, že některé moduly budou pro všechny a jiné pro konkrétní zákazníky. Tenhle přístup je mi bližší, ale i ten první dává smysl.
Tiskni
Sdílej: