To połączenie moich dwóch światów – webdesignu i Amigi.
Amiga jest już tak bardzo retro, a maszyny liczące tak mocarne, że mogą ją emulować w języku skryptowym na stronie internetowej. I to działa.
No dobra, javascript mocno korzysta z UAE. Ale wciąż – to działa. W przeglądarce. Lokalnie.
Jeśli masz odpowiednie kickstarty (takie amigowe ROMy) i odpowiednie ADFy (czyli pliki będące zmapowanymi amigowymi dyskietkami np. z grami)) to możesz odpalić emulację Ami w przeglądarce w ciągu kilku sekund:
Czasem laguje, czasem nie do końca działa, ale w większości przypadków śmiga. Odpaliłem już Workbencha, kilka gierek i kilka dem scenowych. Nic do zarzucenia.
Nawiązując do artykułu Tworzenie strony www za pomocą ChatGPT3 (wyłącznie!) z marca 2023 i do artykułu Tworzenie strony www za pomocą ChatGPT4o (wyłącznie!) z września 2024, przeprowadziłem kolejną próbę, z ChatGPT 5.2 Auto (czyli raczej „Thinking” bo za każdym razem miętolił zapytanie kilka-kilkanaście minut).
Tym razem wyniki są raczej porażające.
Pierwsze drugie: „Napisz kod prostej strony www”
Odpowiedź: ChatGPT wygenerował dla mnie plik zip w którym był plik html, css i js. Wszystko bardzo ładnie zaprogramowane i ułożone w kodzie. Sensowne nazwy zmiennych, klas i identyfikatorów, wcięcia itp. Nie będę wklejał kodu ale serio nie ma się do czego przyczepić. Wynik stanowi już gotową sensowną, w pełni responsywną stronę z zakładkami będącymi odnośnikami do miejsc w środku (one-page) i przykładową blokową treścią. Na stronie jest nawet przełącznik wersji jasnej, ciemnej i auto. Belka górna zostaje przy górnej krawędzi, z efektem półprzezroczystości i rozmycia tego co pod nią (efekt a’la glass). Jedyna niedoróbka to tło które się wertykalnie powtarza zamiast zostawać przy górnej krawędzi. Po poprawieniu tego i dodaniu treści – strona może się już nadawać do publikacji w necie. Jest dobrze.
Projekt wygląda tak:
Strona jest fajna, ale trochę generyczna. Postanowiłem poprosić o dodatkowe cechy.
Drugie polecenie: „Popraw tło strony (niech będzie przyklejone do górnej krawędzi cały czas). Dodaj więcej zakładek z przykładowymi artykułami tekstowymi z przykładowymi ilustracjami. Dodaj do tej strony dodatkowy kolor prowadzący. Dodaj nietypowe skośne elementy dekoracyjne. Bardziej zróżnicuj typografię.”
Odpowiedź: ChatGPT wygenerował dla mnie drugi plik zip z zawartością. Wykonał wszystkie moje polecenia, chociaż zamiast ilustracji dodał gradienty css. (napisał w treści strony jak to zmienić na obrazki). Tło już się „trzyma”. Dodał też wpisy (zajawki artykułów) z przełącznikiem kategorii. W zasadzie poza tymi skośnymi elementami które mi się w ogóle nie podobają – to nie mam uwag. Strona jest fajna, chociaż dalej generyczna.
Postanowiłem podać mu trochę konkretnych wskazówek i instrukcji, poleciłem użyć ikon i przykładowych ilustracji.
Polecenie trzecie: „Dodaj jeszcze więcej nietypowych elementów, jakieś motywy kontrastowe, może zaznaczone ważne teksty (marked) jak markerem. Dodaj kontrastowy kolor jasnozielony (w wersji ciemnej) i pomarańczowy (w wersji jasnej). Dodaj prawdziwe ilustracje (możesz użyć Lorem Picsum). Dodaj ikony (możesz użyć Google Fonts). Dodaj kontrolkę zmiany języka (pl/en/fr/de). Wygeneruj proste logo w nagłówku i w stopce. W stopce powtórz listę zakładek i dodaj krótki tekst informacyjny oraz odnośniki to portali społecznośiowych). Dodaj animacje po naciśnięciu elementów.”
Odpowiedź: Kolejny plik zip z zawartością (nazwy plików zip zawierają numerację wersji).
Ok, obie wersje – dark i light są wersją light. Poza tym wszystko gra i strona jest ładna, ale nadal bardzo generyczna, typowa. Są ilustracje, są ikony. W zasadzie można na niej spokojnie pracować. Wygląda na to że trudno jest zmusić algorytm do wygenerowania czegoś bardziej unikalnego. Ale spróbujmy ostrzej:
Polecenie czwarte: „Przeprojektuj stronę tak żeby miała nietypowy układ i wygląd, unikalny, wyróżniający się na tle innych stron internetowych. Możesz zmienić ułożenie szablonu elementów i sekcji. Użyj mniej gradientów a więcej pełnych kolorów. Popraw wersję dark – ma ona mieć ciemne tło. Zredukuj o połowę ilość zaokrągleń. W kilku miejscach strony stwórz duże elementy dekoracyjne nie mające żadnego zastosowania funkcjonalnego, ale wyglądające ładnie. Powiększ logo trzykrotnie. Ogólnie zmień stronę na taką która będzie bardziej unikalna, nietypowa, jedyna w swoim rodzaju.”
Odpowiedź: Kolejny plik zip z zawartością (wersja 4.).
No dobra, ta strona jest inna, ale to raczej bałaganienie niż rozsądnie projektowany inny układ. Lewa kolumna ok, ale już selecty języka i wersji kolorystycznej – za wysokie, po rozwinięciu niewidoczne. To błąd. Główna kolumna jest poprzesuwana nieelegancko. Wszystko to byłoby do szybkiego poprawienia gdyby strona była rzeczywiście unikalna, a nie jest. Jest tylko inna od poprzednich.
Podsumowując:
Jest o wiele lepiej niż rok temu i dwa lata temu. Jest potężny progres. Ale jednocześnie zdecydowanie (patrząc także na inne strony istniejące w Necie wygenerowane przez różne LLMy) algorytmy trzymają się kurczowo jednego, unwersalnego layoutu i wyglądu. Moim zdaniem nudnego i ciekawego tylko na pierwszy rzut oka (ale na drugi już nie).
Jest to zdecydowanie wsparcie w pracy projektanta www, ale też zdecydowanie obecne AI go nie zastąpią, a przynajmniej nie całkowicie.
Jeden ze scenowców stworzył skrypt js który jest programem graficznym posiadającym dokładnie te same opcje co Deluxe Paint II na Amigę (w tym color cycle!). Wygląda inaczej, ale opcje są te same i działają. I nawet można odpalić obrazek w emulowanym „prawdziwym” DPaincie na emulowanej Amidze – a wszystko na stronie www.
Jakiś czas temu z moimi synami i z niewielką pomocą AI (ChatGPT 4o wtedy jeszcze – i nie jestem przekonany czy bardziej poprawiał błędy czy może je generował) stworzyliśmy prostą grę w html/js/css. Na kilka miesięcy o niej zapomniałem, przypomniałem sobie dopiero teraz, toteż zapisuję na blogu dla potomności (i głównie dla siebie samego):
Jak wiadomo – za młodu udzielałem się na demoscenie. Amigowej demoscenie. Jeśli nie wiesz co to demoscena komputerowa, przeczytaj tutaj: https://pl.wikipedia.org/wiki/Demoscena.
Postanowiłem na bloga wrzucać cyklicznie dema które mi się najbardziej podobają. Nie będę cudował, od razu wrzucę linki do YT żeby każdy mógł sobie zobaczyć.
Na pierwszy ogień staroć z fajną muzyką i vibem. Smoke Bomb grupy Ozone z 1999.
Po półtora roku postanowiłem powtórzyć eksperyment, z najnowszą dostępną wersją ChatGPT – 4o (poprzednio była to wersja 3). Można się spodziewać że będzie lepiej. Ale czy znacząco?
Na początku starałem się ponowić te same polecenia, ale że AI radziła sobie o wiele lepiej niż poprzednim razem – wydawałem jej polecenia bardziej wymagające. Oto zapis:
[aha – mój ChatGPT ma dwa ogólne przykazy żeby lepiej mi się z nim pracowało: 1) jest kobietą :) i 2) ma redukować ilość komentarzy do niezbędnego minimum (najlepiej do 3 zdań)]
—
Polecenie: Napisz kod prostej strony www
Odpowiedź: Oto kod dla prostej strony internetowej. To prosty szablon strony z nagłówkiem, treścią główną i stopką.
Polecenie: Do powyższego szablonu dodaj artykuł o przykładowej treści. Odpowiedź: Oto rozszerzona wersja strony internetowej z dodanym artykułem o przykładowej treści. Do strony dodałam artykuł z tytułem, kilkoma sekcjami oraz przykładową treścią na temat wpływu technologii na komunikację i edukację.
Polecenie: Do powyższego kodu dodaj menu oraz stopkę strony oraz rozbuduj style css aby strona była bardziej atrakcyjna wizualnie. Zastosuj zróżnicowane typy czcionek i zwiększ objętość artykułu. Dodaj też ilustracje.
Odpowiedź: Oto rozbudowana wersja strony z dodanym menu, rozbudowaną stopką, ulepszonymi stylami CSS oraz ilustracjami: Zmiany: Zwiększono objętość artykułu: Rozszerzony o dodatkowe sekcje, takie jak wpływ na zdrowie oraz przyszłość technologii. Dodano menu nawigacyjne: Umożliwia łatwe poruszanie się po stronie. Rozbudowano stopkę: Zawiera teraz linki do polityki prywatności, warunków użytkowania oraz sekcji kontaktowej. Ulepszono styl CSS: Zastosowano zróżnicowane czcionki, zaokrąglone krawędzie elementów i cienie dla większej atrakcyjności wizualnej. Dodano ilustracje: Przykładowe obrazy związane z tematyką artykułu.
Polecenie: Powyższy kod zmodyfikuj tak, żeby strona była bardziej kolorowa. Dodaj tematyczne ilustracje z picsum.photos i zróżnicuj czcionki (dodaj czcionki z Google Fonts). Rozwiń artykuł, podziel go na sekcje. Menu strony niech się odnosi do tych poszczególnych sekcji i po kliknięciu pozycji menu użytkownik ma być przeniesiony do konkretnej sekcji. Cały kod CSS niech będzie umieszczony w pliku HTML.
Odpowiedź: Oto zmodyfikowana wersja strony, bardziej kolorowa, z ilustracjami z picsum.photos, czcionkami z Google Fonts oraz rozbudowanym artykułem podzielonym na sekcje, do których odnosi się menu: Zmiany i nowe funkcje: Interaktywne menu: Każda pozycja w menu przenosi użytkownika do odpowiedniej sekcji na stronie. Teraz strona wygląda bardziej atrakcyjnie wizualnie, a użytkownicy mogą łatwo poruszać się po jej treści. Kolorowa strona: Nagłówek, menu, stopka i inne elementy strony mają różne, żywe kolory (pomarańcz, czerwony, zielony). Google Fonts: Użyto czcionek Lobster dla nagłówków i Roboto dla reszty tekstu, co poprawia wygląd i czytelność. Ilustracje z picsum.photos: Zastosowane dynamicznie generowane ilustracje, które są związane tematycznie z każdą sekcją. Rozbudowany artykuł: Podzielono artykuł na sekcje (Komunikacja, Zdrowie, Przyszłość), a menu strony pozwala nawigować bezpośrednio do tych sekcji.
Polecenie: Zmodyfikuj kod strony: Nad stopką umieść dużą wycentrowaną ilustrację w formie koła. Ilustracje na stronie modyfikuj kod tak, żeby ilustracje na stronie były o połowę mniejsze, pozycjonowane z prawej strony i oblane tekstem. Zmień tło nagłówka strony na takie które będzie ilustracją z nałożonym na nią pomarańczowym kolorem o przezroczystości 90%. Powiększ czcionki nagłówków. Pod nagłówkiem i nad treścią umieść animowany slider z trzema ilustracjami i przykładowymi tekstami na nich.
Odpowiedź: Oto zmodyfikowany kod strony, uwzględniający Twoje wymagania: Modyfikacje: Ilustracje oblane tekstem: Ilustracje są teraz o połowę mniejsze, pozycjonowane z prawej strony i oblane tekstem. Tło nagłówka: Nagłówek ma tło z ilustracją i nałożonym na nią pomarańczowym kolorem z przezroczystością 90%. Powiększone czcionki nagłówków: Nagłówki (h1, h2, h3) mają większe rozmiary. Animowany slider: Pod nagłówkiem umieściłam slider z trzema ilustracjami i tekstami. Ilustracja nad stopką: Nad stopką dodałam wycentrowaną ilustrację w formie koła.
Polecenie: Popraw błędy na stronie: nad całym obszarem strony jest szary pasek, zlikwiduj go; slider ma być dwukrotnie wyższy, każdy slajd ma mieć szerokość całego okna przeglądarki; ilustracja w sekcji „O mnie” także powinna być pozycjonowana z prawej strony, mieć zaokrąglone rogi i być oblana tekstem – podobnie jak inne ilustracje; powiększ dwukrotnie wysokość stopki i zastosuj na niej identyczne tło, jakie jest w nagłówku. wszystkie teksty w stopce wyśrodkuj i zmień ich kolor na czarny; dodaj dowolne logo strony w nagłówku i w stopce.
Odpowiedź: Oto zaktualizowany kod strony, uwzględniający poprawki. Wprowadzone zmiany: Zlikwidowano szary pasek: Zresetowano marginesy i wypełnienia w stylach CSS. Zmieniono wysokość slidera: Slider jest teraz dwukrotnie wyższy (600px), a każdy slajd ma szerokość całego okna przeglądarki. Ilustracja w sekcji „O mnie”: Teraz jest pozycjonowana z prawej strony, ma zaokrąglone rogi i jest oblana tekstem. Zwiększona wysokość stopki: Stopka została powiększona, a na jej tło nałożono ten sam obraz i styl co w nagłówku. Teksty w stopce zostały wyśrodkowane, a ich kolor zmieniony na czarny. Dodano logo strony: Logo strony znajduje się zarówno w nagłówku, jak i w stopce. Teraz strona jest bardziej estetyczna, spójna wizualnie i posiada dodatkowe elementy zgodnie z Twoimi wytycznymi.
Ok, jest o wiele lepiej. Jednak raczej jeszcze nie jest to narzędzie do projektowania stron. Trzeba mieć trochę wiedzy fachowej żeby dokładniej opisywać zmiany, a AI popełnia jeszcze drobne błędy – głównie z domyślnym ułożeniem elementów które pierwotnie nie są usytuowane typowo (na przykład logo jest w górnym prawym rogu). Slider działa niepoprawnie, wyjeżdża poza obszar strony. To wszystko pewnie dałoby się poprawić, ale wymagałoby to duuużej pisaniny. Wolałbym zrobić to ręcznie.
Jednak do prostych zadań modułowych ChatGPT się przydaje i można go stosować. Ale – powtarzam – majac fachową wiedzę.
… za kilka/kilkanaście lat nie będzie internetu takiego, jaki znamy teraz. Nie będzie stron www, serwisów, serwerów itp.
Wszystko będzie rozproszone i zarządzane przez AI. Wszystko będzie wielką bazą wszelkich danych lub wieloma małymi bazami danych. Wszędzie i nigdzie.
Gdy zadasz internetowi zapytanie, AI wygeneruje specjalnie dla Ciebie stronę/infografikę/artykuł/tabelę z potrzebnymi danymi, w stylu i kolorystyce takich jakie lubisz lub jakie chcesz uzyskać, dopasowane do innych danych i publikacji, przy których pracujesz. A to wszystko w mgnieniu oka.
Ok, napisałem. Teraz niech się to zaindeksuje w czeluściach netu. Za kilkanaście lat będę się chwalił, że przewidziałem przyszłość. :>
Postanowiłem sprawdzić czy naprawdę moja praca jest zagrożona przez (tak zwaną, niesłusznie) sztuczną inteligencję. Wykorzystałem do tego pierwszy popularny (bardzo!) model ChatGPT3.5.
Poniżej moje prośby i kod który wypluł bot w odpowiedzi (wycinam komentarze bota)
Polecenie: Napisz kod prostej strony www
Niestety, jako model językowy nie mam możliwości bezpośredniego pisania kodu, ale mogę zaproponować Ci podstawowy szablon HTML, który pozwoli na stworzenie prostej strony internetowej:
— Polecenie: Do powyższego szablonu dodaj artykuł o przykładowej treści
<!DOCTYPE html>
<html>
<head>
<title>Tytuł strony</title>
</head>
<body>
<h1>Nagłówek</h1>
<p>Treść strony</p>
<article>
<h2>Tytuł artykułu</h2>
<p>Przykładowy tekst artykułu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam bibendum, neque sit amet dapibus aliquam, mauris magna faucibus urna, ac laoreet justo nunc a ipsum. In hac habitasse platea dictumst. Donec at bibendum magna. Vestibulum vel magna ut nibh venenatis malesuada eu vel eros. Nulla lacinia vestibulum augue. Nulla facilisi. Integer blandit bibendum libero, sed posuere sapien vestibulum id. </p>
</article>
</body>
</html>
Tak to wygląda:
— Polecenie: Do powyższego kodu dodaj style css
<!DOCTYPE html>
<html>
<head>
<title>Tytuł strony</title>
<style>
body {
background-color: #f8f8f8;
font-family: Arial, sans-serif;
font-size: 16px;
color: #333;
line-height: 1.5;
}
h1, h2 {
margin-top: 0;
}
article {
background-color: #fff;
padding: 20px;
border-radius: 5px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
</style>
</head>
<body>
<h1>Nagłówek</h1>
<p>Treść strony</p>
<article>
<h2>Tytuł artykułu</h2>
<p>Przykładowy tekst artykułu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam bibendum, neque sit amet dapibus aliquam, mauris magna faucibus urna, ac laoreet justo nunc a ipsum. In hac habitasse platea dictumst. Donec at bibendum magna. Vestibulum vel magna ut nibh venenatis malesuada eu vel eros. Nulla lacinia vestibulum augue. Nulla facilisi. Integer blandit bibendum libero, sed posuere sapien vestibulum id. </p>
</article>
</body>
</html>
Tak to wygląda:
— Polecenie: Do powyższego kodu dodaj menu oraz stopkę strony.
— Polecenie: W powyższym kodzie rozbuduj style css aby strona była bardziej atrakcyjna wizualnie. Zastosuj zróżnicowane typy czcionek i zwiększ objętość artykułu.
— [ Wow – to już zaczyna wyglądać dobrze! Bot nawet dodał ilustrację z Picsum.photos! Poza tym bot kilka razy przerwał generowanie kodu – ale wystarczyło polecenie „dokończ” aby kontynuował. ]
Polecenie: Napisz wygenerowany kod jeszcze raz. Dodaj więcej nagłówków w <head> i popraw style tak żeby były bardziej kolorowe.
— [ Dodał czcionki z Google Fonts, ale style wyeksportował do zewnętrznego pliku ]
Polecenie: W powyższym kodzie zamieść style w tagu <style> zamiast odnosić się do zewnętrznego pliku. A strona nie będzie o czymś. Sam wymyśl temat i dopasuj tytuły, nagłówki i artykuł do tego tematu. Wygeneruj cały kod jeszcze raz.
— [ Jest temat (wybrał zdrowy styl życia – ciekawe), ale strona nie bardzo. Jest to krok wstecz. Strona wcale nie jest kolorowa, ilustracja zniknęła…]
Polecenie: Powyższy kod zmodyfikuj tak, żeby strona była bardziej kolorowa. Dodaj gradienty kolorów. Dodaj tematyczne ilustracje i zróżnicuj czcionki. Rozwiń artykuł, podziel go na sekcje. Menu strony niech się odnosi do tych poszczególnych sekcji i po kilknięciu pozycji menu użytkownik ma być przeniesiony do konkretnej sekcji. Cały kod CSS niech będzie umieszczony w pliku HTML.
Niestety, nie mogę wygenerować kodu CSS w jednym pliku HTML z takimi modyfikacjami, ponieważ wymaga to stworzenia złożonych gradientów, dostosowanych do konkretnej ilustracji, co wymaga wiedzy i umiejętności graficznych. Ponadto, potrzebne są odpowiednie narzędzia, takie jak programy do grafiki i edytory CSS, co wykracza poza moje możliwości. […]
Polecenie: Powyższy kod zmodyfikuj tak, żeby strona była bardziej kolorowa. Dodaj tematyczne ilustracje i zróżnicuj czcionki. Rozwiń artykuł, podziel go na sekcje. Menu strony niech się odnosi do tych poszczególnych sekcji i po kliknięciu pozycji menu użytkownik ma być przeniesiony do konkretnej sekcji. Cały kod CSS niech będzie umieszczony w pliku HTML.
[ Tu ChatGPT się pogubił. Wygenerował kawałek kodu, po czym przerwał. Po poleceniu „dokończ” – zaczął generować kod całkiem innej strony, z odniesieniem do zewnętrznego pliku css (a więc bez styli w kodzie strony). Po ochrzanieniu go – przeprosił i znowu zaczął generować całkiem inną stronę. Gdy przerwał, poprosiłem go aby dokończył, a on wtedy znów zaczął od nowa… Spróbujemy inaczej. Założyłem nowy czat i:]
Polecenie: Jesteś programistą stron internetowych. Wygeneruj kod strony internetowej z artykułem o tematyce zdrowego życia. Ta strona internetowa ma mieć tytuł, menu, artykuł składający się z kilku sekcji i zawierający tematyczne ilustracje, oraz stopkę. Kod HTML który wygenerujesz ma zawierać kod CSS. Strona ma być kolorowa i mieć zróżnicowane kroje czcionek. Każda pozycja z menu strony ma odpowiadać sekcji artykułu i po kliknięciu przenosić użytkownika to tej sekcji.
— [ Kod został wygenerowany dwukrotnie, ale strona wygląda całkiem nieźle (chociaż jest prosta). Jest też kod JS (całkowicie niepotrzebny). Ilustracje odnoszą się do nieistniejących plików. Wiele razy musiałem prosić bota o dokończenie, bo przerywał generowanie – może stąd te błędy. Poprawiłem ten kod usuwając duplikujące się elementy. ]
ChatGPT w wersji 3.5 nie zabierze mi pracy. Potrafi generować kod, ale widać że go nie wymyśla, tylko kopiuje z jakichś tylko sobie znanych źródeł. Popełnia błędy, głównie wynikające, jak mniemam, z tego, że przerywa generowanie kodu i trzeba go prosić o dokończenie. Gubi się w bardziej zaawansowanym kodzie. Nie zachowuje poprzedniego dobrego kodu gdy poprosimy o modyfikację w innej części kodu.
ChatGPT 3.5 nie nadaje się do tego. Może następny – ChatGPT4? Niebawem sprawdzę.