Tomasz Wysocki - dziennik internetowy
Otchłań mojego umysłu…
Archive for sierpień, 2006
sierpień 28, 2006 at 4:50 pm · Filed under MySQL
Czasami spotykamy się z potrzebą pobrania losowego rekordu z bazy danych. Co prawda można by ten problem rozwiązać na poziomie języka programowania, z którego korzystamy, jednak najwydajniejszą i najprostszą metodą, będzie wykorzystanie w tym celu odpowiedniego zapytania do bazy:
SELECT `jakaś_kolumna` FROM `jakaś_tabela` WHERE [coś-tam] ORDER BY RAND() LIMIT 0,5
Takie zapytanie zwróci nam z bazy danych 5 losowych rekordów, odpowiadających naszym oczekiwaniom, które zawarliśmy w klauzuli
WHERE.
sierpień 26, 2006 at 11:58 am · Filed under SiLUG
Kilka dni temu dostałem paczkę z Holandii, a w środku:
- 10 płyt ubuntu 32-bit
- 8 płyt kubuntu 32-bit
- 2 płyty kubuntu 64-bit
- 8 naklejek ubuntu
Całość zamówiona jakiś czas temu, specjalnie na potrzeby
SiLUGu. Pierwszą płytką została już obdarowana Kasia.
sierpień 26, 2006 at 12:17 am · Filed under Życie, Blog, WWW
Pokój
Dzisiaj skończyłem malować pokój i wniosłem meble. Ściany są teraz w kolorze “zielonego wzgórza”, a sufit bielutki. Odmalowałem też biurko bo było strasznie obdrapane.
Blog
Wymieniłem skrypt blogowy z mojego autorskiego na wordpress. Swojego skryptu nie miałem czasu już rozwijać, a przestał on mi wystarczać. Wordpress jest całkiem niezły. Ma co prawda pewne niedociągnięcia, ale da się z nim żyć. W najbliższym czasie będę personalizował jego ustawienia do swoich potrzeb. Już dzisiaj poświęciłem na to sporo czasu.
sierpień 10, 2006 at 4:26 pm · Filed under Sieć
Sneakernet (w wolnym tłumaczeniu “sieć tenisówkowa”) był to pierwotny rodzaj sieci, w której dane były przenoszone za pomocą urządzeń takich jak jak dyskietki czy płyty CD. Rozwiązanie takie, przed wprowadzeniem sieci kablowych, było stosowane w wielu firmach. Chcąc wydrukować jakiś dokument, pracownik nagrywał go na dyskietkę i szedł z dyskietką do stanowiska, na którym była zainstalowana drukarka. Nieświadomie każdy z nas często tworzy połączenie sneakernet między dwoma komputerami. Sneakernet jest jednak tylko pojęciem slangowym, a nie żadną konkretną ustandaryzowaną metodą przesyłania danych (aczkolwiek poszczególne sposoby składające się na sneakernet są już ustandaryzowane).
sierpień 10, 2006 at 3:21 am · Filed under WWW, Siedlecki Informator Kulturalny
A tak, stało się. Dzisiaj ruszył nowy serwis, którego współautorem jestem ja. Mowa o
http://www.koncerty.tomwys.info/. Serwis ma z założenia zawierać najnowsze informacje, dotyczące koncertów odbywających się w Siedlcach. Zdziwiło mnie strasznie, to co przed chwilą ujrzałem w statystykach. Mimo praktycznie braku jakiegokolwiek rozgłaszania informacji o serwisie (miałem umieszczony przez jakiś czas adres w opisie na IM), przez 3 godziny na stronę weszło kilkadziesiąt osób (26 z Polski, 3 z Wielkiej Brytani i 1 ze Stanów Zjednoczonych). Ciekawe czy to tylko takie bum na starcie, czy taka tendencja się utrzyma.
sierpień 7, 2006 at 4:04 pm · Filed under Programowanie, Linux
command.c: In function 'inp_text':
command.c:2560: warning: pointer targets in passing argument 1 of 'tt_write' differ in signedness
command.c: In function 'init_command':
command.c:3005: error: invalid lvalue in assignment
command.c:3007: error: invalid lvalue in assignment
command.c: In function 'main_loop':
command.c:3472: warning: pointer targets in passing argument 1 of 'safe_print_string' differ in signedness
make[2]: *** [command.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive-am] Error 2
You can solve this by running a command before make:
sed -i 's/AT_LEAST((int) num_fds,/AT_LEAST( num_fds,/' src/command.c
Tomasz Wysocki
sierpień 5, 2006 at 1:42 pm · Filed under WWW
Kilka osób szukało poprzez google informacji na ten temat na moim blogu, co skłoniło mnie do opisania sposobu, w jaki ja bronie się przed botami. Sposób jest dość prosty i efektywny, działa na przeglądarkach tekstowych. A co najważniejsze na przeglądarkach graficznych, wygląda tak jakbym po prostu umieścił email na stronie.
Dlaczego ten sposób?
Istnieje wiele sposobów prezentowania email na stronie internetowej. Jedne z najciekawszych wykorzystują javascript, aby email był “ładnie” wyświetlony na stronie. Jednak sposoby te są często przekombinowane, nie działają na przeglądarkach tekstowych lub na przeglądarkach z wyłączonym javascript. Sposób stosowany przeze mnie, może nie jest doskonały, za to prosty i skuteczny. Bezuje on na css, lecz działa również na przeglądarkach, nie obsługujących go.
Arkusz styli
Najpierw musimy dodać odpowiednie wpisy do naszego arkusza styli. Jeśli je dodamy, będziemy mogli umieścić na stronie dowolną ilość emaili wykorzystując ten sposób. A oto wpisy (oczywiście nazwy klas mogą być inne):
.del {display: none}
.email1:before{ content:"@"; }
lub
.del {display: none}
.email0, .email1 {font-weight: normal;}
.email1:before{ content:"@"; }
.
Podane warianty różnią się od siebie. W pierwszym adres email będzie wyświetlany czcionką bold (”pogrubiona”), w drugim normalną czcionka. Wybór należy podjąć samemu.
Kod [x]html
Kod html lub xhtml jest identyczny i bardzo prosty:
<b class="email0">mail</b><span class="del"> hosted on </span><b class="email1">tomwys.info</b>
Co zostanie wyświetlone jako: mail hosted on tomwys.info. “hosted on” to tekst, który będzie widoczny na przeglądarkach tekstowych. Równie dobrze możemy wpisać “na serwerze”, “at” czy coś innego. A oto screen z przeglądarki tekstowej (lynx):
Jak widać na rysunku, dzięki zastosowaniu tagu <b> nazwa użytkownika i nazwa hosta zostały wyróżnione w przeglądarce, co sprawia, że adres staje się bardziej czytelny.
Podsumowanie
Przedstawiona metoda jest bardzo prosta, przenośna i wystarczająco skuteczna, aby praktycznie wszystkie boty się na nią nabrały. Sam ją stosuje i polecam jej stosowanie.
Tomasz Wysocki
sierpień 2, 2006 at 9:13 pm · Filed under Linux
Pod Linuksem możemy zamontować obraz iso podobnie jak partycje. Wykorzystywane jest do tego jednak urządzenie loop. Najpierw należy sprawdzić czy takie urządzenie posiadamy:
ls /dev/loop*
Jeśli wyświetli nam się lista urządzeń, możemy użyć jedno z nich. Jeśli nie musimy wkąpilować obsługę loop w kernel.
Konfiguracja kernela
Device Drivers ---> Block devices ---> [*] Loopback device support
Montowanie obrazu
Obraz montujemy jako root:
mount -t iso9660 -o ro,loop=/dev/loop0 obraz.iso /mnt/iso/
| Opcja | Znaczenie |
| -t iso9660 | Określa typ obrazu (iso). |
| ro | Podmontowuje tylko do odczytu (zapobiega przypadkowemu uszkodzeniu obrazu) |
| loop=/dev/loop0 | Określa urządzenie loop używane przy montowaniu. |
| obraz.iso | Obraz do podmontowania. |
| /mnt/iso/ | Punkt docelowy montowania. |
Odmontowywanie obrazu
Obraz możemy odmontować analogicznie do zwykłej partycji:
umount /mnt/iso
/etc/fstab
Istnieje także możliwość automatycznego montowania obrazu podczas startu systemu. Wystarczy dodać odpowiedni wpis do /etc/fstab. Np.:
/var/obraz.iso /mnt/iso iso9660 ro,loop=/dev/loop0 0 0
Oczywiście wszystkie opisane czynności możemy wykonać w różnych wariantach (np. montować do odczytu i zapisu). Powodzenia w eksperymentowaniu.
Tomasz “tomwys” Wysocki