Migracja, której nie było

Obwąchiwałem się z serwisem Codeberg od jakiegoś czasu. Nie miałem może silnego postanowienia migracji z GitHub i motywacji do niej[1], ale gdzieś tam taka opcja istniała. Nawet zrobiłem skrypt do backupu repozytoriów z GH i pisałem o Codeberg, na którym założyłem konto.

Jednak pozmieniało się. Codeberg zmienił warunki korzystania z usług. Najpierw pojawił się zakaz utrzymywania repozytoriów, w których kod pisał głównie LLM. Bo rzekomo pojawiają się niejasności związane z copyright i nie ma gwarancji, że nie będzie szkodliwego kodu. Chwilę później dołączył zakaz projektów związanych z kryptowalutami gdyż szkodzą reputacji serwisu. I opcja migracji przestała dla mnie istnieć.

Dlaczego? Powodów jest wiele, ale najważniejszy jest chyba niesmak. Nie wiem, czy bardziej spowodowany pokazową deklaracją światopoglądową, czy podawaniem pretekstowych uzasadnień czy wypaczaniem idei FOSS. Pierwszego tłumaczyć chyba nie trzeba – manifestacja antyAI i antykryptowalutowa i chęć jej „zaistnienia” w warunkach usługi jest czytelna. A przy tym zbędna – istniejące punkty jak najbardziej już zabraniały hostowania projektów naruszających zasady. Nic nowego się nie pojawiło, po prostu zakazy są z góry, tematycznie, bez zastanawiania się.

Uzasadnienia uważam za pretekstowe, gdyż… po krótkim zastanowieniu łatwo dostrzec, że nie mają sensu. Zabronione są projekty pisane głównie przez LLMy[2]. Kluczowe słowo to oczywiście głównie. Bo czy w projekcie, gdzie tylko trochę kodu jest pisane przez LLM mogłoby dojść do naruszenia copyright lub pojawić się szkodliwy kod? Oczywiście przy założeniu, że takie rzeczy w ogóle występują, ale tę część można wyłączyć przed nawias jako nieistotną dla dalszych rozważań. Otóż mógłby, bo nie zależy to od udziału kodu generowanego przez LLM.

Kolejna sprawa to brak możliwości stwierdzenia, jak powstał kod – ręcznie czy z użyciem LLM. I w jakim stopniu. Czyli pozostaje ocena po deklaracji autora lub owocach. A zapisy dotyczące copyrightu oraz szkodliwego kodu już przecież istniały.

Podobnie jest z nieprecyzyjnym słowem powiązany (z kryptowalutami). Czy jeśli zrobiłem skrypt, który pobiera dane m.in. o kursach kryptowalut i robi analizę statystyczną/korelację z kursem walut i akcji spółek giełdowych, to już szkodzi reputacji?

Zresztą przy krótkiej rozmowie z jedną z osób, które współpodejmowały decyzję, usłyszałem „nie chce też żeby moje składki szły na bandwidth i storage dla ludków co se robią 5 projektów i puszczają armię botów w samopas”. No rozumiem, że ktoś nie chce[3]. Ale nie uzasadniajmy tego copyrightem czy szkodliwym kodem. Wystarczy napisać wprost, że takie projekty zużywają więcej zasobów.

Zostało wypaczanie idei FOSS. Chodzi o cztery wolności, których Codeberg zresztą wymaga w warunkach usługi. Dokładnie o możliwość dowolnej modyfikacji oraz o możliwość rozpowszechniania ulepszeń. Wyobraźmy sobie, że jest projekt open source, który tworzy plugin zabezpieczający przed botami przez zastosowanie PoW (proof of work). Ot, np. policzenie czegoś stosunkowo złożonego w JS. Ktoś wpada na pomysł, żeby zamiast zużywać prąd zupełnie bez sensu, dać użytkownikowi możliwość spędzenia chwili czasu na kopaniu kryptowalut[4] na rzecz właściciela strony. Obecnie taka zmiana nie ma możliwości znalezienia się w kodzie projektu rozwijanego na Codebergu, ponieważ jej zaakceptowanie rzekomo szkodziłoby reputacji serwisu.

Oczywiście można dyskutować, czy to faktycznie ograniczenie tej wolności, bo przecież można sobie modyfikować i publikować gdzie indziej. Tylko wg mnie taka możliwość jest raczej teoretyczna – community i rozwój jest w konkretnym miejscu, nikt raczej nie będzie z powodu jednego ficzera chciał zmienić platformy, prędzej odrzuci zmianę. To nie jest hosting, że zmieniamy dostawcę, przepinamy domenę na nowe IP i już.

Rozmawiałem na ten temat ze znajomym. Pojawiło się stwierdzenie, że potem jest zdziwienie i narzekanie, że (przez tego typu akcje) ludzie nie korzystają z europejskich rozwiązań, tylko uzależniamy się od rozwiązań zza oceanu. To smutne, ale skoro lokalnie dostępna jest jedynie wolność z gwiazdką…

[1] No bo to trochę taka sztuka dla sztuki by była – mało się tam dzieje, a backup mogę przywrócić gdziekolwiek.
[2] You must not share projects that mostly consist of code written by „generative AI”-tools.
[3] Co prawda pewnie wystarczyłby tu rate limiter, no ale…
[4] To nie jest nowa idea, był plugin/serwis do kopania Monero, zamiast reklam na stronie. Z różnych powodów upadło.

Bandcampowe problemy

Całkiem niedawno napisałem, że zaczynam przygodę z Bandcamp, a już wygląda, że się nie polubimy. Może jestem zepsuty przez serwisy streamingowe i nowsze rozwiązania? Mam problem z UX/sposobem działania.

Z tego co widzę, Bandcamp to w zasadzie sklep z muzyką. Taki oldschoolowy, gdzie można samodzielnie wyszukać muzykę, odsłuchać po kolei utwory. Wyszukiwanie jest dość toporne[1]. Niby są gatunki, niby są tagi, można wyszukiwać po nazwach. Trochę mało. Chciałbym łatwo odkrywać muzykę czy artystów.

Przykładowo, chciałbym wiedzieć, jakie inne utwory, albumy czy artystów najczęściej kupują ludzie, którzy kupili dany utworów. Albo jacy są artyści w danej okolicy (mapa!), których twórczość mogę kupić w Bandcamp. Z podziałem na gatunki, oczywiście. O jakimś algorytmie, który ułoży playlistę na podstawie moich dotychczasowych kupionych, wishlisty, podobieństwa muzyki itp. nawet nie wspominam.

Kolejna sprawa to feed czy też radio. Mam wybrane kilka gatunków muzyki. Zupełnie różnych. W feedzie są wszystkie, wymieszane. W efekcie trochę ciężko tego słuchać, bo raczej mamy ochotę albo na coś dynamicznego, albo spokojnego. Częściowym rozwiązaniem jest kliknięcie nazwy gatunku, które przenosi do discover. Tylko czemu najbardziej eksponowana funkcjonalność jest praktycznie bezużyteczna?

Można odsłuchać pojedyncze utwory bez zakupu, ale jakbym chciał sobie zrobić playlistę, to mogę to zrobić już tylko z kupionych. Z jednej strony rozumiem – podejście tradycyjnego sklepu. Z drugiej – nie bardzo. Wolałbym mieć możliwość tworzenia playlist, nawet z ograniczoną ilością utworów niezakupionych lub inną przeszkadzajką, a do tego statystykę/sugestię typu tego dużo słuchasz, może warto kupić[2]. W końcu i tak mogę słuchać bez kupna, więc zmuszanie do słuchania pojedynczo i brak możliwości ułożenia playlisty raczej zniechęca mnie do serwisu, po prostu. A jeśli nie korzystam z serwisu, to nie kupię niczego.

Nie chodzi o social, lajki itp. czy nachalną dosprzedaż. Jednak mamy 2026 i pewnego rodzaju ułatwienia byłyby mile widziane. Chociaż – wracając na moment do poleceń – czemu zespół nie ma możliwości polecenia choćby ograniczonej liczby, kilku zaprzyjaźnionych kapel?

Ostatnia rzecz, to player. Jest ograniczony tylko do muzyki zakupionej w serwisie. Z uwagi na względnie mały wybór z jednej strony, a z ograniczenia opisane wyżej, to średnie rozwiązanie. Byłoby miło móc dorzucić do playlist mp3 z dysku.

I tak, oczywiście mam świadomość, że wiele z tych moich oczekiwań to nawyki ze streamingów. Tylko co ja poradzę, że tam mają to wypolerowane, a polecanie piosenek było naprawdę zacne. Zdarzyło się im przy użyciu algorytmu i podrzucić zupełnie nowe kawałki, i przypomnieć stare, zapomniane. I „kupiłem”, czyli trafiły na moje playlisty. Szkoda, że Bandcamp nie daje takiej opcji. Może kiedyś?

[1] To słowo mogło powtarzać się często w tym wpisie…
[2] Ta funkcjonalność na szczęście istnieje.

Cudy na kiju

Jakiś czas temu w Polsce operatorzy wyłączyli transmisję danych 3G, więc mój modem przestał działać. Przestał więc też działać router GSM na Linuksie zbudowany w oparciu o niego i Raspberry Pi. Na dokładkę chwilę wcześniej padł hub USB zasilający RPi lub zasilacz od niego. Znaczy: trzeba coś zmienić.

Zasadniczo opcje były dwie. Pierwsza, to kupno jakiegoś modemu z obsługą 4G, może używanego i reanimacja istniejącego setupu. No i coś z zasilaniem by trzeba pomyśleć, bo wersja, gdzie modem jest wpięty bezpośrednio w port USB RPi działa, ale nie mieści się w pudełku.

Inna sprawa, że dotychczasowy setup składał się z routera WiFi, switcha niezarządzalnego, i RPi robiącego za router. Kwestia zaszłości historycznych i ewolucji moich routerów, a właściwie systemów robiących przy okazji za router. Bo wiadomo, że miło jest mieć system z Linuksem, jednak w praktyce dawno przestałem z niego korzystać, a cały setup choć niekrytyczny i w zasadzie mało używany, ma wiele elementów ruchomych, które potrafiły sprawiać problemy w najmniej odpowiednich momentach. Oczywiście bohatersko rozwiązywałem wszystkie problemy i nawet była z tego jakaś frajda, ale… po co?

I tu pojawia się opcja druga, czyli kupno routera WiFi, do którego można zapakować kartę SIM. Takie rozwiązanie pozwala wyeliminować stary router WiFi oraz switch. Raspberry Pi staje się opcjonalne, tzn. mógłbym je podłączyć jeśli zechcę używać tego systemu, ale dostęp do internetu jest od niego niezależny. Dodatkowo mógłbym zasilać tylko router – switch i RPi nie są potrzebne. Niby tylko parę W[1], ale switch jest stary, z ciężkim, transformatorowym(?) zasilaczem.

Postanowiłem rozpoznać dostępne opcje i okazało się, że cenowo też nie wychodzi najgorzej, biorąc pod uwagę, że musiałbym kupić modem 4G i jakiś hub USB. W ten sposób, po zapłaceniu 126 zł na Allegro stałem się posiadaczem nowego, tytułowego routera Cudy LT400.

Opakowanie jest dość spore – zdjęcia paczki można zobaczyć w jednym z poprzednich wpisów o opakowaniach. Router wygląda dość typowo, posiada aż cztery, przymocowane na stałe, anteny.

Wady:

  • nietypowe zasilanie 12 V, 1 A
  • brak osobnego portu WAN – łącznie są 4 porty w tym jeden „podwójnego zastosowania”
  • brak możliwości instalacji OpenWrt
  • brak wsparcia dla WiFi 5GHz
  • anteny przymocowane na stałe
  • porty 10/100 Mbps

Jak widać wad całkiem sporo, ale… nie mają większego znaczenia. WiFi 2,4 GHz było poprzednio i wystarczało. Porty 100 Mbps niczego nie zmieniają – stary switch miał tak samo. Zresztą nie kopiuję pomiędzy komputerami większych ilości danych, a wąskim gardłem pozostaje dostęp do internetu przez sieć LTE.

Sprawdziłem, co jest w środku i okazuje się, że:

Linux version 4.4.140 (jenkins@release_server) (gcc version 5.4.0 (LEDE GCC 5.4.0 2.4.15) ) #0 Tue Dec 9 13:06:22 2025

HW: LT400 V2.1  |  FW: 2.4.23-20251209-211127

Czyli mimo braku wsparcia dla OpenWrt, właśnie na nim jest oparty firmware routera. Mam nadzieję, że będzie aktualizowany. A może i pojawi się wsparcie OpenWrt? Choć nie liczę zbytnio na to – zapewne będzie problem z niewolnym firmware modemu LTE.

Jeśli chodzi o zalety, sam sprzęt posiada całkiem sporo funkcji:

  • klient i serwer VPN (wiele protokołów, m.in. openvpn, wireguard)
  • klient DDNS, wsparcie wielu providerów
  • filtrowanie IP i domen (statyczne)
  • wsparcie dla IPv6
  • prosta konfiguracja – w zasadzie wystarczy włożyć kartę SIM i skonfigurować hasła

Są dla mnie równie wirtualne, jak wady. Liczy się tylko stabilność i bezawaryjność, a jak z tym będzie, okaże się za jakiś czas… Niemniej, klient i serwer VPN mnie zaskoczyły – zupełnie się nie spodziewałem. Interfejs przejrzysty, opcje proste. Pewnie zasługa LuCI.

UPDATE: Router jest po krótkim, kilkudniowym chrzcie bojowym. W takim okresie mogę stwierdzić, że jest stabilnie – po prostu działa. Dość mocno świecą niebieskie LEDy. Może być to zaleta. Gdyby komuś przeszkadzało to marker lub taśma klejąca załatwią sprawę.

[1] 2,2 W sam poprzedni router, switch pewnie podobnie, lub więcej. RPi na pewno ponad 3W.