2010-04-25

[unix] edytor vi

Czasem zdarza mi się edytować ogromne pliki tekstowe - takie, które 'ważą' ponad 1GB. Zwykły edytor nie daje sobie rady z otworzeniem takiej ilości danych. Z pomocą w takim wypadku przychodzi edytor vi. Nie jest dla mnie zbyt intuicyjny dlatego właśnie o nim wspominam - może się przydać taki wpis w przyszłości.

Najważniejsze polecenia (dla mnie):

# wyjście bez zapisania zmian
:q!

# zapisanie zmian
:w

# wyjście z zapisaniem zmian
:x

# zamiana wszystkich nazwa1 na nazwa2 w danej linii (gdzie jest kursor)
:s/nazwa1/nazwa2/g

# zamiana wszystkich nazwa1 na nazwa2 w całym pliku
:%s/nazwa1/nazwa2/g
Więcej o edytorze można przeczytać na Wikipedii.

2010-04-18

[kohana] cache'owanie

Pisząc poprzedni wpis do bloga zauważyłem, że mój View Large On Black potrzebuje około 2 sekund na wyrenderowanie strony:

W tym czasie aplikacja trzy razy łączy się z api flickr'a aby pobrać dane wyświetlanych zdjęć.
Dane te są stałe więc można tu z powodzeniem wykorzystać cache'owanie.
W kohanej aby dodać dane do cache'a wystarczy:

Kohana::cache($nazwa_zmiennej,$dane);

Odczyt danych wygląda natomiast w ten sposób:

$wynik = Kohana::cache($nazwa_zmiennej,null,$lifetime);
gdzie $lifetime oznacza czas życia zmiennej cache.
Jeśli nie podamy $lifetime:

$wynik = Kohana::cache($nazwa_zmiennej);
to aplikacja będzie uwzględniać dane, które trafiły do cache'a w ciągu ostatnich 60 sekund.
Po umieszczeniu w cache'u danych pobieranych z flickr'a udało się zaoszczędzić ok. 2 sekundy podczas każdego przeładowania i renderowanie strony wynosi ok. 0,02 sekundy.

2010-04-10

[kohana] czas renderowania strony

Aby wyświetlić w aplikacji - wykonanej za pomocą frameworka kohana - czas renderowania strony.

W pliku index.php należy dodać linijkę:

define('KOHANA_START_TIME', microtime(TRUE));


W pliku application/bootstrap.php zamiast:

echo Request::instance()
->execute()
->send_headers()
->response;


należy wpisać:

$request = Request::instance($_SERVER['PATH_INFO']);
$request->execute();
if($request->response){
$total = array(
'{execution_time}' => number_format(microtime(TRUE) - KOHANA_START_TIME, 5).' s.');

$request->response = strtr((string) $request->response, $total);
}
echo $request->send_headers()->response;


I na koniec w widoku wystarczy dodać np:

Czas renderowania strony: {execution_time}