Google, potažmo YouTube umožní návrat tvůrcům, kteří byli zablokováni kvůli údajnému šíření dezinformací souvisejících s COVID-19 a volbami. Tvůrci teď mohou požádat o navrácení přístupu. Společnost Alphabet v této souvislosti uvedla, že zákazy byly uděleny kvůli tlaku tehdejší Bidenovy administrativy.
Vývojári z distribúcie Artix, ktorá je postavená na Arch Linuxe, alebo skôr jeho forkom, už skôr prešli na Open-RC init systém, stále však niektoré projekty ako GNOME boli závislé na systemd. Teraz pretiekol pohár trpezlivosti a počnúc GNOME 49, kvôli ktorému komponenta gnome-session je úplne závislá na systemd-init, padlo rozhodnutie na odstránenie GNOME z repozitárov Artixu. Táto zmena sa podľa všetkého týka viac než 90 distribúcií, ktoré tiež nepoužívajú systemd. Viac v príspevku na DistroWatch.
Magazín IEEE Spectrum opět po roce publikoval svůj žebříček programovacích jazyků. Vedou Python, Java, C++, SQL a C#.
Repozitáře pro spolupráci v rámci projektu Fedora se přesunou z Pagure na nově vzniklý Fedora Forge. Ten stejně jako třeba Codeberg běží na softwaru Forgejo, které bylo už před časem vybráno jako náhrada za Pagure. Pagure pochází z dílny Fedory, ale mimo ni se příliš neuchytil. Jeho vývoj a údržba byly náročné a Fedora se rozhodla jít cestou úspěšnějšího projektu, který má větší základnu přispěvatelů.
Byla vydána (𝕏) nová verze 2025.3 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.
V IT4Innovations národním superpočítačovém centru byl dnes slavnostně spuštěn první český kvantový počítač VLQ disponující 24 fyzickými qubity s unikátní hvězdicovou topologií. Systém dodala společnost IQM Quantum Computers a jeho celková pořizovací cena činila přibližně 125 milionů korun.
Výrobce čipů Nvidia chce investovat až 100 miliard dolarů (přes dva biliony Kč) do společnosti zaměřené na umělou inteligenci OpenAI. Firmy o tom informují v tiskové zprávě. Oznámené partnerství přichází v době, kdy se mezi technologickými giganty a start-upy zostřuje konkurence o zajištění přístupu k energii a čipům potřebným pro rozvoj umělé inteligence (AI).
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 157 (pdf).
Společnost Cloudflare oznámila, že sponzoruje nezávislý webový prohlížeč Ladybird a linuxovou distribuci pro vývojáře Omarchy (Arch Linux s dlaždicovým správcem oken Hyprland).
Společnost XTX Markets zabývající se algoritmickým obchodováním pro své potřeby vyvinula a dnes představila a otevřela souborový systém TernFS. Zdrojové kódy jsou k dispozici na GitHubu. Vývoj TernFS začal počátkem roku 2022. Od léta 2023 jej XTX Markets používá v produkčním prostředí.
Před časem jsem se rozhodl, že když už je to mezi mnou a vývojem web apps tak vážné, nezůstanem u PHP a praštíme do toho. Začal jsem objevovat Python na webu, prošel jsem několik různých technologií a frameworků (což nutně neznamená, že jsem je zase opustil) a dnes bych rád lehce rozebral jeden problém, na který jsem narazil při práci na jedné větší věci v Djangu.
Django u mě dříve hrálo druhé housle a to díky TurboGears a čistým mod_python handlerům (svůj Cocoon-like framework se doufám brzy dokopu vydat jako opensource), ale pro ten současný projekt jsem se rozhodl, že mu dám šanci. A stálo to za to. Pochopil jsem více jeho odlišnosti, jeho sílu (i když k používání jejich "templating engine" mě nikdo nedonutí -- Genshi od tvůrců Tracu je neskutečně mocný nástroj), ale také jsem narazil na pár otravných problémů. (Mj. pro mě naprosto nepochopitelný záměr vývojářů Djanga nemít žádnou generovanou API dokumentaci...prý jejich klasická dokumentace stačí...hehe. Kůži nám naštěstí zachraňují hned dva aktivisté: http://djangoapi.matee.net/ a http://djangoapi.quamquam.org/trunk/. Je tu mimochodem vidět, že u Djangů doma se na dokumentování kódu často celkem obstojně kálí...)
Rozepsat se chci o problému s odvozováním datových modelů prostou objektovou dědičností, které je alternativou (těžkopádnému a ošklivému) řešení s ForeignKey či OneToOne poli. Kdo by si myslel, že je to přirozené a bez problému to půjde, narazí. Dá se dostat celkem daleko, v podstatě vše kromě reflektování změn v modelu v admin rozhraní lze jednoduše udělat. Stačí vytvořit nový model, příp. odvodit i vlastního managera a udělat formulářové třídy (třeba na košatější registrační formuláře -- tam jsem ale narazil ještě na problém, že SelectField
u nelze vnutit defaultní hodnotu -- prý to není věc Djanga, bug byl uzavřen -- takže se konalo další subclassování a pak vytvořit vlastní backend, abyste donutili Django se autentizovat oproti vašemu novému modelu. Pokud ale chcete dodatečné informace zobrazovat a editovat v admin rozhraní, narazíte na problém. Přepsání vnořené třídy Admin, která definuje vzhled admin rozhraní, totiž nemá žádný efekt.
Řešením je ještě před odvozením nové třídy pro uživatele tu stávající třídu a podtřídu Admin "nadopovat" položkami, se kterými potřebujete pracovat.
Mějme tedy uživatele, ke kterému potřebujeme registrovat nějaké ty oblíbené položky.from django.contrib.auth.models import User class MyUser(User): favorites = models.ManyToManyField('AdSpace', blank = True) class Meta: db_table = 'auth_user' # To abychom donutili MyUser pracovat nad tabulkou, kam si Django ukládá uživateleTy většinou jako administrátoři nebudeme potřebovat editovat, je to věc každého uživatele. Řekněme ale, že chceme mít přístup k adrese. Přidání např.
mesto = models.CharField('Město', maxlength = 50, blank = True)a předefinování proměnné
fields
ve vnořené třídě Admin nám mesto
do admina nedostane. Chyba žádná, ale položka se prostě nezobrazí, jako kdyby neexistovala.
Takže před definici MyUser
dáme:
User.add_to_class("mesto", models.CharField('Město', maxlength = 50, blank = True)) User._meta.admin.fields += ( ("Adresa", { 'fields': ('mesto', ) }), )a hned máme v Admin rozhraní fieldset s položkou město. Výhodou je to, že položka je přímo v editaci uživatele, žádný další model nepotřebujeme (= méně objektů v paměti a méně dotazů do DB) a do našeho nového modelu si můžeme nasypat metody pracující pouze nad daty našeho modelu a pak je v requestu volat podle libosti (ovšem za předpokladu, že máme vlastní backend, který nám po přihlášení vrátí instanci
MyUser
a ne User
). Nevýhodou je to, že metoda add_to_class
bere pouze self
a dva argumenty, takže pro přidání 10 polí ji musíme volat 10×.
Přidat si samozřejmě můžeme i nová pole, která chceme zahrnout do hledání (čárka za 'mesto'
je povinná):
User._meta.admin.search_fields += ('mesto', )atd... Jinak mi ale Django dělá radost a přes všechny neduhy je to celkem povedený kousek software.
UPDATE: Problém nastává, když se pokusím přes add_to_class
přidat ForeignKey na sebe sama. To zacyklí dev server tak, že ho musím sestřelit. Přidání ForeignKey na sebe sama přímo v třídě samozřejmě funguje, ale to neřeší můj problém s adminem. Včera jsem si v jednu chvíli zacyklení všiml až pozdě, obě jádra jely na 100%, 2GB paměti v háji a swap skoro taky... Reset už jsem v Linuxu opravdu dlouho nepoužil
Tiskni
Sdílej:
Článek by se klidně mohl jmenovat Django a rozšiřování modelu. Problematiku hezky popisuje např. http://www.b-list.org/weblog/2007/02/20/about-model-subclassing.Moc dobre napsany clanek, dik za link. Celkem se zacinam pripravovat na to, ze se subclassovani v tomto pripade vzdam. Nejde o princip, spise o cas, ktery stravim rewritem. S
edit_inline
u ForeignKey dosahnu snad prakticky stejneho efektu a ztratim u toho mene mozkovych bunek...
Z poslední doby doporučuju Django Master Class.Jo, jo, tahle stranka uz mi sedi v del.icio.us