Firma X zaslala předžalobní výzvu vývojáři projektu Nitter (Wikipedia), open-source alternativního frontendu k sociální síti X (ex-Twitter), a provozovatelům instancí jako XCancel, které umožňovaly číst příspěvky bez přihlášení, reklam a javascriptu. Údajně se dopouštějí „sběru dat“. Zdrojový kód Nitteru vývojář archivoval. Vývoj již dříve přerušil v roce 2024 po tehdejším omezení API X. X je dceřiná společnost SpaceXAI Elona Muska, provozující mj. kontroverzního chatbota Grok.
Bylo vydáno Ubuntu 26.04.1 LTS, tj. první opravné vydání Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek a oprav na Discourse.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2025 (pdf). Incidentů ubylo, sofistikovanost útočníků roste.
Open source softwarový stack AMD ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán v nové major verzi 10.0. S ROCm.AI. Přehled novinek v aktualizované dokumentaci.
Finanční skupina Partners se stala minulou neděli obětí kybernetického útoku, při kterém se útočníci dostali k některým osobním údajům klientů. Společnost o tom informovala ve čtvrtek. Ujišťuje, že peníze klientů nejsou v ohrožení. „Kybernetický útok zasáhl část IT infrastruktury naší společnosti. Ihned po zjištění útoku jsme s pomocí externích bezpečnostních odborníků začali intenzivně pracovat na minimalizaci škod. Útočníci se
… více »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.
mě zaujal takovej ten blogísek vo youtube hele jak se tam používalo tamto tampermonkey na pouštění javascriptu na upravování stránky nóó a napadlo mě že by se takle tady dala udělat víc přehlednější diskuze podle kapici hele :O :O jestli toje jako dobrej nápad ale jako nevim :O :O
akorát sem teda jako nepoužila na pouštění userskriptů tamto tampermonkey ale nějakou jakože prej fakt opensource alternativu která se menuje violentmonkey hele :O ;D
zdrojáček pod vobrázkama :D ;D určitě to asi jako eště neni hotový noa připomínky sou vítaný :D ;D
// ==UserScript==
//
// @name zkrášlení diskuzí abclinuxu
// @namespace skript na abclinuxu
// @description skript co dělá že je hežčí diskuze
// @version 1.0
// @author gréta
//
// stránky na kterejch se bude skript pouštět
// @match https://www.abclinuxu.cz/poradna/*/show/*
// @match https://www.abclinuxu.cz/blog/*/*/*/*
// @match https://www.abclinuxu.cz/blog/*/*/*/*/*
// @match https://www.abclinuxu.cz/zpravicky/*
//
// skript se pouští až po načtení stránky
// @run-at document-end
//
// nechceme aby skript běhal i někde ve vnořenejch framech
// @noframes
//
// ==/UserScript==
// něco jako počítadlo hashů z textovýho stringu
// budem potřebovat nějak udělat různý číslo pro různý řetězce
// vychází to z hashovacího algorytmu djb2 http://www.cse.yorku.ca/~oz/hash.html
function sumaZnaku(retezec){
var hash = 5381, len = retezec.length;
for (var i = 0; i < len; i++) {
//projdem celej řetězec a každej znak převedem na číslo a jakoby ho nějak strčíme dotoho hashe
//javascript umí bitový operace
//tamto << 5 je posun o pět bitů doleva
// maximální hodnota co vrátí charCodeAt je 65535
hash = ((hash << 5) - hash) + retezec.charCodeAt(i);
//logický bitový or/nebo na nuličce s hashem
hash |= 0;
}
//číslo chceme kladný
return Math.abs(hash);
}
// funkcí querySelectorAll de javascriptem vybrat z dokumentu css selectorem elementy
// vezmeme z dokumentu všecky prvky kterejm atribut id začíná řetězcem 'comment' a je před nima div element s atributem class vobsahujícím substring 'ds_hlavicka'
// no prostě vyberem všecky komentáře :D ;D
var comments=document.querySelectorAll('div[class*="ds_hlavicka"] ~ [id^=comment]');
// seznam všech možnejch css selectorů třeba tady jako https://www.w3schools.com/cssref/css_selectors.asp
// todleto bude slovník kam si budem vždycky skovávat autora a id komentáře by nám stačilo proiterovat komenty jenom jednou až budem přidávat upravenej link na nadřazenej komentář
var autoriKomentaru_dict={};
// pro každej komentář zavoláme funkci
comments.forEach(function(cmnt)
{
// předchozí element na stejný úrovni je hlavička komentáře co vobsahuje méno autora čas link a takový tydlety
var hlavicka = cmnt.previousElementSibling;
// komplet všecken textovej vobsah hlavičky komentu
// .innerText vytahuje text i z dětí elementů :O :O
var text = hlavicka.innerText;
// regexpem vytáhnem méno autora
// je to takovej šílenej regexp protože musíme podchytit i komenty vod anonimních lidiček jako sou radovani a podtržítka a taky musíme správně vytáhnout méno z komentu v poradně voznačenýho jako řešení
var meno=/(?:\d\d:\d\d\s)(.+?)(?:\||$)/gm.exec(text)[1];
//skováme si méno autora do slovníku s klíčem id komentu
autoriKomentaru_dict[hlavicka.id]=meno;
// kouknem jestli se koment odkazuje na nějakej nadřazenej
// jakože je reakcí v diskuzi na nějakej jinej nóó a jestli jako jo
// tak do html textu vodpovědi přidáme vodkaz na ten nadřazenej koment
//vyberem všecky linky z ovládacího panýlku v hlavičce komentu
var links=hlavicka.querySelector('div[id*="_controls"]').getElementsByTagName('a');
// pokud sou dva linky jeto dotaz v poradně
// první komenty v diskuzi maj v ovládacím panýlku linků 5
// pokud maj nějakej nadřazenej komentář tak maj linků o jeden víc
// vodpovědi v poradně maj taky o link víc na voznačování řešení
// jestli to maj admini jinak ale nevim :O :O
if(links.length > 2)
{
for (var i = 2; i < 5; i++)
{
if(links[i].innerText === 'Výše')
{
var href=links[i].href;
//vyberem ze slovníku méno autora podle id vytaženýho z href linku
var autor=autoriKomentaru_dict[href.split('#')[1]];
//strčíme do vodpovědi link na nadřazenej koment
var txtElement=cmnt.querySelector('.ds_text');
txtElement.innerHTML='<a class="link_na_koment" href="'+href+'">@'+autor+'</a>'+txtElement.innerHTML;
break;
}
}
}
//pokud bude komentář novej tak ho natřem nažluto podobně jak to už jako bylo nóó a když je jako starej tak
// ho natřem barvou podle ména jeho autora
//pokud neni novej
if(hlavicka.className !=='ds_hlavicka_novy')
{
//vypočítáme si hash ména autora
var suma = sumaZnaku(meno);
// a získáme z ní barvy který použijem na vobarvení kometáře
// to modulo %64 nám z hashe získá hodnotu v rosahu 0-63
var r=Math.floor(suma % 64)+128;
var g=Math.floor(suma*8 % 64)+128;
var b=Math.floor(suma*16 % 64)+128;
//pokud nejsme spokojený se získanejma barvama tak mužete něco jakoby před výpočtem ktý sumě přičíst nebo změnit násobicí čísla ve výpočtu rgb nebo tak něco
// použijem tři vodstíny tý barvy
// tmavej světlej a tak nějak mezi
var tmavaBarva='rgb('+r.toString()+','+g.toString()+','+b.toString()+')';
r+=32;g+=32;b+=32;
var pulBarva='rgb('+r.toString()+','+g.toString()+','+b.toString()+')';
r+=32;g+=32;b+=32;
var svetlaBarva='rgb('+r.toString()+','+g.toString()+','+b.toString()+')';
//uděláme kolem komentáře vokraj a nastavíme mu tmavou barvu
cmnt.style.border='2px solid '+tmavaBarva;
//napozadí komentu dáme uplně supr linerární gradient :O :O :D ;D
cmnt.style.backgroundImage='linear-gradient('+svetlaBarva+', '+pulBarva+')';
//stejnej styl vokraje
hlavicka.style.borderStyle='solid';
//taky mu uděláme vokraj ale ne směrem dolu protože tam už máme vokraj komentu ;D
hlavicka.style.borderWidth='2px 2px 0 2px';
//nastavíme barvičky pozadí a okraje hlavičky
hlavicka.style.backgroundColor=svetlaBarva;
hlavicka.style.borderColor=tmavaBarva;
}
else
{
//pokud je koment novej
var pulBarva='rgb(239,239,144)';
var svetlaBarva='rgb(255,255,160)';
//uděláme tlusčí vokraj než maj vobyč komenty a uděláme ho jiným stylem
hlavicka.style.borderStyle='groove groove solid groove';
hlavicka.style.borderWidth='4px 4px 2px 4px';
hlavicka.style.borderColor='rgb(200,200,0)';
hlavicka.style.backgroundColor=svetlaBarva;
cmnt.style.borderStyle='groove';
cmnt.style.borderColor='rgb(200,200,0)';
cmnt.style.borderWidth='0px 4px 4px 4px';
cmnt.style.backgroundImage='linear-gradient('+svetlaBarva+', '+pulBarva+')';
}
});
//vyrobení novýho css elementu stylesheetu kam přidáme další extra pravidla navíc :O ;D
var style = document.createElement('style');
style.appendChild(document.createTextNode(""));
document.head.appendChild(style);
var sheet = style.sheet;
//blok textu v komentáři bude mit vobyč bílý pozadí
sheet.insertRule('div.ds_text{background-color: white;}');
//vypnutí podtržení u vodkazu na nadřazenej koment
sheet.insertRule('.link_na_koment{text-decoration: none;}');
//pro všecky div elementy kterejm atribut id končí na '_controls'
sheet.insertRule('div[id$="_controls"]{padding:0px;border:none;background-image:none;background-color:none;}');
//pro všecky prvky kterejm atribut id začíná řetězcem 'comment' a je před nima div element s atributem class vobsahujícím substring 'ds_hlavicka'
sheet.insertRule('div[class*="ds_hlavicka"] ~ [id^=comment]{padding: 0.5%}');
// css pravidla pro malou a velkou šířku vobrazovky
// na malilinkatejch vobrazovečkách vo šířce max 768 pixelů se třeba vypnou takový ty boční panely bude menčí padding prvků a tak
sheet.insertRule('@media only screen and (min-width: 769px){.ds_odsazeni{margin-left: 0;padding: 0.5% 0% 0.5% 2%;}}');
sheet.insertRule('@media only screen and (max-width: 768px) {#ls, .obal_ps {display:none;width:0%;} #st{margin-left: 0;padding: 0%;border-left:none;} .img_ad{width:100%;} .no-col-ad, #menu-wrap{display:none;} .ds_odsazeni{margin-left: 0;padding: 0.125%;}}');
Tiskni
Sdílej:
když voni teďko spíš frčej černoši a roušky a černoši v rouškách :O :O až zase jako budou lidi zajímat uhlíkový neutrality ekoaktivizmus planeta zelená fylozofie a totleto blbnutí tak připišu :D ;D
toje takový laciný ne?? :O :D :D ;D
aže jako nevíš kolik má stéblo trávy vočí?? :O :O :D :D ;D ;D
až vodpovíš mrkni sem hele ;D
kapica asi jako myslel že ten vopičí addon šmíruje ale já myslim že ne ale neskoumala sem to :O :O
zatim jako sedí pravidlo že pastelový barvičky se třetině líběj třetině hnusej noa třetině sou jedno :D ;D
Chcete poznat nové gaye? S DISCO je to super jednoduché. Jde o novou aplikaci pro chat a randění pro muže, jako jste vy. Máme přes 20 miliónů členů a více než 100 000 se každý den registruje. S DISCO je jednoduché najít krásného gaye! Oslavujeme rozmanitost a vítáme všechny gaye, bi a transgender, aby se k nám připojili.Barvičky pěkné, rozhodně jsou víc inkluzivní než ty současné - ty jsou vhodné tak leda pro bílé heterosexuální rasisty.
pastelový sou jako vybraný ztoho jednoduchýho důvodu že na nich je krásně čitelnej černej/tmavej text. nóóó ale jestli jako máš pocit že vůči tobě nejsem jakože dost inkulzivní si jako řekni jaký jiný barvičky bys jakoby chtěl :O :D :D ;D stejně asi jako udělám víc různejch skinů kdyžuž se stim jako jednou mažu :D ;D
udělám víc různejch skinůNjn, Švédka…
myslim jakože vyrobit víc různejch barevnejch témat/motivů nééééééééé 'udělat skiny' :D :D :D :D ;D ;D
inu, boomer.
pravdu máte asi jako voba tak klídek :D ;D
máš mobílek tenčejší než 750 pixelů????? :O :O :O :O
na řádku 68 html abclinuxu se pouští nějakej skript https://www.googletagservices.com/tag/js/gpt.js nóó a ten má v sobě napevno zadrátovanou šířku 750 pixelů hele nóó a když je display menčejší než těch 750 pixelů tak javascript udělá vyjímku a umře a nic dalšího se nepustí :O :O :O :O
googletag.pubads().definePassback('/123456789/abcl_lead', [750, 100]).display();
zkus přidat eště tenhleten jeden skriptík co dělá žeto gpt uplně vypne. fungovat byto mělo na celej webík :D ;D
jestli někdo má nápad jak to jako ještě v document-startu přepsat tamto 750 na něco jinýho tak řeknout :O ;D vložení přepisovacího js <script> do hlavičky html nefungovalo :O :O
// ==UserScript==
// @name vypinadlo gpt.js
// @version 1.0
// @namespace blahblah
// stránky na kterejch se bude skript pouštět
// @match https://www.abclinuxu.cz/
// @match https://www.abclinuxu.cz/*
// @run-at document-start
// @noframes
// ==/UserScript==
//todlencto by prej jakože měli mit responzivní weby v hlavičce
document.head.innerHTML +='<meta name="viewport" content="initial-scale=1.0" />';
//vypnem provádění skriptu google tag services
// je tam zadrátovaná šířka 750 pixelů a když je display menčí js udělá vyjímku a umře a nic dalšího se nepustí :O :O :O :O
window.addEventListener('beforescriptexecute', function(e) {
src = e.target.src;
if (src.search(/googletagservices\.com.*gpt\.js/) != -1) {
e.preventDefault();
e.stopPropagation();
};
}, true);
//vyrobení novýho css elementu stylesheetu kam přidáme další extra pravidla navíc :O ;D
var style = document.createElement('style');
style.appendChild(document.createTextNode(""));
document.head.appendChild(style);
var sheet = style.sheet;
//blok textu v komentáři bude mit vobyč bílý pozadí
sheet.insertRule('div.ds_text{background-color: white;}');
//vypnutí podtržení u vodkazu na nadřazenej koment
sheet.insertRule('.link_na_koment{text-decoration: none;}');
//pro všecky div elementy kterejm atribut id končí na '_controls'
sheet.insertRule('div[id$="_controls"]{padding:0px;border:none;background-image:none;background-color:none;}');
//pro všecky prvky kterejm atribut id začíná řetězcem 'comment' a je před nima div element s atributem class vobsahujícím substring 'ds_hlavicka'
sheet.insertRule('div[class*="ds_hlavicka"] ~ [id^=comment]{padding: 0.5%}');
// css pravidla pro malou a velkou šířku vobrazovky
// na malilinkatejch vobrazovečkách vo šířce max 768 pixelů se třeba vypnou takový ty boční panely bude menčí padding prvků a tak
sheet.insertRule('@media only screen and (min-width: 769px){.ds_odsazeni{margin-left: 0;padding: 0.5% 0% 0.5% 2%;}}');
if(window.location.href.search(/https:\/\/www\.abclinuxu.cz[\/]*$/) != -1) // pokud sme na hlavní straně ukážeme levej sloupeček se zprávičkama a anketou atěmahle věcma
{
sheet.insertRule('@media only screen and (max-width: 768px) {#ls{width:100%;} .obal_ps {display:none;width:0%;} #st{margin-left: 0;padding: 0%;border-left:none;} .img_ad{width:100%;} .no-col-ad, #menu-wrap{display:none;} .ds_odsazeni{margin-left: 0;padding: 0.125%;}}');
}
else
{
sheet.insertRule('@media only screen and (max-width: 768px) {#ls, .obal_ps {display:none;width:0%;} #st{margin-left: 0;padding: 0%;border-left:none;} .img_ad{width:100%;} .no-col-ad, #menu-wrap{display:none;} .ds_odsazeni{margin-left: 0;padding: 0.125%;}}');
}
no voni ty pixely v html asi jako nejsou fyzický ale nějaký takový pomyslný co už vobsahujou přepočet s dpi nebo co hele :O ;D
Pixels (px) are relative to the viewing device. For low-dpi devices, 1px is one device pixel (dot) of the display. For printers and high resolution screens 1px implies multiple device pixels
takže jako když ten mobílek je tlustej našířku 1080 pixelů hele ale má na palec normální fyzický dýlky +-441 fyzickejch pixelů misto 96 co má obyč monitor nóó tak html asi jako vidí tloušťku 1080 / (441 / 96) = +-235.1 těch zobrazovacích pixelů :O :O :D ;D
nevim teda jako jaký sou webový prohlížeče v ubuntu touch a jestli uměj nějak pouštět userscripty ale bojim se že s ubuntu touch budeš asi mit smůlu :O :O :'( :'(
přepsat to de takle jako ten argument a asi to jako i funguje :O ;D
window.addEventListener('beforescriptexecute', function(e) {
src = e.target.src;
if (src.search(/googletagservices\.com.*gpt\.js/) != -1)
{
var txt = e.target.childNodes[0].nodeValue;
e.target.childNodes[0].nodeValue = txt.replace(/(\d\d\d)(?=,)/,'window.screen.availWidth * 0.8');
};
}, true);