Tuesday, February 22, 2011

Zamiana tekstu w BASH

Dziś na forum trafiłem na ciekawe pytanie, jak napisać skrypt, który posiada tablice wzorców oraz tablice zamienników tych wzorców i zamieni wszystkie wystąpienia wzorca w tekście. Skrypt trzeba napisać w powłoce Bash, co mnie zainteresowało, ponieważ zazwyczaj unikam programowania w nim.
Postanowiłem zmierzyć się z tym zadaniem i dosyć szybko (dzięki dokumentacji) udało mi się napisać taki skrypt.


array1=( a1 b1 c1 d1 )
array2=( A1 B1 C1 D1 )

text="aaaa  a1 bbbb  cccc c1"
echo ${text}
n=${#array1[@]}

for ((i = 0;i<n;i++))
do
text=$(echo -n "$text" |  sed "s/${array1[$i]}/${array2[$i]}/g")
done
echo -n "$text"

Skrypt wygląda delikatnie mówiąc brzydko, ale działa


grzesiek@home:~$ ./test.sh
aaaa a1 bbbb cccc c1
aaaa  A1 bbbb  cccc C1grzesiek@home:~$

Tak naprawdę całą robotę załatwia tu sed, jak zwykle zresztą :). Istotne jest też to, jak używać tablic w powłoce Bash (uuu tablice w Bash...) i jak tekst ze zmiennej przesłać z powrotem do tej zmiennej, tak aby przechodził prze sed.

Sunday, February 20, 2011

Czy Google Chrome szpieguje swoich użytkowników?

Google Chrome od początku zaskakiwał pozytywnie użytkowników i zdobywała ich uznanie. Nie potrzebował na to tyle czasu, co inne przeglądarki. Jej dynamiczny rozwój jest fundowany przez jedną z największych informatycznych firm jaką jest Google. Być może dlatego Chrome jest oskarżany, czy podejrzewany o szpiegowanie swoich użytkowników.

Wielu internautów twierdzi, że Chrome jest naszpikowany szpiegowskim kodem i jeżeli już, to lepiej używać Chromium. Chromium to pierwotny projekt Chrome zawierający tylko kod open source. Uważa się, że Google dodaje do niego tajne technologie, aby szpiegować użytkowników.

Oczywiście tak nie jest. Zwróć uwagę na to, iż Google obecnie jest najinnowacyjniejszą firmą informatyczną. Niemal co miesiąc wprowadza nowe produkty, które maja ułatwić wyszukiwanie, czy samo używanie sieci. Do tworzenia i rozwijania najlepszych rozwiązań potrzebne są dane statystyczne, na podstawie których podejmuje się decyzje dotyczące kierunku rozwoju. Poza tym, mówi się, że Google zbiera o nas dane itp. a pomija się np. fakt, że zakładając sobie darmowe konto pocztowe, czy jakąś inna usługę (poza Google) trzeba podać takie dane jak data urodzenia i tym podobne. Potwierdzamy zgodę na przetwarzanie w celach handlowych i wszystko przebiega bez afery, podczas gdy Google zbiera dane do analizy rozwiązań jest oskarżane o szpiegostwo.

Co do rozwiązań Google, które utrzymuje w tajemnicy, to nie ma co się dziwić. Przecież jakąś tajemnice muszą mieć, dotyczącą swoich technologii. Warto zwrócić uwagę na to, że wiele z tych technologi trafia do świata open source. Mało która firma tak go wzbogaca jak Google.

W przypadku Google najważniejsze jest to, aby zrozumieć sposób w jaki oni zarabiają. Firma ta słynie z tego, że prowadzi innowacyjny system reklam, który jest najmniej uciążliwy dla użytkownika, a mimo to osiągają duże dochody. Jednym zdaniem udało im się połączyć rozwój wyszukiwania z korzyściami finansowymi. Problem w tym, że sposób ten jest tak sprytny, że nie wszyscy go rozumieją. W przypadku korzystania z samej wyszukiwarki sposób w jaki Google na tym zarabia jest bardzo ukryty, ale z kolei w serwisie youtube.com jest to bardziej widoczne. Google np. sprytnie minimalizuje ilość reklam na rzecz ich trafności, przy takich samych, a nawet większych zyskach. Do tego jednak potrzebne są pewne informacje zbierane podczas wyszukiwania.

Chromium w porównaniu do Google Chrome to projekt zawierający tylko HTML i inne podstawowe technologie, najprościej mówiąc jest to część techniczna niezbędna do przeglądania sieci. Natomiast Chrome jest wyposażony w szereg dodatków sprawiających, że korzystanie z przeglądarki i sieci jest jeszcze prostsze.

Google, jak mało która firma informuje użytkowników jak działają jej usługi. Dobrym przykładem jest ten film.


Więcej informacji można znaleźć w poniższych miejscach:
http://en.wikipedia.org/wiki/Google_Chrome#Usage_tracking
http://blog.chromium.org/2010/06/in-open-for-rlz.html
http://www.google.com/chrome/intl/pl/privacy.html