V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."
Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.
Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.
Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.
… více »Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.
Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.
ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím
… více »ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.
Strands Decider 2B je malý open-source model s 2 miliardami parametrů, určený k rychlé klasifikaci vstupů a rozhodování mezi možnostmi, generující odpovědi ve stylu modelu Jev. Strands dosáhl přibližně 72% shody s Jevem na veřejné testovací sadě JevBench (tento benchmark pochopitleně nepředstavuje přímé srovnání s modelem Jev). Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache-2.0, váhy modelu na Hugging Face.
Ve věku 90 let zemřela americká softwarová inženýrka Margaret Hamiltonová, která vedla tým, jenž vyvíjel letový software pro program Apollo amerického Národního úřadu pro letectví a vesmír (NASA).
V tomto seriálu bych rád nastínil, jak lze vytvořit jednodušší i složitější Plasma applet v jazyce C++ (lze využít i jiné programovací jazyky jako Python, JavaScript, Ruby apod.). K tomu se nám občas budou hodit i nějaké ty znalosti Qt, takže místy budu odkazovat na články o programování v Qt 4 od Davida Watzkeho.
Při vývoji plasmoidů se vám určitě může hodit API dokumentace.
Plasmoidy lze používat (tvořit je můžete, v čem chcete, nemusíte ani v Linuxu) pouze v KDE 4, ale kvůli rychlému vývoji a změnám v API se stává, že starší Plasmoidy v nových verzích KDE nefungují. V tomto seriálu budu používat API z aktuální stabilní řady, tedy KDE 4.3.
Každý applet musí mít minimálně tři soubory: zdrojový kód (.cpp), hlavičkový soubor (.h) a soubor .desktop. Poslední z uvedených obsahuje informace o jménu plasmoidu, jeho typu, verzi, autorovi, licenci atd. a využívá ho KDE pro registraci do seznamu widgetů.
Na začátek vytvoříme jednoduchý applet, který zobrazí aktuální verzi KDE, jež používáte. Není to nijak užitečné, ale ukážeme si na tom, jaké metody musí každý plasmoid implementovat a jak se takový plasmoid překládá a instaluje do systému. Plasmoid nenačítá verzi KDE dynamicky při spuštění, ale verze se do něj zapíše při kompilaci.
kde_version.h
#ifndef KDE_VERSIONH
#define KDE_VERSIONH
//Základní hlavička Plasmy
#include <Plasma/Applet>
//KDE implementace QIcon
#include <KIcon>
class kdeVersionPlasmoid: public Plasma::Applet
{
Q_OBJECT
public:
kdeVersionPlasmoid(QObject *parent, const QVariantList &args);
~kdeVersionPlasmoid() {};
void init();
void paintInterface(QPainter *painter, const QStyleOptionGraphicsItem *option, const QRect& contentsRect);
private:
KIcon p_icon;
QString kdeVer;
};
K_EXPORT_PLASMA_APPLET(kdeVersion, kdeVersionPlasmoid);
#endif
Kromě konstruktoru a destruktoru musí třída appletu mít i metody init() a paintInterface(). V konstruktoru se pouze nastaví výchozí velikost, pozadí atd., další záležitosti jako načítání konfigurace a podobně se provádějí právě v metodě init(). Metoda paintInterface() obstará základní vytvoření grafického rozhraní.
Důležité je také makro K_EXPORT_PLASMA_APPLET, které propojí třídu appletu se souborem .desktop. Prvním parametrem je název appletu v souboru .desktop (viz níže), druhým parametrem je název třídy appletu.
kde_version.cpp
#include <kde_version.h>
#include <Plasma/Theme>
#include <QPainter>
kdeVersionPlasmoid::kdeVersionPlasmoid(QObject *parent, const QVariantList &args): Plasma::Applet(parent, args)
{
// Nastavi ikonu plasmoidu
p_icon = KIcon("kde");
// Automaticky vykreslí výchozí pozadí plasmoidu
setBackgroundHints(DefaultBackground);
}
void kdeVersionPlasmoid::init()
{
// Načte verzi KDE
kdeVer = KDE_VERSION_STRING;
// Pokud nebylo nic načteno, nastaví chybné spuštění
if (kdeVer.isEmpty()) {
setFailedToLaunch(true,tr("Can't detect KDE version"));
}
}
void kdeVersionPlasmoid::paintInterface(QPainter *painter,
const QStyleOptionGraphicsItem *option,
const QRect &contentsRect)
{
Q_UNUSED(option);
// Umístí text na widget
painter->setPen(Qt::white);
painter->drawText(contentsRect,
Qt::AlignCenter | Qt::AlignHCenter,
kdeVer);
painter->restore();
}
#include "kde_version.moc"
Zde stojí za zmínku metoda setBackgroundHints(DefaultBackground), která zajistí, že se pod plasmoidem automaticky vykreslí pozadí. Další zajímavá metoda je setFailedToLaunch(bool failed,QString reason). Pokud z nějakého důvodu nelze applet správně spustit (třeba je poškozený konfigurační soubor nebo nelze získat nějaké informace – jako v našem případě informaci o verzi KDE), informujeme Plasmu, že widget nelze spustit a druhým parametrem předáme stručný popis proč. Applet pak může vypadat například takto:

plasma-kde-version-applet.desktop
[Desktop Entry] Name=KDE Version Comment=KDE Version applet ServiceTypes=Plasma/Applet Type=Service X-KDE-Library=plasma_kde_version_applet X-KDE-PluginInfo-Author=Dan Vratil X-KDE-PluginInfo-Email=vratil@progdansoft.com X-KDE-PluginInfo-Name=plasma_kde_version_applet X-KDE-PluginInfo-Version=0.1 X-KDE-PluginInfo-Website=http://www.abclinuxu.cz X-KDE-PluginInfo-Category=Example X-KDE-PluginInfo-Depends= X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true
ServiceTypes a Type určují, o jaký typ plasmoidu se jedná. X-KDE-PluginInfo-Category definuje skupinu, do které daný applet nejlépe zapadá. V našem případě jde o Example (příklad). Seznam všech kategorií naleznete v PluginInfo Guide. Zbylé položky jsou volitelné a jde jen o rozšiřující volby.
Když už máme vše připravené, můžeme plasmoid konečně zkompilovat. Zde se vyplatí použít CMake, protože konfigurace je jednoduchá a usnadní nám dost práce.
# Název projektu
project(kdeVersionPlasmoid)
# Závislosti
find_package(KDE4 REQUIRED)
include(KDE4Defaults)
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
include_directories(
${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}
${KDE4_INCLUDES}
)
# Přidá zdrojové kódy
set(kdeVersionPlasmoid_SRCS kde_version.cpp)
# Zaregistruje plugin do KDE
kde4_add_plugin(plasma_kde_version_applet ${kdeVersionPlasmoid_SRCS})
target_link_libraries(plasma_kde_version_applet
${KDE4_PLASMA_LIBS} ${KDE4_KDEUI_LIBS})
# Nainstaluje knihovnu
install(TARGETS plasma_kde_version_applet
DESTINATION ${PLUGIN_INSTALL_DIR})
# Nainstaluje .desktop soubor
install(FILES plasma-kde-version-applet.desktop
DESTINATION ${SERVICES_INSTALL_DIR})
Nyní příkazem cmake vytvoříme Makefile a poté pomocí make a make install applet zkompilujeme a nainstalujeme do systému.
Pozn: CMake standardně nastavuje jako INSTALL_PREFIX složku /usr/local. Některé distribuce jako například Arch Linux mají KDE nainstalované v /usr. Do příkazu CMake se pak musí přidat přepínač -DCMAKE_INSTALL_PREFIX=/usr.
Plasmoid je nyní nainstalovaný v systému. Jenže aby se o něm KDE dozvědělo, potřebuje znovu načíst všechny soubory .desktop, což znamená odhlásit a znovu se přihlásit do KDE. To pro testování není zrovna ideální, proto máme šikovný prográmek plasmoidviewer. Jako parametr zadáme název našeho plasmoidu tak, jak jsme ho pojmenovali v X-KDE-PluginInfo-Name v souboru .desktop.
plasmoidviewer plasma_kde_version_applet

Pokud chcete, aby se náš nový plasmoid objevil ve správci appletů, musíte se buď znovu přihlásit, nebo spustit:
kbuildsycoca4 kquitapp plasma-desktop kstart plasma-desktop
To je dnes vše, příště se podíváme, jak vytvořit nějaký interaktivní plasmoid, a jak je to s plasmoidy v panelu.
Ná konec ještě přikládám archiv se zdrojovými kódy dnešního plasmoidu.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
"Brno" nebo "Brno at 12:00".
Teď na tom na tom nemám moc čas dělat, o svátcích přidám nové featurky :)
"from A to B" (taková variace na krunner).http://vlak.cz něco takového poskytuje.
.
Nebo podrobnosti na chaps.cz http://chaps.cz/idos-moznost-vyuziti-odkazu.aspTo je jen předvyplnění formuláře na idos.cz (místo kterého používám vlak.cz), takže nic zajímavého.
Plasmoid je nyní nainstalovaný v systému. Jenže aby se o něm KDE dozvědělo, potřebuje znovu načíst všechny soubory .desktop, což znamená odhlásit a znovu se přihlásit do KDE. To pro testování není zrovna ideálníStačí jen restartovat plasmu
kbuildsycoca4 kquitapp plasma-desktop; sleep 3; plasma-desktopNa kompilaci a instalaci používám:
mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .. make sudo make install
O plasmoidy v Javě (nebo ještě hůře v .NETu) bych opravdu nestál...
.plasmoid, které není třeba kompilovat, prostě se do plasmy přidají příkazem plasmapkg a lze je ihned používat? Příklad.
<div style="float: right"><input type="button" value="Rozbalit"></div>Proč se to zobrazuje i když dám "Zobrazit kód". V IE8 to funguje a ve WebKitu ne? Hmm.
Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN82/31.0.016; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413