22 Feb 2025

Początki serwisu mucka.pro

Dzisiaj 22 lutego 2025 roku postanowiłem, że mój mały projekt napisany na kolanie, jest gotowy do wystawienia na świat. Intensywne prace nad nim prowadziłem przez kilka weekendów w ciągu ostatniego roku.

Sam pomysł nie jest nowy. Miałem nadzieje, że powstanie, już wiele lat temu. Ciężko wskazać jeden konkretny powód czemu nie udało mi się dociągnąć tego projektu wcześniej. Z pewnością duży wpływ na to miały zbyt ambitne plany i brak wystarczającej ilości czasu do ich realizacji.

Etapy powstawania serwisu

Łącznie powstały cztery generacje tego serwisu. Trzy pierwsze zostały pogrzebane zanim zostały opublikowane. Żadna, łącznie z czwartą nie wydają się wystarczająco dobre to opublikowania gdziekolwiek. Niestety czwarta jest pechowa i została wypuszczona na świat pomimo wielu braków i niedociągnięć.

Czwarta generacja

Prawie dwa lata temu, 10 sierpnia 2023 roku napisałem pierwsze linijki obecnego generatora strony. Skrypt miał 46 linijek, i w takim stanie przeleżał nieruszony na dysku laptopa przez kolejnych kilka miesięcy. Dojrzewał.

Wróciłem do niego dopiero w okolicach kwietnia 2024. Ustaliłem minimalny zestaw funkcji jakiego oczekuje od serwisu, żeby nadawał się do wydania na świat. Zrobiłem inwentaryzację poprzednich generacji Zastanowiłem się ile z powstałego wcześniej kodu mogę wykorzystać tutaj. Przewertowałem stare notatki, plany działania, oceniłem co mi się podoba, co było bez sensu. Dokończyłem pierwszy artykuł 99f459bd, który powstawał w bólach od listopada. Znowu odłożyłem projekt do dojrzewania.

W okolicach sierpnia 2024 usiadłem nad CSS'em strony. Moje rozważania zaowocowały artykułem 0954a4d7. Projekt zaczął nabierać kształtów.

Kilka weekendów między wrześniem a listopadem poświęciłem na dodawanie kolejnych elementów z mojej listy podstawowych funkcjonalności.

Projekt znowu przeszedł w fazę dojrzewania. Tym razem dojrzewanie trwało jedynie 2 miesiące!

W lutym 2025 udało mi się pospinać dotychczasową robotę w całość. Mimo, że widzę jeszcze wiele niedoróbek, postanowiłem opublikować serwis.

Chronologicznie jest to czwarta generacja tego serwisu. Poprzednich nigdy nie opublikowałem.

Rysunek 1. Czwarta generacja serwisu mucka.pro

Trzecia generacja

Ponad dwa lata temu, 25 lutego 2023 roku ostatecznie poddałem poprzedni pomysł na ten serwis. Trzecia generacja była bardzo podobna do obecnej. Strona była statyczna, wygenerowana przez dedykowany skrypt w pythonie. Część pomysłów z tego skryptu wykorzystałem w czwartej generacji.

Chciałem go szybko po starcie opublikować, nie wyszło. Urodziłem wtedy pomysł dokumentowania procesu powstawania serwisu w formie krótkich artykułów. Miały one stanowić początkową treść serwisu. Powstały wtedy 2 artykuły. Przed porzuceniem tego projektu, zacząłem pisać trzeci.

Sam pomysł serii Budowanie serwisu mucka.pro przetrwał do generacji czwartej. Jednak samą treść artykułów zredagowałem od nowa.

8 grudnia 2022 roku napisałem długiego newsa mucka.pro startuje. Zabrałem się za konfigurację serwerów. Po czym uznałem, że całość wygląda za słabo jednak, i anulowałem plany.

Interfejs użytkownika był również podobny do czwartej generacji. Niestety wersja desktopowa CSSa napsuła mi tyle krwi, że nie zrobiłem nigdy wersji na urządzenia mobilne.

Ta generacja była na bardzo dobrej drodze do skończenia. Jednak wtedy wydawała mi się mocno kulawa i ją porzuciłem. Nie był to najszczęśliwszy pomysł. Czas życia tego projektu to były około 3 miesiące.

Najbardziej irytującym fragmentem był CSS. Zmuszenie strony, żeby wyglądała i działała tak jak bym chciał kosztowało mnie dużo energii. Efekt był bardzo mizerny. Motywacja osiągnęła dno. Na projekt przeznaczałem raptem kilka godzin miesiącu. Projekt poddałem jako nierokujący.

Udało mi się wtedy podjąć próbę zaprojektowania logo strony. Niestety był to tylko gwóźdź do trumny tego projektu. Efekt był daleki od zadowalającego.

Rysunek 2. Trzecia generacja serwisu mucka.pro

Druga generacja

Prawie cztery lata temu 8 sierpnia 2021 roku zakończyłem rzeźbić na kolanie drugą generację tego serwisu. Kreśliłem ją z długimi przerwami pół roku. Ta generacja oparta była o bibliotekę flask. Efekt był nie najgorszy, niestety porzuciłem go na dwa lata. Po tym czasie uznałem, że nie sensu do niego wracać.

Interfejs użytkownika był mocno dopieszczony, dużo bardziej niż na dzień dzisiejszy jest interfejs w czwartej generacji. Próbowałem go zaprojektować tak, aby prosto i automatycznie skalował się na urządzenia mobilne. Niestety finalnie zderzyłem się ze ścianą. Skalowanie może i działało, ale sam interfejs był nieużywalny na ekranach węższych niż 800 pikseli. Cała implementacja wymagała gruntownego przepisania, a sam interfejs przeprojektowania, aby rokowania na urządzenia mobilne były pozytywne.

Sama biblioteka flask okazała się nie wspierać wielu moich genialnych pomysłów. Wiele elementów interfejsu użytkownika zostało wydmuszkami, bo nigdy nie udało mi się zaimplementować ich funkcjonalności. Bardzo często łapałem się na walczeniu z biblioteką zamiast na rozwijaniu samego serwisu. Był to główny powód poddania tej generacji.

Biblioteka flask fajnym narzędziem do prototypownia, szczególnie jak potrzebuje na szybko napisać jakiś mikroserwis. Tutaj niestety chciałem osiągnąć dużo funkcjonalności, które często zwaliło by się na javascript, czego chciałem uniknąć.

Rysunek 3. Druga generacja serwisu mucka.pro

Pierwsza generacja

Prawie sześć lat temu 6 sierpnia 2019 roku zakończyłem pracować nad pierwszą generacją tego serwisu. Pierwsza generacja oparta była na bibliotece blogc opisywanej jako kompilator blogów.

Sama biblioteka blogc jest mimo wszystko bardzo przyzwoitym kawałkiem kodu. Niestety podobnie jak przy drugiej generacji, biblioteka oferowała o wiele mniej niż oczekiwałem. Dodatkowo, działałem bez jakiegokolwiek ramowego planu. Nie byłem pewny jak chciał bym aby serwis działał. Dużo eksperymentowałem.

Byłem dość sprawny w pisaniu w C, ale wtedy wydawało mi się, że eksperymenty w pythonie były by dużo szybsze niż w C. To że się myliłem zrozumiałem dopiero 2 lata później. Największy problem był między krzesłem a monitorem.

Gdybym wtedy zrezygnował z kilku funkcji, strona mogła by powstać w kilka weekendów. Niestety pogrzebałem ten projekt z nadzieją, że przyspieszę obrót spraw.

Rysunek 4. Pierwsza generacja serwisu mucka.pro

Początki

Samą domenę mucka.pro zakupiłem ponad 9 lat temu, 8 lutego 2016 roku. Wtedy zakładałem, że w ciągu maksymalnie kilku tygodni powinienem mieć gotowy jakiś szkic tego serwisu. Nic takiego się nie stało przez następnych parę lat.

Nigdy nie zajmowałem się zawodowo ani projektowaniem stron internetowych, ani administrowaniem nimi. Dlatego ten projekt był zawsze poboczny.

Przed opisaną wyżej pierwszą generacją, było dużo eksperymentów, mniej i bardziej udanych, jednak żaden nie przybrał zwartej formy. Po stronie UI eksperymentowałem z biblioteką bootstrap (która powstała na wewnętrzne potrzeby nieistniejącego już twittera, rest in peace). Nie przekonał mnie do siebie, głównie dlatego, że był mocno napakowany javascript'em. Potem testowałem bibliotekę skeleton, bardzo wygodna w użyciu, do dzisiaj często z niej korzystam.

Udało mi się wykorzystać Django do kilku projektów. Nie przekonał mnie jednak jako baza mojego serwisu. Miałem okazję kilkukrotnie wykorzystać Angulara. Nie zostałem niestety fanem tego tego narzędzia.

Przez dłuższą chwilę polubiłem się z coffee scriptem. Miłość się skończyła, kiedy musiałem debugować nietrywialne bugi we własnym kodzie kodzie.

Prowadząc ćwiczenia na uniwersytecie przez pewien czas, udało mi się opublikować prostą statyczną stronę na potrzeby komunikacji ze studentami. Miałem nadzieję, że ten projekt wyewoluuje w większy serwis. Nigdy tak się nie stało.

Podsumowanie

Domknięcie projektu który od 9 lat czekał w szufladzie jest sporym wyzwaniem. Wszakże, skoro czekał 9 lat, cóż mu przeszkadza poczekać kolejny rok. Skoro już etap startu mam za sobą, aktywna pozostaje jedynie kwestia, jak długo ten projekt pożyje. Ale nawet jak bym miał go pogrzebać niedługo po starcie, dobrze było do etapu startu dobrnąć.

release date: 22 Feb 2025
language: pl
stage: release
type: article
tags: maitenance