Wizerunki darującego i obdarowywanego odciśnięte są na dwóch stronach jednej monety.
|
Pliki do pobrania |
Na tej stronie będzie można znaleźć materiały przygotowane przeze mnie, przeznaczone do pobrania: dokumenty, programy i skrypty dla systemu operacyjnego Linux. Dokumenty są udostępnione w formacie PDF, do ich odczytania potrzebny jest program Adobe Reader, który można pobrać ze strony www.adobe.com, korzystając z ikony "Get Adobe Reader". Co jeszcze tu będzie? Nie wiem, czas pokaże. Parę uwag, niestety bardzo potrzebnych.
Wszystkie pliki, udostępnione na tej stronie, są efektem mojej pracy. To, że można coś pobrać z Internetu, nie oznacza automatycznie, że Możesz zrobić z tym wszystko, co zechcesz. W szczególności, wykorzystanie części lub całości dokumentów, we własnych pracach (lub przedstawianie ich jako własne prace) bez podania ich autora to plagiat - kradzież własności intelektualnej. Wykorzystanie tych treści w celach zarobkowych bez porozumienia z autorem to już najpodlejsza wersja złodziejstwa i zwyczajne chamstwo...
Poniższe punkty to licencja na użytkowanie moich programów i skryptów:
Schodząc z poziomu języka prawniczego na poziom języka normalnych ludzi, udostępniam owoce swojej pracy za darmo i nie chcę, aby ktoś na niej zarabiał bez mojej wiedzy i zgody lub, o zgrozo, próbował mnie na dodatek pozwać sądownie o odszkodowanie. Innymi słowy, jest to wyrażona w nieludzkim języku prośba o bycie człowiekiem prawym i uczciwym. Jeśli Wypełnisz to, co napisałem powyżej, Korzystaj ze wszystkiego, co tu opublikowałem, do woli...
|
Tłumaczenia tekstów piosenek |
Pierwsze próby tłumaczenia tekstów piosenek podjąłem jeszcze za czasów szkoły średniej, zapewne nie ja jeden... Nie byłem przesadnie wierny temu hobby na przestrzeni parunastu lat od tamtego czasu, jednak nadal zdarza się, że na tyle zafrapuje mnie tekst jakiejś piosenki, na ogół takiej, która podoba mi się bardziej niż inne na danym albumie, że chcę poznać dokładnie znaczenie jej tekstu. Poniżej prezentuję wyniki tego typu dociekań.
Powrót na górę strony
|
Prezentacje |
| Miniatura | Opis | Pliki |
|---|---|---|
|
Dezyderata to tekst, pozwalający na chwilę refleksji nad tym, co ważne w codziennym życiu. Spotkałem się z nim pierwszy raz bodajże pod koniec szkoły średniej (mniej więcej wtedy dinozaury uczyły się polować) i do tej pory miło go wspominam. Spotkałem się z opinią, że pomaga, w szczególności ostatni slajd... |
Dezyderata.pps Dezyderata.pdf |
|
Programy |
|
Program do pobrania:Plik MontePI.zip (48,02 kB)
Wymagania: Windows 98 lub nowszy |
Powyższy nagłówek sugerowałby żart, ale tak nie jest - program MontePI używa do, przyznam - trywialnego celu, poważnej metody symulacji komputerowej o nazwie Monte Carlo. W praktyce metody Monte Carlo używa się do znajdowania wartości całek wielowymiarowych, tutaj wykorzystano go do znalezienia pola powierzchni koła o promieniu jednostkowym, która jest równa co do wartości liczbie Pi. Wartość pola powierzchni wyznaczana jest poprzez pomnożenie pola kwadratu (cztery jednostki) przez przybliżone prawdopodobieństwo trafienia losowym punktem z obszaru kwadratu, w koło, znajdujące się wewnątrz kwadratu. Prawdopodobieństwo to jest oczywiście równe stosunkowi pola koła do pola kwadratu.
Wygląd okna programu po zakończeniu symulacji pokazany jest po lewej stronie (kliknij, aby powiększyć obrazek). Aby rozpocząć pracę programu, wpisz w okienko tekstowe liczbę losowych punktów, jaka ma być rozrzucona po powierzchni kwadratu, a następnie kliknij przycisk (przed uruchomieniem symulacji ma on etykietę "Start!"). Jeśli włączyłeś pokazywanie punktów, generowane punkty będą rysowane w oknie programu (wyłączenie rysowania punktów znacznie przyspiesza symulację, ale traci ona wtedy swój urok...). Po zakończeniu eksperymentu wyświetlana jest informacja o ilości punktów, które trafiły w koło, ilości wszystkich rozrzuconych punktów, oraz oczywiście oszacowanie liczby Pi. Jeśli chcesz, aby po zakończeniu eksperyment został automatycznie powtórzony, zaznacz pole "Autopowtarzanie" (doskonałe do wygrzewania procesora). No i jeszcze jedna uwaga: aby uzyskać sensowny wynik, należy podać dużą liczbę punktów do rozrzucenia (co najmniej kilkadziesiąt tysięcy, wiele milionów nie będzie przesadą). Podając jeden punkt, masz szansę uzyskać tylko dwa wyniki: zero albo cztery, w zależności od tego, czy punkt trafi w koło, czy też nie...
Program nie ma wygórowanych wymagań sprzętowych ani programowych, powinien dać się uruchomić na dowolnym komputerze PC, na którym pracuje Windows 98 lub nowszy (pierwsza wersja programiku powstała na komputerze z procesorem 486 i systemem operacyjnym Windows 3.1 i była w stanie na nim pracować), choć oczywiście im szybszy komputer, tym krótszy jest czas symulacji dla zadanej ilości punktów.
Powrót na górę strony
|
Skrypty |
| Nazwa | Opis |
|---|---|
| cfs |
CPU Frequency Scaling to mechanizm, pozwalający na zmianę częstotliwości taktowania procesora, może to być wykonywane automatycznie na podstawie oszacowania obciążenia systemu lub poprzez podanie konkretnej wartości częstotliwości z dozwolonego zbioru. Podstawowym celem stosowania tego mechanizmu jest redukcja poboru energii elektrycznej. Skrypt cfs pozwala na sterowanie tym mechanizmem oraz na wyświetlenie podstawowych informacji o aktualnych, oraz możliwych do uzyskania, ustawieniach. Przed rozpoczęciem pracy ze skryptem należy zadbać, aby był dostępny odpowiedni sterownik dla naszego sprzętu, na ogół wiąże się to z załadowaniem odpowiedniego modułu jądra, w moim wypadku jest to p4-clockmod, obsługujący procesory Intel Pentium IV. |
| check-deps |
Zasadniczo należę do tych osób, które lubią porządek. Może nie kupuję Domestosa na palety, ale w moim komputerze wszystko ma być na swoim miejscu. Linuks rasy Slackware nie ułatwia procesu poprawy mojego samopoczucia w tej materii, bo jego system pakietów nie uwzględnia tzw. zależności. Oznacza to, że nikt poza mną samym nie dopilnuje, aby program X miał dostępne wszystkie potrzebne mu biblioteki A, B, a czasem jeszcze dodatkowo C, a programów pokroju X są w systemie setki, jeśli nie tysiące... Skrypt check-deps przegląda wszystkie programy zainstalowane w typowych lokalizacjach, uwzględniając dodatkowo katalogi, podane w zmiennej PATH, pod kątem tego, czy któremukolwiek z programów nie brakuje używanych przez niego bibliotek. Na zakończenie wyświetla zestawienie zbiorcze brakujących plików bibliotecznych. |
| home-backup |
Raz na jakiś czas robię kopie zapasowe moich plików. Kiedyś pozbyłem się przez niedopatrzenie jedynej kopii archiwum starych programów, napisanych jeszcze w Pascalu. Świadomość tego, że były stare, niepotrzebne i w Pascalu, którego używanie zarzuciłem parę lat wcześniej, zbytnio mi nie pomogła, całe zdarzenie kosztowało mnie kilka dni złego samopoczucia. Powiadają, że ludzie dzielą się na dwie grupy: na tych którzy robią backupy, i na tych którzy będą robić backupy... Przygotowywanie kopii zapasowych ważnych danych pod Linuksem sprowadza się w sporej części do zachowania aktualnego stanu katalogów domowych użytkowników, zwyczajowo umieszczonych w katalogu /home. W pewnym momencie znudziło mi się ręczne wpisywanie polecenia, kompresującego ten katalog, czekanie na zakończenie kompresji i ręczne usuwanie starszych skompresowanych plików archiwalnych. Dla zautomatyzowania tych czynności powstał home-backup. Przy każdym uruchomieniu skrypt sprawdza, czy istnieje w katalogu /root/backup plik kopii zapasowej z dzisiejszym datownikiem w nazwie, i jeśli nie istnieje, próbuje utworzyć archiwum z zawartością katalogu /home. Typową przyczyną niepowodzenia przy tworzeniu archiwum jest zmiana zawartości tego katalogu w trakcie kompresji, spowodowana np. zmianami w pamięci podręcznej Firefoxa przy przeglądaniu Internetu. Jeśli archiwum zostało poprawnie utworzone, wykonywane jest porządkowanie plików archiwalnych (kasowane są wszystkie, poza dwoma najnowszymi: nowo powstałym oraz jego poprzednikiem), a jeśli nie, to skrypt usuwa niepoprawnie utworzony plik archiwum. Przykładowy wpis dla cron, uruchamiający skrypt z katalogu /usr/local/sbin (po skopiowaniu skryptu należy pamiętać o nadaniu mu uprawnień do wykonania) dziesięć minut po każdej pełnej godzinie ma postać: 10 * * * * /usr/local/sbin/home-backup |
| installkernel |
Dystrybucja Linuksa o nazwie Slackware ma to do siebie, że wiele rzeczy jest tam bardzo prosto zrobić dokładnie tak, jak ma się na to ochotę (nie ma tych wszystkich, utrudniających życie, "ułatwiaczy"), ale jeśli się ich nie zrobi, to nie będzie się ich miało w ogóle... Dotyczy to również skryptu installkernel, instalującego nowo skompilowane jądro w odpowiednim miejscu w strukturze katalogów. Mój skrypt nie wybija się funkcjonalnością ponad to, co oferowane jest "w standardzie" w innych dystrybucjach Linuksa. Ma dwie zalety: jest gotowy i działa, wystarczy go skopiować do katalogu /sbin i nadać odpowiednie uprawnienia. Kolejne wykonanie kroku "make install" podczas kompilacji jądra wykorzysta podczas instalacji potrzebnych plików skrypt /sbin/installkernel. |
| rc.mono |
Typowy przykład zwycięstwa lenistwa nad zdrowym rozsądkiem... Mono to projekt,
mający za zadanie stworzenie implementacji środowiska .NET Microsoftu,
działającej na wielu platformach systemowych (a nie tylko pod Windows...),
napisanej na licencji open source. Pod Mono można już uruchomić
z niezłym skutkiem część prostszych programów, napisanych dla .NET.
W przeciwieństwie do pracy w środowisku Windows, uruchomienie
programu dla .NET pod Linuksem wymaga jawnego uruchomienia
interpretera mono, z argumentem, będącym nazwą uruchamianego programu.
Brzmi to być może niejasno, ale chodzi o następującą różnicę: zamiast
W jądrze Linuksa dostępny jest mechanizm o nazwie BINFMT_MISC. Nie wdając się w zbyteczne szczegóły techniczne można powiedzieć, że służy on do poinstruowania jądra, jak uruchamiać nietypowe pliki binarne. Dwie najważniejsze informacje potrzebne do skonfigurowania nowego typu plików binarnych to przepis na rozpoznanie plików danego typu oraz podanie, jaki program jest w stanie zinterpretować takie pliki. Skrypt rc.mono konfiguruje program mono do obsługi plików .exe. Wykrywaniem, czy plik jest napisany dla .NET, zajmuje się Mono. Skrypt jest przygotowany do uruchomienia jako jeden ze skryptów startowych, rezydujących w katalogu /etc/rc.d. Od momentu jego uruchomienia każdy plik w formacie .exe dla platformy .NET, mający atrybut wykonywalności można uruchomić tak, jak każdy inny program pod Linuksa. Instalacja skryptu sprowadza się do skopiowania go do katalogu /etc/rc.d, nadanie mu oraz plikowi /etc/rc.d/rc.local atrybutu wykonywalności oraz dopisanie do pliku rc.local następującej sekwencji instrukcji: if [ -x /etc/rc.d/rc.mono ] ; then /etc/rc.d/rc.mono start fi |
| stop-intruder |
Swego czasu doceniłem możliwość zdalnego obsługiwania domowego komputera za pomocą połączenia SSH. Okazało się jednak, że komputer udostępniający mi tę usługę, udostępnia ją również, niestety nie tylko potencjalnie, amatorom "mocnych wrażeń", uruchamiającym programy automatycznie poszukujące kont na obcych komputerach, na które da się zalogować łatwym do przewidzenia hasłem. Mam co prawda dość bezpiecznie skonfigurowane jedyne konto, za pomocą którego można się zdalnie zalogować na mój domowy komputer, ale nadal jest niezerowe prawdopodobieństwo, że w końcu któremuś ze script-kiddies uda się "trafić" zarówno nazwę tego konta, jak i hasło... Trzeba było ograniczyć im przynajmniej ilość "strzałów" w zgadywance, bo raz nakryłem intruza in flagranti po wykonaniu ponad 1200 prób odgadnięcia hasła. To był powód powstania skryptu stop-intruder, który przegląda plik logu systemowego w poszukiwaniu zapisów na temat nieprawidłowych prób logowania, traktując specjalnie próby zalogowania się na konta, które nie są udostępnione przez demona SSH (lub nie istnieją). Jeśli ilość nieudanych prób logowania przekroczy założony próg, adres IP intruza jest automatycznie dopisywany do pliku hosts.deny, po czym następuje restart demona inetd, co powoduje zablokowanie połączeń SSH z tym adresem. Skrypt jest uruchamiany co minutę za pomocą demona cron, co jak wykazało życie, jest optymalną częstotliwością. Działanie skryptu zależy ponadto w niejawny sposób od konfiguracji programu logrotate, który archiwizuje dziennik systemowy. Przykładowy wpis dla cron, uruchamiający skrypt z katalogu /usr/local/sbin (po skopiowaniu skryptu należy pamiętać o nadaniu mu uprawnień do wykonania) co minutę ma postać: * * * * * /usr/local/sbin/stop-intruder |
|
Fizyka - dokumenty |
Fizyka obliczeniami stoi, nawet jeśli są to jedynie obliczenia wartości średniej z kilku pomiarów. Z drugiej strony, autorzy książek nader często korzystają z wyświechtanej formułki "mamy oczywistą zależność", której celem jest pominięcie publikacji znaczącej części obliczeń, choćby dlatego, że wstawienie każdego wzoru do tekstu to nieproporcjonalnie większa praca, niż wstawienie podobnej objętości zwykłego tekstu. Ile razy jednak brakowało Czytelnikowi do zrozumienia przedstawianej treści właśnie tego, co pominięto... Kiedyś postanowiłem, dla własnej zabawy, przeprowadzić możliwie najdokładniej obliczenia kilku podstawowych, ciekawych zagadnień fizyki. Gdy dokumenty były gotowe, przyszła do głowy myśl: dlaczego by nie udostępnić tego na stronie? Mam jednak świadomość, że z racji poruszanej tematyki, nie będą to najczęściej pobierane dokumenty...