
TL:DR; Nowicjusz spróbował Haiku po raz pierwszy i postanowił, że jest świetny. Zwłaszcza w porównaniu do środowisk roboczych dostępnych na Linuxie.
Już dzieliłem się swoimi pomysłami (a także rozczarowaniami) na temat #LinuxUsability (, , , , , ). W tej recenzji opiszę pierwsze wrażenia z , systemu operacyjnego z otwartym kodem źródłowym dla komputerów osobistych. Czasami pierwsze wrażenia mogą być pomocne, jednak ponieważ pierwsze wrażenia zdobywa się tylko raz — zachowałem swoje tutaj.

System, na którym piszę tę recenzję
Może to być pomocne dla deweloperów Haiku lub innych zainteresowanych stron.
Gdzieś mogę się mylić, ponieważ opisuję jedynie osobiste (czytaj: naocznie) pierwsze doświadczenie. Przyjaźni ludzie na kanale #haiku w sieci irc.freenode.net również pomagali mi wskazówkami — ich również opublikuję. Dziękuję, deweloperzy Haiku!
Co chciałem powiedzieć: Haiku nie jest jeszcze w 100% idealne, ale już ma stabilne środowisko robocze.
Instalacja
Projekt Haiku udostępnia obrazy do pobrania z CD lub DVD, . Używałem pamięci USB-3. Mówiono mi, że uruchomienie z USB-3 może nie zadziałać, ale na moich dwóch testowych systemach opartych na Intel działa doskonale.
Proces instalacji rozpocząłem od pobrania obrazu dla 64-bitów, który następnie nagrałem na pamięć USB za pomocą programu . Uruchamianie działa zarówno z , jak i bez niego — moje brawa za udostępnienie takiego obrazu.
Haiku używa własnego dla partycji rozruchowej, chociaż ogólnie zadeklarowane jest wsparcie dla FAT32 i NTFS. Właściwie dla systemu wystarcza 600MB, ale na dodatkowe aplikacje potrzeba więcej miejsca.
Domyślnie tworzona jest partycja o pojemności 600MB z BeFS oraz partycja FAT32 o rozmiarze 3GB. Na FAT32 znajduje się plik /EFI/BOOT/BOOTx64.EFI, co sugeruje możliwość rozruchu na systemach z obsługą EFI. Niestety, nie znalazłem programów do zwiększania rozmiaru BeFS, mam nadzieję, że w przyszłości wprowadzą inny schemat podziału dysku, ponieważ rozmiar obrazu partycji jest ustalony na niewielki i może nie wystarczyć wolnego miejsca na dodatkowe oprogramowanie. Byłoby miło, gdyby dodatkowe pakiety oprogramowania były przechowywane na drugiej partycji FAT32.
To rozwiązanie byłoby korzystne dla tych, którzy chcą uzyskać dostęp do plików bezpośrednio z innych systemów. W Linuxie już istnieje wsparcie dla odczytu BeFS, są implementacje do odczytu i zapisu BeFS pod .

Instalator Haiku
Dostałem radę: chcesz używać większej partycji — zainstaluj Haiku na innej pamięci flash.
Dla mnie ten etap jest zasadniczo zbędny, ponieważ instalator Haiku nie potrafi dzielić dysków, a jedynie uruchamia program DriveSetup, w którym trzeba ręcznie podzielić dysk, dodać partycję, którą potem należy sformatować w BeFS, po czym zarządzanie wraca do instalatora. Będzie również trzeba ręcznie zainstalować bootloader, używając osobnego programu. Niestety, nie udało mi się uruchomić z EFI przy takim podziale, ponieważ brakowało partycji FAT32 z plikami rozruchowymi dla EFI. Nie zaszkodziłby instalator, który potrafi automatycznie podzielić dysk, uwzględniając cechy EFI.

BootManager instaluje bootloader na dysku
Sam proces instalacji trwa nieco mniej niż trzy minuty, co jest dość szybko. W tym czasie kopiowana jest całkowita system, składający się z "zaledwie" 4751 plików. Przyczyną tego jest fakt, że większość oprogramowania jest zapakowana w postaci plików hpkg (trochę podobnych do pakietów Snap w systemach Linux), które nigdy nie są instalowane, a jedynie montowane. Co ciekawe, jest całkiem sporo „wolnych” plików, np. png. Dlaczego nie zostały zapakowane?
Jak już mówiłem, nawet jądro systemu operacyjnego jest dostarczane w postaci pliku hpkg. (mówiłem o 4751 pliku, ponieważ uruchomiłem przed instalacją HaikuDepot, który pobrał wiele pakietów. Czysta instalacja, najwyraźniej, nie zawiera ich wszystkich i może być zainstalowana szybciej, z około 200 pakietami. Fajnie! Jak mi powiedziano, to, że pobrane pliki nie są ignorowane podczas instalacji — to . O, wygląda na to, że to pierwszy raport o błędzie, napisany na moją sugestię.
Pierwsze uruchomienie
System ładuje się, pokazując ładną planszę, a następnie zatrzymuje się: po załadowaniu moja karta graficzna (Radeon) wyświetla czarny ekran.
Polecono mi uruchomienie w trybie awaryjnym z rozdzielczością 1024x768 na monitorze FullHD. W zasadzie można by się było pokusić o bootloader, aby uzyskać obsługę FullHD, ale na innym komputerze z kartą graficzną od Intela wszystko działało bez zarzutu.
System działa responsywnie z pendrive'a, prawdopodobnie dlatego, że nic nie jest zapisywane na pendrive podczas pracy, więc mam nadzieję używać go jako głównego systemu roboczego. Otrzymasz prawdziwy system podczas bootowania z USB, w przeciwieństwie do opóźnionych "żywych" obrazów Linuxa.
Podczas ładowania ekran się nie mruga, nie widać komunikatów jądra, nie ma wrażenia, że Xorg jest przyklejony do jądra niebieską taśmą. W przeciwieństwie do typowych dystrybucji Linuxa, jądro i GUI są tu stworzony i dopasowane do siebie!
Nie ma zaproszenia do zalogowania się, ponieważ system jest stworzony dla jednego użytkownika. Wszystko proste, dokładnie to, czego potrzebuje komputer osobisty.
Potrzebujesz wsparcia dla wielu użytkowników – rozdaj im pendrive'y, z których każdy kosztuje nie więcej niż 5 dolarów.
Pierwsze wrażenia z środowiska pracy
Jeśli porównasz pierwsze odczucie – bardziej przypomina Maca niż na przykład Linux z Gnome. Klawisz „command” działa dokładnie tak samo jak w Macu. Dobrze!

Nic nie przebije przestrzennego menedżera plików, uczucie – stary, dobry Mac!
(jak Macintosh System 1.0), niestety każde okno nie zapamiętuje swoich ustawień (na przykład widok jako lista lub jako ikony). Jak mi powiedziano – to błąd, który, jak sądzę, będzie łatwy do naprawienia. (Niestety, jest trudne – korzysta z oryginalnego systemu, który nie jest oparty na GitLabie ani GitHubie, więc również nie można się do niego zalogować). Pliki otrzymują swoje ikony, nie ma problemów z pojedynczymi plikami na pulpicie i ikonami.
Dobrze! O wiele lepiej niż środowiska pracy dla Linuxa, czuć prostotę.
Wydajność
System operacyjny działa sprawnie nawet na słabym sprzęcie, takim jak netbook na Atomie. Nie widać rozrośniętych warstw oprogramowania. Dobrze!
powiedział, że LibreOffice, wrażenia, działa szybciej niż na innych systemach operacyjnych, ale jeszcze tego nie sprawdziłem.

Bryan Lunduke. Haiku OS Beta – przegląd i wrażenia
Wiersz poleceń
W skład wchodzi terminal. Ogólnie rzecz biorąc, pomimo niewielkich różnic z Linuxem, szybko się z nim oswoiłem, w rzeczywistości – to zwykły bash, co bardzo mnie ucieszyło.
Witaj w powłoce Haiku.
Możesz w niej łatwo uruchomić aplikacje, które znajdują się na $PATH:
~> Touchpad
~> echo $PATH
.:/boot/home/config/non-packaged/bin:/boot/home/config/bin:/boot/system/non-packaged/bin:/bin:/boot/system/apps:/boot/system/preferencesWow! «.» in $PATH! This means that you can run commands directly from the current directory (Linux users once told me that the world would explode if I tried to do that). Great!

bash, running in the Haiku terminal
What's cool about the terminal is that you can press ctrl + c to copy, just like in other applications, unlike in Linux environments where you have to press ctrl + shift + c in the terminal.
The little things that show the integrity of the entire system.
File system structure
The partition from which the booting occurs is mounted in /boot. How simple!
No clutter /etc, /usr, /bin… Just /home i /system. Clean, simple, clear. Good! (Not entirely: they exist, but are hidden. Why? Because /bin to /system/bin, there's no need to display this in Tracker, but scripts still use it. I think developers should get rid of obsolete things made for compatibility, as it only complicates understanding.)
packagefs
I mentioned earlier about hpkg files, which are somewhat similar to Linux packages, but they are not installed, they are just mounted (like snap packages). The file system that does this magic is called packagefs. It mounts hpkg files on top of others, resulting in creating the entire /system directory in this way.
Unfortunately, the mount command does not show what is mounted.
~> mount
usage: mount [-ro] [-t fstype] [-p parameter] [device] directory
-ro mounts the volume read-only
-t specifies the file system to use (defaults to automatic recognition)
-p specifies parameters to pass to the file system (-o also accepted)
if device is not specified, NULL is passed (for in-memory filesystems)I was recommended to try mountvolume, which will show the mounted partitions, but unfortunately, it also does not show the mount points with packagefs (it will only show those related to partitions or disk images). [Fortunately, if you run mount or df somewhere on a host with docker, you can scroll a couple of screens! — przyp. tłumacza] But you can pull a trick with df:
~> df -h
Mount Type Total Free Flags Device
----------------------------------
/boot bfs 600.0 MiB 6.0 KiB QAM-P-W /dev/disk/usb/0/0/0
/boot/system packagefs 4.0 KiB 4.0 KiB QAM-P -
/boot/home/config packagefs 4.0 KiB 4.0 KiB QAM-P -
/no name fat 2.8 MiB 2.3 MiB - M-PRW /dev/disk/usb/0/0/1As we can see, /system i /home/config wciąż /boot this is just packagefs.
Those who know me are aware that I am a fan of drag-and-drop support in file managers: for example, I use NeXT-style application sets, or .
In any case, there are drawbacks to this format of software distribution. Can packagefs combine the best?
Jak widać, w moim przypadku (partycja systemowa jest pełna, ale chcę zainstalować aplikacje) bardziej eleganckim rozwiązaniem byłoby pobieranie aplikacji gdzie indziej, korzystając z przeglądarki, dokładnie tak, jak robię to z plikami. .dmg na Mac lub AppImage. packagefs żyje w jądrze, więc to nie jest system plików FUSE (choć wiem, że FUSE również istnieje w Haiku). Powiedziano mi również, że być może w przyszłości powstaną dodatkowe „strefy packagefs”, co prawdopodobnie oznacza, że będę mógł wskazać packagefs, aby przechowywał pakiety na oddzielnych partycjach dyskowych. To mi się podoba — ponieważ jeśli partycja dyskowa jest na wymiennym nośniku, mogę usiąść przy innym komputerze i mieć tam działające aplikacje.
Powiedziano mi też, że metoda przeciągnij i upuść również działa przy instalacji pakietów: wystarczy przeciągnąć plik do /system/packages lub na /home/config/packages w celu instalacji, a jeśli wyciągniesz plik stamtąd — zostanie on usunięty. Jeśli przeciągniesz pakiet z niezaspokojonymi zależnościami — system poprosi o ich wcześniejsze zainstalowanie.
Na początku nie było dla mnie jasne, jak packagefs radzi sobie z wieloma wersjami tego samego pakietu, co się stanie, jeśli będę chciał zainstalować różne wersje gcc lub innych aplikacji GUI? (Jeden z programistów powiedział, cytat: „sama packagefs nie zawiera niczego, co uniemożliwia instalację wielu pakietów o tej samej nazwie, ale ponieważ zastosowano libsolv z OpenSuse do rozwiązywania zależności, które tego nie pozwala — zabroniono również HaikuDepot robić tego w ustawieniach”. Mogę wyjaśnić, dlaczego podoba mi się idea pakietów .app, AppDir i AppImages).
Biblioteki dynamiczne
Czy istnieje technologia bibliotek dynamicznych? Tak, widać to na przykład, jeśli uruchomisz aplikację z brakującymi bibliotekami podwójnym kliknięciem:

Możesz sobie to wyobrazić w gnome, kde lub xfce?
W Linuksie takie uruchomienie nic by nie pokazało. Zobaczmy, jak długo potrwa to w różnych środowiskach:
- GNOME:
- KDE:
- XFCE:
- MATE:
A co z kontrolami?
~> ldd
bash: ldd: command not foundNależy użyć zamiennika:
~> objdump -x /bin/bash | grep NEEDED
NEEDED libreadline.so.7
NEEDED libhistory.so.7
NEEDED libncurses.so.6
NEEDED libintl.so.8
NEEDED libroot.soW zasadzie ) i tommath ( byłoby lepsze, ponieważ dodatkowo pokazuje ścieżki, z których biblioteki będą ładowane.
A skąd one tak naprawdę są ładowane?
~> echo $LIBRARY_PATH
%A/lib:/boot/home/config/non-packaged/lib:/boot/home/config/lib:/boot/system/non-packaged/lib:/boot/system/libMożna więc umieścić biblioteki obok pliku wykonywalnego, a on będzie po prostu działał. Jak fajnie! Można po prostu podłączyć oddzielne biblioteki do aplikacji bez zabawy z rpath lub ustawienia zmiennej LD_LIBRARY_PATH tak jak w Linuksie. Dobrze!
Istnieje biblioteka (okropna w Linuksie) /boot/system/lib/libstdc++.so.6.0.24.
Co jeśli aplikacja wymaga wersji nowszej niż ta, która znajduje się w /boot/system/lib?
Zwykły użytkownik prawdopodobnie zaktualizuje do najnowszej wersji, ponieważ nie ma w tym systemie użytkownika „Administrator” z hasłem root [autor sugeruje prostotę — przyp. tłumacza].
Cóż, przynajmniej tak to wygląda. (W rzeczywistości „użytkownik” jest odpowiednikiem roota. Można ustawić hasło używając polecenia passwd, po czym wskazać PermitRootLogin=yes do sshd_config, a następnie można będzie połączyć się zdalnie przez ssh. Programiści powiedzieli mi, że domyślnie wszystkie aplikacje uruchamiane są jako root. W końcu może to poprawią… Ale nie jestem pewien, czy mi się to spodoba.)
Z powodu braku dystrybucji Haiku — programiści aplikacji również nie mają dostępu do nowszych wersji tych, które są dostępne do pobrania w Twoim systemie. Rezultat: mniej rozczarowań, rzeczy „po prostu działają”. Świetne uproszczenie! Podoba mi się.
Zasoby i rejestrator
Jak już wspomniano, aplikacje otrzymują typ i ikonę, więc nie musisz się bawić plikami na pulpicie i tym podobnymi rzeczami. Powiedziano mi, że istnieje specjalna usługa-rejestrator, która zna aplikacje, typy plików i ikony. Zawsze jest powiadamiana przy instalacji pakietu lub oznaczaniu pliku do wykonania (używając programu chmod lub mimeset).
Przypomina to nieco na Macu. A to jest właśnie to, czego Świetnie!
Pliki binarne otrzymują wbudowane ikony w postaci zasobów, więc nie potrzebujesz dodatkowej ikony obok plików na pulpicie. Prawie tak, jak było w Macintosh System 1. Fajnie!

Typy aplikacji, obsługiwane typy dokumentów, wbudowane zasoby i informacje o wersji
Tracker (menedżer plików) automatycznie oznacza pliki binarne jako wykonywalne. To jest to, na co czekałem w środowiskach roboczych na Linuksie już od ponad 10 lat.
To wszystko jest bardzo przyjemne. Czy nie jest to fajne! Życie staje się takie proste. To jest bardziej wysublimowane i bardziej przypomina Maca niż na Linuksie. Albo to...

Aplikacja na Linux bez ustawionego bitu wykonywalności
W Gnome istnieje możliwość uruchamiania plików wykonywalnych z menedżera plików, ale społeczność wzniosła alarm – i wszystko wróciło do normy.
Powiedziano mi także, że aplikacje korzystają z funkcji find_paths() zamiast twardo określonych /usr/bin i /usr/share (wspólna cecha środowisk roboczych na Linuxie), co oznacza możliwość ich przemieszczania po systemie plików. Biję brawo na stojąco! .
Co mnie zaskoczyło
- Zaniepokoiło mnie to, że
/bootto punkt montowania partycji, z której uruchamiany jest system. Czemu nie „/„? No cóż, albo/Haiku? (Пояснение: действительно,/bootto zawsze partycja rozruchowa, wyświetlana na pulpicie jako „Haiku”, ponieważ tak się nazywa. Traktuj „/” jako odpowiednik pulpitu w Mac System 1, korzeń hierarchii, która w rzeczywistości nie istnieje na dyskach). - Punktem montowania dla pakietów zainstalowanych przez użytkownika jest
/home/config. Dlaczego nie po prostu/home? (Один из разработчиков пояснил мне, что они не хотят засорять домашний каталог, но мне кажется, config — название неудачное, потому что внутри есть подкаталогbin/, więc to nie tylko przechowywanie ustawień). - Jaka jest licencja na wszystko? Na przykład w nie ma wyraźnych wskazówek w sekcji „O programie”. W polu „O tym systemie” napisano, że kod Haiku jest dostępny na licencji MIT. Świetnie! (Powiedziano mi również, że WebPositive jest dostarczany z systemem operacyjnym na tej samej licencji, ale jego silnik WebKit jest w większości na licencji BSD z dwoma punktami).
Co nie działało tak, jak się spodziewałem
Przede wszystkim zaskoczył mnie poziom wsparcia sprzętowego. Na moim netbooku z procesorem Atom wszystko działało, w tym WLAN. Ale są pewne szczegóły w funkcjonowaniu.
- Całkowity brak pełnej funkcjonalności na sprzęcie Macintosh, niezależnie od trybu EFI lub emulacji BIOS-u („Windows”). System po prostu zawiesza się, jeśli wybierzesz ikonę w bootloaderze Mac. Powiedziano mi, że to i można uruchomić system, korzystając z , ale te ustawienia są dla mnie zbyt skomplikowane.
- Przyspieszenie grafiki. Wygląda na to, że korzystanie z Radeon jest na razie niemożliwe (miałem czarny ekran), ale również na Intelu nie jest wszystko gładko. Przyspieszenie wideo w WebPositive jest tylko programowe, w tym H.264. Dziwne, ponieważ początkowo nastawienie było na wideo. Jeden z deweloperów wyjaśnił, że wideo w WebPositive działa, używając haków opóźniających.
- Brak dźwięku? „Sterowniki do kart dźwiękowych wciąż nie działają”, powiedział deweloper. Prawdopodobnie potrzebna jest osoba, która obsłuży sterownik HDA podobnie jak USB-3. Obecnie wystarczy gorący restart z innego systemu operacyjnego, a ja wierzę, że to w końcu naprawią.
- Nie działają przyciski do regulacji jasności i głośności. (Podstawa już istnieje w postaci aplikacji Shortcuts: można przypisać dowolną kombinację klawiszy do dowolnej ulubionej funkcji, ale jak na razie Haiku nie potrafi pracować z klawiszami multimedialnymi. Może są chętni?)
- Dwupalcowe sterowanie touchpadem. Nie działa od razu. Jest panel ustawień, który informuje, że „Nie znaleziono touchpada, ustawienia nie będą miały efektu.” ( z urządzeniem wejściowym ELAN, ACPI ETD050A).
- Z posiadanym aplikacją do odczytu plików z cyfrowych aparatów i smartfonów z Androidem nie działała synchronizacja w trybach MTP i PTP. Byłoby świetnie, gdyby montowały się jak inne partycje w systemie.
- Wygląda na to, że zamykanie pokrywy laptopa nie jest obsługiwane. (Wiem, że Haiku wciąż nie obsługuje ACPI: wsparcie zostało zaimplementowane, ale nie jest domyślnie włączone; brak ponownej inicjalizacji sterownika)
- Nie mogłem stworzyć konta w bugtrackerze, ponieważ nie działa w WebPositive.
Aplikacje
Podstawowym celem systemu operacyjnego jest uruchamianie aplikacji. Obawiałem się, że pod Haiku nie będzie aplikacji do prawdziwej pracy. Na szczęście się myliłem, ponieważ jest nadzieja na poprawę — gdy Haiku stanie się częściej używane.
(aplikacja do składu wizualnego) jest dostępna, a to dość skomplikowana aplikacja oparta na Qt. Są także (IDE).
Zaciekawiło mnie, czy dziś pisane są natywne aplikacje Be dla Haiku, korzystając z natywnych narzędzi (jeśli takie istnieją), czy wystarczy użyć QtCreator (co ułatwiłoby portowanie aplikacji międzyplatformowych). Stanowisko deweloperów Haiku to „wyraźne” preferowanie natywnych aplikacji dla Haiku. Czy to prawda? Wątpię, że aplikacje do prawdziwej pracy są nie międzyplatformowe (wszystkie aplikacje, które używam w pracy, są międzyplatformowe).
Ogłoszona została obsługa aplikacji WxWindows.
Brak wsparcia dla Gtk+ jest rozczarowujący. To oznacza, że w Haiku w najbliższym czasie nie będzie Gimp (no, tak myślę), ale jest zastępstwo w postaci Krita!
Uważam, że potrzebny jest prosty i zrozumiały sposób tworzenia aplikacji dla Haiku, — wykorzystując Travis CI i GitLab CI.
Dokąd zmierzamy?
Czy Haiku utknie w koncepcji UX BeOS? Wydaje mi się, że dla atrakcyjności musi starannie dopasowywać nowe schematy UX podczas ich przyjmowania, pozostając przy tym wiernym swoim podstawom.
Na przykład:
- Pozostać prostym, bez tych 100500 opcji, które czynią Linux „skomplikowanym”.
- Używać kursora strzałki zamiast dziwnej dłoni.
- Czy będzie Dock? (Wiem, że istnieje coś w rodzaju Docku o nazwie , jeszcze bliższym Dockowi , ale pierwotny BeOS już w 1998 roku miał Dock!)
- Menu globalne? (Oczywiście, nie, ponieważ nie widzi szczególnych korzyści).
- Szybkie przełączanie okien? (Powiedziano, że można spróbować aktywować „, trzymając klawisz Windows podczas przeciągania okna, ale to nie jest intuicyjne, co więcej — u mnie to nie działa).
- Animacja otwierania i zamykania okien?
- Cienie za oknami?
- Obsługa motywów, jak w Aqua? (Tak, można, jest infrastruktura i narzędzia, na przykład, , ale ktoś musi stworzyć motywy. Sam bym spróbował, powiedziano mi, że jest dokumentacja w /xref/haiku/headers/os/interface/ControlLook.h, но не сейчас).
To są subtelne niuanse, biorąc pod uwagę, że system nie powinien stracić swojej unikalnej tożsamości.
Podsumowanie
Haiku naprawdę otworzyło mi oczy, pokazało, jak środowisko pracy „po prostu działa”.
Ponad 10 lat temu przeszedłem z Maca na Linux i od tego czasu szukałem tego samego poziomu wyrafinowania i piękna, a Haiku w wielu aspektach to zapewnia.
Szczerze mówiąc, są niedociągnięcia, ale zaskakująco wiele rzeczy, w tym sprzęt, na przykład WLAN czy drukarki, „po prostu działa”.
Jednak przede wszystkim system ma koncepcję środowiska pracy, brakującą w środowiskach pracy w Linuxie.
Posiadanie spójnego systemu (a nie jądra i różnych konkurencyjnych środowisk użytkowych) sprawia, że wszystko jest proste i spójne.
Brak różnych wydań (dystrybucji) czyni to jeszcze prostszym.
Założenie pracy tylko jednego użytkownika w systemie jeszcze bardziej zmniejsza złożoność.
Rezultat: bardzo prosty, wyrafinowany, minimalistyczny pod wieloma względami system, stworzony dla „zwykłych ludzi”, a nie dla administratorów UNIX.
Jest nadzieja, że kiedy ten system stanie się bardziej popularny (a to nieuniknione), jego złożoność nie wzrośnie.
Już pisałem o #LinuxUsability w poprzedniej serii artykułów. Miło wiedzieć, że Haiku rozwiązuje wiele poruszonych .
Jednego dnia wystarczyło, by upewnić się: chcę korzystać z tego środowiska roboczego do codziennej pracy, a także szukam sposobów na mój wkład w rozwój systemu.
Spróbuj sam! Projekt Haiku oferuje obrazy do pobrania na DVD lub USB, . Aby zainstalować, wystarczy pobrać obraz i nagrać go na pendrive'a za pomocą .
Od autora tłumaczenia: to tylko pierwszy artykuł z cyklu o Haiku, pozostałe czekają na tłumaczenie i zostaną opublikowane później.
Źródło: habr.com
