Americká technologická společnost Meta Platforms se dohodla, že zaplatí až zhruba 18 miliard dolarů (asi 373 miliard Kč) za mimosoudní urovnání sporu o závislosti dětí na sociálních sítích a provede významné změny pro jejich používání mladistvými. Téměř tři desítky států USA firmu v roce 2023 obvinily z toho, že sítě Facebook a Instagram vědomě navrhla tak, aby u dětí vyvolávaly závislost, a zatajovala tyto dopady před veřejností. Firma se
… více »Byl publikován aktuální přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Blíží se vydání podporující čipy M3. Vývojáře lze podpořit na GitHub Sponsors a Open Collective.
Kancelářský balík LibreOffice byl vydán ve verzi 26.8. Mimo jiné vylepšuje typografii a kompatibilitu s formáty MS Office, více v poznámkách k vydání.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.8. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 23.1.0, tj. první stabilní verze z nové řady 23.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.
Google Chrome 152 byl prohlášen za stabilní. Nejnovější stabilní verze 152.0.7977.64 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 327 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Před 35 lety, 25. srpna 1991, oznámil Linus Benedict Torvalds v diskusní skupině comp.os.minix, že vyvíjí (svobodný) operační systém (jako koníček, nebude tak velký a profesionální jako GNU) pro klony 386 (486), že začal v dubnu a během několika měsíců by mohl mít něco použitelného.
Apple představil čipy M6 a M5 Ultra, Mac mini s M6 nebo M5 Pro a Mac Studio s M5 Max nebo M5 Ultra. Fedora Asahi Remix zatím podporuje jenom M1 a M2.
Firefox 157 přinese zapnutou podporu rastrového grafického formátu JPEG XL. Založena je na v Rustu napsané implementaci jxl-rs používané i v Chrome a Chromiu.
Vanilla OS 3 „Reunion“ byl vydán. Tato na Debianu „Sid“ založená desktopová distribuce s transakčními aktualizacemi „neměnného“ základního systému (ABRoot) nově podporuje architekturu arm64 (vedle x86-64), podporuje reprodukovatelné sestavení většiny balíčků a vylepšuje systémové nástroje. Vlastní meta-správce balíčků APX nyní používá Distrobox v2 a je dostupný i pro jiné distribuce.
Dlouho jsem tu nic nenapsal, to ale neznamená, že abíčko nesleduji. Chybí mi tu ale víc programátorských blogů, tak to zkusím sám napravit.
V JavaScriptu postrádám Python-style volání super při použití dědičnosti. Proto jsem si napsal vlastní řešení. Až potom jsem našel, že existují podobné implementace.
JavaScript nemá syntaktickou podporu pro vytváření tříd. Proto si nejprve implementujeme jednoduchý class-builder. Prefix $ jsem zvolil pro zdůraznění systémovosti.
var $class = function(fn, fn2) {1
if(fn === undefined) {
return function () {};
} else if(fn2 === undefined) {
fn2 = function () {
fn.apply(this, arguments);
};
}
for(var i in fn.prototype) {
fn2.prototype[i] = fn.prototype[i];
}
return fn2;
};
Helper funkce $class nám umožní vytvářet třídy 3 způsoby.
1) První způsob volání $class se neliší od prostého var Animal = function() {};
var Animal = $class();
Animal.prototype.sayHello = function() {
alert("I'm animal");
};
var myAnimal = new Animal();
myAnimal.sayHello();
2) Druhý způsob volání $class umožňuje vytvořit třídu s konstruktorem:
var Animal = $class(function () {
alert('Initializing animal...');
});
3) Konečně poslední způsob volání $class je vytváření tříd děděním.
var Dog = $class(Animal, function() {
alert('Initializing dog...');
});
Dog.prototype.sayHello = function() {
alert("Hi, I'm dog");
};
var myDog = new Dog();
Problém nastane, pokud potřebujeme volat z jakéhokoliv místa konstruktoru Dog i konstruktor Animal. To samé pro metodu sayHello. V Pythonu prostě na správném místě voláme super a je to.
super(Dog, self).__init__() super(Dog, self).sayHello()
V JavaScriptu si super naimplementujeme takto:
var $super = function(fn, $this) {
return function() {
return fn.apply($this, arguments);
};
};
Použitím helper funkce $super získáme přístup k metodám předka. Funkce $super samozřejmě umožňuje předávat i argumenty.
var Dog = $class(Animal, function() {
alert('Initializing dog...');
$super(Animal, this)();
alert('Dog initialized');
});
Dog.prototype.sayHello = function() {
alert("Hi, I'm dog");
$super(Animal.prototype.sayHello, this)();
alert("Goodbye, dog!");
};
To je vše, pokud budou následovat další blogy, budou především o Pythonu, který je můj chlebodárce 
Tiskni
Sdílej:
super() a __init__ a nepoužít raději pyjamas? Z myšlenky psát webovou aplikaci v jednom jazyce, který umím (tím odpadá server side Javascript), jsem docela nadšený.
O server side JS v mem blogu nepadlo ani slovo, jak jsi na to prisel? Popravde-nikdy by me nenapadlo na server cpat JS.Protože psát aplikaci v X jazycích je prostě opruz
Mimochodem, docela hezký Hello world je ve web2py book: JSONRPC a Pyjamas
super
$super(Animal.prototype.sayHello, this)(); použiješ ve funkci sayHello toto:this._super();.
"Třída" vznikne takto:
var Animal = Class.extend({
// members
});
Odvozená třída vzniká takto:
var Dog = Animal.extend({
// members
});
Čistě osobní pocity