Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Odkazy
Už pomerne dlho pracujem ako webový vývojár. Svoje osobné projekty mám zvyčajne riešené minimalisticky s pár riadkami JS a pár pravidlami CSS. Mladší weboví vývojári ma zrejme považujú už za technologického dinosaura. Tento blog píšem aby som dokázal, že tiež dokážem písať moderný web :-P
Každý moderný web dnes musí používať HTML5. HTML5 je najlepšie definovaný štandard na svete. Perfektne zrozumiteľný, logický ... Veľkou výhodou je, že tagy už nie je nutné uzatvárať:
<p> Odstavec <p> druhý odstavec
Platí len ak za p nasleduje niektorý z týchto tagov: address, article, aside, blockquote, dir, div, dl, fieldset, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, hr, menu, nav, ol, p, pre, section, table, ul.
Pre fanúšikov xml syntaxe: áno stále je možné uzatvárať tagy. Teda platí pre vybrané tagy, niektoré ako napr script sa nedajú zapisovať ako <script src="" /> čo je logické.
HTML5 je tak dokonalé, že v hlavičke už nepotrebuje ani verziu.
Moderný web sa nezaobíde bez CSS3. V dobách dinosaurov (CSS2) predsa nebolo možné bez tabuliek vytvoriť layout a všetky tie haranaté jednofarebné plochy.
Pomocou CSS 3 sa dajú napr. vytvoriť hranaté alebo zaoblené farebné štvorce, to je skvelé, nie? Stačí použiť flex box. A samozrejme prefixovať prefixovať prefixovať:
button { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -ms-border-radius: 3px; -moz-border-radius: 3px; -o-border-radius: 3px; -webkit-border-radius: 3px; -khtml-border-radius: 3px; -apple-border-radius: 3px; -rim-border-radius: 3px; border-radius: 3px; }
CSS sa samozrejme nepíše od základov, ale použije sa nejaký framework (napr. bootstrap). Nevadí, že stačí pár pravidiel, pripojenie na internet je v súčasnosti rýchle, procesory tak isto, takže tých 3000 nepoužitých pravidiel vôvec nevadí.
Layout pomocou CSS frameworkov je omnoho sémantickejší a prehľadnejší než tabuľkový layout. Ukážka:
Starý layout: <table> <tr> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> </tr> </table> Moderný neporovnateľne lepší layout s dokonalým oddelením obsahu od prezentácie: <div class="container"> <div class="row"> <div class="col-lg-4"></div> <div class="col-lg-4"></div> <div class="col-lg-4"></div> </div> <div class="row"> <div class="col-lg-4"></div> <div class="col-lg-4"></div> <div class="col-lg-4"></div> </div> </div>
Pri použití CSS frameworku začne väčšina nástrojov na analýzu stránok kričať, že CSS blokuje vykresľovanie (v skutočnosti sa CSS načítava na pozadí, ale to je implementačný detail). V takom prípade je podľa googlu odporúčaný postup načítať web s malým inline CSS a zvyšok dotiahnuť pomocou javascriptu:
<script> var cb = function() { var l = document.createElement('link'); l.rel = 'stylesheet'; l.href = 'small.css'; var h = document.getElementsByTagName('head')[0]; h.parentNode.insertBefore(l, h); }; var raf = requestAnimationFrame || mozRequestAnimationFrame || webkitRequestAnimationFrame || msRequestAnimationFrame; if (raf) raf(cb); else window.addEventListener('load', cb); </script>
Web sa bude takmer okamžite tváriť ako načítaný, všetky nástroje budú spokojné. Nevadí, že užívateľ najskôr uvidí holé html bez CSS. Tak isto nevadí, že sa CSS začne načítavať až po načítaní celého webu namiesto toho aby sa sťahovalo paralelne. Keď Google PageSpeed Insights tvrdí, sa má načítať javascriptom tak to tak má byť. Google sa predsa nemýli.
Všetky systémové fonty sú nekompletné a zle čitateľné. Preto sa na každom modernom web musia používať webové fonty. V ideálnom prípade tak 12 rôznych fontov (2 druhy písma, každé light, medium, bold, light/italic, medium/italic, bold/italic a každý aspoň v 5 rôznych formátoch, teda dokopy asi 60 súborov).
Aby to išlo pekne rýchlo (lebo kým sa nenačítajú fonty zostáva na webe prázdne miesto) z fontov sa vyhádžu zbytočné znaky ako napr Č, Ď, Ľ ... Samozrejme vyhodiť sa musia aj všetky informácie o hintingu a rôzne ďalšie metadáta ktoré výrazne zhoršujú čitateľnosť.
V dobách dinosaurov mali všetky prehliadače jednotný interpret js. Preto bolo možné javascript písať tak aby fungoval na všetkých možných browseroch aj bez frameworku. Dnes už browsery tak jednotné nie sú a preto je potrebné používať knižnice ako napr. JQuery 2. Okrem kompatibility prináša aj množstvo užitočných funkcií ktoré vanilla js nemá (napr. efektívne získanie elementov pomocou CSS selektorov, animácie ...).
Do moderného webu sa musí vložiť veľké množstvo skriptov. Na každú malú animáciu, tooltip ... na všetko nejaký skript. Občas sú skripty závislé na konkrétnej verzii jQuery. To však nevadí, s AMD môžme do webu vložiť toľko verzií jQuery naraz bez toho aby medzi sebou kolidovali.
Priemerná veľkosť webovej stránky nám v roku 2014 dosiahla 1600kB, takže skriptov môžme do takejto veľkosti napchať dosť.
Používatelia sa musia sledovať, proste musia. Poriadna webová stránka musí mať facebook, twitter, rôzne analyticsy ... Ako ukážku tu dám napr. zoznam rôznych sledovacích kódov na telegraph.co.uk:
[x+1] Adap.tv Adobe TagManager Advertising.com Audience Science Criteo Disqus DoubleClick DoubleClick Floodlight Effective Measure Facebook Social Plugins Google Adsense Google Analytics InSkin Media Krux Digital Media Optimizer (Adobe) NetRatings SiteCensus Omniture (Adobe Analytics) Optimizely Outbrain Parse.ly Polar Mobile Quantcast Qubit Opentag ScoreCard Research Beacon Twitter Button Visual Revenue VisualDNA WebTrends
Kedysi dávno v dobách dinosaurov sa robili popupy pomocou window.open. Žiaľ prehliadače sa naučili túto skvelú funkciu blokovať. Ak by sa niekomu popupy nepáčili tak tento text vás presvedčí. Obzvlášť zaujímavé sú komentáre. Takže prečítané? Fajn, som rád, že všetci pochopili, že je správne zobrazovať používateľom popupy.
Je super, že vďaka všetkým tým skvelým opatreniam ako napr. načítavanie css pomocou javascriptu sa stanú popupy neblokovateľné.
Dúfam, že po tomto blogu už nebude mať nikto pochybnosti o tom, že ešte nepatrím ešte do starého železa a viem ako robiť moderné weby
Tiskni
Sdílej:
Som rád, že bol spomenutý react a nie bloatware angular. Čo sa týka preprocesorov zvyknem odporúčať skôr sass / scss. Referenčná implementácia je síce v ruby, ale libsass je v C++ a ide pekne rýchlo.
U začiatočníkov je to normálne. Ja som tiež natočil tutoriál ako zbúchať blog za 15 minút a použil som pri tom bootstrap lebo to bolo najrýchlejšie riešenie
V takom prípade je podľa googlu odporúčaný postup načítať web s malým inline CSS a zvyšok dotiahnuť pomocou javascriptu.Aha, tím by se asi dalo vysvětlit, proč se mi hromada "moderních" webů po povolení JS v NoScriptu přenačte s jiným fontem. Jinak ještě k těm fontům jsi zapomněl zmínit, že používat dneska obrázky je taky pěkně oldschool, když může mít člověk vlastní font a v něm "unést" libovolný Unicode znak pro svou potřebu. Tady se asi pro změnu na nějaký obsah vs. forma moc nehraje.
Oni sú blbé naschval. V každom prípade s tým druhým sa stretávam každú chvíľu. Prišlo mi vtipné ako sa všetci bili za to, že treba oddeliť obsah od formy (teda nedávať konkrétny layout do html) a zrazu tu prídu frameworky ktoré robia v HTML rovnaký bordel ako tabuľky. Samozrejme aspoň sémanticky je to iné, div nemá žiaden sémantický význam na rozdiel od table.
box-sizing
, takže si to lze nastavit, jak se to zrovna hodí. Btw, HTML5 je úspěšné hlavně kvůli tomu, že s ním W3C nemá nic společného (narozdíl od XHTML).
In 1996, CSS introduced margin, border and padding for many more elements. It adopted a definition width in relation to content, border, margin and padding similar to that for a table cell. This has since become known as the W3C box model.
At the time, very few browser vendors implemented the W3C box model to the letter. The two major browsers at the time, Netscape 4.0 and Internet Explorer 4.0 both defined width and height as the distance from border to border. This has been referred to as the traditional or the Internet Explorer box model.
table, thead, tfoot, tbody, tr, th, td { display: block; }… A z tabulky je pár odstavců. Dál můžeš stylovat dle libosti stejně, jako by to byly divy.
Nie všetky takéto triky fungujú. Nedávno som sa k niečomu snažil pomocou CSS ohnúť django admin a vo firefoxe to malo poriadne problémy. IE radšej ani nebudem spomínať Na zopár škaredých bugov s renderovaním tabuliek som narazil aj vo webkite, neviem teraz či sú už opravené, keď som na to pozeral tak v bugzille boli zaznamenané chyby.
Nejak jsem ten odpor k tabulkam nepochopil.Prvně to bylo "Nepoužívejte tabulky na layout!", protože staré prohlížeče neuměly dynamicky překreslovat stránku během načítání, což ve spojení s pomalým připojením způsobovalo to, že uživatel čučel do čisté stránky, dokud se nenačetl celý obsah (tedy, ono těch problémů s layoutem pomocí tabulek bylo trochu víc, ale tento je asi ten nejdůležitější). No a někteří to pochopili jako "Tabulky jsou Zlo! ZLO!!!" a ve své snaze být papežštější než papež přestali tabulky používat úplně, včetně případů, kdy jejich použití je vhodné a naprosto logické. Osobně se domnívám, že existuje velmi jednoduché pravidlo, kdy použít tabulku, a to tehdy, pokud by mělo smysl, aby uživatel přislušná data označil a nakopíroval si je do svého Oblíbeného Tabulkového Procesoru (TM).
Bootstrap je skvely pomocnik, protoze diky tomu i "lama" muze vytvorit validni web
Mne vadí keď je tam pár tisíc nepoužitých pravidiel. Ak niekto ide na web bootstrapu, zvolí custom build, vyberie si len grid nič zásadné proti tomu nemám. Vadí mi však, že ľudia sú už tak leniví, že tam hodia celý bootstrap a všetky elementy pracne preštýlujú pričom by im skutočne stačil grid.
Navic vizualizace pomoci font-awesome ci glyphicons preci umoznuji s obrazkem pracovat jako s fontem.
V niečom je to dobré, v niečom nie. Na telefóne mi napr. z default konfiguráciou väčšinu webových fontov zobrazuje ako štvorčeky a ak tam nie je text musím si domyslieť na čo klikám. Kým je to len ako doplňujúca ikona k tlačidlu nevadí mi to.
A samotne jQuery? Prijde mi, ze se stalo modou na jQuery hrozne nadavat, ale samotny selector v jQuery je tak mocna vec, ze nakonec i ti zariti odpurci po nem proste sahnou. Osobne jsem si nevsiml, ze bych nekdy musel silene hackovat nekolik verzi jQuery.
Na pracovné veci jQuery používam, na osobné nie. jQuery nemám rád, je plné antipatternov, neskutočne pomalé a katastrofálne sa ladí. Dostávam však hotovú šablóny s javascriptom takže nemám moc na výber.
Za seba spomeniem pár vecí ktoré mi na jQuery zásadne vadia:
$('#neexistujuciprvok').plugin()
nevyhodí chybu (viem, je to filozofia jQuery, nevyhovuje mi to, radšej new Plugin(_.id('neexistujuciprvok'))
)Čo sa týka angularu vadí mi viacej vecí. Asi najviac ma vytáčalo, že nemá žiaden fallback pre browsery bez js (unobtrusive js). Nie že by to v dnešnej dobe až tak vadilo, ale ak ten web má prechádzať google musí sa mu servírovať statický obsah. Oficiálne riešenie od googlu: nainštalovať na webserver webkit browser, automaticky prechádzať web a ukladať statické súbory. Fakt super. React aspoň ráta s nejakým fallbackom, takže nemusím sa starať zvlášť o službu ktorá je tam len kvôli indexácii webu.
Webove prohlizece jsou na takove urovni, ze i moloch bootstrap+jquery+angular+XXpluginu neznamena, ze by web byl pomaly ci nepouzitelny.
Na googlackych produktoch sa mi dosť často stáva, že vďaka ich asynchrónnej inicializácii mám web načítaný tak za 5s. Teda tvári sa tak. Ďalších 25s čakám až môžem na niečo kliknúť. Ak je na nejakých elementoch href="#" tak je to celkom super lebo môžem naň kliknúť aj keď ešte nie je načítaný web a nič sa nestane. Ak je tam skutočný odkaz tak mi otvorí nejaký web a ja musím stlačiť späť a počkať až sa to znovu natiahne. Najlepšie na tom je, že netuším či sú všetky skripty natiahnuté lebo sa načítavajú asynchrónne (takže ani v hlavične tabu nevidieť načítavanie).
K samotnej použiteľnosti .. neviem ako je to v česku. Kde sa pohybujem ja ide internet väčšinou do 20kB/s. Čoraz častejšie narážam na weby ktoré sa načítavajú 5-10 minút.
Jakym prohlizecem jsi web oteviral?
Safari. Ale mám iphone 3G takže podporu fontov tam mám slabú (myslím, že len SVG).
Pokud se teda clovek nedostane do faze, kdy potrebuje vyuzit pluginy, ktere jsou prave jQuery.
Toto ma tak trochu štve, lebo všetci píšu pre jQuery aj keď v súčasnosti už browsery podporujú pekne hračky ako selectory, aj forEach funguje dobre ... nevidím dôvod kvôli nejakému malému efektu tam dávať celé jQuery.
Startup webu, hlavne tech angularovskych je skutecne problem.
Štart je ešte v pohode keď tá aplikácia aspoň funguje. Ako užívateľovi sa mi často stávalo, že ten kto písal angular aplikáciu niečo nemal ošetrené a v istom momente prestala reagovať na udalosti. Teda v istom momente = asi po 10s používania :D Takže f5 a zase si počkať až to celé natiahne ...
Nevim jak ostatni, ale rychlost 20kB/s je spise historii, ne?
Vyššie rýchlosti sú v mestách. Ja som na Slovensku. Je to celkom hornatá krajina. Ak chytím 20kB tak som celkom rád. Tu v horách by musel byť vysielač na každom kopci čo je trochu ťažko realizovateľné.
Kazdopadne ja mam javascript rad a i kdyz jsem v nem videl uz hodne prasackeho kodu, tak to neni chybou jazyka, ale pouze tech, kteri ten jazyk vyuzili.
S týmto neviem či môžem súhlasiť. Čo je to prasácky kód? Keď sa snažím písať objektovo? Keď dedičnosť riešim prekopírovaním property? JS nemá definovaný žiaden coding štandard, takže všetci píšu hlava nehlava, nikto nevie poriadne vysvetliť na čo je prototypová dedičnosť dobrá ...
S Javascriptem se do budoucna pocitat musi, zatim nic lepsiho nikdo nevymyslel.Lepších jazyků je celá řada, JavaScript totiž patří mezi ty horší jazyky. Osobně bych upřednostnil, kdyby prohlížeče podporovali například LLVM IR.
Osobně bych upřednostnil, kdyby prohlížeče podporovali například LLVM IR.WebAssembly
Proč nemají goto, nevimHádám, že proto, aby se to snadno přeložilo do JS nebo asm.js.
v high-level jazycích většinou neníTo ano, ale některé jiné konstrukce z high-level jazyků se překládají na kód s goto – například pattern matching.
Kromě toho koukáš na naprostý prototyp, finální standard se imho bude ještě dost lišitTo je pravda, přidat goto v budoucnu zvažují jako možnost.
Mne vadí keď je tam pár tisíc nepoužitých pravidiel. Ak niekto ide na web bootstrapu, zvolí custom build, vyberie si len grid nič zásadné proti tomu nemám. Vadí mi však, že ľudia sú už tak leniví, že tam hodia celý bootstrap a všetky elementy pracne preštýlujú pričom by im skutočne stačil grid.Když už musim dělat něco pro web, používám PureCSS, většinou to stačí a grids má imho lepší než bootstrap.
Rozumnejšie by bolo keby to bolo spracované nejakým CSS preprocesorom a vygenerovalo by sa ich len toľko koľko je potrebných.
Chapu, ze je to cele ironie, ale na druhou stranu tyhle nove pristupy prave umoznuji z webu vymackat maximum.Me teda "moderni" web moc maximalni nepripada. Jenom se veci ktery driv delal browser presunuji do javascriptu, protoze autori webu jsou prece mnohem chytrejsi a lip vedi jak delat UI.
Jenom se veci ktery driv delal browser presunuji do javascriptuTeď se do JavaScriptu přesouvá ledacos. Za chvíli bude internetový prohlížeč poskytovat víc funkcionality než operační systém.
Existuje, sám som ho pár krát implementoval. Myslel som skôr toto.
Webove prohlizece jsou na takove urovni, ze i moloch bootstrap+jquery+angular+XXpluginu neznamena, ze by web byl pomaly ci nepouzitelny. Tyhle casy jsou davno pryc :)Na desktopu možná, ale dnes leze dost velká část uživatelů na web ze zařízení, které rozhodně nemají výkonu nazbyt a pokud ano, tak je draze vykoupen zkrázením provozní doby při běhu na baterie. Použít takovýto obludný moloch na stránku, kterou by jako čisté HTML zobrazil snad i lepší jednočip, je jako vzít si na kopání brambor bagr (a u některých webů by to bylo spíš důlní rypadlo
Myslím, že budeme mať problém aj s definíciou lepšieho ;) Dnes som napr. hľadal chybu v kóde a objavil som tam použitie značiek spam. Kedysi by na to validátor niečo vypísal, lenže HTML5 ;)
OK beriem späť, teraz som to revalidoval a HTML parser sa správa trochu inak než som čakal. Keď som opravil ostatné chyby tak spam už zobrazuje ako chybu.
Hmm čo také úžasné robia webové aplikácie že sú tak náročné na výkon?
Pamätám si časy keď sa js intepretoval 100x pomalšie ako dnes. Pamätám si časy keď som mal 10x slabší stroj.
Otvorím si napr http://ckeditor.com/builder. V stĺpci Available plugins napíšem "aaaa" a čakám 10s až mi vyhodí, že môjmu vyhľadávaniu zodpovedá 0 pluginov (zatiaľ CPU na 100%). Vyhľadávanie v necelých 150 položkách! To už ide tak pomalý, že by som mohol očami prejsť a vybrať tie položky a budem približne rovnako rýchly.
OK, mám možno starý stroj, o to nejde. Chcel som tým povedať, že väčšina ľudí píše ako prasce. Ó tom, že sa to dá napísať dobre ma netreba presviedčať, ja sa tou prácou živím.
Vyvíjať sa dá dnes omnoho lepšie než pred 10 rokmi, nástroje sú neporovnateľne lepšie, podpora prehliadačov o ktorej sa nám ani nesnívalo ak nie je potrebné optimalizovať pre IE6. Napriek tomu si ľudia nedajú ani trochu námahy optimalizovať.
Dobre, trochu preháňam, 1.2s na znak. Core(TM)2 Duo CPU T5250, firefox. Mimochodom v tom super vyhľadávaní nefunguje ani paste ;) Čakal by som že zaregistrujú aspoň oninput.
Paste klávesovou skratkou funguje, ale myšítkom alebo cez kontextové menu nie keďže majú registrované len onkeyup. Chápem, že niekto registruje onkeyup kvôli kompatibilite, ale v súčasnosti by sa už malo registrovať hlavne oninput, ktoré rieši všetky možné spôsoby zadávania textu.
Aj dnes môžem otvoriť koľko chcem tabov. Kým je to číslo menšie než 5.
Niekedy funguje, niekedy nie. Upravoval som po bývalom kolegovi angular aplikáciu a fungovalo to ... no niekedy áno niekedy nie. Pri kliknutí na niečo kým niečo iné nebolo načítané spôsobovalo krásny race condition, takže sa celá aplikácia rozletela. Vlastne stačilo 2x stlačiť späť pred tým než sa stihol načítať obsah a celé sa to rozpadlo.
Toľko k výhodám. Samozrejme angular mal aj svoje temné stránky napr. nefungujúce otvorenie na novej karte a podobne.
Ta "tuna" javascriptu, o ktere se zde nekdo zminoval, ma totiz hlavni efekt a to je v tom, ze diky tomu UI funguje pomoci AJAXu, coz prave onen web dost zrychluje.S tim jsem ted udelal zajimavou zkusenost - procitam si nejaky historicky dokumenty na webu NASA na ktery evidentne nikdo nesah od vynalezu Mosaicu - a je to skvely. Da se to bez problemu cist na mobilu v metru: stranky se stihaj dotahnout behem cekani ve stanici, nezere to baterky ani pamet, necha se to pohodlne ovladat z displeje… Zadny ajaxovy web mi nefungoval tak dobre. Tak kde je ten spravny smer?