Před týdnem zranitelnost Copy Fail. Dnes zranitelnost Dirty Frag. Běžný uživatel může na Linuxu získat práva roota (lokální eskalaci práv). Na většině linuxových distribucí vydaných od roku 2017. Aktuálně bez oficiální záplaty a CVE čísla [oss-security mailing list].
Ačkoli je papež Lev XIV. hlavou katolické církve a stojí v čele více než miliardy věřících po celém světě, také on někdy řeší všední potíže. A kdo v životě neměl problémy se zákaznickou linkou? Krátce poté, co nastoupil do úřadu, musel papež se svou bankou řešit změnu údajů. Operátorka ale nechtěla uvěřit, s kým mluví, a Svatému otci zavěsila.
Incus, komunitní fork nástroje pro správu kontejnerů LXD, byl vydán ve verzi 7.0 LTS (YouTube). Stejně tak související LXC a LXCFS.
Google Chrome 148 byl prohlášen za stabilní. Nejnovější stabilní verze 148.0.7778.96 přináší řadu novinek z hlediska uživatelů i vývojářů. Vypíchnout lze Prompt API (demo) pro přímý přístup k AI v zařízení. Podrobný přehled v poznámkách k vydání. Opraveno bylo 127 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Richard Hughes oznámil, že po společnostech Red Hat a Framework a organizacích OSFF a Linux Foundation, službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzorují také společnosti Dell a Lenovo. Do dnešního dne bylo díky LVFS provedeno více než 145 milionů aktualizací firmwarů od více než 100 různých výrobců na milionech linuxových zařízení.
Americké technologické společnosti Microsoft, Google a xAI souhlasily, že vládě Spojených států poskytnou přístup k novým modelům umělé inteligence (AI) před jejich uvedením na trh. Oznámila to americká vláda, která tak bude moci prověřit, zda modely nepředstavují hrozbu pro národní bezpečnost. Oznámení podtrhuje rostoucí obavy Washingtonu z rizik spojených s výkonnými AI systémy. Americké úřady chtějí v rámci předběžného přístupu
… více »Společnost Valve zveřejnila (GitLab) nákresy ovladače Steam Controller a puku. Pro všechny, kdo by jej chtěli hacknout nebo modifikovat, případně pro ně navrhnout nějaké příslušenství. Pod licencí Creative Commons (CC BY-NC-SA 4.0).
PHP bylo dlouho distribuováno pod vlastní licencí – s výjimkou částí spadajících pod licenci Zend Engine. Po několikaleté práci se povedlo PHP přelicencovat na 3bodovou licenci BSD.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube). Na Linuxu je vedle Qt frontendu nově k dispozici také GTK4 / libadwaita frontend.
Neziskové průmyslové konsorcium Khronos Group vydalo verzi 3.1 specifikace OpenCL (Open Computing Language). OpenCL je průmyslový standard pro paralelní programování heterogenních počítačových systémů.
Ahoj,
pri click na element chci zavolat metodu
OnClick_.
Nevite jak zjednodusit ten zapis
.click (...)
Diky.
function Frm_Login (element)
{
$(element).click ( function (frm) {
return function () { frm.OnClick_(); };
}(this));
};
Frm_Login.prototype.OnClick_ = function ()
{
/* Nejake operace. */
};
function Frm_Login (element)
{
$(element).click ( function (frm) {
return frm.OnClick_;
}(this));
};
Zkousim takovou "okenni" aplikaci, ktera by bezela v internetovych prohlizecich.
Pomoci knihovny dhtmlx vytvarim okna (formulare). Na test treba Frm_Test.
var okno1 = new Frm_Test ();
var okno2 = new Frm_Test ();
A potrebuju aby pri stisku daneho tlacitka na formulari se zavolala metoda
daneho objektu. Tak mi to prislo podobne jako v desktop aplikacich.
S JS zacinam takze mozna to je blbost. Uvidim casem.
Tady je cely priklad:
function Geozone_Frm_Login (ownerWS)
{
/**
* PRIVATE
*/
var mThis = this;
var mWin;
var mCtlLogin;
var mBtnLogin;
var mOwnerWS = ownerWS;
/**
* PROPERTIES
*/
this.BtnLogin = function () { return mBtnLogin; };
this.Win = function () { return mWin; };
this.CtlLogin = function () { return mCtlLogin; };
this.OwnerWs = function () { return mOwnerWS; };
/**
* CONSTRUCTOR
*/
/* Vytvorime sebe. dhtmlxWindow. */
mWin = MV7.Dhtmlx ().CreateWindow ("FrmLogin" + MV7.UId (), 0, 0, 325, 125, 'Prihlaseni');
/* Prusvitnost. */
$(mWin).css ({'opacity' : '.90'});
/* Tlacitka formu. */
mWin.button('close').hide ();
mWin.button('minmax1').hide ();
mWin.button('park').hide ();
/* Umisteni. */
mWin.denyResize ();
mWin.center ();
/* Prvek Login */
mCtlLogin = new Geozone_Ctl_Login ();
mCtlLogin.Position (5, 5);
mBtnLogin = new MV7_Widget_Button ('Prihlasit');
mBtnLogin.Geometry (225, 70, 90, 30);
$(mBtnLogin.Ele ()).click (function () {
mThis.BtnLoginOnClick_ ();
});
/* Nahozeni prvku na form. */
mWin.attachObject (mCtlLogin.Ele ());
mWin.appendObject (mBtnLogin.Ele ());
};
Geozone_Frm_Login.prototype.BtnLoginOnClick_ = function ()
{
var mThis = this;
this.Win ().progressOn ();
$(this.BtnLogin ().Ele ()).attr ('disabled', 'disabled');
data = this.CtlLogin ().GetData ();
MV7.Log ().Trace ('name: ' + data.name + '; pass: ' +data.pass);
this.OwnerWs ().LoginTest (data.name, data.pass,
function (recv) {
mThis.LoginTestOnSuccess_ (recv);
},
function (obj)
{
return function (a, b) {obj.LoginTestOnError_ (a, b); };
}(this)
);
/*
function (obj)
{
return function (recv) { obj.LoginTestOnSuccess_ (recv); };
}(this),
*/
};
/**
* Volana po uspesnem zavolani WebSluzby Logintest.
* @param recv
* @return
*/
Geozone_Frm_Login.prototype.LoginTestOnSuccess_ = function (recv)
{
var res;
res = this.OwnerWs ().LoginTestResult (recv);
MV7.Log ().Trace ('ReturnCode:' + res.ReturnCode);
};
Geozone_Frm_Login.prototype.LoginTestOnError_ = function (a, b)
{
MV7.Log ().Info ('LoginTestOnError_' + a + b);
};
qooxdoo urcite vyzkousim.
Komplet strasne nebo snad jen nektere konstrukce ? 
No mne pripada, ze v JS jde pouzit styl modul (podobne C) i objekt (C++,C#).
Modul soubor js podobny souboru v C:
qx.Class.define("myNamespace.A", {
// Dědičnost.
extend: qx.core.Object,
// Konstruktor
construct: function()
{
// Něco jako v jave super(), volání konstruktoru třídy, kterou rozšiřujeme (extend)
this.base(arguments);
// Něco ...
},
members: {
// metody, v js je všecho jako virtual v C++:)
tell: function()
{
alert("myNamespace.A.tell()");
}
}
});
qx.Class.define("myNamespace.B", {
// Dědičnost.
extend: myNamespace.A,
// Konstruktor
construct: function()
{
// Něco jako v jave super(), volání konstruktoru třídy, kterou rozšiřujeme (extend)
this.base(arguments);
// Něco ...
},
members: {
// no a tady si tu metodu reimplementujeme
tell: function()
{
// zavolá metodu tell z myNamespace.A
this.base(arguments);
// další kód...
alert("myNamespace.B.tell()");
}
}
});
Viz dokumentace
Přijde mi to celkem čisté (na javascript až moc:) ). Qooxdoo umí i interfaces, mixins, properties, události, atd:)
taky mam s qooxdoo asi dvoulete zkusenosti, neni to uplne spatne, ale jak rikas neni to uplne lightweight.. jinak kdyz jsme migrovali z 0.6.x na 0.7.3 tak to byl docela porod a ted uz je 0.8, do cehoz jsme se radsi ani nepousteli - nase aplikace ma cca 40k radku ;]
Na ukazku narychlo splacnuta trida:
qx.Class.define("b.tabview.ButtonFoo",
{
extend : qx.ui.pageview.tabview.Button,
construct : function(title)
{
this.base(arguments, title);
this.setAppearance("tab-view-button-Foo");
this.addEventListener('click', this.bar, this);
},
members :
{
prop1 : 'OMG',
foo : function(blah)
{
return blah.roflmao();
},
bar : function(e)
{
alert(e.getTarget().getLabel());
}
});
API
Po precteni clanku na root zdrojak sem to upravil takhle.
function Frm_Login (element)
{
var this_ = this;
$(element).click ( function () {
this_.OnClick_();
});
};
Frm_Login.prototype.OnClick_ = function ()
{
/* Nejake operace. */
};
$(element).click ( function () {
this_.OnClick_();
});
by mělo jít ještě trochu zjednodušit, asi tak na
$(element).click ( this_.OnClick_ );To vyplývá z toho, jak v jQuery funguje
click: jako parametr dostane funkci, kterou zavolá při kliknutí na element. V původní variantě vytváříte anonymní funkci, která teprve zavolá tu, co chcete. Ale protože nic jiného se v ní nedělá, můžete funkci click předat rovnou tu funkci, kterou potřebujete zavolat.
$(element).click ( this_.OnClick_ );
this trochu šaškuje, jak já v tom pravidelně nepracuju a znám to jenom povrchně, tak jsem na to zapomněl. Ale na principu to nic nemění.
Tiskni
Sdílej: