Blog (92)
Komentarze (104)
Recenzje (0)

CMS do serwowania WWW w kilkunastu KB ? Sobieski na GitHubie i w moim labie

@marcinw2CMS do serwowania WWW w kilkunastu KB ? Sobieski na GitHubie i w moim labie11.11.2019 23:52

Do napisania tego wpisu skłoniło mnie kilka rzeczy:

  1. przeczytałem https://www.chip.pl/2019/11/alicja-polska-sztuczna-inteligencja/ (znowu poczułem, że to co polskie może być dobre)
  2. należy pisać o rozwiązaniach lekkich i wymieniać się doświadczeniami (a w każdym razie jest to zabawniejsze niż używanie gotowców)
  3. lekka nostalgia, a może chandra (w 2011 moja prywatna strona zaczęła korzystać z jednego z systemów CMS, czas na zmiany i zamknięcie pewnego rozdziału - a ponieważ od zawsze byłem fanem tworzenia treści elektronicznych, kilka słów również o tym co było kiedyś...)

Jeżeli kogoś nie interesują takie tematy jak PHP, proszony jest o poprzestanie w tym miejscu...

Etap 1

Na początku tworzyłem swoje teksty w plikach tekstowych albo korzystałem z binarnych własnościowych formatów - pierwsze rozwiązanie pozwalało generować mniejsze pliki (używano wtedy kodowania na 8 bitach i niezgodnych ze sobą stron kodowych i standardów takich jak Mazovia, strona kodowa 825 czy Windows 1250), drugie wymagało używania aplikacji komercyjnych.

To był czas MS-DOS (a więc również komendy edit) i Norton Commandera, Windows 3.1 i 3.11, potem oczywiście pojawiło się Chicago (Windows 95) i Windows 98...do tego Internet Explorer 2.0, 3.0, 4.0 i odpowiednie wersje Netscape.

Troszkę zapoznałem się z RedHatem i Mandrake/Mandrivą, zacząłem eksperymentować z Internetem (202122)... pochłaniałem również namiętnie Bajtka, PC-Kurier, Entera, Chipa... w których bardzo dużo można było poczytać o wykorzystaniu Internetu dla dobra ludzkości.

I wtedy otworzyłem stronę... która pojawiła się w wersji offline na CD.

Pionierskie dla mnie poniekąd czasy - adres wykorzystywał alias topnet.pl, początkowo używałem darmowego serwera free.com.pl.

Etap 2 (1999-)

Windows 2000 (i problemy z gubieniem plików Rejestru na komputerze z chipsetem VIA), potem nieśmiertelny XP... w międzyczasie pojawiło się też zauroczenie BeOS.

Poniekąd mieliśmy już ustawę o prawach autorskich, a ja tworzyłem strony HTML (również z JavaScript, ale bez Flash) i eksperymentowałem z formatami takimi jak HLP (własnościowy format aplikacji WinHelp) albo CHM (Microsoft Compiled HTML Help czyli archiwa z plikami HTML i nagłówkami).

Najbardziej bliski mi był chyba ten ostatni - przygotowałem np. serię artykułów do polskiego Chipa, w ramach własnych ćwiczeń wykonałem również konwersję roczników magazynów komputerowych (Enter, Chip, itd.) i Wiedzy i Życia, opowiadań klasyków, Pojęciownika Komputerowego czy własną wersję The HTML Reference Library 4.0 albo The Hardware Book.

W tym okresie moje strony były statyczne (tzn. nie były budowane z użyciem żadnego engine), za to miałem już stały Internet (Neostrada 128).

Życie zmusiło mnie do rejestracji własnej domeny (topnet.pl był i się zmył), a stronę przygarnął Fan Klub Nokii Radka Wrocławskiego ( https://web.archive.org/web/20040325034650/http://www.fkn.pl/). Dużo udzielałem się w sprawach związanych z GSM - opis netmonitora, projekt Gammu, itp. (więcej o tamtych czasach w podsumowaniu).

To były romantyczne czasy upowszechniania się telefonów komórkowych - 3,66 PLN z VAT z Tak-Tak (taktowanie co minutę) i brak SMS odchodziły do lamusa, Idea była już dwuzakresowa, itd.

Gimby nie znajo, pewien smak technologii tamtych czasów może dać np. strona domowa pana Pawła Wimmera.

Etap 3 (2004-)

Początkowo czasy Windows XP SP2 i wiara w Pentium 4 (miałem i używałem zarówno Northwooda jak i Prescotta), potem pojawiły się dwurdzeniowce (Turion 64 X2 i Core Duo) i koszmarek pod nazwą Vista (nie chcę słyszeć, że ten system był piękny i w ogóle - w stosunku do XP czy oryginalnego NT 4.0 marnotrawił zasoby wręcz gigantycznie i zdania nie zmienię).

Miałem wtedy dwie strony (oprócz własnej było gammu.org) i używałem CMS takiego jak MediaWiki, jak również pracowałem nad własnymi aplikacjami PHP.

W tym czasie zacząłem migrować do formatów darmowych takich jak ODT albo DOCX, zaś w TV leciały reklamy z prawdziwym jajem takie jak "Simplus Team vs Heyah" (polecam wyszukać na YouTube, chodzi o kampanię "Dziewczyna" z ofertą 39 groszy do swojaków) czy "Reklama - Era Tak-Tak - Ratownicy" (znów kłania się YouTube).

Nokia straciła znaczenie i w końcu moje Gammu+ stało się już wspomnieniem (tzn. wielu użytkowników korzysta z Gammu, natomiast ja przestałem się zajmować tą tematyką).

Etap 4 (2010-)

Stronę postawiłem na Drupalu (wydawał się przyszłościowy w porównaniu do MediaWiki), zamknąłem gammu.org i ponieważ ciągnie wilka do lasu, to zacząłem zajmować się takimi systemami mobilnymi jak Android, Tizen, iOS czy Firefox OS.

Zaczęło się od Galaxy S Samsunga (iPhone wydawał się jakiś taki okaleczony), interesowałem się tematem używania XML do kodyfikacji prawa - to wtedy powstały m.in. takie projekty jak Przepisy Drogowe (enginy dla różnych platform + jeden zestaw danych).

Słowa klucz z tamtego okresu - XML, JSON, UTF-8.

Po serii artykułów moich "ulubionym" Linuxem zostało się Ubuntu (chyba z lenistwa). Coraz mniej korzystałem z Gadu-Gadu i ICQ, coraz więcej w WhatsApp i Facebooka, miałem na koncie również pierwsze nieśmiałe próby z GitHubem.

Etap 5 (2019-)

Gdy mówię video, myślę YouTube... Gdy mówię poczta, myślę GMail...

Internet jest zdominowany przez kilka wielkich korporacji i jedną przeglądarkę, niestety to co według nas stało się częścią kultury, przechodzi do historii i jak widać w nowym regulaminie YouTuba wielu z nas może być niedługo niemile zaskoczonych.

To nie jedyny przykładem tego, że właściwie wszystko podporządkowane jest mamonie - czy ktoś pamięta Flickra i usunięcie milionów zdjęć?

Nasze komputery są potężniejsze niż kiedyś, mamy więcej rdzeni niż kiedykolwiek, ale czy potrafimy z tego jeszcze korzystać?

Coraz częściej słychać o wyciekach danych i Internet nie jest już wyłącznie romantycznym miejscem, gdzie ludzie chcą się dzielić - standardem są gównoburze, artykuły sponsorowane czy wszechobecne reklamy.

Liczy się głównie to, żeby dokopać i mieć sensację - większość ludzi interesuje co jest na Allegro, Ali, co się dzieje na Instagramie i w kilku innych miejscach... i nic więcej, a w każdym razie takie mam wrażenie.

Od strony technicznej - JQuery odchodzi do lamusa zastępowane innymi "lekkimi" rozwiązaniami i choć w różnych serwisach teksty tworzy się korzystając z ładnego edytora, to wynikiem edycji jest stary dobry HTML.

Sam osobiście obecnie generuję kod HTML (zapisywany z użyciem UTF-8), czasem pliki MD, ODT, DOCX, PDF albo EPUB.

I w tym miejscu podjąłem decyzję o przekształceniu swojej strony z Drupala na własny prosty engine.

Projekt nosi nazwę Sobieski.

Założenia projektowe

  • Artykuły i komentarze do artykułów są zapisywane w plikach tekstowych (UTF-8)
  • Engine ma być prosty i ma wszystko generować automatycznie
  • Interface ma być dostosowany do urządzeń mobilnych i desktopowych
  • Strona ma zapamiętywać ilość odwiedzin (tzn. ile razy otwarto dany artykuł - jest to zliczane jako ilość wizyt z różnych adresów IP, przy czym wizyta z jednego adresu jest zaliczana jako nowa po ustalonym interwale czasowym)
  • Generowane URL są niezmienne
  • Całość ma być możliwie mocno zoptymalizowana
  • Nie ma edycji komentarzy ani złożonego trackingu (niepotrzebne)
  • Cookies i JavaScript są używane w ostateczności

Technologia

Od strony serwera PHP (znam go od lat i jest wystarczający) + SQLite (powinien być wystarczający do zapisywania liczników odwiedzin) + pliki UTF-8, od strony klienta prosty HTML z prostym CSS (JavaScript jest używany dosłownie w jednym miejscu).

Format plików z artykułami

Pliki mają nazwy zgodne z regułą "DATA_ID.txt" (np. 20190404_256.txt), co pozwala je łatwo posortować.

Treść jest zapisana w kolejnych linijkach: nagłówki, pusta linia, (opcjonalnie: tekst podsumowujący i tag zamykający), tekst, (opcjonalnie jeden lub więcej komentarzy)

Przykłady:

Title:Test page 1
Author:marcin
When:11 Nov 2019
Taxonomy:Polski,Polski artykuł,x86

Page teaser (but no beginning of page)

Page context

<a href="?q=">Second page</a>
Title:Example page 2
Author:marcin
When:11 Nov 2019
Taxonomy:English,x86,English article

Page teaser and beginning of page

Page context

<a href="?q=">First page</a><p><a href="?q=tes">First page</a>


Title:my comment 1
ID:369
Author:Anonymous (not verified)
When:1 Aug 2010

Text

Title:my comment 2
ID:370
Author:Anonymous (not verified)
When:1 Aug 2010

<b>Text</b>

Przykładowe linki

  • ?page=5 - piąta podstrona strony głównej
  • ?q=taxonomy/term/dobreprogramy.pl&page=2 - druga podstrona strony z artykułami z taxonomią "dobreprogramy.pl"
  • ?q=node/369 - artykuł o ID 369
  • ?q=time/2013-12 - lista artykułów z grudnia 2013
  • ?q=przepisy_drogowe - artykuł o aliasie "przepisy_drogowe"

    Podsumowanie

    Napisałem moduł importujący dane z Drupala, przekształciłem swoje artykuły i wygląda na to, że wszystkie założenia są spełnione i całość jest bardzo lekka i elastyczna (w każdym razie wystarczająca do moich celów). Do edycji używam edytora tekstowego, wersjonowanie plików tekstowych wykonuję wykorzystując git. Strona działa nawet bez JavaScript (jest używany jedynie do kolorowania linków, a dokładniej ustawiania stylu odnośników), cookies są używane jedynie do zapisywania info o tym, czy włączony jest tryb ciemny i mobilny.

    Phase 1 completed.

    Na chwilę obecną muszę popracować nad refaktoringiem kodu (to zawsze jest potrzebne), nad wydajnością wersji dark (Firefox Preview ma z tym problem - https://github.com/mozilla-mobile/fenix/issues/6549) i wyglądem.

    Wersja na dzisiaj (cały engine ma ok. 25 KB kodu):

    https://github.com/marcinwiacek/Sobieski

    [list][item]

    [/item][/list]

    Jeżeli ktoś na tym portalu byłby zainteresowany tą tematyką, z chęcią ją rozwinę...

    Szanowna Użytkowniczko! Szanowny Użytkowniku!
    ×
    Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

    Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

    Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

    Kto będzie administratorem Twoich danych?

    Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

    O jakich danych mówimy?

    Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

    Dlaczego chcemy przetwarzać Twoje dane?

    Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

    Komu możemy przekazać dane?

    Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

    Jakie masz prawa w stosunku do Twoich danych?

    Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

    Jakie są podstawy prawne przetwarzania Twoich danych?

    Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.