Archiwum dla wrzesień, 2008

Mp3TagUnit

Tym razem, dzielę się z Wami, napisanym przeze mnie jakiś czas temu, modułem do odczytywania tagu z plików mp3. Planowana była również obsługa dodawania i edycji tagu, co widać w źródle, ale jak na razie skończyło się tylko na planowaniu. Może ktoś będzie zainteresowany dopisaniem tej funkcjonalności ? Wybaczcie brak komentarzy, ale myślę że nazwy funkcji i typów mówią same za siebie :)

Aha, moduł był pisany z myślą o FreePascalu, choć nie powinno być również problemu z dostosowaniem go do innego dialektu ;) . Pozatym, chciałem uniknąć, dołaczania dodatkowych modułów, stąd własnoręcznie pisane funkcję: FileExists czy IntToStr… Kod oczywiście na licencji LGPL;p

Źródło na chomikuj.pl lub Nopaste

Permission denied…

Czasami, gdy ucze się matmy, miewam pseudo-bashowy opis: “cat /usr/include/math.h >> /dev/mózg“. Z ciekawości wpisałem sobie to w terminalu, po czym moim oczom pokazał się komunikat: “bash: /dev/mózg: Permission denied“. Wniosek: Kolejny przykład na wyższość Linuksa nad Windowsem w kwestii bezpieczeństwa. Nie zapamietasz nic mimo woli (hasła root’a), co jest oczywiście ochroną przed zbyt dużym natłokiem zbędnych informacji w dzisiejszym świecie…

Poza tym złośliwie można by wysunąć hipoteze na temat niezmienności zachowania dzieci neo, powiązanych z nimi pokemonów, trolli itp…

O popularności IE…

Portal Webhosting.pl w związku ostatnią szałową premierą kolejnego dziecka Google przeprowadził sondę pod tytułem: “Z jakiej przeglądarki internetowej korzystasz?”

Mnie po wynikach tej sondy przyszedł na myśl jeden wniosek o popularności przeglądarki Microsoftu: Wynika ona między innymi z braku wiedzy czym jest przeglądarka internetowa…

Flash na żądanie w Firefox’ie

Dzisiaj odkryłem ciekawe rozszerzenie do Firefox’a, a mianowicie  FlashBlock. Pozwala ono na decydować które animacje mają zostać odtworzone na stronie, zastępując animację Flash przyciskiem “Play”. Animacja jest odtwarzana jest dopiero po jego kliknięciu.

Rozszerzenie pozwala ponadto ustawić strony dla których domyślnie animację są włączone. Przydatne w przypadku portali typu youtube itp.

Flashblock w akcji...

bc – kalkulator dla konsolowców cz. I

BC to rozbudowany, uniksowy kalkulator dowolnej precyzji z lekko programistycznym podejściem do sprawy. Narzędzie to z pewnością przypadnie do gustu ludziom nie lubiącym “klikanych” kalkulatorów, a także miłośnikom pracy w konsoli czy programistą…

Początek pracy z kalkulatorem

(Kalkulator powinien być zainstalowany domyślnie w systemie, jeśli było by inaczej należy przeprowadzić standardową dla Twojej dystrybucji procedurę instalacji aplikacji…)

Praca w bc może odbywać się w 2 trybach:

  • interaktywnym – pozwalającym na wpisywanie na bieżąco wyrażeń kalkulatora
  • trybie przetwarzania zapisanego skryptu

Pracę w trybie interaktywnym rozpoczynamy wpisując w oknie terminala polecenie bc, w 2 z trybów podając po bc nazwę pliku/ów z skryptem/ami do wykonania. Chcąc uniknąć wypisywania powitania programu możemy dorzucić opcję -q. Innym niewątpliwie interesującym parametrem z którym można uruchomić program jest -l które definiuje parę funkcji matematycznych “na start”. Pracę z programem kończymy wpisują quit.

Wyrażenia

Wyrażenia podaje się w postaci znanej z lekcji matematyki, z uwagą że zamiast przecinka stosujemy kropkę przy podawaniu liczb niecałkowitych. Operatory których możemy używać w działaniach (wyrażeniach):

  • +, -, *, / – po kolei: dodawanie, odejmowanie, mnożenie, dzielenie – z tym ostatnim trzeba uważać gdyż domyślną precyzją po przecinku jest 0. Należy zmienić wartość zmiennej scale ew. uruchomić program z parametrem -l.
  • % – reszta z dzielenia dwóch wyrażeń np. 5 % 2 = 1, znów uwaga na scale
  • ^ – podnieś x do potęgi y

Działania reprezentowania przez operatory wykonywane są w naturalnej kolejności matematycznej. Do ich zmiany, również jak w matematyce, służą nawiasy okrągłe (zagnieżdżone w sobie dowolną liczbę razy). Kilka przykładowych wyrażeń:  2 + 2, 3^6, (2 * 3)^2 / 2. Wynik wyrażenia jest wypisywany w następnej linii, pod wyrażeniem.

Co do wspomnianej zmiennej scale to w tej części artykułu napisze jedynie że jest to coś (dla nie wtajemniczonych w programowanie), co jest odpowiedzialne za precyzję obliczeń po przecinku. Standardowo zmienna ustawiona jest na wartość 0 co powoduje że wartość wyrażeń jest obcinana do części całkowitej, zmienić możemy to przypisując jej inną wartość poprzez np. wyrażenie o postaci: scale = 2; ew uruchamiając z barametrem -l. (Wartość ustawiana jest na 20).

Istnieją również pewne “wyrażenia specjalne”, będące w rzeczywistości funkcjami  standardowymi. Używa się ich za pomocą schematu nazwa(argument). Argumentem jest różny w zależności funkcji. Oczywiście nic nie stoi na przeszkodzie aby funkcje te łączyć z operacjami wymienionymi wyżej. Poniżej kilka wybranych funkcji:

  • sqrt(wyrażenie) – funkcja zwraca wartość pierwistka z wyrażenia np. sqrt(16) (zwróci 4…)
  • scale(wyrażenie) - funkcja zwraca liczbę cyfr po przecinku wyrażenia podanego jako argument np. scale(0.02) wypisze 2

Poniższe funckje zdefiniowane są jedynie w przypadku uruchomienia programu z dodatkowym parametrem -l:

  • s(wyrażenie) – funkcja zwraca sinus z konta o mierze równej wartość wyrażenia, miara jest liczona w radianach. Analogicznie do niej działają funkcję c, i a, zwracające cosinus i arcus tangens (w radianach) z wyrażenia.
  • l(wyrażenie) logarytm naturalny z wyrażenia
  • e(wyrażenie) - liczba e do potęgi wyrażenie

Oczywiście to co tu pokazałem to tylko kropla możliwośći bc. Więcej, między innymi o używaniu i definiowaniu zmiennych oraz funkcji, w kolejnej części ;)

c.d.n…