Český LibreOffice tým vydává aktualizaci překladu příručky LibreOffice Draw 25.8. Tato kniha se zabývá hlavními funkcemi programu Draw, vektorové grafické komponenty systému LibreOffice. Pomocí Draw lze vytvářet širokou škálu grafických obrázků. Příručka je ke stažení na stránce dokumentace a tým hledá dobrovolníky pro další překlady.
Anthony Enzor-DeMeo je novým CEO Mozilla Corporation. Mozillu převzal po dočasné CEO Lauře Chambers. Vybudovat chce nejdůvěryhodnější softwarovou společnost na světě. Firefox by se měl vyvinout v moderní AI prohlížeč.
Byla vydána nová verze 9.20 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček RustDesk Server pro vzdálený přístup.
Jonathan Thomas oznámil vydání nové verze 3.4.0 video editoru OpenShot (Wikipedie). Představení novinek také na YouTube. Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.
Byla vydána nová verze 1.6 otevřeného, licenčními poplatky nezatíženého, univerzálního ztrátového formátu komprese zvuku Opus (Wikipedie) a jeho referenční implementace libopus. Podrobnosti na demo stránce.
Vojtěch Polášek představil Vojtux, tj. linuxovou distribuci pro zrakově postižené uživatele. Vychází ze spinu Fedory 43 s desktopovým prostředím MATE. Konečným cílem je, aby žádný Vojtux nebyl potřeba a požadovaná vylepšení se dostala do upstreamu.
Byla vydána (Mastodon, 𝕏) druhá RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 160 (pdf).
Izrael od února zakáže dětem používat v prostorách základních škol mobilní telefony. Podle agentury AFP to uvedlo izraelské ministerstvo školství, které zdůraznilo negativní dopady, které na žactvo používání telefonů má. Izrael se tímto krokem přidává k rostoucímu počtu zemí, které dětem ve vzdělávacích zařízeních přístup k telefonům omezují.
Internetová společnost Google ze skupiny Alphabet pravděpodobně dostane příští rok pokutu od Evropské komise za nedostatečné dodržování pravidel proti upřednostňování vlastních služeb a produktů ve výsledcích vyhledávání. V březnu EK obvinila Google, že ve výsledcích vyhledávání upřednostňuje na úkor konkurence vlastní služby, například Google Shopping, Google Hotels a Google Flights. Případ staví Google proti specializovaným
… více »Google světu ukázal jazyk Dart, jehož účelem je nahradit JavaScript ve webových aplikacích. Veškeré informace a ukázky najdete na dartlang.org. Jazyk se dost podobá Javě, ale zachovává některé rysy JavaScriptu.
Tiskni
Sdílej:
Rozšiřitelnost není znásilňování.knihovna od zakladu prekopavajici cely jazyk za ucelem, aby se dal ten jazyk pouzivat k tomu, k cemu byl vubec navrzeny mi prijde opravdu trochu jako zvracenost a znasilneni
Jo, a největší prča na tom je, že ta knihovna nemění vůbec nic.to jo. mimochodem, osobne radsi preferuju dojo, prijde mi takove nejake civilizovanejsi.
Čekal bych, že zrovna ty budeš mít trochu pochopení, v JavaScriptu je pod pár vrstvami špíny a hnusu ukryté Scheme, které by mohly pochopit i masyano, jedna cast meho ja ocenuje, ze tam je opravdu schovany scheme, a ze JS zpristupnuje funkcionalni zpusob programovani i sirokym masam. ale ta druha cast meho ja, ktera v tom obcas musi neco programovat by autory specifikace i s implementatory vymachala v dehtu a peri a hnala je pres cele silicon valley.
Hello world v haxe zkompilovaný do JavaScriptu:
haxe
import js.Lib;
class Main
{
static function main()
{
Lib.alert("ahoj světe");
}
}
javascript
$estr = function() { return js.Boot.__string_rec(this,''); }
Std = function() { }
Std.__name__ = ["Std"];
Std["is"] = function(v,t) {
$s.push("Std::is");
var $spos = $s.length;
var $tmp = js.Boot.__instanceof(v,t);
$s.pop();
return $tmp;
$s.pop();
}
Std.string = function(s) {
$s.push("Std::string");
var $spos = $s.length;
var $tmp = js.Boot.__string_rec(s,"");
$s.pop();
return $tmp;
$s.pop();
}
Std["int"] = function(x) {
$s.push("Std::int");
var $spos = $s.length;
if(x < 0) {
var $tmp = Math.ceil(x);
$s.pop();
return $tmp;
}
var $tmp = Math.floor(x);
$s.pop();
return $tmp;
$s.pop();
}
Std.parseInt = function(x) {
$s.push("Std::parseInt");
var $spos = $s.length;
var v = parseInt(x,10);
if(v == 0 && x.charCodeAt(1) == 120) v = parseInt(x);
if(isNaN(v)) {
$s.pop();
return null;
}
var $tmp = v;
$s.pop();
return $tmp;
$s.pop();
}
Std.parseFloat = function(x) {
$s.push("Std::parseFloat");
var $spos = $s.length;
var $tmp = parseFloat(x);
$s.pop();
return $tmp;
$s.pop();
}
Std.random = function(x) {
$s.push("Std::random");
var $spos = $s.length;
var $tmp = Math.floor(Math.random() * x);
$s.pop();
return $tmp;
$s.pop();
}
Std.prototype.__class__ = Std;
IntIter = function(min,max) {
if( min === $_ ) return;
$s.push("IntIter::new");
var $spos = $s.length;
this.min = min;
this.max = max;
$s.pop();
}
IntIter.__name__ = ["IntIter"];
IntIter.prototype.min = null;
IntIter.prototype.max = null;
IntIter.prototype.hasNext = function() {
$s.push("IntIter::hasNext");
var $spos = $s.length;
var $tmp = this.min < this.max;
$s.pop();
return $tmp;
$s.pop();
}
IntIter.prototype.next = function() {
$s.push("IntIter::next");
var $spos = $s.length;
var $tmp = this.min++;
$s.pop();
return $tmp;
$s.pop();
}
IntIter.prototype.__class__ = IntIter;
Main = function() { }
Main.__name__ = ["Main"];
Main.main = function() {
$s.push("Main::main");
var $spos = $s.length;
js.Lib.alert("ahoj světe");
$s.pop();
}
Main.prototype.__class__ = Main;
if(typeof js=='undefined') js = {}
js.Lib = function() { }
js.Lib.__name__ = ["js","Lib"];
js.Lib.isIE = null;
js.Lib.isOpera = null;
js.Lib.document = null;
js.Lib.window = null;
js.Lib.alert = function(v) {
$s.push("js.Lib::alert");
var $spos = $s.length;
alert(js.Boot.__string_rec(v,""));
$s.pop();
}
js.Lib.eval = function(code) {
$s.push("js.Lib::eval");
var $spos = $s.length;
var $tmp = eval(code);
$s.pop();
return $tmp;
$s.pop();
}
js.Lib.setErrorHandler = function(f) {
$s.push("js.Lib::setErrorHandler");
var $spos = $s.length;
js.Lib.onerror = f;
$s.pop();
}
js.Lib.prototype.__class__ = js.Lib;
js.Boot = function() { }
js.Boot.__name__ = ["js","Boot"];
js.Boot.__unhtml = function(s) {
$s.push("js.Boot::__unhtml");
var $spos = $s.length;
var $tmp = s.split("&").join("&").split("<").join("<").split(">").join(">");
$s.pop();
return $tmp;
$s.pop();
}
js.Boot.__trace = function(v,i) {
$s.push("js.Boot::__trace");
var $spos = $s.length;
var msg = i != null?i.fileName + ":" + i.lineNumber + ": ":"";
msg += js.Boot.__unhtml(js.Boot.__string_rec(v,"")) + "<br/>";
var d = document.getElementById("haxe:trace");
if(d == null) alert("No haxe:trace element defined\n" + msg); else d.innerHTML += msg;
$s.pop();
}
js.Boot.__clear_trace = function() {
$s.push("js.Boot::__clear_trace");
var $spos = $s.length;
var d = document.getElementById("haxe:trace");
if(d != null) d.innerHTML = "";
$s.pop();
}
js.Boot.__closure = function(o,f) {
$s.push("js.Boot::__closure");
var $spos = $s.length;
var m = o[f];
if(m == null) {
$s.pop();
return null;
}
var f1 = function() {
$s.push("js.Boot::__closure@67");
var $spos = $s.length;
var $tmp = m.apply(o,arguments);
$s.pop();
return $tmp;
$s.pop();
};
f1.scope = o;
f1.method = m;
$s.pop();
return f1;
$s.pop();
}
js.Boot.__string_rec = function(o,s) {
$s.push("js.Boot::__string_rec");
var $spos = $s.length;
if(o == null) {
$s.pop();
return "null";
}
if(s.length >= 5) {
$s.pop();
return "<...>";
}
var t = typeof(o);
if(t == "function" && (o.__name__ != null || o.__ename__ != null)) t = "object";
switch(t) {
case "object":
if(o instanceof Array) {
if(o.__enum__ != null) {
if(o.length == 2) {
var $tmp = o[0];
$s.pop();
return $tmp;
}
var str = o[0] + "(";
s += "\t";
var _g1 = 2, _g = o.length;
while(_g1 < _g) {
var i = _g1++;
if(i != 2) str += "," + js.Boot.__string_rec(o[i],s); else str += js.Boot.__string_rec(o[i],s);
}
var $tmp = str + ")";
$s.pop();
return $tmp;
}
var l = o.length;
var i;
var str = "[";
s += "\t";
var _g = 0;
while(_g < l) {
var i1 = _g++;
str += (i1 > 0?",":"") + js.Boot.__string_rec(o[i1],s);
}
str += "]";
$s.pop();
return str;
}
var tostr;
try {
tostr = o.toString;
} catch( e ) {
$e = [];
while($s.length >= $spos) $e.unshift($s.pop());
$s.push($e[0]);
$s.pop();
return "???";
}
if(tostr != null && tostr != Object.toString) {
var s2 = o.toString();
if(s2 != "[object Object]") {
$s.pop();
return s2;
}
}
var k = null;
var str = "{\n";
s += "\t";
var hasp = o.hasOwnProperty != null;
for( var k in o ) { ;
if(hasp && !o.hasOwnProperty(k)) {
continue;
}
if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__") {
continue;
}
if(str.length != 2) str += ", \n";
str += s + k + " : " + js.Boot.__string_rec(o[k],s);
}
s = s.substring(1);
str += "\n" + s + "}";
$s.pop();
return str;
case "function":
$s.pop();
return "<function>";
case "string":
$s.pop();
return o;
default:
var $tmp = String(o);
$s.pop();
return $tmp;
}
$s.pop();
}
js.Boot.__interfLoop = function(cc,cl) {
$s.push("js.Boot::__interfLoop");
var $spos = $s.length;
if(cc == null) {
$s.pop();
return false;
}
if(cc == cl) {
$s.pop();
return true;
}
var intf = cc.__interfaces__;
if(intf != null) {
var _g1 = 0, _g = intf.length;
while(_g1 < _g) {
var i = _g1++;
var i1 = intf[i];
if(i1 == cl || js.Boot.__interfLoop(i1,cl)) {
$s.pop();
return true;
}
}
}
var $tmp = js.Boot.__interfLoop(cc.__super__,cl);
$s.pop();
return $tmp;
$s.pop();
}
js.Boot.__instanceof = function(o,cl) {
$s.push("js.Boot::__instanceof");
var $spos = $s.length;
try {
if(o instanceof cl) {
if(cl == Array) {
var $tmp = o.__enum__ == null;
$s.pop();
return $tmp;
}
$s.pop();
return true;
}
if(js.Boot.__interfLoop(o.__class__,cl)) {
$s.pop();
return true;
}
} catch( e ) {
$e = [];
while($s.length >= $spos) $e.unshift($s.pop());
$s.push($e[0]);
if(cl == null) {
$s.pop();
return false;
}
}
switch(cl) {
case Int:
var $tmp = Math.ceil(o%2147483648.0) === o;
$s.pop();
return $tmp;
case Float:
var $tmp = typeof(o) == "number";
$s.pop();
return $tmp;
case Bool:
var $tmp = o === true || o === false;
$s.pop();
return $tmp;
case String:
var $tmp = typeof(o) == "string";
$s.pop();
return $tmp;
case Dynamic:
$s.pop();
return true;
default:
if(o == null) {
$s.pop();
return false;
}
var $tmp = o.__enum__ == cl || cl == Class && o.__name__ != null || cl == Enum && o.__ename__ != null;
$s.pop();
return $tmp;
}
$s.pop();
}
js.Boot.__init = function() {
$s.push("js.Boot::__init");
var $spos = $s.length;
js.Lib.isIE = typeof document!='undefined' && document.all != null && typeof window!='undefined' && window.opera == null;
js.Lib.isOpera = typeof window!='undefined' && window.opera != null;
Array.prototype.copy = Array.prototype.slice;
Array.prototype.insert = function(i,x) {
$s.push("js.Boot::__init@205");
var $spos = $s.length;
this.splice(i,0,x);
$s.pop();
};
Array.prototype.remove = Array.prototype.indexOf?function(obj) {
$s.push("js.Boot::__init@208");
var $spos = $s.length;
var idx = this.indexOf(obj);
if(idx == -1) {
$s.pop();
return false;
}
this.splice(idx,1);
$s.pop();
return true;
$s.pop();
}:function(obj) {
$s.push("js.Boot::__init@213");
var $spos = $s.length;
var i = 0;
var l = this.length;
while(i < l) {
if(this[i] == obj) {
this.splice(i,1);
$s.pop();
return true;
}
i++;
}
$s.pop();
return false;
$s.pop();
};
Array.prototype.iterator = function() {
$s.push("js.Boot::__init@225");
var $spos = $s.length;
var $tmp = { cur : 0, arr : this, hasNext : function() {
$s.push("js.Boot::__init@225@229");
var $spos = $s.length;
var $tmp = this.cur < this.arr.length;
$s.pop();
return $tmp;
$s.pop();
}, next : function() {
$s.push("js.Boot::__init@225@232");
var $spos = $s.length;
var $tmp = this.arr[this.cur++];
$s.pop();
return $tmp;
$s.pop();
}};
$s.pop();
return $tmp;
$s.pop();
};
if(String.prototype.cca == null) String.prototype.cca = String.prototype.charCodeAt;
String.prototype.charCodeAt = function(i) {
$s.push("js.Boot::__init@239");
var $spos = $s.length;
var x = this.cca(i);
if(x != x) {
$s.pop();
return null;
}
$s.pop();
return x;
$s.pop();
};
var oldsub = String.prototype.substr;
String.prototype.substr = function(pos,len) {
$s.push("js.Boot::__init@246");
var $spos = $s.length;
if(pos != null && pos != 0 && len != null && len < 0) {
$s.pop();
return "";
}
if(len == null) len = this.length;
if(pos < 0) {
pos = this.length + pos;
if(pos < 0) pos = 0;
} else if(len < 0) len = this.length + len - pos;
var $tmp = oldsub.apply(this,[pos,len]);
$s.pop();
return $tmp;
$s.pop();
};
$closure = js.Boot.__closure;
$s.pop();
}
js.Boot.prototype.__class__ = js.Boot;
$_ = {}
js.Boot.__res = {}
$s = [];
$e = [];
js.Boot.__init();
{
String.prototype.__class__ = String;
String.__name__ = ["String"];
Array.prototype.__class__ = Array;
Array.__name__ = ["Array"];
Int = { __name__ : ["Int"]};
Dynamic = { __name__ : ["Dynamic"]};
Float = Number;
Float.__name__ = ["Float"];
Bool = { __ename__ : ["Bool"]};
Class = { __name__ : ["Class"]};
Enum = { };
Void = { __ename__ : ["Void"]};
}
{
Math.__name__ = ["Math"];
Math.NaN = Number["NaN"];
Math.NEGATIVE_INFINITY = Number["NEGATIVE_INFINITY"];
Math.POSITIVE_INFINITY = Number["POSITIVE_INFINITY"];
Math.isFinite = function(i) {
$s.push("js.Boot::__init");
var $spos = $s.length;
var $tmp = isFinite(i);
$s.pop();
return $tmp;
$s.pop();
};
Math.isNaN = function(i) {
$s.push("js.Boot::__init");
var $spos = $s.length;
var $tmp = isNaN(i);
$s.pop();
return $tmp;
$s.pop();
};
}
{
js.Lib.document = document;
js.Lib.window = window;
onerror = function(msg,url,line) {
var stack = $s.copy();
var f = js.Lib.onerror;
$s.splice(0,$s.length);
if( f == null ) {
var i = stack.length;
var s = "";
while( --i >= 0 )
s += "Called from "+stack[i]+"\n";
alert(msg+"\n\n"+s);
return false;
}
return f(msg,stack);
}
}
js.Lib.onerror = null;
Main.main()