Národní identitní autorita, tedy NIA ID, MeG a eOP jsou nedostupné. Na nápravě se pracuje [𝕏].
Americký výrobce čipů Nvidia se stal první firmou na světě, jejíž tržní hodnota dosáhla pěti bilionů USD (104,5 bilionu Kč). Nvidia stojí v čele světového trhu s čipy pro umělou inteligenci (AI) a výrazně těží z prudkého růstu zájmu o tuto technologii. Nvidia již byla první firmou, která překonala hranici čtyř bilionů USD, a to letos v červenci.
Po Canonicalu a SUSE oznámil také Red Hat, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie).
TrueNAS (Wikipedie), tj. open source storage platforma postavená na Linuxu, byl vydán ve verzi 25.10 Goldeye. Přináší NVMe over Fabric (NVMe-oF) nebo OpenZFS 2.3.4.
Byla vydána OpenIndiana 2025.10. Unixový operační systém OpenIndiana (Wikipedie) vychází z OpenSolarisu (Wikipedie).
České základní a střední školy čelí alarmujícímu stavu kybernetické bezpečnosti. Až 89 % identifikovaných zranitelností v IT infrastruktuře vzdělávacích institucí dosahuje kritické úrovně, což znamená, že útočníci mohou vzdáleně převzít kontrolu nad klíčovými systémy. Školy navíc často provozují zastaralé technologie, i roky nechávají zařízení bez potřebných aktualizací softwaru a používají k nim pouze výchozí, všeobecně známá
… více »Během tradiční ceremonie k oslavě Dne vzniku samostatného československého státu (28. října) byl vyznamenán medailí Za zásluhy (o stát v oblasti hospodářské) vývojář 3D tiskáren Josef Průša. Letos byly uděleny pouze dvě medaile Za zásluhy o stát v oblasti hospodářské, druhou dostal informatik a manažer Ondřej Felix, který se zabývá digitalizací státní správy.
Tor Browser, tj. fork webového prohlížeče Mozilla Firefox s integrovaným klientem sítě Tor přednastavený tak, aby přes tuto síť bezpečně komunikoval, byl vydán ve verzi 15.0. Postaven je na Firefoxu ESR 140.
Bylo oznámeno (cs) vydání Fedora Linuxu 43. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách Fedora Magazinu: Fedora Workstation, Fedora KDE Plasma Desktop, Fedora Silverblue a Fedora Atomic Desktops.
Elon Musk oznámil (𝕏) spuštění internetové encyklopedie Grokipedia (Wikipedia). Zatím ve verzi 0.1. Verze 1.0 prý bude 10x lepší, ale i ve verzi 0.1 je podle Elona Muska již lepší než Wikipedia.
Jsem od přírody strašně hravý člověk
Hraju si programováním, baví mě to. Teď si programuji takovou C++ nadstavbu nad Gtk. Ano, existuje Gtkmm, ale dle mého názoru má strašně hnusné API. Nadstavbu jsem pojmenoval jedinečným názvem Toolkit. Cílem Toolkitu je rychle a jednoduše vytvářet GUI ve stylu knihovny Qt. Toolkit následně využiji pro JXP Commander. Toolkit nevyužívá žádné dynamické knihovny (kromě Gtk a závislostí), je přímo slinkován s binárkou, a tudíž by nemělo docházet k žádným pomalostem, jako je tomu v případě Gtkmm. Zde je menší příklad:
#include <Toolkit/Toolkit.h>
class AppWindow: public Window{
protected:
Toolkit::Button *button;
Toolkit::Label *label;
Toolkit::Entry *entry;
void onButtonClick()
{
Toolkit::MsgBox( this, entry->getText(), L"Your name", mbOk | mbInformation );
}
public:
AppWindow()
{
Toolkit::VBox *vbox = new Toolkit::VBox(this);
label = new Toolkit::Label(vbox, L"Some text");
label->setText( L"Enter your name" );
entry = new Toolkit::Entry(vbox);
button = new Toolkit::Button(vbox, L"OK");
CONNECT_BUTTON_CLICK( button, onButtonClick );
showAll();
}
virtual ~AppWindow()
{
puts("Bye");
Toolkit::App->quit( 0 );
}
};
void ToolkitMain()
{
AppWindow *window;
Toolkit::App->init( L"JXP Commander" );
StringArray args = Toolkit::App->getArgs();
window = new AppWindow;
Toolkit::App->run();
}
Toolkit má již deklarovánu funkci main (popř. WinMain), kde se inicializuje Gtk, vytvoří se instance třídy Toolkit::Application (App) a předá se řízení funkci ToolkitMain(). App->init nastaví jméno programu. Argumenty programu jsou v poli stringů App->getArgs(). App-> spustí hlavní smyčku programu (gtk_main()). App->quit(navratovyKod) ukončí smyčku zavoláním gtk_main_quit(), pak už jen nastane zrušení objektu App a konec programu.
Nastavení rodičovského objektu se může provést v konstruktoru nebo pomocí funkce Widget::setParent. Vše má ještě další parametry odpovídající parametrům funkcí gtk_box_pack_start, gtk_container_add a gtk_table_attach. Typ rodičovského prvku je zjištěn a zavolá se vždy správná funkce.
Ještě jsem si vzpomněl na jeden prográmek, jež jsem programoval na praxi. Parsuje binární eventlogy Windows (*.evt) a ukládá je v textovém formátu. Čtení eventlogů je to řešeno jako třída, mohla by se to někomu hodit. Program pak tuto třídu využívá a ukládá pak informace do texťáku v kódování cp1250. Ve třídě jsou ale stringy uloženy v ucs2, takže s převodem do libovolného jiného nebude problém. Délka řetězců ve výstupním texťáku je omezena, z důvodu vkládání do databáze.
Tiskni
Sdílej:
Hraju si programováním, baví mě to.Docela změna. Ty seš člověče jak korouhvička. Ne že by na téhle změně bylo něco špatného, ba naopak. Na přečtení a vstřebání celého příspěvku už nemám sílu a klížej se mi oči, ale podle nadšeného tónu to bude asi opravdu super. Těším se, až si to zítra prostuduju.
Toolkit … je přímo slinkován s binárkou, a tudíž by nemělo docházet k žádným pomalostem, jako je tomu v případě Gtkmm.
Nerozumím. Můžete, prosím, tuto úvahu trochu rozvést?
Do té doby doporučuji KISS (=jednoduchost).
?
(Není to úplně přesné. Linus Torvalds si nejdřív jen tak hrál, teprve později se to dalo dohromady s GNU.)
?
Kdyby někdo měl velký zájem tak jsem napsal článek o výpočtu gradientu přes MMX. Zatím není publikováno, možná se někdy dočkáte
Ale jestli to má být jen na Intel-compatible, pak není problém.
Jinak pamatuji nejen staré hry na PC, ale i hry na Atari. Hra měla celá 20 KB, pěknou grafiku, zvuky, hudbu... Kdeže ty časy jsou
Kdyby někdo měl velký zájem tak jsem napsal článek o výpočtu gradientu přes MMX. Zatím není publikováno, možná se někdy dočkáteA co to nabídnout Robertovi k vydání tady na abíčku? Určitě by měl zájem
)
Atari naprostý souhlas, třeba Bouler Dash nezapomenu
Jinak s tím článkem zatím počkám, asi ho umístím někam na osobní web, protože jich mám v plánu víc a hodně z nich bude o 2d grafice a o optimalicačních problémech které jsem osobně řešil. Jenže problém je bohužel čas
Nemyslel jsem to proti čtenářům, určitě je tady hodně programátorů, ale koho zajímá tak odborná věc, tak asi použije první vyhledávač
Nemyslel jsem to proti čtenářům, určitě je tady hodně programátorů, ale koho zajímá tak odborná věc, tak asi použije první vyhledávačTady si to ale určitě přečtou i lidé, kteří takovou věc v té chvíli zrovna nepotřebují (a tudíž by ten vyhledávač nepoužili), ale určitě k tomu mají co podnětného říci.
Vlastně s těma 20KB celkem přeháněl...$ du -h vlak.com 16K vlak.com
Hudba se vejde na pár bajtů, zvuky totéž. Podívej se jak velké jsou mod, it, mid,...Z pár mod/mid bajtov rozhodne nedostanete peknú hudbu a rozhodne jej nedostanete dosť na to, aby vás po piatich minútach nebolela hlava z jej opakovania. Pojem pekná hudba je relatívny, ale obávam sa, že ak niekto nazve pár bajtov peknou hudbou, tak ho budem musieť považovať za hluchého.
Rozlišení bylo tehdy mrňavé a tím pádem i obrázky byly mrňavé. Při použití mála barev a indexované palety se lze vejít opravdu do mála i bez komprese.Tak s tým súhlasím, nenapadlo ma, že na tom tie hry kedysi boli až tak zle
10 instrukcí je celkem dost. Minimálně na počítání skóre to stačíLen či ešte zostane aj nejaká inštrukcia na inicializáciu a zobrazenie toho, čo počíta.![]()
Ale vážne, žiadna rozumná hra nemôže mať pár len inštrukcií. Ak si teda autor pod hrou nepredstavoval veci typu "Guess number"
Vlastně s těma 20KB celkem přeháněl...V tejto hre nebola pekná grafika, zvuky boli odporné a hudba žiadna. A opať, ja za hru považujem niečo trochu zložitejšie, takže aj kódu tam bolo málo. Ale už začínam veriť, že v rádoch desiatok kilobajotv sa dajú robiť nejaké hry$ du -h vlak.com 16K vlak.com
Ja presne neviem, čo si predstavujem pod pojmom hra s peknou grafikou, zvukmi, hudbou a tak, ale možno skôr nejakú adventúrku, napríklad niektorého Dizzyho; hlavne neskoršie diely mali veľmi peknú grafiku. Myslím, že žiadny diel by sa nezmestil do 20kB. Ak to niekto máte doma, tak napíšte veľkosť
Ale s tím dizzy souhlasím
Pokud máte nějaký svůj widget set nebo API pod X, můžete dát link nebo mi poslat na email, já si to rád prostuduju a třeba se i poučím (Upřímně mě zrovna zajímají jen věci pod X a akcelerovaná 2d grafika pomocí MMX a SSE2). Můj projekt je zatím pod pokličkou a jestě tak měsíc bude
/* xwindow.h */
XWINDOW * xwindow_init(void);
void xwindow_load_widgets(XWINDOW *xwin, char *filename);
void xwindow_destroy(XWINDOW *xwin);
void xwindow_process_events(XWINDOW *xwin);
void xwindow_reposition (XWINDOW *xwin, int now);
void xwindow_recalculate(XWINDOW *xwin);
void xwindow_redraw(XWINDOW *xwin, int recalculate);
#define xwindow_get_fd(xwin) {ConnectionNumber((xwin)->disp);}
#define xwindow_is_broken(xwin) ((xwin)->is_broken)
/* xdraw.h */
void xdraw_frame(XWINDOW *xwin, long x, long y, long w, long h, int is_raised);
void xdraw_frame_color(XWINDOW *xwin, long x, long y, long w, long h, int is_raised, int cl, int cs, int draw_border);
int xdraw_select_font(XWINDOW *xwin, int fid);
void xdraw_text(XWINDOW *xwin, long x, long y, char* text, float align, int shadow);
void xdraw_bar(XWINDOW *xwin, long x, long y, long w, long h, float fill);
void xdraw_vsep(XWINDOW *xwin, long x, long y, long len);
void xdraw_hsep(XWINDOW *xwin, long x, long y, long len);
Prostě jen nakresli tohle támhle. Nic víc pro ten program nepotřebuju. A aby to trošku ladilo s desktopem, vypdadá to jako kdyby to bylo podle defaultního témata gtk2 :) Chybějící podpora jakéhokoliv vstupu je naprosto záměrná.
Předpokládám, že to dopíšu koncem prázdnin, případně v září. Teď na to nemám moc času. Chybí tam jen část, která bude sbírat data. Kreslení a načítání rozložení widgetů lze víceméně považovat za hotové.
Adresa: http://jk.myserver.cz/programy/icebuteo/
#include <wpp/core/core.h>
using namespace WPP;
WPP_MAIN()
{
FileStream fileStream("out.txt", IO::Create | IO::Write | IO::Truncate);
TextStream textStream(&fileStream);
Directory d;
if ( d.open( User::homeDirectory() ).ok() ) {
const Directory::Entry* e;
while ( (e = d.read()) != NULL ) {
textStream.writeLine(e->name());
}
}
textStream.end();
return ExitSuccess;
}
Tento kód běhá na Win/Lin, výsledný soubor je v UTF8 kódování, pro současné kódování stačí před zápisem napsat:
textStream.setTextCodec(TextCodec::local());Lomítka v cestách jsou vždy v posix tvaru '/' atd, ... Šlo mi jen o to maximálně sjednotit API dvou různých OS a až naněm něco stavět. Jestli bude čas tak o tom napíšu blog, ale v současnosti mám dočasnou práci v .IE takže to nejde ahoj
používala standardní datové typyHovoríme o tom istom C/C++, kde ešte stále v štandarde nie je popísaná veľkosť základných dátových typov, o unicode ani nehovoriac? Ak ten toolkit má byť multiplatformný, tak nevidím lepšiu cestu, vy áno?
String, ale API ho používá a ví, že má pokaždé stejné kódování, že může zjistit rychle jeho délku a používat jeho metody.
Třeba když jsme u zmíněného příkladu, tak jak byste vypsal obsah domácího adresáře na těchto platformách do souboru v UTF8 nebo jiném kódování, kolik knihoven byste musel použít?
Nechci se přít, glib/gtk+ to řeší Vaším způsobem, ale když chci napsat opravdu jednodušší aplikaci tak proč použivat 10 knihoven na to, abych si přečetl konfiguraci, zobrazil nějaké ovládací prvky a při ukončení zase zapsal konfiguraci (xml).
Celá binárka má po zkompilování asi 300kb a je tam opravdu veškeré non-gui co pro gui potřebuji tak proč z toho dělat samostatný balík?
String:
Příklad:
char* asciiText = "neco"; char* utf8Text = "neco"; char* localText = "neco"; wchar_t* wcharText = L"neco"; String s1(asciiText, TextCodec::ascii()); // nebo String s1(asciiText); String s2(utf8Text, TextCodec::utf8()); String s3(localText, TextCodec::local()); String s4(wcharText, TextCodec::localWChar());A pokud chcete zpět
ByteArray a = s1.to(TextCodec::utf8()); // pokud chcete opravdu char* char* text = malloc(a.length() + 1); memcpy(text, a.constStr(), a.length()); text[a.length()] = 0;Ale právě takovým věcem jsem se chtěl vyhnout. To co jsem zde napsal mě normálně funguje a je to standardní postup. Navíc je zde možnost implicitního sdílení jako třeba u Qt což dodává programování ještě další rozměr
A co třeba manipulace:
StringList sl = String("a|b|c|d|e|f").split("|");
Myslím že jednotný Char na všech platformách má svou výhodu, wchar_t je pro mě nepoužitelný protože na linuxu je 32 bit a ve win 16 bit, s tím ale nikdo z nás nic neudělá.
Ale multiplatformnost není jenom problém se strings (kéž by), problém jsou třeba cesty k souborům (lomítka / \, pracovní adresář atd...), o GUI rači mlčím
Ale pro segfault bych radši napsal:
*((unsigned long *)NULL) = 0UL;
jenže mi vadí tyto věci:
- licencia nieje problem, kludne to dam aj pod public domain, bsd licencia nieje problem (z mojej strany urcite nie)
- ano, kazdy widget ma vlastne okno (teraz je STK 2.x) predtym som to robil v inak (STK v1.0) a zistil som ze to nieje dobre riesenie (najme s pohladu obsluhy udalosti a z hladiska rychlosti). Tak som to cele prepisal.
- k prenositelnosti: uz dlhsie planujem port na FBUI (framebuffer user interface) to je 26kB kernel modul ktory robi to co X Server. Pisal som aj toolkit pre SDL, ale ten som nedotiahol...
- Inak pisat toolkit v xlib je docela porod. Je to tak trochu alchimia. Mizerna dokumentacia. Asi najhorsie bolo dokopat X Windows-ovi fokus handling na pouzitelnu uroven (defakto pouzivam vlastny).
- Urcite mozeme pokecat, aj ked teraz som menil ICQ klienta na SIM a neviem ci je 100% funkcni ale kludne - icq:284233649 alebo na moj email...
Nejlepší toolkit je ten co ti vyhovuje a to bude s největší pravděpodobností pouze ten co si napíšeš.To je samozřejmě pravda a platí to obecně. Ale při pohledu na to, kolik se mi během let nahromadilo kostlivců ve skříni, raději každého předem varuji. Napsat něco většího (což takový toolkit bezpochyby je) znamená překonávat řadu situací, kdy má člověk tendenci se na to vykašlat.
XDrawLine() napsal XCreateWindow(), protože bez XDrawLine() se dá obejít
MoveTo() a LineTo() ale Qt a Gtk+ je úplně jinde. Nejhorší na tom je, že ten builder jsem měl ješte tehdy na 486 s 8MB ram a jelo úplně krásně.
Třeba tehdejší ZoneRings32 - hezký prográmek na naučení, sice v Delphi ale hukot
Tohle není toolkit, ale wrapper.To nic nemění na faktu, že za půl hodiny se to nenapíše