pozytyw
Strona domowa Adama Drzewieckiego
negatyw
Locations of visitors to this page

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:

  • jakkolwiek dołożyłem wszelkich starań, aby programy i skrypty publikowane na tej stronie działały poprawnie, nie udzielam na nie żadnej gwarancji, jak również nie odpowiadam za szkody, powstałe w wyniku ich użycia. Użytkujesz je na własne ryzyko.
  • możesz przechowywać oraz uruchamiać dowolną ilość kopii każdego z programów i skryptów.
  • możesz w dowolny sposób udostępniać moje programy i skrypty w postaci, w jakiej zostały pobrane z tej strony.
  • nie masz prawa do jakichkolwiek modyfikacji moich programów (w szczególności prowadzących do podawania Ciebie jako ich autora).
  • możesz dowolnie dostosowywać działanie skryptów do swoich potrzeb oraz w dowolny sposób udostępniać zmienione wersje, pod warunkiem pozostawienia w nich informacji o tym, że jestem ich autorem i umieszczenia informacji o fakcie dokonania modyfikacji skryptu i treści dokonanych zmian wraz z Twoimi danymi kontaktowymi (imię, nazwisko i adres e-mail).

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ń.

Wykonawca Album Tytuł
Anggun Snow on the Sahara "Snow on the Sahara"
Cheryl Cole 3 Words "Fight for this love"
Beverley Craven Beverley Craven "Promise me"
"Holding on"
Depeche Mode Some great reward "Somebody"
Violator "World in my eyes"
"Halo"
"Enjoy the silence"
"Policy of truth"
Exciter "I feel loved"
Dido Life for rent "Life for rent"
"Sand in my shoes"
Safe trip home "Don't believe in love"
"It comes and it goes"
"Look no further"
Hungry Lucy Pulse of the Earth "Hill"
Norah Jones Come away with me "Feelin' The Same Way"
Alicia Keys As I Am "No one"
"Lesson learned"
"Prelude to a kiss"
The Element Of Freedom "Try sleeping with a broken heart"
"Wait til you see my smile"
Alanis Morissette Supposed Former Infatuation Junkie "That I would be good"
Katie Melua Piece by piece "Shy boy"
Schiller Atemlos "Always you"
Joss Stone Mind, body & soul "Right to be wrong"
"You had me"
"Less is more"
"Security"
"Snakes and ladders"
Shania Twain Up! "Ka-Ching!"
The Corrs Forgiven Not Forgotten "Forgiven Not Forgotten"
Vanessa Williams The Comfort Zone "Save the best for last"
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
Powrót na górę strony

Programy

MontePI - program znajdujący przybliżoną wartość liczby Pi za pomocą... rozrzucania losowych punktów

Program do pobrania:

Plik MontePI.zip (48,02 kB)

Wymagania: Windows 98 lub nowszy
Data ostatniej modyfikacji: 02.05.2004r.

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 hello.exe trzeba napisać w konsoli mono hello.exe Pięć znaków więcej! Skandal!

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

Powrót na górę strony

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...

  • Oscylator.pdf - rozwiązanie zagadnienia kwantowego oscylatora harmonicznego
  • Studnia.pdf - rozwiązanie zagadnienia nieskończonej studni potencjału
Powrót na górę strony
Copyright © 2003-2012 by Adam Drzewiecki