Společnost Backblaze zveřejnila statistiky spolehlivosti pevných disků používaných ve svých datových centrech za rok 2025. Ke konci roku 2025 vlastnila 349 462 pevných disků. Průměrná AFR (Annualized Failure Rate), tj. pravděpodobnost, že disk během roku selže, byla 1,36 %. V roce 2024 to bylo 1,57 %. V roce 2023 to bylo 1,70 %. V roce 2022 to bylo 1,37 %.
Nástroj sql-tap je proxy mezi aplikací a databází, které zachytává všechny SQL dotazy a zobrazuje je v terminálovém rozhraní. Zde lze téměř v reálném čase zkoumat dotazy, sledovat transakce a spouštět SQL příkaz EXPLAIN. Podporované databázové systémy jsou pouze PostgreSQL a MySQL. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.
Byla vydána nová verze 9.2 textového editoru Vim (Vi IMproved). Přináší vylepšené doplňování, podporu schránky ve Waylandu, podporu XDG Base Directory (konfigurace v $HOME/.config/vim), vylepšené Vim9 skriptování nebo lepší zvýrazňování změn. Vim zůstává charityware. Nadále vybízí k podpoře dětí v Ugandě. Z důvodu úmrtí autora Vimu Brama Moolenaara a ukončení činnosti jím založené charitativní organizace ICCF Holland projekt Vim navázal spolupráci s charitativní organizaci Kuwasha.
Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.
Byla vydána nová verze 3.7.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.
Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).
Eric Migicovsky představil Pebble Emulator, tj. emulátor hodinek Pebble (PebbleOS) běžící ve webovém prohlížeči. Za 6 hodin jej napsal Claude Code. Zdrojové kódy jsou k dispozici na GitHubu.
Byla vydána nová verze 3.41 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.11 souvisejícího programovacího jazyka Dart (Wikipedie).
Rusko zcela zablokovalo komunikační platformu WhatsApp, řekl včera mluvčí Kremlu Dmitrij Peskov. Aplikace, jejímž vlastníkem je americká společnost Meta Platforms a která má v Rusku na 100 milionů uživatelů, podle Peskova nedodržovala ruské zákony. Mluvčí zároveň lidem v Rusku doporučil, aby začali používat domácí aplikaci MAX. Kritici tvrdí, že tato aplikace ruské vládě umožňuje lidi sledovat, což úřady popírají.
Před 34 lety, ve čtvrtek 13. února 1992, se tehdejší Česká a Slovenská Federativní Republika oficiálně (a slavnostně) připojila k Internetu.
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: