V iskanju odzivnih HTML/CSS slik (link)
8.5.2025

Te dni sem iskal najboljši slog za slike na tem blogu. Ta je določen preko CSS datoteke, ki jo iterativno izboljšujem, da bi bila ta stran karseda uporabna, lepa in konsistentna (v tem vrstnem redu). Interno uporabljam Jekyll Picture Tag, ki poskrbi za lepo obrezane in skalirane slike glede na dimenzije naprave ter jih samodejno vgradi v html, kar je prišlo še posebej prav pri Invader članku. Vendar ta ne podpira slik svg formata, ki jih moram torej vgraditi sam. Glavni izziv je odzivnost — prilagajanje na velikost okna brskalnika.

Za slike na svojem blogu imam sledeče zahteve: morajo biti horizontalno centrirane, upoštevati neko maksimalno višino, se skalirati s širino okna brskalnika in dopuščati podnaslov, ki je vedno enake širine kot slika. Skromna želja je bila tudi ta, da bi lahko sliko vgradil z markdown sintakso.

Na poti do idealne rešitve sem pomoje šel čez popolnoma vse ostale možne rešitve: dati sliko v div.container, jo omejiti z object-fit: contain, jo postaviti v display: flex element, posebej nastaviti margin: auto za centriranje, dati sliko in podnaslov v <table>, ki sem ga potlej skušal prepričati, da se drži pravilne širine. Enkrat sem bil že skoraj zadovoljen z rešitvijo, da <p>, v katerega markdown avtomatsko zavije sliko, deluje kot krovni element preko CSS selektorja p:has(> img), vendar ima ta selektor šibkost, da je šele od leta 2023 podprt s strani večine brskalnikov. Hekatija se trudi biti uporabna za karseda veliko brskalnikov, tako da sem to rešitev izključil.

Da ne bom zezal bralca preveč, predstavljam sveti gral odzivnih slikic:

figure {
    display: table;
    margin: .5em auto;
}

figure img:not(.emoji) {
    display: block;
    max-height: 18em;
    height: 100%;
    width: 100%;
    background-color: #ffffff40;
}

figure figcaption {
    text-align: center;
    font-style: italic;
    font-size: .9em;
    display: table-caption;
    caption-side: bottom;
    padding: 0 .5em;
    background-color: #ffffff40;
}

Tu je najvišja višina slike nastavljena na max-height: 18em, podnaslov pa se po širini ujema z njo. Glavni “trik” je nastaviti display: table na krovni element, da cela zadeva torej deluje kot nekakšna tabela. Sliko se potem vstavi s HTML kodo

<figure>
  <a href="/assets/images/icons/android-chrome-512x512.png">
    <img src="/assets/images/icons/android-chrome-512x512.png" alt="Hekatija.com brskalniška ikonica.">
  </a>
  <figcaption>Hekatija — maskota bloga.</figcaption>
</figure>

kar izgleda tako:

Hekatija.com brskalniška ikonica.

Hekatija — maskota bloga.

Pri tej konfiguraciji sem naletel na nekaj težav s to sliko; upam, da je ta patološka in se mi z njo ne bo treba kdaj ukvarjati, saj nimam pojma, kaj storiti. Moja rešitev pa vseeno verjetno ni dokončna — morda bom z njo nezadovoljen že jutri.

Motivator za ta kratek članek pa je žalostno naključje, ki se mi je zgodilo ravno te dni, ko sem pilil pričujočo kodo. Na svojem dolgem seznamu člankov, ki jih nameravam prebrati, sem ravno po mukotrpnem odkritju display: table rešitve našel ta članek. Avtor… je odkril isto kot jaz.

Trki s pticami so lahko hud problem za letala (link)
21.4.2025

Ko sem zadnje dni pohajkoval po Wikipediji, sem naletel na članek o pojavu po imenu “bird strike,” torej o trku med ptico in letalom. Dogodki tega tipa so se mi intuitivno zdeli dokaj redki in tema ezoterična, vendar se izkaže, da se ti trki po svetu dogajajo več tisočkrat letno in lahko v najhujšem primeru povzročijo, da letalo strmoglavi. Najbolj znan primer tega je gotovo iz leta 2009, ko je moralo US Airways letalo po trku z jato ptic zasilno pristati v reki Hudson (priporočam poslušanje zvočnega posnetka pogovora z nadzornim stolpom). Od proizvajalcev je celo zahtevano, da njihova letala in letalskih motorji preživijo trk s ptico določene mase ali pa se po tem varno zaustavijo. Tudi letališče mora biti primerno “oboroženo,” da divje živali čim manj posegajo v zračni promet. Očitno so indijska letališča v tem še posebej slaba.