Jack Dorsey představil (𝕏) open source týmovou komunikační platformu Buzz (GitHub) s cílem snížit závislost na Slacku a GitHubu.
Poštovní klient Thunderbird byl vydán v nové verzi 153 s kódovým názvem Meadow. Jedná se o ESR (Extended Support Release) vydání. Přehled novinek v poznámkách k vydání. Vylepšuje OAuth. Thundermail lze používat bez instalace doplňku.
AI tento rok naplno vtrhla do vývoje softwaru a výrazně ovlivňuje také open source projekty. Jiří Eischmann v příspěvku Jak mění AI open source na svém blogu rozebírá několik trendů, které v open source v poslední době v souvislosti s AI pozoruje, a jak tyto trendy svět otevřeného softwaru mění (Inflace projektů, Zahlcení kontroly, Klesající motivace zveřejňovat kód).
Evropská komise (EK) vyměřila americké internetové společnosti Google pokutu 890 milionů eur (21,5 miliardy Kč) za porušení unijního nařízení o digitálních trzích (DMA). Firma se podle unijní exekutivy provinila tím, že ve vyhledávači Google Search upřednostňovala vlastní služby a že podnikům ukládala omezení, která jim bránila nasměrovat spotřebitele k alternativním, často levnějším nákupním kanálům na platformě Google Play.
… více »Samsung na akci Galaxy Unpacked July 2026 (YouTube) představil své nové telefony Galaxy Z Fold8 Ultra, Fold8 a Flip8, hodinky Galaxy Watch Ultra2 a Watch9 a chytré brýle ve spolupráci s Gentle Monster a Warby Parker.
Po pěti letech vývoje vyšla česká počítačová hra Scarlet Deer Inn (ProtonDB). Scarlet Deer Inn je vyšívaná temná středověká pohádka. Zatímco život ve zdánlivě obyčejné vesnici se točí kolem běžných povinností a sousedských drbů, v podzemí se skrývají zlověstná tajemství.
Představen byl Raspberry Pi Touch Display 2 s uhlopříčkou 10 palců a rozlišením 1200 × 1920 pixelů. Cena je 80 dolarů.
RPCS3 (Wikipedie), tj. open source emulátor Sony PlayStation 3, snížil minimální požadavky. Nově jsou podporovány starší grafické karty ATI Radeon řady HD 2000, 3000 a 4000 z let 2007 až 2009. Na PC běží už 75 % všech her pro PlayStation 3. V budoucnu bude RPCS3 fungovat bez firmwaru z PS3. V RPCS3 byl implementován systémový modul cellSysmodule (𝕏).
Vyšel open-source nástroj winetop (MIT) — nativní CLI/TUI pro sledování a ukončování Wine, Proton, Lutris, Heroic a Bottles sezení. Seskupuje procesy podle WINEPREFIX / Steam AppId, umí bezpečně zabít jen hru (včetně Steam reaperu) a nabízí i skriptovatelné příkazy (list, kill, orphans, …). Balíčky jsou mimo jiné na crates.io, Copru (dnf copr enable kovariadam/winetop), PPA ppa:kovariadam/winetop a AUR (winetop-bin).
Ve spolupráci společností OpenAI a Work Louder byla představena (𝕏) hardwarová klávesnice Codex Micro pro práci s AI agenty. Cena klávesnice je 230 dolarů.
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: