Aplikacja na pełnym ekranie której nie da się przywrócić

Taki problem miałem na Ubuntu Mate przy aplikacji Spotify. Z jakiegoś powodu aplikacja po obudzeniu laptopa postanowiła być odpalona na pełnym ekranie.

Funkcje otwarcia na pełnym ekranie posiada samo spotify (aktywować można ją w prawym dolnym rogu), ale nie było to to. Po pierwsze, dlatego że widok okna się nie zmienił (wyglądało ono tak samo jak na zdjęciu wyżej), a po drugie nie dało się tego wyłączyć przy pomocy przycisku ESC.

Dlaczego coś takiego się działo? Błąd w systemie, środowisku graficznym czy możne nawet samym spotify (sprawdzając w sieci nie byłem odosobniony z takim błędem). Z perspektywy czasu usunięcie skrótu klawiszowego – który zmieniał tryb okna – pomogło i takie błędy się mi nie pojawiają. Nie wiem jednak dlaczego ten skrót był aktywowany. Na pewno nie naciskałem go świadomie.

Ale jak to można wyłączyć oprócz restartu komputera czy ubicia samej aplikacji? Z pomocą przychodzi terminalowy program: wmctrl. Najpierw musimy pobrać tytuł okna (jeśli go znamy to można ten krok pominąć):

wmctrl -l

U mnie wynik działania tego programu wyglądał tak:

psychob@rgb-lighthouse#192.168.0.24!13:41:40
$ ~ wmctrl -l
0x01200003 -1 rgb-lighthouse Górny panel
0x01200017 -1 rgb-lighthouse Dolny panel
0x01600006 -1 rgb-lighthouse x-caja-desktop
0x04600003  0 rgb-lighthouse Mozilla Firefox
0x0500000b  0 rgb-lighthouse Urządzenia Bluetooth
0x05400007  1 rgb-lighthouse psychob@rgb-lighthouse: ~
0x07600001  5 rgb-lighthouse P.O.D. - Roots in Stereo
0x08200059  0            N/A KeePass
0x04600191  0 rgb-lighthouse Monitoring server-side ECS application with Prometheus and Grafana (see post) : gamedev - Mozilla Firefox
0x0460030c  3 rgb-lighthouse Mozilla Firefox
0x03800007  5 rgb-lighthouse Terminal
0x04800008  4 rgb-lighthouse Skróty klawiszowe

U mnie spotify aktualnie nazywa się: P.O.D. - Roots in Stereo. By zmienić tryb wyświetlania okna należy wykonać następujące polecenie, przy czym nie musimy wpisywać całej nazwy, na przykład:

wmctrl -r "P.O.D" -b toggle,fullscreen

Red Dead Redemption

Red Dead Redemption jest jedną z tych gier w którą nie da się zagrać na PC – przynajmniej bez emulatora. To był jeden z powodów dla którego nie zagrałem w tego klasyka studia Rockstar gdy wyszedł on w 2010. Gdy rok temu kupiłem sobie Playstation 3 był to jeden z tych tytułów w który musiałem zagrać, szczególnie że chciałem już wtedy zagrać w trzecią odsłonę serii Red Dead, intuicyjnie nazwaną Red Dead Redemption 2. I rok temu udało mi się tą grę przejść, ale jak to bywa mimo prób nie udało mi się podsumować gry tekstem. Ostatnio postanowiłem wrócić jednak i do gry i do tekstu.

Gra opowiada historię Johna Marstona – rewolwerowca, który w 1911 roku wraca na dziki zachód zmuszony przez swoich nowych „pracodawców”. Jego zadanie to znalezienie i złapanie (żywych lub martwych): Billa Williamsona, Javiera Escuellę i Dutcha van der Linde – którzy byli razem z nim w gangu Dutcha. Jak dowiadujemy się później z gry, John został zmuszony do tego przez nowo powstałe biuro federalne (FBI), które postanowiło złożyć mu propozycję nie do odrzucenia – albo znajdziesz swoich dawnych kompanów, albo już nigdy nie zobaczysz swojego syna i żony.

Nie wiemy jednak wszystkiego od razu, gra rozpoczyna się przerywnikiem filmowym (na silniku gry) gdzie jedyne dialogi jakie są to te zasłyszane od pobliskich NPCów, które opisują nam świat w którym będzie działa się akcja gry. Jeśli chodzi zaś o samego bohatera to wszystko czego się o nim dowiadujemy jest nam przekazane przez jego jego wygląd czy stosunek do innych postaci. Wiemy że naszym protagonistą będzie kowboj, który nie lubi panów w garniturach – w domyśle agentów rządowych.

Po skończeniu przerywnika i dotarciu do celu, którym jest małe miasteczko Armadillo, John Marston wyrusza odwiedzić swojego byłego kompana Billa Williamsona, który razem ze swoim gangiem terroryzuje lokalne hrabstwo. Jak można się domyślić wyruszenie do kryjówki lokalnego watażki i błaganie go o to by się poddał nie jest dobrym pomysłem i John kończy z kulą w piersi. To jest – jak można się domyślić – początek historii Johna.

Gra jest podzielona na cztery rozdziały, gdzie każdy dotoczy jednego członka gangu: pierwszy Billa, drugi Javiera, trzeci Dutcha, ostatni zaś podsumowuje historię samego Johna. I słowa „dotyczy” używam tutaj bardzo szczodrze, bo o ile poznajemy historię Johna, to jedyne czego dowiadujemy się o „głównych złych rozdziału” to tego że zostawili go na śmierć.

Jeśli chodzi o mechanikę, każdy z tych rozdziałów (poza czwartym) odblokowuje część mapy gdzie będzie się działa jego akcja. Z samym odblokowywaniem części mapy mam problem, dlatego że o ile mogę się zgodzić że sąsiednie państwo nie pozwala na przejście granicy i dzięki temu nie możemy się do niego dostać na początku. To nie rozumiem dlaczego hrabstwo odblokowywane w trzecim rozdziale jest zablokowane na początku gry. Przecież jest to część Stanów Zjednoczonych, co nie? Czyżby miastowi nie mogli znieść widoku ciężko pracujących farmerów? Nie czepiałbym się tego, gdyby nie to że gra tłumaczy – w gazecie którą można kupić – dlaczego nie można się dostać aktualnie do meksyku.

Nie będę się tutaj bardzo rozwodził o historii opowiedzianej w grze, dlatego że na samym końcu tego tekstu polecę tą grę przede wszystkim dla niej. Przyczepie się jednak do rozdziału dziejącego się w meksyku i jego konkluzji.

Celem drugiego rozdziału – prócz dorwania Javiera – jest obalenie dyktatora który rządzi daną krainą i zainstalowanie tam jednej z postaci pobocznych. W trakcie naszego zadania poznajemy różne postacie, które z różnym stopniem entuzjazmu reagują na tego typu plany. Rozdział kończy się zamontowaniem nowego „lepszego” dyktatora który – jak dowiadujemy się z gazety na końcu gry – nic nie zmienia.

Problem mam z tym taki, że Marston – jak i sam gracz, czy postacie niezależne – jest wykorzystywany przez tego pretendenta i nic nie można z tym zrobić. Może kłuje mnie to że pretendent się z tym nie kryje, a może to że ten cały rozdział pokazuje to co spotyka idealistów gdy stykają się z realnym cynicznym światem. Można oczywiście doszukiwać się tu paraleli do epilogu, gdzie pokazuje to że nic co zrobimy i tak na końcu nie zmieni naszego losu.

Jeszcze zwrócę uwagę na jeden szczegół z meksyku. W jednej z misji, NPC komentuje że John skacząc między płotem może się na niego nadziać. Jest to aluzja do tego że możemy – i przez możemy rozumiem że w końcu musimy – robić zadania dla aktualnego reżimu. I to może być powód dla którego ludzie nie chcą pomóc mu w znalezieniu Javiera. Problem w tym jest taki, że tą misje da się zrobić zanim zaczniemy ugadywać się z reżimem czy to rebeliantami. Jest to mały problem z ciągłością historii, ale kuło mnie to gdy przechodziłem tę misje.

Jeśli chodzi o rozgrywkę, to mamy tutaj standardową strzelankę trzecioosobową. John Marston strzela tam gdzie wskażemy a do dyspozycji ma różnego rodzaju osłony za którymi możemy się schować. Co prawda nie grałem w GTA 4 na konsoli, ale zgaduje że oba systemy walki są podobne. Red Dead Redemption ma jednak jeden dodatkową mechanikę: system celowania dead eye. Działa to tak że John może w dowolnym – zakładając że nie mamy pustego paska – momencie spowolnić czas i zaplanować gdzie mają lecieć kolejne pociski.

Z jednej strony upraszcza to rozgrywkę – szczególnie jeśli ustawimy w opcjach by system dead eye automatycznie kierował celownik na wroga – i dodaje to de facto specjalny przycisk wyjścia z każdych tarapatów. Ale z drugiej strony, sprawia to że możemy poczuć się jak rewolwerowiec, który dzięki latom praktyki – której my przecież nie mamy – potrafi posłać sześć kolejnych kul w stronę przeciwników którzy mają pecha i stoją po drugiej stronie lufy.

Oprócz walki co możemy jeszcze w tym świecie zrobić? Możemy jeździć na naszym koniu, czy też bardziej generalnie poruszać się. Jeśli chodzi o system poruszania się, to gra preferuje bardziej realistyczne podejście do tematu, dzięki czemu bieganie przypomina bardziej popychanie bohatera niewidzialną ręką rynku.

Jeśli chodzi zaś o konie, to w grze jest ich wiele rodzajów, mają swoje własne statystyki i zamysł projektantów był pewnie taki by je zdobywać (w domyśle kraść, ale można też je ujeżdżać) i zamieniać na lepsze. Tak pewnie by było, gdyby nie to że – w wersji w którą ja grałem czyli Game of the Year – od początku rozgrywki mamy do dyspozycji jednego z najlepszych koni – i to za darmo.

Przy podróży przez dziki zachód możemy spotkać na trasie szeryfa któremu uciekło dwóch więźniów, albo możemy spotkać damę której ktoś ukradł wóz z koniem i tym podobne. Mechanika losowych zdarzeń sama w sobie jest ciekawa, tylko w tej grze jest za mało typów wydarzeń. Pod koniec gry gdy jeździłem po mapie i pojawiało mi się że ktoś potrzebuje mojej pomocy to wiedziałem od razu jakiego typu jest to wydarzenie. Szeryf, pomoc kobiecie, zasadzka, próba kradzieży konia czy zmierzenie się z NPCem w strzelaniu, szukaniu kwiatów czy polowaniu.

Inną rzeczą którą możemy zrobić w świecie gry, jest zbieranie roślin i polowanie na zwierzęta. Same czynności w sobie nie prowadzą do niczego, jedyny zysk jaki z nich mamy to możliwość ich sprzedania. Nie można ich łączyć w jakimś systemie wytwarzania przedmiotów, bo takowy nie istnieje. Jedyne gdzie to zbieractwo się przydaje to do systemu wyzwań.

W grze mamy 6 głównych wyzwań które są podzielone na 10 mniejszych. I nie miałbym nic do tego, gdyby nie fakt że te pod-wyzwania trzeba robić w ustalonej przez dewelopera kolejności. Weźmy dla przykładu wyzwanie Survivalist, które polega na zbieraniu kwiatków. Każdy poziom wyzwania wymaga od nas zebrania odpowiedniej ilości jak i specyficznego typu rośliny. Kwiaty w świecie gry są zazwyczaj zgrupowane w strefy które gracz będzie zwiedzał wykonując główne misje. Co jeśli pójdziemy do nowej strefy zanim skończymy zbieranie kwiatków? To musimy się wrócić. Nie będziemy mieli też zaliczanych roślin z wyższych poziomów wyzwania jeśli uda nam się je znaleźć wcześniej.

Samo zbieranie kwiatów to jest definicja busy-work, chodzimy z punktu A do punktu B szukając kwiatów po drodze. Możemy zmniejszyć ilość błądzenia po mapie dzięki specjalnemu przedmiotowi: Survivalist Map, które przez 20 minut oznacza na naszej mapie lokacje wszystkich kwiatów.

Moim pomysłem na naprawienie tego było by odblokowanie wszystkich „pod-wyzwań” od razu i danie możliwości graczowi by mógł je naturalnie zebrać gdy będzie podróżował po mapie. Sam limit kwiatów do zebrania musiałby pewnie być lekko podwyższony, ale koniec końców – według mnie – ulepszyło by to rozgrywkę.

Inną kwestią są nagrody za zrobienie tych wyzwań. Dla przykładu wykonanie 5 wyzwań z kategorii Survivalist nagradza nas tym, że Survivalist Map działa nie 20 a 40 minut. Zaś zrobienie wszystkich wyzwań z tej kategorii daje nam specjalny przedmiot: Tonik – który odnawia pasek dead eye. Jest to o tyle bezużyteczne że po ukończeniu wszystkich wyzwań z tej grupy nie będziemy potrzebowali korzystać z mapy (bo najbliższe kwiaty i tak się pojawiają na mapie) a pasek dead eye sam się odnawia i w grze są inne przedmioty które potrafią go odnowić a można je kupić w sklepie.

By nadal być negatywny chciałbym ponarzekać jeszcze na animacje. I nie chce pisać że są słabe – bo nie są – tylko jest ich za dużo. Przy zebraniu kwiatka, odpala się animacja. Przy oskórowaniu zwierzęcia, mamy animacje. Przy zbieraniu przedmiotów z zabitych przeciwników – animacja. Nie da się ich pominąć (chyba że uda nam się odpowiednio wjechać koniem) i musimy czekać aż się skończą. A jeśli postanowimy – tak jak ja przy pierwszym przejściu – zajrzeć pod każdy kamień na który się natkniemy czy przeszukać każdego przeciwnika którego pokonamy, to skumuluje nam się dużo animacji. Na dłuższą metę: powtarzalnych i nudnych.

Sama gra bardzo dużo czerpie z innej serii Rockstara czyli z wspomnianego wyżej Grand Theft Auto. Mamy więc poboczne „marnowacze czasu” takie jak poker, blackjack, granie w kości czy rzucanie podkową. Gdzie poker potrafi trwać wiele dni (przynajmniej w świecie gry), a dla mnie mechanika rzucania ową podkową nigdy nie została poprawnie wytłumaczona.

Nagrodą za wygranie w takim pobocznym zadaniu są pieniądze. Według mnie nie opłaca się jednak bawić w coś takiego dlatego że kombo misje + zbieranie paprotek jest bardziej dochodowe – jak ja ukończyłem tą grę pierwszy raz na koncie miałem ponad 10 tysięcy dolarów. Co gorsza, nie miałem na co ich wydać, dlatego że wszystko można znaleźć przy poległych przeciwnikach.

Mamy też system szybkiej podróży który czerpał swoją inspiracje z tego dostępnego w GTA 4. Podróżować możemy albo ze swojego obozu, który możemy rozłożyć w dowolnym miejscu o ile nie jest za blisko miasta, bandytów czy drogi, co tak swoją drogą oznacza więcej animacji. Albo możemy też znaleźć w świecie gry dyliżans który zawiezie nas za opłatą do miejsca do którego chcemy jechać. Tutaj widać inspiracje GTA 4, bo gdy już opłacimy przejazd możemy obserwować jak dyliżans przemierza drogi. Możemy też – jak normalni ludzi – ominąć to i przejść od razu do miejsca docelowego.

Na sam koniec warto wspomnieć o misjach głównych i pobocznych. Misje główne są podtrzymywane przede wszystkim dzięki dialogom, fabule i postaciom. Piszę tak dlatego że schemat misji jest identyczny: idź do jakiegoś miejsca gdzie będziesz strzelał do złych. O ile gra stara się nieco urozmaicić ten schemat poprzez lokacje gdzie będziesz strzelał do innych, to zazwyczaj misja kończy się strzelaniną. Brakuje mi tutaj kreatywności która była choćby w GTA San Andreas czy w prequelu – o którym mam nadzieje w przyszłości napisze – Red Dead Redemption 2.

Misje poboczne – podobnie jak główne – opierają się na scenariuszu. Nie ma w nich aż tylu strzelanin, jednak najwięcej co mogą zaoferować to „fetch questy”, czyli zadania polegające na zdobyciu przedmiotu i zaniesieniu go zainteresowanemu.

Jeśli chodzi o warstwę techniczną, to paleta barw jest dość blada. I o ile gra posiada funkcje zmiany kontrastu/odcieni, to nie rozumiem dlaczego nie jest to ustawione poprawnie domyślnie. Na monitorze 2K gra wygląda… brzydko. Ale z późniejszych testów mogę z pewnością stwierdzić że była to wina rozciągnięcia obrazu który jest domyślnie w 720p.

Muzyka jak i oprawa dźwiękowa jest za to bardzo dobra. Soundtrack gry należy do tych które zostają z tobą nawet jak przejdzie się grę. Mi się osobiście ścieżka dźwiękowa bardzo podoba i jestem szczęśliwy że można ją znaleźć na spotify. Ale z drugiej strony ja ten soundtrack odkryłem zanim zagrałem w grę więc mogę być stronniczy.

Podsumowując, historia jest największym atutem Red Dead Redemption. Sposób w jaki został opowiedziany epilog do historii Johna Marstona i gangu którego był członkiem jest bardzo dobry i nadal ma swój czar w 2019 roku. Oprócz tego muzyka czy atmosfera która wprost wylewa się z ekranu. Rozgrywka zaś – mimo że bardzo powtarzalna – jest wystarczająco ok by nie nudzić. Te wszystkie cechy są powodem dla którego mogę bez żadnych skrupułów polecić tą grę.

Prince of Persia (2008)

Prince of Persia, jest jednym z klasyków gier komputerowych. Oryginalnie wydany w 1989 roku na komputer Apple II (a później w zasadzie na wszystkie inne platformy), przeszedł długą drogę od oryginalnej trylogii, wykupienie praw do serii przez Ubisoft i stworzenie przez nich trylogii Piasków Czasu, aż do 2008 roku gdzie zostanie wydana gra o takiej samej nazwie: Prince of Persia. Co powoduje że muszę dodać do tytułu tego wpisu rok jej wydania, by ludzie wiedzieli o której grze pisze.

Głównym powodem dla którego Ubisoft Montreal – w którym powstały między innymi gry z trylogii Piasków Czasu – postawił na taki ruch był reset serii. Z perspektywy ponad dekady, możemy stwierdzić z pewnością, że reset był nieudany. W tej sub serii gier powstała tylko jedna gra – tytułowy Prince of Persia (2008) – i jedno DLC, które z tego co rozumiem zawiera zakończenie którego brak w bazowej grze. A kolejną grą z serii (ignoruje gry mobilne i Ty drogi czytelniku także powinieneś) jest The Forgotten Sands który kontynuuje historię z Piasków Czasu.

Miała być to pierwsza gra z serii wydana na konsole next gen, którymi wtedy były Playstation 3 i Xbox 360. Jak dobrze pamiętam, jej port na PC miał nie mieć żadnego DRM, co było interesującym wyborem w tamtym czasie. Trudno mi stwierdzić czy się to opłaciło, na Wikipedii jest napisane że w miesiąc (gra była wydana w grudniu 2008 roku, a raport jest ze stycznia 2009) sprzedano ponad dwa miliony kopii na wszystkie platformy.

Zanim przejdę do krytyki gry, chciałbym wspomnieć że grałem w tą grę na PC plus/minus dekadę temu, nawet w jego pełną polską wersję której teraz nie da się kupić oficjalnie (przynajmniej w sklepie Ubisoftu). Na początku myślałem że jest to sytuacja podobna jak przy pierwszym Assassin’s Creedzie którego w Polsce wydawała Cenega i Ubisoft nie ma praw do jego tłumaczenia, ale nie na Wikipedii jest napisane że to Ubisoft Polska wydawał tutaj grę. Więc decyzja o tym, by nie można było kupić tego tytułu po polsku jest dość dziwna.

Wracając z tej dygresji, chciałem napisać że miałem z tą grą związane miłe wspomnienia – z dzisiejszej perspektywy kompletnie nie rozumiem czemu – ale pamiętałem też o tym że końcówka była rozczarowująca. Dekadę później odświeżam sobie tą grę na PS3. Mając ten wstęp za sobą możemy omówić grę:

Czytaj dalej »

Konfiguracja Linuksa

Największym plusem Linuksa jest to że można go mocno spersonalizować i dostosować do swoich potrzeb. W tym wpisie opiszę konfiguracje z której ja korzystam i która – mam nadzieje – ułatwi Wam w jakiś sposób korzystanie z Linuksa.

GRUB

Jedną z pierwszych rzeczy którą pamiętam przy korzystaniu z Linuksa było to że przy uruchamianiu go zawsze wyświetlał się log zamiast tak zwanego splash screenu. Aktualnie nie jest to jednak domyślna konfiguracja. By to zmienić należy zmodyfikować plik: /etc/default/grub i zmienić linie:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

na:

GRUB_CMDLINE_LINUX_DEFAULT=""

Po modyfikacji należy wykonać następujące polecenie:

sudo update-grub2

Snap

Snap jest jednym z wielu menedżerów paczek który jest dostępny na Linuksa – głównie na Ubuntu i ich różnego rodzaju dystrybucje. Jego plusem jest to że dystrybuuje aplikacje razem z zależnościami i umieszcza je w stosownym sandboxie.

Nie miałem z nim problemów, do czasu aż nie zauważyłem że wrzuca wszystkie zainstalowane aplikacje do /var/snap: który u mnie jest na mniejszym – szybszym dysku. Jako że przez snapa zainstalowałem między innymi dockera, nie podobała mi się perspektywa by cały dockerowy cache, volumeny i tego typu pliki przetrzymywać na dysku systemowym. Ale jako że nie jest to windows, można ten katalog przenieść w inne miejsce.

By przenieść snapa, nie można po prostu przenieść katalogu i zrobić symlinka, jako że snap korzysta z AppArmour które tego typu zachowań nie lubi. By go przenieść, musimy więc zamountować odpowiedni katalog.

Na samym początku należy wyłączyć samego demona snapa:

services snapd stop

Gdy już to zrobimy należy – jako root – skopiować zawartość katalogów: /var/lib/snapd i /var/snap do nowych lokalizacji – tam gdzie ich miejsce, przy okazji z oryginałów robiąc backup:

cp -r /var/lib/snapd ~/.offload_drive/snapd
cp -r /var/snap ~/.offload_drive/snap

mv /var/lib/snapd /var/lib/snapd.bak
mv -r /var/snap /var/snap.bak

Później należy utworzyć te katalogi na nowo, jako że gdy chcemy coś zamountować, to musimy mieć do tego katalog.

mkdir /var/lib/snapd
mkdir /var/snap

Na sam koniec należy dodać do pliku /etc/fstab następujące linie:

/home/psychob/.offload_drive/lib_snapd    /var/lib/snapd  none  bind     0    0
/home/psychob/.offload_drive/var_snap     /var/snap       none  bind     0    0

I zatwierdzić to poleceniem:

mount -a

Źródło: 1

Bash

Bash jest domyślnym shellem w Ubuntu i wyłącznie z tego powodu jest tym z którego korzystam. A skoro już z niego korzystam, to miło jest go sobie spersonalizować. Tutaj jedyne co opiszę to jak zmodyfikować $PS1, czyli tak zwany prompt.

Najprostszą rzeczą przy modyfikacji promptu, jest skorzystanie z gotowych generatorów, na przykład z bashrcgenerator.com. Na tej stronie wystarczy wyklikać sobie wymarzonego prompta, i gdy skończymy to wystarczy wygenerowany kod dodać na końcu pliku: ~/.bashrc.

Ale skoro już upiększyliśmy sobie prompta, to fajnie byłoby gdyby wyświetlał nam brancha jeśli jesteśmy w jakimś repozytorium. By to zrobić, należy do $PS1 dodać następujące wyrażenie:

$PS1 +="\$(__git_ps1 '(%s) ')"

Ale nie zadziała to tak od razu, bo potrzebujemy mieć jeszcze definicje funkcji __git_ps1, można ją znaleźć na stronach githuba. By wszystko zadziałało, należy dodać przed skorzystaniem z w/w funkcji kod który dołączy ten plik do naszego ~/.bashrc.

source ścieżka-do-pliku

Źródło: 1,2,3,4

Docker

Docker jest jednym z tych narzędzi które na stałe weszły do zestawu narzędzi każdego dewelopera (czy tego chce czy nie), więc dobrze jest go sobie poprawnie skonfigurować.

By nie było potrzeby przełączanie się na roota za każdym razem gdy chcemy coś zrobić z naszymi kontenerami, warto dodać naszego użytkownika jako zaufanego. By to zrobić należy dodać siebie do grupy docker.

sudo usermod -a -G docker psychob

Przy czym może zdarzyć się to, że po zainstalowaniu dockera, nie będziemy mieli takiej grupy. W takim wypadku należy ją stworzyć:

sudo groupadd docker

Docker domyślnie korzysta z sieci 172.12/16, może być to dość niefortunne gdy w naszym domu lub pracy korzystamy z takiego zakresu, na szczęście łatwo jest to zmienić w konfiguracji. W pliku /etc/docker/daemon.json (lub jeśli zainstalowaliście dockera przez snapa to: /var/snap/docker/current/config/daemon.json), należy dodać następującego json’a:

{
  "bip": "172.26.0.1/16"
}

Po tym należy zrestartować dockera

Źródło: 1,2

SSH

SSH jest wygodnym sposobem na uwierzytelnienie siebie w komunikacji z innymi serwerami. W szczególności jeśli korzystamy z szyfrowania asymetrycznego i kluczy RSA.

Zawsze gdy konfiguruje na nowo system, to nigdy nie pamiętam jakie uprawnienia mają mieć pliki id_rsa i id_rsa.pub:

chmod 0600 id_rsa      # RW only for owner
chmod 0644 id_rsa.pub  # RW for owner, Read for anyone else

Innym problem zaczyna się wtedy, gdy musimy korzystać z większej ilości kluczy, jak wtedy zarządzać nimi by ssh samo wiedziało który klucz służy do jakiego połączenia? Służy do tego plik ~/.ssh/config.

Należy w nim wymienić zapisać hosty z którymi się chcemy łączyć, jak i kluczy z których powinien korzystać.

Host work.git.com
    HostName work.git.com
    User git
    IdentityFile ~/.ssh/id_rsa_work


Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa


Źródło: 1, 2

Firefox

Bardzo dużo czasu spędziłem na Windowsie i przyzwyczaiłem się do konfiguracji firefoxa która jest domyślnie na tym systemie. Co prawda nie rozumiem dlaczego różni się ona między systemami, ale pewnie jest to jedna z tych rzeczy które dawno temu zostały ustalone i nikt nie chce ich teraz zmienić.

By zmienić niżej wymienione rzeczy należy wejść na stronę about:config i zmienić następujące rzeczy:

Co jest zmieniane Klucz Wartość
Klawisz backspace odpowiada za cofnięcie się do poprzedniej strony browser.backspace_action 2
Firefox nie wyłącza się gdy zamkniemy ostatnią kartę browser.tabs.closeWindowWithLastTab false

Źródło: 1, 2

VIM

VIM jest jednym z tych narzędzi na którego ludzie lubią psioczyć, nie bez powodu. Jest to trudne w obsłudze narzędzie które ma tą zaletę że jest w zasadzie zainstalowane wszędzie. Można je nawet ulepszyć stosując odpowiednią konfiguracje, a taka znajduje się na wiki vima. Dla mnie jest wygodniej jak wyłączy się obsługę myszy:

" Enable use of the mouse for all modes
" set mouse=a

Źródło: 1

PHPStorm/Jetbrains IDE

Projekty przy których pracujemy mogą być bardzo duże, dlatego środowiska programistyczne od jetbrains sugerują by dostosować konfiguracje systemu. Dzięki zmianie konfiguracji PHPStorm czy jakiekolwiek inne środowisko od nich będzie potrafiło szybciej indeksować zmiany w naszym projekcie.

By zwiększyć maksymalną ilość obserwowanych plików należy utworzyć nowy plik: /etc/sysctl.d/60-jetbrains.conf, z zawartością:

# Set inotify watch limit high enough for IntelliJ IDEA (PhpStorm, PyCharm, RubyMine, WebStorm).
# Create this file as /etc/sysctl.d/60-jetbrains.conf (Debian, Ubuntu), and
# run `sudo service procps start` or reboot.
# Source: https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit
# 
# More information resources:
# -$ man inotify  # manpage
# -$ man sysctl.conf  # manpage
# -$ cat /proc/sys/fs/inotify/max_user_watches  # print current value in use

fs.inotify.max_user_watches = 524288

Zmiana zostanie zaaplikowana po restarcie.

Źródło: 1, 2

Spotify

Z jakiegoś powodu, gdy zainstalowałem spotify przez snapa, środowisko graficzne – u mnie jest to mate – nie potrafiło wyświetlić go przy widgecie który odpowiadał za głośność systemu.

Poprawienie tego było proste, należało zmienić nazwę jednego pliku:

sudo mv /var/lib/snapd/desktop/applications/spotify_spotify.desktop /var/lib/snapd/desktop/applications/spotify.desktop

Źródło: 1

Killzone 2

Nie potrafiłem się zebrać na napisanie tego wpisu. Częściowo świadczy to o mnie (jako że nie było tutaj żadnego wpisu od 4 lat), a częściowo o grze o której chce napisać czyli o Killzone 2. Jest to ekskluzywny – dla konsoli PlayStation 3 – first person shooter stworzony przez Guerilla Games. I po przejściu jej całej mogę ją podsumować słowem: meh. Ale od początku:

Gra rozpoczyna się filmikiem w angielskiej wersji z polskimi napisami, co może sugerować że jest spolszczona kinowo, ale jest to kłamstwo, bo jak odpalimy już samą grę to usłyszymy polski dubbing, którego nie można zmienić! Można oczywiście usunąć zapisany stan gry i zmienić język, ale na przykład nie można grać z angielskimi głosami i polskimi napisami.

Nie jest to w interesie gry by oceniać ją przez pryzmat polskiego dubbingu, dlatego że on kłuje w uszy. Pominę standardowy problem polskich dubbingów, gdzie aktor musi dostosować się do angielskiej wersji, bo jak wszyscy wiemy słowa tłumaczą się jeden do jednego. Wypowiadane kwestie bez emocji, albo jakby były wypowiadane w próżni; głosy niepasujące do postaci – tutaj najbardziej winne jest intro które pokazuje angielski dubbing, chociaż z drugiej strony to nigdy nie potrafiłbym sobie wyobrazić polaków w klimacie sci-fi więc to też może dlatego.

Ale tutaj chyba też są winne tłumaczenie i implementacja, bo jak wytłumaczyć kwestię: Gdzie jesteś? / Jestem zajęty – która jest wypowiadana przez jedną i tą samą postać? Albo jak inna postać pyta ze stoickim spokojem czy nie zechciałbym kontynuować gry, podczas gdy wrogowie ciągle do nas strzelają. Albo dlaczego jeden z towarzyszy zwraca się do mnie w liczbie mnogiej mimo że ta gra nie posiada trybu kooperacyjnego?

Nie chce się jednak pastwić nad dubbingiem, bo mi osobiście zawsze gry plusowały tym że posiadały pełną polską wersję językową – nieważne jak złą. Szczególnie że mogę ponarzekać na rozgrywkę:

Gra jest reprezentantem podgatunku gier FPS który ja nazywam military shooter, do którego można dodać słowo brown dlatego że została stworzona w czasie gdy twórcy byli zafascynowani kolorem i odcieniami brązu. Ten konkretny podgatunek wymaga byśmy grali super żołnierzem (najczęściej z limitem dwóch broni) przeciwko wrogo nastawionym żołnierzom z różnym ekwipunkiem. Jako że tego typu gry są zazwyczaj nudne – bo rozgrywka po prostu nie ewoluuje – to należy oddzielić kolejne misje różnymi kinowymi wstawkami.

Tutaj nie jestem jednak uczciwy, bo gra przynajmniej stara się jakoś zróżnicować rozgrywkę: od czasu do czasu walczymy z większym żołnierzem – któremu należy strzelać w plecy – czy radioaktywnym pająkiem. Mamy też walki z bossami, sekcje w której strzelamy do samolotów i sekcje w której chodzimy w pancerzu wspomaganym itp.

Do dyspozycji – przez większość gry – mamy standardowy zestaw broni: pistolet, karabin, shotgun i ewentualnie bazookę. Powinienem chyba napisać że do dyspozycji mamy wielki pistolet, itd, dlatego że z jakiegoś powodu zajmują ¼ ekranu. Tutaj winne może być to że FOV (field of vision) jest bardzo niskie. Może na telewizorze wyglądało by to lepiej, ale na moim zwykłym monitorze zakres widzenia był mały a bronie ogromne.

Warto też wspomnieć że system auto-zapisów zapisywał w dziwnych miejscach. Ale to jest już czepianie się szczegółów. Bo o ile w paru miejscach miejsce zapisu wydawało mi się dziwne, to nigdy mnie to mocno nie irytowało.

Zanim napisze coś o sterowaniu, chciałbym zwrócić uwagę że jest to moja pierwsza konsolowa gra w którą gram. Nigdy nie miałem konsoli, a na jakimkolwiek padzie zacząłem grać niewiele wcześniej. Mając to w głowie:

Nie rozumiem dlaczego strzelanie na padzie jest przypisane do prawego przycisku (RB) zamiast do prawego triggera (RT). Nie było to wygodne, i trudno mi było się przestawić gdy grałem w Red Dead Redemption.

Nie rozumiem też dlaczego mamy specjalną akcje przypisaną do lewego triggera która powoduje że przyklejamy się do najbliższej ściany. Kompletnie nie rozumiem tej mechaniki – może dlatego że nie była mi ona potrzeba w żadnym z FPSów w które grałem. Nie piszę tutaj o tym że z tej mechaniki nie korzystałem, bo w grze w której większość przeciwników ma bronie typu hitscan możliwość przyklejenia się do ściany by po chwili organy wróciły na swoje miejsce jest przydatna. Tylko nie rozumiem dlaczego potrzebujemy specjalnego przycisku na padzie który ogłosi wszem i wobec miłość bohatera do ścian.

Dowiedziałem się też w trakcie grania że pad posiada w sobie żyroskop który gra wcisnęła na siłę do rozgrywki. I wiem że jest to zrobione na siłę, bo możemy z niego skorzystać do odkręcania/zakręcania zaworów i do ustawiania bomb – gdzie zrobimy to maksymalnie raz na misje. Wymaga to podniesienia pada, naciśnięcia przycisków LB i RB i potem przekręcenia pada w odpowiednią stronę, co dla mnie jest irytujące; bo nie po to usadowiłem się wygodnie na fotelu i umieściłem pada w odpowiednim miejscu by później musieć zmieniać pozycje bo gra przypomniała sobie że Sony umieściło żyroskop w padzie.

Kolejną rzeczą w której wykorzystywany jest żyroskop są ekrany ładowania, gdzie widzimy prostą scenę w 3D i w zależności jak odwrócimy pada to scena też lekko się odwróci. A skoro jesteśmy już przy ekranach ładowania to należy wspomnieć że są zbyt długie. Może irytuje mnie to dlatego że na moim laptopie gry w które grałem zawsze ładowały się w parę sekund, a tutaj liczyło się to w minutach.

Ale nie powinienem chyba narzekać że gra sprzed 10 lat na konsoli która ma 14 nie spełnia wymagań z 2018 roku. Dlatego ponarzekam na to na co mogę, czyli na fabułę.

Gra opowiada o konflikcie ISA z Imperium Helghanu, to jestem w stanie stwierdzić na pewno, dlatego że gramy tutaj żołnierzem ISA który ciągle strzela do Helghastów. Motywację jaką mamy do tego by ich nie lubić jest Standardowa Motywacja ze Strzelanek: Strzelają do nas. Co jeśli się nad tym zastanowić, jest dość słabą motywacją.

Oczywiście sami Helghanie są wzorowani na nazistach, od hełmów, przez świecąco na czerwono oczy po zamiłowanie do wyprasowanych mundurów. Tylko mi trudno przełożyć nienawiść która dotyczy nazistów na rasę której nie znam. Tak, strzelają do mnie, ale należy pamiętać że to ISA atakuję główną planetę Imperium. Trudno oczekiwać że nie będą bronili swojej ziemi przed agresorem.

Ignorując to że gra chce byśmy nienawidzili odmieńców, przejdźmy do bohaterów których – razem z graczem – jest 5. Po przejściu całej gry jedyne co mogę o nich napisać że są super żołnierzami. Nie otrzymali żadnej charakteryzacji, jeden z nich nawet ginie w trakcie – bo jak wiadomo 5 bohaterów to za dużo – ale trudno mi było przejąć się tym gdy jedyne co o nim wiedziałem to to że jest super żołnierzem.

W grze która stawia na rozgrywkę, przydał by się jakiś inny kanał którym gracz dostawał by informacje o świecie i kontekst dlaczego to się wszystko dzieje. W killzonie nie ma niczego takiego, z wszystkich scen jest jedna która sugeruje że nasi przeciwnicy nie należą do najmilszych – chodzi o wcześniej wymienione zamiłowanie do wyprasowanych mundurów – ale jest to tylko jedna scena.

Mamy w grze system znajdziek – emblematy i dane wywiadowcze, ale żadne z nich nie służy rozgrywce ani historii. Przydała by się tutaj jakaś wewnętrzna encyklopedia która by przypomniała dlaczego Helghanie są źli i dlaczego ISA jest taka zajebista. I o ile osiągnięcie za zniszczenie emblematów i zebranie danych nie szkodzi, to taka nagroda istnieje kompletnie poza grą.

Podsumowując nie polecił bym tej gry ze względu na opowiedzianą w niej historię, jeśli chodzi zaś o rozgrywkę, to jest ona funkcjonalna, kompetentnie wykonana. Ja sam przeszedłem tę grę tylko i wyłącznie dlatego że PS3 leżała odłogiem przez miesiąc i wypadało by wreszcie w coś na niej zagrać. Więc jeśli ktoś z przyszłości zastanawia się warto zagrać w Killzone 2, to moja rekomendacja jest taka: tylko jeśli nie masz nic lepszego do roboty.

Walka z Ubuntu

Słowo ‚Walka’, dobrze opisuje to co trzeba robić by sprawić by ten system i aplikacje do niego dołączone były, może nie dostosowane (o czym ja marzę), ale sprawnie działały.

Na co dzień, normalnie korzystam z aplikacji Open Source. Jest to związane z moim przyzwyczajeniem do nich, z tym że nie stać mnie na kupno „wychwalanej pod niebiosa” komercyjnej alternatywy i na końcu dlatego że aplikacje typu Open Source są często lepsze niż ich zamknięte alternatywy (np: Kadu jest o niebiosa lepsze niż Gadu Gadu, choćby ze względu na to że nie ma reklam).

Problemem jednak z przejściem z wersji Windowsowych na wersje Linuksową jest historia i ewolucja tych systemów. Przykładem może być to że w Serwerze X – czyli w graficznym interfejsie użytkownika – domyślną akcją przypisaną pod środkowy przycisk myszy jest: wklejanie tekstu znalezionego w schowku. Wygodne co nie? Szczególnie gdy pisze się tekst na bloga i nie wie się, że za każdym razem gdy przewija się tekst w górę czy to w dół – dodaje nam się cokolwiek mieliśmy w schowku.

Zresztą o Firefoxie na Ubuntu można by napisać więcej. Np, podczas instalacji miałem opcje by zaimportować moje dokumenty/opcje itp do Ubuntu. Jako, że mi mój katalog Moje Dokumenty nie jest potrzebny w dwóch kopiach, postanowiłem zaimportować tylko ustawienia Firefoxa. I po instalacji się okazało że nic się nie zaimportowało. Well done Canonical.

Chciałem mieć moje ustawienia jednak zaimportowane więc postanowiłem skorzystać z wynalazku Mozilli, który nazywa się: Firefox Sync. Z lekką obawą zastanawiałem się czy uda mi się wysłać na serwery Mozilli cały mój katalog z profilem firefoxa który zajmuje grubo ponad pół gigabajta. Jednak udało się Mozilli zmieścić to wszystko w zaledwie dwóch megabajtach – brawo.

Gdy jednak zacząłem synchronizować mój profil linuksowy z zapisanym profilem windowsowym, okazało się że nie wszystkie dane się zsynchronizowały. Brakowało wszystkich ustawień dodatków – naprawdę jeśli synchronizujemy dodatki, to wypada zsynchronizować też ich opcje – jak i nie wiem dlaczego niektóre z opcji które sobie ustawiłem na Windowsie nie dotarły one na Linuksa, albo zostały nadpisane przez domyślnie ustawienia. Ja się pytam dlaczego? Jeśli już w Firefoxie jest coś takiego jak about:config, to chyba należy zsynchronizować wszystkie jego wartości, bo chyba Ja tak je ustawiłem. Po co mi synchronizacja, która nie synchronizuje ustawień przeglądarki pomiędzy systemami operacyjnymi?

Zostawmy jednak Firefoxa, przejdźmy do samego interfejsu systemu. Można go podsumować dwoma wyrazami: Unity ssie. Można też dodać że bardzo. Nie jest to kompletna porażka jak lolmetro na Windowsie 8, ale nie jest to coś z czego bym chciał korzystać na co dzień.

Co mi tutaj nie pasuje? Po pierwsze pasek menu aplikacji który wzorem idiotycznego UI MacOsa został przeniesiony na stałe na górę ekranu. Prócz paska menu został tam przeniesiony także pasek tytułowy, jednak by nie marnować miejsca został on przeniesiony w to samo miejsce gdzie jest teraz pasek menu aplikacji. I możecie mi zaufać nie jest to wygodne rozwiązanie.

Unity pasek menu

Bardzo ciekawie to wygląda gdy mamy więcej okien na pulpicie, bo wtedy pasek menu/pasek tytułu jest tylko dla tego które jest aktualnie aktywne. Ciekawie więc wygląda to w GIMPie, w którym jeśli aktywne jest jedno z jego miliarda okien – i nie jest to okno główne – to na górze pojawi nam się tylko tytuł tego małego okna.

To wymuszanie by aplikacje miały pasek menu/pasek z tytułem na samej górze ekranu jest o tyle dziwne, że np: programy pisane w Javie, czy przy pomocy biblioteki Qt (które same sobie rysują interfejs) i tak będą miały pasek menu w normalnym miejscu.

Innym problemem z Unity jest konfiguracja – jeśli myślisz że znajdziesz konfiguracje unity w Ubuntowskim panelu sterowania, to jesteś w błędzie. By dostać się do opcji środowiska Unity, należy wpisać ccsm. Dopiero wtedy dostaniemy możliwość trochę lepszego dostosowania interfejsu do siebie.

Znajdują się tam tak zaawansowane opcje jak np: Zmiana skrótów klawiszowych, dodanie nowych wirtualnych pulpitów itp.

Pisząc o Linuksie nie można nie wspomnieć linii poleceń, która jest tutaj o niebo lepsza niż ta z Windowsa. Wszystko co można zrobić w interfejsie graficznym, przez różnego rodzaje aplikacje graficzne, można też zrobić przez linie poleceń. Najczęściej też można zrobić to szybciej niż wyklikując sobie drogę.

I mówiąc szczerze, jeśli ktoś chce wykorzystywać potęgę Linuksa, będzie musiał zaprzyjaźnić się z tym narzędziem. Bo wiele czynności będzie można wtedy wykonać szybciej. Dla przykładu jak szybko na Linuksie, używając „Centrum Oprogramowania Ubuntu”, można zainstalować serwer apache+php+mysql. W linii poleceń można wklepać jedną linijkę:

sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server libapache2-mod-auth-mysql php5-mysql

Co jest IMO wygodniejsze niż znajdywanie wszystkiego po kolei w Centrum Oprogramowania i klikania Instaluj. Jednym z minusów takiego rozwiązania jest jednak to, że należy znać nazwę poprawnego pakietu i dany pakiet musi istnieć w repozytorium. Dla przykładu najnowszej Javy tam nie znajdziecie – ale dobrze że są inne sposoby.

Repozytoria z oprogramowaniem to jest jedna z tych rzeczy których użytkownik Windowsów może zazdrościć użytkownikom Linuksów. Dlaczego? Bo dostają gratis: aktualizacje wbudowane w system, zależności między aplikacjami – czyli jeśli aplikacja A, potrzebuje aplikacji B to podczas instalacji aplikacji A zostaną one zainstalowane obie. Coś podobnego ma – chyba – wprowadzić Windows Store który będzie wybudowany w Windows 8.

Z tym całym systemem pojawia się pewna niedogodność, co się stanie jeśli zainstalujemy nowy program nie poprzez system pakietów, ale np: poprzez rozpakowanie archiwum, na przykład w repozytoriach Ubuntu nie ma aktualnej wersji Netbeansa (w repozytorium jest 7.0.1, a najnowsza to 7.2). By zainstalować jego najnowszą wersje, trzeba ściągnąć go ze strony projektu. Powoduje to, że wszystkie potrzebne zależności (w tym przykładzie Netbeans potrzebuje mieć Javę) musimy MY zainstalować.

Ale też można założyć taką sytuacje: instalujemy pakiet A, który jako swoje zależności instaluje pakiet B. Gdy teraz zainstalujemy nie poprzez mechanizm pakietów nowy program, który potrzebuje do działania pakiet B, to dopóki pakiet A jest zainstalowany – nowy program będzie działać. Jeśli jednak usuniemy pakiet A, to program do zarządzania pakietami sprawdzi że żaden inny program nie potrzebuje już pakietu B i usunie go.

Nie jest to oczywiście błąd samego Linuksa, tylko autora programu który źle rozprowadza swoją aplikację. Taka sytuacja też nie powinna się zdarzyć jeśli wszystko będziemy instalować z repozytoriów.

Kolejnym plusem systemu jest też możliwość korzystania z wielu pulpitów. Jest to chyba jedna z bardziej rozpoznawalnych funkcjonalności Linuksa. Możliwość trzymania wszystkich aplikacji nie na jednym pulpicie tylko na kilku. IMO bardzo wygodne rozwiązanie. Bo nie trzeba szukać gdzie mamy jakąś aplikację, tylko wiemy że dla Firefoxa jest przeznaczony środkowy pulpit.

Minusem jest tutaj podstawowa konfiguracja Unity, dzięki której przy pomocy ALT+TAB można przełączać się tylko do programów na aktualnym pulpicie. Nie wiem też czy jest (może ta opcja jest ukryta), czy można wymusić by dana aplikacja zawsze była uruchamiana na konkretnym pulpicie? Ja niestety takiej opcji nie znalazłem. A wydaje mi się że GNOME coś takiego miał.

To tyle jeśli chodzi o walkę, następny wpis najprawdopodobniej będzie mówił coś o konfiguracji Ubuntu.

Walka z Ubuntu – instalacja i konfiguracja

Jak się pewnie niektórzy domyślają, nadchodzą mroczne czasy dla właścicieli PCtów. Jednym z sygnałów, jest nowa wersja systemu operacyjnego Windows o numerze 8. Można by się spytać, dlaczego jest to zwiastun zarazy? Jest nimi parę rzeczy, po pierwsze nowy interfejs który ma w przyszłych wersjach zastąpić standardowy pulpit, Metro. Po drugie, jest nim integracja z chmurą (microsoftową) – pomyślcie, by skorzystać ze swojego peceta, musicie zalogować się do chmury. Ale o tym będzie w niedalekiej przyszłości, kiedy to najnowsze dziecko Microsoftu pojawi się w repozytorium MSDN AA politechniki.

Co ma to do Ubuntu? Ma to jedną zasadniczą część wspólną. Gdy już nie będzie odwrotu, gdy już starsze Windowsy nie będą obsługiwane (bo sterowniki itp). Warto będzie mieć drogę ucieczki w inny system operacyjny. Bo o ile w opowieściach, wędrówka w nieznaną może być interesująca, to jeśli chodzi o komputery – to może nie być już takie fascynujące.

Jako swoją dystrybucje, którą będę teraz męczyć, wybrałem Ubuntu, którego mottem jest: „Linux for human beings„, czyli Linuks dla ludzi. Wybrałem tą dystrybucje dlatego, że jest polecana nowicjuszom (ja mam jakieś doświadczenie z Linuksem, ale nie takie by np: zainstalować Gentoo z linii poleceń), posiada ona wsparcie dużej firmy (a nie jest tworzona w garażu przez pasjonatów) i w sieci jest dużo materiałów How To. Więc jest to idealna dystrybucja dla ludzi którzy chcą poznać linuksa.
Czytaj dalej »