• mina86.com

  • Categories
  • Code
  • Contact
  • NTP over HTTP

    Sitting in a dark office, after swearing for hours at ATI video cards I noticed time on my computer was incorrect. ‘No problem,’ I thought as I started typing ntpdate. That’s where it struck me that our beloved IT department had blocked most of the Internet. Checking the time on a watch or a mobile phone was not an option — I had neither — nor was looking at GKrellM on another PC — that’s lame.

    ‘I wish there was a NTP-over-HTTP protocol’ I sighed. And then I realised there was…

    Treasure Hunt w Prologu

    W poprzednim wpisie pisałem o Google Treasure Hunt, a w szczególności o zadaniu czwartym. Teraz, w ramach przygotowań do kolokwióm z języka Prolog postanowiłem napisać w nim rozwiązanie postawionego problemu:

    Treasure Hunt a szybkość D

    Zachęcony wpisem GiMa postanowiłem pobawić się w Google Treasure Hunt. Z początku moje wrażenia były negatywne, ale to dlatego, że zacząłem od zadania sieci, które jest co najmniej denne. Archiwum też nie napawało optymizmem, już zacząłem się zastanawiać, czy wszystkie będą tak prymitywne — na szczęście nie były.

    Masowe wysyłanie listów

    W tekście poniższym opiszę jak i dlaczego właśnie tak należy wysyłać masowe listy (tj. do wielu osób jednocześnie). Dość często zdarza mi się otrzymywać wiadomości z przerośniętą listą adresatów, z których połowy nawet nie znam — jest to zdecydowanie niedobry sposób na rozsyłanie korespondencji!

    Sieci Komputerowe

    Ponownie coś z serii „ja juz zaliczyłem na 5, a może komuś się przyda”. Odpowiedzi na pytania przygotowawcze przed kolokwium z przedmiotu Sieci komputerowe II. Jak w przypadku poprzedneigo wpisu, materiał ten ma największą wartość dla studentów Elektroniki Politechniki Warszawskiej, ale może też ktoś inny będzie miał ochotę przejrzeć.

    Systemy Operacyjne

    Coś z serii „ja już zaliczyłem na pięć, a może komuś się przyda”, czyli przygotowany przeze mnie plik z odpowiedziami na pytania przygotowawcze do egzaminu z przedmiotu Systemy operacyjne. Zapewne największa wartość mają one dla studentów Elektroniki Politechniki Warszawskiej, niemniej jednak może ktoś się tym zainteresuje.

    ARP ping

    Czas jakiś temu potrzebowałem sprawdzić, na komputerze bez przydzielonego adresu sieciowego, czy komputer o podanym adresie istnieje. Chciałem mianowicie, zależnie od wyniku tego testu skonfigurować sieć statycznie lub dynamicznie. Szybko szczególną uwagę zwróciłem na protokół ARP.

    W protokole Ethernet urządzenia są rozpoznawane za pomocą adresów MAC, a więc, aby móc wysłać pakiet do komputera o danym IP należy najpierw poznać jego adres sprzętowy. Do tego właśnie służy protokół ARP (gwoli ścisłości, może on być wykorzystany również przy innych protokołach warstwy drugiej i trzeciej).

    Jak to działa? Pierwsza strona rozsyła do wszystkich (na adres broadcast, tj.q FF:FF:FF:FF:FF:FF) zapytanie, wypełniając swój adres IP i MAC oraz adres IP, o który chce się zapytać. W odpowiedzi, druga strona wysyła ramkę z oboma adresami, swoimi i komputera wysyłającego pytanie.

    Nie każdy zdaje sobie sprawę, iż protokół ten można wykorzystywać nawet jeżeli nie ma się swojego adresu sieciowego — wówczas w odpowiednie pole wpisujemy same zera. W niczym to nie przeszkadza — w żadnym momencie protokół warstwy trzeciej nie jest wszak wykorzystywany.

    Warto wspomnieć, iż mechanizm ten jest wykorzystywany przez klienty DHCP, do sprawdzania (na wszelki wypadek), czy adres im nadany jest faktycznie wolny — nazywa się to Adress Conflict Detection.

    Dla zainteresowanych aplikacja, która próbuje wykryć adres sprzętowy urządzenia o podanym adresie sieciowym.

    Bezpieczeństwo logowania

    czyli czemu OpenID jest trzy razy mniej bezpieczny od zwykłego hasła.

    Double-checked locking pattern

    Jakiś czas temu w pewnych okolicznościach poruszony został wzorzec double-checked locking singleton, który jak powszechnie wiadomo nie jest do końca poprawny. Wynikła z tego krótka dyskusja, której kompilację pozwolę sobie wkleić poniżej (gdyż nie jest ona ogólnie dostępna, a nie lubię, gdy informacje się marnują).

    Ochrona stosu

    Prezentacja, którą miałem przyjemność omawiać w trakcie V Sesji Linuksowej traktująca o mechanizmie ochrony stosu polegającym na dodaniu strażnika pomiędzy adresem powrotu a zmiennymi lokalnymi funkcji. Archiwum zawiera również proste programy, które były prezentowane w trakcie wykładu.