Wyszukiwanie pakietów nie z danej wersji w Debianie (Ubuntu).

Pisałem o sprzątaniu pakietów w systemie Debian przy okazji upgrade’u. Rozwiązanie tyleż skuteczne, co nieeleganckie, szczególnie ten dpkg, awk, perl, grep i wajig na dokładkę.

Dziś, przy okazji innego taska (jak znaleźć pakiety nie z określonej wersji zamiast poprzedniego jak znaleźć pakiety nie mające kandydata w określonej wersji) pokazałem tamto rozwiązanie na kanale IRC i dostałem pytanie czemu nie apt-show-versions?

No właśnie, czemu nie? Po prostu wtedy pisałem na szybko, z założeniem, że raz to uruchomię i niech sobie nawet kwadrans działa… Jedynym powodem dla którego nie użyć apt-show-versions jest istnienie managera pakietów wajig, który ma nakładkę na to polecenie, czyli wajig versions (i tak trzeba mieć apt-show-versions zainstalowane, ale łatwiej zapamiętać).

Czyli, jeśli chcemy wyświetlić pakiety, które nie są zainstalowane z Debiana Squeeze, wystarczy:

wajig versions | grep -v squeeze 
 

Linux a FreeBSD czyli FUD w wydaniu FreeBSD.

Przy okazji niedawnej informacji o benchmarku Debiana z kernelem Linux i Debiana z kernelem FreeBSD wywiązała się dyskusja nt. mitycznej większej szybkości FreeBSD vs. Linux. Jako przykład nierzetelnej informacji nt. porównania Linuksa i FreeBSD pojawił się przykład tej stronki. Faktycznie, niekompetencja tego porównania jest ogromna, stąd wpis.

Zdaję sobie sprawę, że stronka jest przestarzała, ale… jest (cała dokumentacja do FreeBSD jest równie aktualna?). A część błędów w porównaniach była aktualna zawsze. Zarzuty (tylko tam, gdzie IMO Linux zyskał niezasłużenie niższą ocenę niż FreeBSD):

  1. Performance – porównanie starego kernela – linia 2.4. Do tego odnośnik do benchmarku na który się powołują nie działa.
  2. Security – ujemny punkt dla Linuksa to stanowczo za dużo. Chyba, że porównuje się typowo desktopowe dystrybucje, ale tu z kolei przydałby się punkt szybkość rozwoju systemu, gdzie FreeBSD zostaje daleko w tyle. Pewnie dlatego punkt pominięty.
  3. Filesystem – ext2 to przeżytek, chyba żadna dystrybucja nie korzysta z tego domyślnie. Porównywać trzeba by ZFS i ext4. No to proszę, świeże porównanie szybkości ZFS, ext4, brtfs. Oczywiście sama szybkość filesystemu to nie wszystko.
  4. Device Drivers – stawianie FreeBSD wyżej pod względem driverów (w tym zamkniętych binarnych) to jakiś żart. Spora część sprzętu po prostu nie ma żadnego drivera dedykowanego dla FreeBSD. Faktem jest, że pod Linuksem sterowniki binarne wymagają czasem konkretnej wersji kernela (patrz fglrx) ale nie jest to – i z tego co pamiętam nigdy nie było – tak dramatyczne, jak opisują.
  5. Development environment – zarzucanie, że skompilowana aplikacja z Red Hat nie działa na Slackware to totalne nieporozumienie. Z jednej strony jest porównywany jest jeden system (AKA dystrybucja *BSD), z drugiej różne dystrybucje. Poza tym, znakomita część oprogramowania działa po przeniesieniu binarek (patrz Debian i Ubuntu, patrz alien).

Zastanawiam się, jak obecnie wygląda propaganda FreeBSD? Nadal jest równie „rzetelna”? Jeśli chodzi o binarne sterowniki, to przykład „dobrego wsparcia sprzętu” i „stabilnych sterowników binarnych” opisywałem w tym wpisie o Opensolaris, FreeBSD i Linuksie.

Integracja Blox i Flattr – krótkie HOWTO.

W końcu udało mi się zintegrować Flattr, czyli serwis do mikropłatności i Blox. Nie było to takie proste, na jakie wyglądało, więc pozwolę sobie zamieścić krótkie howto.

Pierwsza sprawa, to dodanie prostego javascriptu do Ustawienia -> Wpisy -> Dodaj pod każdym wpisem. Niestety, Blox ma buga i tagi typu {tytul} są rozwijane tylko przy pierwszym wystąpieniu. Przynajmniej w javascripcie. A akurat pola tytuł to ja już używam…

Podpatrzyłem obejście z widgetów Wykopu i Facebook, które wstawia Blox – skoro to javascript, to można się odwołać do tytułu przez encodeURIComponent(document.title); Bingo. No prawie, bo nadal nie działa. Nadal nic nie mówiący Error w widgecie Flattr.

Doładowałem konto na Flattr i postanowiłem dodać wpis ręcznie, z tymi samymi parametrami. Okazało się, że zmienna flattr_dsc jest obowiązkowa, a tymczasem wywaliłem ją, bo nie miałem pomysłu, co tam wstawić.

Ostatecznie działający kod wygląda następująco:

<script type="text/javascript">var flattr_uid = '10901'; // TWOJE Flattr IDvar flattr_tle = encodeURIComponent(document.title); // Tytuł stronyvar flattr_dsc = 'Blox blog entry ID: {id}'; // nie jestem pewien, czy musi być unikatowe, ale tak - będzievar flattr_cat = 'text';var flattr_lng = 'pl_PL'; // skoro Blox, to pewnie po polsku piszeszvar flattr_tag = '{tagi_b}'; // lista separowanych przecinkiem tagówvar flattr_url = '{link}'; // link do wpisu</script><script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>

Gdyby ktoś wykorzystywał już zmienną {link} to najprawdopodobniej zamiast niej użyć encodeURIComponent(location.href); Oczywiście zadziała tylko w javascript.

Parametrów jest nieco więcej, opisane są w API Flattr, można choćby zmieniać wygląd przycisku na compact.

Nie jest zupełnie różowo – nie działa mi w jednym wpisie. Podejrzewam, że przez to, że był dodany ręcznie, z identycznymi parametrami. Nie widzę też wpisów dodanych w My latest things. Być może zmieni się to, gdy ktoś flattrnie wpis.