Archive for Sierpień, 2010

Wyświetlenie zawartości pliku od końca

Ostatnio zapragnąłem obejrzeć sobie zawartość z plikiem logu serwera Apache. Cel był następujący:

  • wybrać tylko określone linie przy użyciu polecenia grep
  • wyświetlić 20 ostatnich linii
  • wyświetlić je od końca, tak aby linie które pojawiają się na końcu były wyświetlane jako pierwsze

Dwa pierwsze punkty w realizacji są proste:

grep 'GET / ' access.log | tail -n 20

Teraz pozostaje odwrócić kolejność linii. Pierwsze moje skojarzenie to polecenie sort z przełącznikiem -r, czyli coś takiego:

grep 'GET / ' access.log | tail -n 20 | sort -r

Niestety, to nie zadziała. Dostaniemy nie odwróconą zawartość pliku, ale po prostu posortowany plik od wartości największej do najmniejszej.

Więc pozostaje dodanie numeracji do pliku (polecenie cut -n i posortowanie zawartości:

grep 'GET / ' access.log | tail -n 20 | cat -n | sort -rn

Efekt tym razem odpowiedni, ale jeszcze zostały dodatkowe linie z numeracją, można je usunąć za pomocą polecenia cut:

grep 'GET / ' access.log | tail -n 20 | cat -n | sort -rn | cut -f 2-

I koniec końców efekt jest zgodny z oczekiwaniami.

Przeglądając jeszcze dokumentację do polecenia cat zauważyłem jeszcze jedną komendę: tac, która działa jako odwrotność polecenia cat. Używając tej komendy, skrypt będzie wyglądał następująco:

grep 'GET / ' access.log | tail -n 20 | tac

I po sprawie :). Morał: warto czytać strony MAN, można zaoszczędzić sporo czasu, pisania i mocy maszyny.

Źródła

Tags: , , , , ,

W jaki sposób zrobić zrzut ekranu w telefonie z Androidem (zrootowanym)

W przypadku telefonów z Androidem istnieje uniwersalna możliwość robienia zrzutów ekranów przy użyciu trybu debug oraz SDK systemu operacyjnego (więcej na ten temat w tym wpisie: W jaki sposób zrobić zrzut ekranu w telefonie z Androidem). Jeżeli natomiast posiadamy dostęp do użytkownika root na telefonie, to dostępne są jeszcze inne sposoby ich tworzenia.

Aplikacje te pozwalają przede wszystkim zrobić zrzut ekranu bez potrzeby podłączania telefonu do komputera. Poniższe aplikacje mogą zostać zainstalowane z marketu aplikacji.

ShootMe

Pierwszą aplikacją jest ShootMe. Można ją zainstalować z marketu aplikacji. Aplikację po zainstalowaniu należy uruchomić (oraz w przydzielić uprawnienia użytkownika root).

ShootMe - uruchomienie aplikacji

ShootMe - instrukcja obsługi

ShootMe - instrukcja obsługi

Aplikacja po uruchomieniu praktycznie znika, nie udostępnia żadnego interfejsu użytkownika.

W przypadku ShootMe zrobienie zrzutu ekranu polega na potrząśnięciu telefonu, trwającym powyżej 0,5 sekundy. W przypadku wykrycia wstrząsu, aplikacja robi zrzut ekranu i zapisuje go w katalogu /sdcard/ShootMe (czyli na karcie SD w katalogu ShootMe).

Mój problem z tą aplikacją polega na tym, że tylko raz udało mi się uzyskać zrzut ekranu, a trząsłem telefonem na różne sposoby ;).

Można zmienić sposób aktywacji robienia zrzutu ekranu z potrząsania telefonem na okrzyk. Aby przełączyć aplikację w ten tryb, należy podczas uruchamiania aplikacji nacisnąć klawisz Menu i wybrać właściwą opcję konfiguracyjną. Od tej poru krzyk trwający powyżej 0,5 sekundy powinien spowodować zrobienie screenshoota (ale w moim przypadku ta wersja też nie działała).

ShootMe - zmiana trybu pracy

ShootMe - zmiana trybu pracy

ShootMe - aktywacja krzykiem

ShootMe - aktywacja krzykiem

PickMe

Aplikacja PickMe umożliwia kontrolowanie robienia zrzutów ekranu z poziomu komputera sterującego. Działa w podstawowej wersji podobnie do rozwiązania dostępnego przy użyciu SDK Androida, ale pozwala na połączenie się z telefonem przy użyciu sieci bezprzewodowej.

PickMe po uruchomieniu wyświetli informację, na jakim adresie IP i porcie będzie nasłuchiwał na połączenie z przeglądarki:

PickMe - adres IP i port

PickMe - adres IP i port

Połączenie z podanym adresem wyświetli na od razu zrzut ekranu:

PickMe - połączenie przez przeglądarkę

PickMe - połączenie przez przeglądarkę

Każde ponowne wczytanie strony spowoduje zrobienie aktualnego zrzutu ekrany.

PickMe udostępnia także możliwość podglądu w czasie rzeczywistym co dzieje się na ekranie telefonu. Włączenie tej funkcji jest proste, wystarczy wybrać link Live w przeglądarce. Od tego momentu będziemy na bieżąco widzieli co się dzieje na telefonie.

screenshot

Ostatnią aplikacją w tym zestawieniu jest screenshot. Aplikacja ta działa w dwóch trybach:

  • zrobienie zrzutu ekranu po zadanym czasie (od 2 do 40 sekund)
  • zrobienie zrzutu ekranu po potrząśnięciu telefonu

Utworzone pliki graficzne są zapisywane na karcie SD w katalogu /sdcard/screenshots.

screenshot - konfiguracja

Podsumowanie

Ja najczęściej korzystam z aplikacji PickMe oraz screenshot. Spełniają one swoje zadanie, ale mają jedną wadę (zwłaszcza PickMe): bardzo obciążają telefon (przynajmniej G1), do tego stopnia, że czasem nie daje się z niego korzystać… Nawet zamknięcie tych aplikacji nie pomaga, jedynie restart telefonu przywraca poprawne działanie telefonu.

Źródła

Tags: , , , , ,

Instalacja aplikacji na karcie SD w systemie Android

Telefon G1 ma niestety niewielką ilość pamięci dostępnej do instalacji aplikacji. Już po zainstalowaniu kilku większych pojawia się problem z brakiem pamięci RAM. Niestety, standardowo w systemie Android nie ma możliwości instalacji aplikacji na karcie SD (o ci aż się prosi). Dopiero wersja 2.2 może to zmienić, istnieje możliwość przeniesienie czy tez instalacji na karcie aplikacji obsługujących to.

Na szczęście system operacyjny Android jest systemem otwartym, istnieje kilka jego modyfikacji, które rozszerzają jego podstawowe możliwości. I tak, jeżeli dysponujemy:

  • system operacyjny pochodzący od CyanogenMod, w moim przypadku jest to Android w wersji 2.1 (CyanogenMod 5.0.8)
  • dostęp do użytkownika root
  • karta SD

Krok 1: Partycjonowanie karty SD

Zanim zaczniemy instalować aplikacje na karcie, należy najpierw utworzyć dla nich miejsce. Można to zrobić tworząc partycję typu EXT na karcie.

UWAGA:

Partycjonowanie karty spowoduje utratę wszystkich danych jakie są na niej zapisane. Także warto zrobić wcześniej jej kopię bezpieczeństwa.

Partycjonowanie karty odbywa się w trybie [cic]Recovery[/cci]. Można do nie go wejść, jeżeli uruchamiamy telefon trzymając naciśnięty klawisz Home. Po takim uruchomieniu powinno ukazać się menu, i jedną z pozycji będzie Partition sdcard.

Tryb Recovery - wybór partycjonowania karty

Tryb Recovery - wybór partycjonowania karty

Po wyborze pozycji partycjonowania, pojawią się kolejne pozycje, z których należy wybrać Partition SD:

Partycjonowanie karty

Partycjonowanie karty

W tym momencie będziemy musieli zdefiniować podział karty na partycję. Pierwszą definiowaną partycją będzie SWAP, należy podać jej wielkość (przy użyciu kulki). Następnie należy zdefiniować partycję typu EXT2, na niej będą trzymane instalowane aplikacje. Pozostała część karty zostanie przeznaczona na system plików VFAT i będzie używana jak standardowa karta SD.

Definicja partycji na karcie

Definicja partycji na karcie

Po utworzeniu partycji można jeszcze zmienić typa partycji z EXT2 na EXT4. Należy powrócić do menu Partition sdcard. Następnie najpierw wybrać pozycję SD:ext2 to ext3, a następnie SD:ext3 to ext4.

Teraz pozostaje już tylko uruchomić telefon.

Krok 2: Instalacja aplikacji na karcie

W przypadku korzystania z modu CyanogenMod nowa partycja EXT zostanie wykryta automatycznie i zamontowana w katalogu /sd-ext. Nie ma potrzeby dokonywania żadnych dodatkowych kroków związanych z montowaniem tego udziału dyskowego. W przypadku oryginalnego systemu Andorid (lub też pewnie innych modów) trzeba jeszcze zamontować w odpowiedni sposób tę partycję, aby dało się z niej uruchamiać aplikacje. Więcej informacji można znaleźć w artykułach do których linki znajdują się na końcu tego wpisu.

Po utworzeniu partycji na karcie SD i uruchomieniu telefonu pozostaje teraz włączyć jej obsługą przez system operacyjny. Można to zrobić uruchamiając Ustawienia->Aplikacje i zaznaczając opcję Apps2SD (opcja ta jest charakterystyczna dla CyanogenMod). Od tego momentu wszystkie nowo instalowane aplikacje będą zapisywane na karcie SD.

Opcja konfiguracyjna App2SD

Opcja konfiguracyjna App2SD

Istnieje także możliwość przeniesienia już zainstalowanych aplikacji na kartę SD. Można to zrobić poprzez wybranie Ustawienia->Aplikacje->Zarządzaj aplikacjami. Teraz należy wybrać aplikację, która ma zostać przeniesiona na kartę. Zostaną wyświetlone podstawowe informacje o aplikacji (m.in. miejsce instalacji i rozmiar). Powinien tam także znaleźć się przycisk Move. Wybranie go spowoduje przeniesienie aplikacji na kartę SD.

Przeniesienie aplikacji na kartę SD

Przeniesienie aplikacji na kartę SD

Nie zauważyłem żadnych różnic w pracy z aplikacjami zapisanymi na karcie SD, działają i zachowują się dokładnie tak jak w momencie instalacji w pamięci telefonu. Ale teraz mam już dożo więcej miejsca na instalację nowych aplikacji :).

Źródła

Tags: , , , , ,