TechLife devBlog

How much is the fish

Linux, Software 17 marca 2016 11:14

Dzisiaj będzie o złotej rybce, która jest w stanie spełnić większość naszych życzyń dotyczących efektownej i efektywnej konsoli. Friendly Interactive SHell czyli fish to jedna z powłok systemowych, której możemy użyć w konsoli jako zamiennika basha czy zsh.

fish shell logo

Instalacja

Powłoka fish jest dostępna w repozytoriach większości dystrybucji. Wystarczy zainstalować paczkę.

# pacman -S fish

Następnie ustawić ją jako domyślną powłokę dla naszego użytkownika.

$ chsh -s /usr/bin/fish

Gotowe, po uruchomieniu nowej konsoli zobaczymy domyślne powitanie fisha.

fish default prompt

Menadżer pakietów

Dobre rozwiązania mają to do siebie, że są zbudowane na solidnej podstawie ale jednocześnie dają możliwość rozszerzania swoich funkcji za pomocą pluginów. Podobnie jest i w tym przypadku. Do wyboru mamy nawet kilka menadżerów pakietów tj.

  • fundle - inspirowany Vundle-m czyli podobnym menadżerem dla Vim-a
  • oh-my-fish - menadżer inspirowany oh-my-zsh
  • fisherman - nowy i podobno najszybszy z nich wszystkich

Jako że dzisiaj wpadłem na fishermana to właśnie jego zademonstruję. Do jego instalacji wystarczy nam curl.

$ curl -sL get.fisherman.sh | fish

fish default prompt

Do dyspozycji mamy teraz komendę fisher oraz dwa domyślnie zainstalowane pakiety.

$ fisher list
* debug
* spin

Rybaka w działaniu możecie dokładniej pooglądać tutaj - fisherman.sh/#demo

Szczegółową listę pakietów można podejrzeć wklepując:

$ fisher search --long

fisher search results

Oczywiście lista obejmuje jedynie wspierane i przetestowane paczki ale nie zabrania nam to zainstalowania dowolnej paczki ze ścieżki, url-a czy podając autora i nazwę repozytorium.

$ fisher install owner/repo

Osobiście moim must have w konsoli jest nazwa użytkownika i maszyny, na którą jestem obecnie zalogowany, dlatego pierwsze co robię po instalacji fisha to dostosowanie prompta poprzez instalację paczki lambda.

fisher lambda prompt

Użytkowanie

Fish jak już sama nazwa wskazuje został zaprojektowany jako przyjazna użytkownikowi interaktywna powłoka. Interakcje możemy zauważyć już po wpisaniu pierwszego znaku, ponieważ powłoka od razu podpowiada nam pasujące do wpisanego tekstu komendy.

fish interactive

Out of the box podpowiada też argumenty różnych komend.

fish git

Używając zsh często przyłapywałem się na tym, że 80% rzeczy które robię w konsoli zaczynają się od wciśnięcia ctrl+r czyli kombinacji pozwalającej na wyszukiwanie w historii. W fishu ten krok stał się zbędny ponieważ domyślnie wszystko co wklepujemy automagicznie przeszukuje historię w celu podpowiedzenia nam ostatniego użycia a strzałkami w górę i w dół możemy przeglądać pozostałe pasujące rezultaty.

fish history search

Mógłbym tu jeszcze pozachwycać się nad wieloma fajnymi rzeczami jakie można znaleźć w fishu, ale nie po to ktoś napisał do niego ładny tutorial, żebym go teraz pominął. Pluginy najlepiej przetestować samemu, ewentualnie korzystając z fisher search --long przejrzeć najpierw ich repozytoria ponieważ na większości znajdziecie gotowe screeny.

Na koniec oficjalnie: fishshell.com

Praca dla kogoś vs. własny projekt

Inne, Varia 10 marca 2016 23:27

Wczoraj Mateusz wrzucił bardzo fajny materiał, w którym omawia temat wyobrażeń dotyczących zawodu programisty i ich późniejszej weryfikacji praktycznej. Trudno się z nim nie zgodzić, dlatego pozwoliłem sobie wrzucić go tutaj jako przestrogę a zarazem receptę na przyszłość.

Little War Game - RTS by JS

Internet 8 marca 2016 23:27

Little War Game - screen 1

Little War Game to bardzo grywalna strategia czasu rzeczywistego przypominająca trochę średniowiecznego StarCrafta. Gra jest w pełni darmowa i zarazem wieloplatformowa, ponieważ działa w przeglądarce w całości napędzana JavaScriptem (zero Javy, zero Flasha).

Little War Game - screen 2

Co ciekawe za całą mechanikę gry (nie licząc grafiki i muzyki) odpowiada jeden programista. A co jeszcze ciekawsze oprócz jQuery i Underscore'a nie używał żadnych frameworków. Cała komunikacja z backendem odbywa się naturalnie po websocketach a na zapleczu siedzi node.js.

Little War Game - screen 3

Little War Game to idealna gra do rozgrywki wieloosobowej, bez problemu możemy zahostować własną grę na jednej z miliona map czy dołączyć się do już istniejącej rozgrywki. Można również zagrać z komputerem, którego inteligencja stoi na całkiem przyzwoitym poziomie.

Little War Game - screen 3

Oczywiście w grze nie brakuje też takich bajerów jak edytor map czy nawet odtwarzanie powtórek a mnogość jednostek i powiązanych z nimi budynków zapewnia całkiem przyjemną rozgrywkę ekonomiczną. Nic tylko odpalić url-a w wolnej chwili i zaprosić kilku znajomych.

A teraz przejdźmy do rzeczy: littlewargame.com

httpie - HTTP dla ludzi

Linux 7 marca 2016 22:16

Bardzo lubię pythonowe paczki z serii for humans. Obok requests (zamiennika urllib2) czy Envelops (Mailing for human beings) znajdziemy również HTTPie - doskonały zamiennik takich konsolowych narzędzi jak wget czy curl.

Instalacja

jak zawsze banalnie prosta.

pip install httpie

lub jeżeli nie chcecie zainstalować paczkę tylko dla swojego użytkownika:

pip install --user httpie

Po instalacja do naszej dyspozycji mamy komendę http.

http google.com

http -v google.com

Główne zalety httpie

  • kolorowanie wyjścia
  • formatowanie wyjścia
  • łatwy upload plików
  • pobieranie plików w stylu wget-a
  • obsługa parametrów GET i POST
  • nagłówki
  • bezpieczeństwo (uwierzytelnianie, https)
  • obsługa sesji
  • strumieniowanie odpowiedzi

Kilka przykładów użycia:

Wysłanie POST-a

http httpbin.org/post test=yyy --print HB

--print HB pozwala wyświetlić jedynie nagłówki (H) oraz treść (B) rządania.

Pobieranie pliku

http http://wikipedia.pl/img/wikimedia-polska.png > logo.png

Strona 1 z 42 | Starsze »