Nyilvános béta

A Szabadpingvin fejlesztése egy újabb mérföldkőhöz érkezett: Elérkeztünk az első olyan verzióhoz, amit már nem csak mi látunk, hanem Ti is tesztelhettek.

Hogy hogyan jutottunk el ide? Kattints, és minden kiderül!

Szabadpingvin logó
Szabadpingvin logó

A Szabadpingvin fejlesztése egy újabb mérföldkőhöz érkezett: Elérkeztünk az első olyan verzióhoz, amit már nem csak mi látunk, hanem Ti is tesztelhettek.

Hogy hogyan jutottunk el ide? Kattints, és minden kiderül!

Nagy izgalommal és még több lelkesedéssel jelentjük be, hogy itt a nyilvános béta, ahogy azt a 2022-es évértékelőnkben is megígértük. Bár a „hivatalos” hírverés egy kicsit megkésett, úgy gondoljuk, megérte várni.

Persze még közel sem tökéletes, hiszen mégis csak béta, viszont végre valami, amit megmutathatunk Nektek.

A saját motorig vezető út

Mielőtt rátérnénk a bétára, azelőtt mesélünk egy kicsit arról, hogyan jutottunk oda, hogy saját CMS-t fejlesztettünk.

Nem akartunk új motort. Sőt, mondhatnám azt, hogy nagyon nem akartunk egy saját, nulláról indított CMS-t csinálni, hiszen sokan már 10+ éve jelen vannak a piacon, mégis minek egy n+1. megoldás? Ugyanakkor az élet sajnos nem ilyen egyszerű.

Drupal 7 → 8: frissítés, egyenesen a pokolból

Az első elképzelés természetesen az volt, hogy frissítünk Drupal 8-ra (ami akkoriban jött ki). Mivel ez egy nagyon komoly váltás (és ezt külön hangsúlyozta a Drupal csapat is), mi is így álltunk neki: kapott a 7-ről 8-ra frissítés egy saját (virtuális) gépet, nehogy valami bekavarjon (akkor még nem Dockerben futott az oldal), természetesen külön DB-vel és naprakész pillanatképpel a PROD adatbázisról.

Nagyon akartuk ezt a frissítést, mert az új Pingvin téma már a Drupal 8 témázási doksi alapján készült, figyelve arra, hogy ne csak vizuálisan szép, de a motorháztető alatt technikailag jó is legyen a megvalósítás. El is jutottunk egy egész vállalható szintig.

Majd jött a frissítés. A frissítési instrukciókat (kivételesen) tényleg komolyan követve, mindent betartva (még alverziószámra is), csak nem akart jönni a siker. Régen volt már, de emlékeim szerint mindenféle moduloktól megszabadított (még csak nem is kikapcsolt, hanem eltávolított) módon se akart rendesen frissülni. Gond volt a rövid URL-ek kezelésével, de talán még nagyobb az anyagok megjelenítésével, ugyanis nem jelent meg semmi az adott tartalomból. Semmi. A megoldás az (lett volna), hogy minden anyagot megnyitunk, átállítjuk a szövegformátumát Full HTML-re és mentjük. Ezután pedig újranyituk és újraformázzuk, mert a műveket után minden formázás (ideértve a bekezdéseket is) eltűnt.

Aha, persze, biztosan meg fogom ezt csinálni… (nem).

Elég sokat próbálkoztam a frissítések n+1. módjával, nem kívántam feladni, de nagyon úgy nézett ki, hogy nálunk van valami bibi az adatbázisban, amit nem tud kigubancolni a frissítés. Emlékszem, volt a kommentekkel is baja, ami azért vicces, mert igazából nincsenek is (bekapcsolva).

PHP 8.0 kompatibilisek vagyunk. Jah, nem egészen.

Szóval maradt a Drupal 7.

Viszonylag friss seb a PHP 7.4-ről 8.0-ra frissítés. Ugye 2022. november 28. napján lejárt a PHP 7.4 támogatása. Semmi gond, hála az időben lépő fejlesztőknek, a Drupal 7 már 2021. november 21. óta hivatalosan is támogatja a PHP 8.0 használatát, szóval az átállás biztosan gyors lesz és fájdalommentes. Gondoltam én.

Pedig dehogyis. Ha szigorúan a Drupal Core-t nézzük, akkor persze semmi okom panaszra, az upgrade nem rengette meg a világot. De „sajnos” vannak modulok is. Ebből is talán az egyik legalapvetőbb a CSS/JS-t összegereblyéző, azokat tömörítő és egy fájlba aggregáló AdvAgg modul (nem is értem miért nem része a Drupal Core-nak), ami, nos igen, nem működik. De nem csak nem funkcionál, hanem hibával elhasal, amitől a Drupal bizonyos URL-eken dob egy WSOD-t (White Screen of Death, fehér képernyő hiba, kb. a BSOD/kernel pánik PHP-s megfelelője), magyarul az oldal bizonyos részei elérhetetlenné váltak.

A hibára jegy is van, ahol le van írva, hogy kritikus, mivel betöltést blokkol, de gondolom mivel a Drupal 7 már „elavultnak” számít, így nem nagyon keltette fel senkinek sem az érdeklődését. Talán én is meg tudnám fixálni (ha más nem, akkor egy elvileg működő patch alapján mindenképp), ám legutóbb 7.4.0 körül fejlesztettem PHP-t: nem biztos, hogy átlátom a következményeit a módosításomnak, és az ilyen tákolásokból szokott a legnagyobb gond lenni. Foltozgattam már máskor is Drupalt, de nem vagyok arról meggyőződve, hogy ez bármikor is jó ötlet volt (kivéve azt az alkalmat, amikor vészfrissítést kellett végrehajtani egy komoly biztonsági hiba miatt).

Úgyhogy ment vissza a 7.4-es PHP, miközben remélem, hogy a különböző biztonsági rétegek azért megoldják az AdvAgg frissüléséig a dolgokat.

Drupal 7 → Backdrop CMS: kristálygömb failure

A Backdroppal abban az időben az volt a baj, hogy nem láttam, merre tart a projekt. Nem mertem az oldal jövőjét egy bizonytalannak tűnő forkra bízni és attól függeni, hogy ott mikor jönnek frissítések a feltárt (ha egyáltalán megtalálják) (biztonsági) hibákra, újabb PHP-ra, etc.

Sajnos a varázsgömböm nem mondta meg, hogy csak egy erőtlen fork lesz az egész, vagy egy önálló projekt kerekedik belőle. Mint azt kiderült, utóbbi, aminek persze örülök. Közben nyilván meghosszabbították a Drupal 7 támogatását 2023 szeptemberéig. Ezzel a probléma nem került megoldásra, de legalább el lett napolva egy évvel.

Így utólag meg kellett volna próbálni legalább a teszt környezeten a frissítést, de ugye könnyű utólag okoskodni.

Drupal 7 → Wordpress (5?)

Elvetemült ötletekért sosem kellett a szomszédba mennem, inkább ők jönnek. Ennek megfelelően megpróbáltam (volna) egy Drupal 7 → Wordpress → Drupal 8 irányt is. Volt is egy (fizetős) WP modul, ami tudja az irányt, az ingyenes verziója pedig egyféle demóként átmozgatott volna pár anyagot, a pontos limitáció nem rémlik már.

Az viszont jól rémlik, hogy a demó nem működött, el sem indult, mivel valami gondja volt a Drupal adatbázisával. Ennyit erről.

Drupal 8: kezdjük nulláról

Felmerült az ötlet, hogy ha nem megy ésszel, akkor megy majd erővel. Tegyünk fel egy friss Drupal 8-at, és idővel kézzel átlapátoljuk az anyagokat. De ha már új Drupal, akkor kellenének új funkciók is bele. És ha nincs közösségi modul, akkor magad uram, fejlesszük le mi. De közben van egy csomó alapvető képesség, amire meg semmi szükségünk.

Akkoriban az sem volt elhanyagolható kérdés, hogy mi lesz a jövőbeli 8 → 9 frissítéskor? Persze az sokkal simábbra volt ígérve, de a 7 → 8 meg úgy volt, hogy működik… Vagy vajon akkor is megint lehet mindent kezdeni a semmiből? Kínzó kérdések.

Drupal 7 → Bármi más

Ha már úgyis nulláról kell kezdeni, akkor kitekintettünk a Drupal világából. Összeszedtünk egy méretes listát, hogy milyen képességeket szeretnénk látni az új rendszerben, majd azt a CMS-t kezdjük el használni, ami a legtöbb pontot teljesíti. Bejártuk szerintem a teljes skálát: a legegyszerűbb(nek tűnő) Grav/Jekyll statikus oldalgenerátor vonaltól kezdve a jól ismert PHP-s CMS-eken át, néhány Python alapú tartalomkezelőn (pl. Plone) a Java alapú szörnyekig.

Sajnos a tételes szempontlista, hogy mely CMS mit teljesít és mit nem, már nincs meg, de egyvalami biztos: a legtöbb pipát a Drupal szerezte meg, szorosan mögötte pedig ott volt a Wordpress. Lehetne mondani, hogy ott vagyunk ahol a part szakad, hiszen a kígyó utolérte a saját farkát. Ugyanakkor a tesztelések, próbálgatások során rengeteg olyan funkciót és működést láttunk, amit eddig nem, így kigyűjtöttük a legjobbakat.

Némi eufemizmussal azt is mondhatnám, hogy összeszedtük az ismert világok legjobbjait, de ez azért elég távol áll a valóságtól.

Pingvildr

Így született meg Pingvildr, a motor ötlete.

Mindent tartalmazni fog, ami kell nekünk és semmi olyat, amire nincs szükségünk. Az alapötlet szerint kicsi, gyors, megbízható és skálázható (lesz) egyszerre. A most látható publikus béta természetesen már az ő terméke. Az architektúráról és a működésének alapjairól majd egy másik cikkben fogok részletesen kitérni. A lényeg, hogy minden szerver oldali komponens Pythonban van írva és (a látszattal ellentétben) igyekeztünk nem újra feltalálni a meleg vizet és a kereket, így elég sok külső komponenst használunk, úgy mint Flask, SQLAlchemy, etc. Felhasználói oldalon igyekeztünk minimalizálni a GyávaJavaScript használatát és különösen a harmadik féltől származó beépülőket. Ez egész jól sikerült is, de mint a legtöbb mai oldal, úgy sajnos mi sem működünk rendesen JS nélkül. Ez van.

Kenyérpirítótól a mozivászonig

Kezdetektől fogva cél volt a minél nagyobb fokú reszponzivitás, mindez az oldalszélesség fixálása nélkül. El akartuk kerülni azt a tipikus helyzetet, hogy már FullHD-n is két teljesen üres (vagy reklámokkal telezsúfolt) oszlop fogja közre a tartalmat, amit amúgy nagyítani kell mert normális távolságból olvashatatlan.

Tartalmunk együtt változik a felbontással és igyekeztünk a pixelsűrűségre (PPI) is figyelni. 400 pixeltől 8k-ig skálázódunk. 400px alatt már sajnos olyan kevés a hely, hogy alapvető dolgok csúszhatnak el, szavak lóghatnak ki, így bár természetesen olvashatóak maradunk, nem mi leszünk a nap szépe. Itt jegyezném meg, hogy az okos kenyérpirítók felbontása 720p-nél kezdődik :)

A skála másik vége 8k, amin valamennyit teszteltünk, de megfelelő kijelző hiányában valószínűleg lesznek apróságok, amik csúnyák, túl kicsik/nagyok, vagy elütnek a többitől. 8k felett csak segédfogalmunk van, hogyan nézhet ki az oldal: elvileg nem kellene semminek se elcsúsznia, de ki tudja. A skálázódásunk praktikus limitje 4k, ezen rendszeresen tesztelünk. 4k és 8k közt lehetnek érdekességek, de nem számolunk katasztrófával.

Felbontásra kifejezetten nem optimalizáltunk, de az igazsághoz hozzátartozik, hogy itthon a FullHD a leggyakoribb felbontás, ahogy a statisztika szerint az olvasóink körében is, így mondhatjuk, hogy praktikus okokból itt nézünk ki a legjobban.

De itt még nem álltunk meg, mert hisszük, hogy a weben (is) helye van az igényes tipográfiának is. Ezért a magyar tipográfia hagyományait követve ligatúrákat és a szöveghez jobban illeszkedő ugráló számokat használunk. Mindezeken felül pedig a weben oly ritka, dinamikus hasábolást is használunk, hogy magas, 2k feletti felbontáson is könnyen olvashatóak legyünk.

Mindez jól hangzik, de ahány készülék, sokszor annyi beállítás, felbontás, viewport etc., így lehet, hogy valahol nem jöttek be a számításaink. Ha ezt tapasztalod, akkor kérek írj nekünk a megújult kapcsolatfelvételi űrlapon keresztül. Köszönjük!

Akadálymentesség

A szabad szoftverek a bárki számára szabadon hozzáférhető tudásról is szólnak. Ennek szellemében különösen odafigyeltünk az oldal akadálymentesítésére: Már a dizájn folyamat legelején hangsúlyos volt a hozzáférhetőség. A rendelkezésünkre álló információk alapján mindenhol megfelelő a kontraszt és a betűméret, továbbá a képernyőolvasót használó olvasóink számára tooltipeket, tartalomleírást (pl. képeknél) és ARIA címkéket helyeztünk el. Mivel a motor saját termék, és nincs mögöttünk egy nagy csapat szerteágazó tudása (mint pl. a Drupal csapatnál), így lehetnek hiányosságok, problémák. Ezért köszönettel várunk minden olvashatósággal, képernyőolvasóval történő használatról, billentyűzettel vezérelhetőségről és általános akadálymentességről szóló visszajelzést a megújult kapcsolatfelvételi űrlapon keresztül. Köszönjük!

Nyilvános béta

No de mit is jelent a nyilvános béta?

Először is azt, hogy az új tartalmak még nem itt jelennek meg. Persze előfordulhatnak kivételek, de az a szabály, hogy amíg nem szólunk, addig a régi oldal az „éles”. Jelen állapotában ez az oldal sokkal inkább egyféle tech. preview / technológiai előzetes, amit körbe lehet kattintani. A kapcsolatfelvételi űrlapon keresztül várjuk a visszajelzéseket, észrevételeket, hibajelentéseket, véleményeket, javaslatokat, kérdéseket, egyszóval mindent, amit csak meg szeretnél osztani velünk.

Ami kész van: minden, amire rá tudsz kattintani, ideértve a keresőt is! :)

Ismert hibák, avagy ezeket kérlek ne jelentsd:

  • Nem működnek a kenyérmorzsák (kivéve a főoldalon és a keresőben)
  • A jobb oldali kis képek valójában nagy képek
  • A kártyákon még optimalizálatlanok a képek
  • A jobb oldali címkefelhő kivonat és az összes címkét tartalmazó címkefelhő tartalma nem (mindig) egyezik
  • A tartalomtípus linkje a kártyán 404-re vezet

Ha hibát találtál, akkor kérlek, a kapcsolatfelvételi űrlapon keresztül jelezd nekünk a következő adatokkal:

  • Készülék típusa
  • Felbontás
  • Használt böngésző neve és verziószáma
  • Probléma pontos helye (az oldal melyik része)
  • A probléma reprodukálásának folyamata
  • Probléma jelentkezésének ideje (időzónával együtt, ha nem magyar időzónából böngészel minket)

Adatvédelem

A Szabadpingvin az általunk, az Európai Unió területén belül üzemeltetett szerver(ek)en fut. A látogatói statisztikák készítéséhez Matomót (korábban Piwik néven futott) használunk, ami egy szabad forrású, GDPR kompatibilis webanalitikai szoftver. Természetesen ez is a fent említett szervereken fut.

Mint azt észrevehetted, nincs az oldalon süti tájékoztató. Ez nem hibából vagy az oldal béta jellegéből ered. A tájékoztató nem léte annak köszönhető, hogy az oldal összes komponensét mi szolgáljuk ki, a (profilalkotásra nem használható) statisztikát mi dolgozzuk fel, nem használunk harmadik féltől származó adatokat és nem is továbbítunk oda semmit. Ilyenkor a GDPR úgy rendelkezik, hogy a weboldal működéséhez szükséges sütik használatához nem szükséges beleegyezést kérnünk. Nálunk pedig – a dolgok jelen állása szerint – csak és kizárólag a Matomo használ sütiket.

Ha bővebben érdekel a téma, akkor az oldal felhasználási feltételei ezen a linken tekinthetőek meg, míg az adatkezelési szabályzatot ide kattintva olvashatod.

További tervek

Az új tartalmak akkor jelennek majd meg itt, ha elértük a mágikus 1.0 verziószámot. Ennek alapfeltétele, hogy ne legyen funkcióbeli különbség a két oldal közt, illetve ne legyen a jegykezelőben a verzióhoz rendelt hiba. Ez a terveink szerint olyan 3-4 hét múlva esedékes vagy akkor, amikor már eléggé bízunk az új motorban. Szólni fogunk!

Ezután – az új tartalmak írásával párhuzamosan – a régi tartalmak átvitele kezdődik meg. Itt nem egyszerű fogd-és-vidd megoldásról van szó, hanem tartalomtól függően bizonyos szintű átdolgozásról is.

Köszönjük, hogy elolvastad a bejelentést, hálásak leszünk, ha végigkattingatod az oldalt, és szólsz nekünk, ha hibát találsz.