Archiwum: Ogólna

W Allegro nie myślą

Witajcie,

Jak pewnie większość spośród Polskich internautów mam jakąś tam styczność z Allegro. Ostatnio wyłącznie jako kupujący, ale zdarzyło mi się kiedyś coś sprzedawać. Nie mam zielonego pojęcia kiedy to było, więc pewnie bardzo dawno. Sprzedawanie nie jest darmowe (w końcu muszą na czymś zarabiać), więc moje konto na allegro miało od bardzo dawna ujemne saldo. Całe -60 groszy. Prawie majątek. Dziś otrzymałem od Allegro e-mail:

(…)
Przypominamy, że na Twoim koncie istnieją nieuregulowane zobowiązania wobec Allegro.pl z tytułu opłat za wystawione aukcje. Saldo rachunku wynosi -0.60. Ponieważ od pewnego czasu nie prowadzisz sprzedaży z konta gozwei, prosimy o uregulowanie płatności do 2009-08-14.

Pamiętaj, że długotrwałe zaleganie z opłatami może spowodować brak dostępu do niektórych ważnych funkcji serwisu Allegro.pl, na przykład Programu Ochrony Kupujących.

Aby skorzystać z szybkiej wpłaty online lub wydrukować polecenie przelewu, przejdź do strony:Moje Allegro > Rachunki > Wpłać.

Wpłacając pieniądze w banku albo na poczcie, użyj poniższych danych odbiorcy:
(…)

Jakby nie było saldo jest ujemne, więc byłoby fair je spłacić. Zatem zalogowałem się na swoje konto, przeszedłem do odpowiedniej zakładki i zdecydowałem spłacić całą zaległość za pomocą przelewu błyskawicznego z mojego banku. Po kliknięciu “płacę!” otrzymałem komunikat:

W Allegro nie myślą!

Jak widać tą metodą się nie da. Mógłbym oczywiście zrobić przelew z banku – strać czas i (zależnie od banku i metody zlecenia) zapłacić opłatę (albo i nie, bo w niektórych bankach przelewy są za darmo). Jeszcze lepszym rozwiązaniem byłaby oczywiście wizyta na poczcie, gdzie opłata za przelew wynosi jedynie 3,50 zł.

Z takiego oto prostego powodu nie udało mi się zapłacić za usługi Allegro. Niestety ktoś w Allegro nie pomyślał.

| Komentarze

Jakim dziwnym jesteśmy narodem?

Pisząc poprzedni wpis dosłownie chwilę temu, odświeżyłem sobie na drugim monitorze Wirtualną Polskę. Zainteresował mnie nagłówek jednej wiadomości: Za “szczeniacki żart” w kościele dostała rok w zawieszeniu. Zaciekawiony o co chodzi (do tematyki kościoła zawsze podchodzę z dystansem – w końcu ateizm zobowiązuje ;p) przeczytałem co następuje:

Za przerobienie kościelnych napisów na obrazoburcze hasła 18-latka z Puław dostała rok pozbawienia wolności w zawieszeniu i grzywnę 400 zł. Dodatkowo wyrok wywieszono w sądzie i kościele – podaje “Dziennik Wschodni”.

W listopadzie ub. roku dziewczyna wraz z kolegą przerobiła flamastrem napis nad drzwiami do kościoła parafii pw. Matki Bożej Różańcowej w Puławach. Hasło “Żyj jak Maryja” stało się “Żryj jak Maryja”, a “Trwaj w wierze” – “Trwaj zwierze”.

Akcję dziewczyny i chłopaka zauważył świadek, który powiadomił straż miejską. Oficjalne doniesienie złożył ksiądz z parafii.

Teraz dziewczyna mówi, że to był “szczeniacki żart” i na pewno by go nie powtórzyła.

Sprawa kolegi skazanej dziewczyny, również oskarżonego o obrazę uczuć religijnych, jeszcze trwa.

W tym tygodniu ma się odbyć rozprawa, na której sąd zdecyduje, czy zamienić 18-latce grzywnę na prace społeczne.

Muszę przyznać, że lektura tego artykułu wywołała u mnie dwa symultaniczne odczucia: śmiech i zażenowanie. Nie tym co zrobiła ta dziewczyna, ale reakcją naszego społeczeństwa. Nie popieram jej zachowania bo sam jestm zwolennikiem porządku, ale kara pozbawienia wolności na rok za takie coś to zwyczajnie żenujący żart. Pijani kierowcy, złodzieje, i inni społecznie groźni przestępcy dostają mniejsze i mniej dotkliwe kary!

Innym faktem, który mnie zaciekawił jest użycie w artykule słowa “obrazoburczy”, co według słownika języka polskiego oznacza: “występowanie przeciwko powszechnie szanowanym wartościom” – to nie brzmi jak przestępstwo. Tutaj to się pewnie czepiam, ale ktoś kto pisał ten artykuł nie pomyślał dwa razy.

Jesteśmy chorym społeczeństwem, w którym ludzie boją się żartów z religii, boga i kościoła. Telewizja nie pokazuje programów o takiej tematyce bo boi się utraty częsci widowni. Muszę przyznać, że oglądając mój ulubiony serial (Simpsonów) zazdroszczę zawsze Amerykanom odwagi społecznej na żarty z polityków, kościoła, boga, religii i tym podobnych.

Homer w kościele

Nie wspomnę nawet o South Parku, znanego przez większość ludzi. Dlaczego tam się nie boją? To proste: oni są dojrzałym społeczeństwem, a my nie.

Nie chcę się więcej na ten temat rozpisywać i “promować” swojego podejścia. Moim celem jest zwrócenie uwagi na problem i zaproponowanie refleksji nad nim.

| Komentarze (3)

Twitter – co za badziew!

Witam wszystkich,

Od jakiegoś czasu nachodzi mnie ochota wyrażenia swojej negatywnej opinii na temat internetowego “hitu” ostatnich miesięcy. Tym razem chodzi mi o serwis Twitter.

Może jest to kwestia tego, że po prostu nie dociera do mnie idea mikroblogowania, lub faktu w jaki sposób zostało to wszystko wykonane. Być może ktoś z Was zechce mi wytłumaczyć o co chodzi i po co to jest?

Dosyć regularnie zaglądam na blog Pawła Wimmera, na którym można przeczytać ciekawe rzeczy i zszokowało mnie jak ten, dorosły i dojrzały człowiek, dostał fioła na punkcie Tweetera. Przez pewien okres czasu (właściwie do dziś) ponad połowa wpisów dotyczy kolejnych rozszerzeń, interfejsów, trików, narzędzi i programów wyłącznie dla Tweetera. Żenuje mnie to. Prawdopodobnie dlatego, że zwyczajnie nie rozumiem o co chodzi!

Największym szokiem dla mnie był opis metody (czy jak by to nazwać, nie wnikam), podziału wpisu (który w jak przystało na mikroblog ograniczony jest do bodajże 140 znaków) na kilka części, tak aby zmieścić dłuższą wiadomość. Przecież to jest czyste kretyństwo! Ja rozumiem, że w SMSach tak się robi, ale to dla tego że kiedyś wymyślono standard (jak na tamte czasy technologicznie optymalny), który zakładał ograniczenie. Po jaką cholerę ktoś najpierw wymyśla ograniczenie (nieracjonalne z jakiegokolwiek technicznego punktu widzenia), a potem tworzy obejście? Proszę, wytłumaczcie mi to!

Normalnie odwiedzając “hitowy” serwis internetowy liczę na to, że otworzy się szybki i płynnie oraz będzie czytelny i estetycznie. Ale nie Twitter. Otwiera się kilkadziesiąt sekund i nie ładuje potrzebnych elementów. Najlepiej wygląda jak nie załaduje arkusza stylów:

Twitter Pawła Wimmera

Nie chcę się dłużej pastwić nad tym serwisem, bo jest to pozbawione celu. Napisałem co chciałem od siebie przekazać. Będę zobowiązany, jeśli ktoś mi wytłumaczy jaki jest sens Twittera?

| Komentarze (10)

Termodynamika praktyczna – basen cz. 1

Geneza problemu

Problem, który za chwilę spróbuję sformułować zacząłem rozważać jakiś miesiąc przed rozpoczęciem sezonu letniego (już w tej chwili wiadomo, że okazał się on mało powalający w sensie nasłonecznienia i zakresu temperatur – cały czas mam nadzieję, że jeszcze będzie ciepło). Na moim podwórku stoi rozkładany, naziemny basen. Jest jak na tego typu konstrukcję bardzo duży bo mieści aż 30 metrów sześciennych wody (7,5 * 3,5 * 1,15 metra).

Jak wszyscy wiemy (z obserwacji / doświadczenia / szkoły) woda jest substancją o bardzo dużym cieple właściwym, co w praktyce oznacza, że potrzeba dużo energii, żeby wodę ogrzać oraz, że woda stygnie wolniej niż otoczenie (powietrze). Z tego faktu wynika problem, który chcę rozważać.

Problem

Ponieważ w tej chwili znane są mi już pewne triki (o których będę pisał) w kwestii temperatury wody basenowej sformułowanie problemu będzie inne niż początkowo zakładałem. Kilka miesięcy temu stawiałem następujący problem:

Znaleźć metodę pozwalającą na skuteczne ogrzanie wody przy minimalnym koszcie eksploatacyjnym

W tej chwili problem sformułuję następująco:

Znaleźć metodę pozwalającą na otrzymanie w basenie wody o możliwie wysokiej temperaturze przy minimalnym koszcie eksploatacyjnym

Możecie powiedzieć, że między tymi sformułowaniami nie ma wiele różnicy, ja jednak pewną dostrzegłem. Początkowo moje rozważania były czysto teoretyczne i poszukiwałem metody ogrzewania wody w basenie. W grę wchodziło kilka możliwości:

  • Ogrzewanie elektryczne – średni koszt zakupu sprzętu i ogromy koszt użytkowania wynikający z ilości potrzebnej energii (jednorazowe podgrzanie wody o 1 stopień to nawet 40 złotych)
  • Pompa ciepła – duży koszt na początku i nadal spory koszt użytkowania
  • Panele słoneczne – w przypadku paneli basenowych (a nie takich dedykowanych do instalacji domowych) koszt początkowy relatywnie mały i zerowy koszt eksploatacji. Wadą jest działanie w tylko w słoneczne dni i tylko przez część dnia.
  • Piec na paliwo stałe – podgrzewanie wody np. drewnem. W sumie się okazało że sporo trzeba zainwestować a wydajność grzania pozostała niewiadomą.

Gdy okazało się, że wszystkie te metody są kosztowne postanowiłem podejść do problemu inaczej – bardziej naukowo (tutaj przechodzimy od ogrzewania do trików). Zastanowiłem się w jaki sposób odbywa się transport energii pomiędzy basenem a resztą świata. Łatwo domyślić się, że energia jest przenoszona na kilka sposobów:

  • Przewodzenie i konwekcja – powodować dwustronny przepływ energii w zależności od relacji temperatury wody i otoczenia. Wielkość przepływu energii jest proporcjonalna do różnicy temperatury (woda – otoczenia). Stała tej proporcjonalności zawiera w sobie między innymi powierzchnię czynną, rodzaj (przewodność) bariery pomiędzy wodą a otoczeniem. Należy tutaj spodziewać się zależności wielkości przepływu energii o dodatkowych, trudno przewidywalnych i mierzalnych, parametrów takich jak prędkość wiatru czy wilgotność mająca wpływ na pojemność cieplną powietrza.
  • Promieniowanie – tak jak przewodzenie powoduje przepływ dodatni lub ujemny w zależności od temperatur wody i otoczenia. Wielkość tego przepływu jest proporcjonalna do różnicy czwartych potęg temperatury. Stała proporcjonalności zawiera głównie powierzchnię czynną i zdolność absorpcyjną.
  • Energia słoneczna – odpowiada jedynie za dostarczanie ciepła (w postaci promieniowania) do basenu poprzez wszystkie oświetlane powierzchnie. Jest to największe spośród rozpatrywanych źródeł energii. Niestety dokładne przewidywanie ilości energii dostarczanej przez słońce jest zadanie bardzo trudnym ze względu na zmienność zachmurzenia.
  • Parowanie – odpowiada wyłącznie za stratę energii cieplnej basenu. Jest funkcją temperatur wody i basenu, wilgotności i wiatru. Jest to wielkość o dużym znaczeniu dla modelu, której oszacowanie jest bardzo trudne ze względu na skomplikowaną zależność od parametrów szybkozmiennych i trudnych do przewidzenia (wiatr).

W przypadku każdego z tych przepływów trudno jest podać konkretne wartości ze względu na skomplikowanie zagadnienia (mnogość trudnych do określenia parametrów). Można szacować. Przewidywałem, że promieniowanie spowoduje w nocy utratę rzędu kilku kilowatów i że konwekcja jest mniej znacząca. Zysk powodowany przez słońce również łatwo szacować, bo znamy powierzchnię basenu i ilość energii dochodzącej ze słońca na metr kwadratowy (można znaleźć przybliżone wartości w literaturze). Największym problemem jest jednak parowanie. Nie miałem (nadal zresztą nie mam) pojęcia jak policzyć ilości energii traconej przez parowanie. Wybrałem do się więc do zakładu Fizyki Środowiska przy Instytucie Geofizyki UW zapytać czy znają rozwiązanie problemu parowania. Utwierdzono mnie tam w przekonaniu, że nie bardzo da się to policzyć. Zaproponowali pomiar doświadczalny.

Mimo braku możliwości dokładnego obliczenia wartości energii traconej na parowaniu, możemy szacować, że jest ona większa niż straty przez promieniowanie i przewodzenie. Pojawił się pomysł, żeby ograniczyć parowanie. Można to zrobić w bardzo prosty sposób. Wystarczy odizolować powierzchnię wody od powietrza folią. Zwykła folia zatonęłaby po pierwszym deszczu, dlatego zastosowałem folię bąbelkową, która pływa po wodzie skutecznie eliminując parowanie.

Po tym zabiegu temperatura wody w basenie wzrosła o kilka stopni w stosunku do basenu bez przykrycia. Trzy upalne dni pod rząd wystarczyły aby rozgrzać wodę do przyjemnych 29 stopni.

Nie poprzestałem jednak na tym zabiegu. Kolejnym krokiem, którego jeszcze nie zrobiłem jest obliczenie na podstawie pomiarów faktycznych wielkości strat i zysków energii. Mam już obszerny zestaw danych doświadczalnych (sam układ pomiarowy zasługuje na oddzielny artykuł) – temperatura wody i temperatura powietrza. Teraz na podstawie tych danych chcę wyznaczyć zależność straty ciepła w nocy (bez słońca) od różnicy temperatur: bez i z parowaniem. Jak poznam te wartości być może uda się zrobić symulację oszczędnego ogrzewania.

Jak tylko uda mi się obrobić dane doświadczalne podzielę się z wami wnioskami w kolejnym wpisie.

| Komentarze

Obiektowe php – zaawansowany przykład – obsługa formularzy html cz1

Witam. Ostatnio mamy z Goto straszny nawał pracy (praca, studia oraz niespodzianka o której cały czas pamiętamy i niedługo napiszemy) co nie pozwala nam systematycznie rozwijać podjętych przez nas tematów. Ja dla odmiany znalazłem dzisiaj chwile czasu i postanowiłem rozpocząć kolejny – czyste PHP. Nie chcę rozpisywać się na temat czegoś czego w internecie pełno. Chcę się dziś zająć całkiem zaawansowanych programowaniem. Mam nadzieję że uda mi się poniższym artykułem przekonać twardzieli kodujących strukturalnie do potęgi obiektowego PHP.

Do zrozumienia poniższego przykładu potrzebna będzie dość biegła znajomość podstaw programowania w PHP, ponieważ nie będę tutaj tłumaczył żadnej składni. Tego w internecie pełno w każdym języku. Nie będę też tłumaczył za bardzo składni obiektowego php. O tym też zostało napisanych wiele bardzo dobrych kursów i nie ma sensu tego powielać. Ja chcę się skupić na mądrym i przydatnym wykorzystaniu potęgi jaką jest programowanie obiektowe. A zatem – do dzieła.

Najpierw Plan

Jak wiemy (a przynajmniej powinniśmy) obsługa formularzy w php jest bardzo prosta. Najpierw tworzymy jego strukturę w HTML, następnie po kliknięciu na stronie wyślij otwiera się zdefiniowana przez nas strona (ta sama albo inna) gdzie w tablicy $_POST lub $_GET (zależnie od naszych potrzeb) oraz $_FILES znajdują się wartości przesłane przez formularz które możemy dowolnie wykorzystać. Jest to bardzo proste, ale bardzo uciążliwe.  A w jaki sposób wykorzystać do obsługi formularzy programowanie obiektowe?

Każdy formularz zawiera jakies pola (tekstowe, ptaszki do zaznaczania itp). Pola owe posiadają szereg właściwości, które dla poszczególnych typów pól mogą się różnić. Każdemu elementowi w taki sam sposób możemy nadać parametr value ale nie możemy w elemencie tekstowym podać checked=”checked”, a co możemy zrobić dla elementu typu radio. Taka zasada działania formularza wręcz jest idealna do tego by każdy z jego elementów stał się obiektem. Co więcej poszczególne obiekty powinny się różnić kilkoma szczegółami (w zależnosci od typu pola). Aż się prosi by stworzyć klasę podstawową dla elementu formularza oraz szereg klas potomnych ze szczególnymi własnościami dla wyodrębnienia poszczególnych elementów.

Czyli narazie doszliśmy do tego iż potrzebujemy:

  • klasy input, zawierającej najważniejsze własności oraz funkcje identyczne dla wszystkich elementów formularza (takich jak label czy value)
  • poszczególnych klas dla różnych elementów takich jak input_text, input_textarea, input_radio, input_select. Klasy te będą dziedziczyć z klasy input. dzięki temu zaoszczędzimy na kodzie. Nie będziemy musieli za każdym razem definiować własności “value”.

Co dalej? Sam formularz również zawiera swoje parametry a także  listę elementów. Zróbmy więc i z niego objekt, a przekonamy się co zyskamy dzięki temu.

Nasza klasa form będzie zawierała tablicę przechowującą listę jego elementów. Co to daje? Pomyślmy co będzie się działo po kolei w kodzie wykorzystującą nasz formularz.

Najpierw zdefiniujemy sobie nowy obiekt formularza.

$form = new form;

Następnie wypełnimy jego tablicę elementami tworząc odpowiednie nowe obiekty. Przyjmijmy że każdemu elementowi już w momencie tworzenia (za pomocą magicznej metody __construct() ) przypiszemy jego unikalną nazwę. Co nam to da? Zastanówmy się co się stanie jeśli prześlemy ten formularz (narazie pomijamy w jaki sposób on się pojawi w ogóle na stronie – zajmiemy się tym później) na tą samą stronę i znowy wywołamy skrypt ładujący nasz obiekt formularza z listą elementów. Tym razem mamy już w pamięci także wypełnioną tabelę $_POST i możemy korzystając z listy elementów z których każdy ma nazwę wyciągnąć z tej tablicy interesujące nas (przesłane za pomocą naszego formularza) dane.

metoda getData()

napiszemy sobie metodę getData(), która wykonując pętlę po wszystkich elementach formularza, za pomocą parametru name danego elementu sprawdzi czy został on przesłany – to znaczy pobierze go z tablicy $_POST. Co możemy zrobić dalej? Dla każdego elementu formularza (a właściwie jego obiektu) stworzymy sobie parametr $correct oraz metodę check(). Podczas pobierania wartości przesłanych przez formularz dla każdego obiektu w zależności od zmiennej $correct sprawdzimy poprawność przesłanej zmiennej (0 – brak sprawdzania, 1-mail, 2-data itp) jeżeli okaże się że wartość jest niepoprawna wtedy wygenerujemy odpowiedni błąd i wstawimy go do parametru $err naszego elementu formularza. Co najfajniejsze będzie się to działo wewnątrz klasy, bez jakiegokolwiek zainteresowania z naszej strony z punktu widzenia właściwego już kodu.

Ale co zrobić z tymi danymi które się pobrały? Każdy element ma unikalną nazwę. Możemy więc stworzyć dla każdego elementu parametr o nazwie takiej jaką nazwę ma element. Dzięki temu wartość przesłana przez element “desc” będzie dostępna za pomocą kodu:

echo $form->desc;

Fajne prawda? 🙂

metoda sended()

Skoro mamy możliwość sprawdzenia czy nasz element przesłał poprawne dane, powinniśmy móc też wykonać inny kod dla poprawnego całego formularza a inny dla formularza z jakimś błędem. Do tego posłuży metoda sended() obiektu formularza, która sprawdzi czy wszystkie elementu są poprawne, czy też coś jest nie tak. wynik metody będziemy mogli wykorzystać w instrukcji warunkowej.

Wykorzystanie całego tego majdanu.

W uproszeczeniu (pomijając definicję klas. Przyjmijmy że one już są) obsługa naszego formularza może wyglądać tak:

    $form = new $form;
    $form->elements[]=new input_text('name', 'Imię');
    $form->elements[]=new input_text('sname', 'Nazwisko');
    $element=new input_text('mail', 'E-mail');
    $element->class='mail';
    $element->correct=2;
    $form->elements[] = $element; // ten element jest troszke
                               // bardziej rozbudowany.
    $form->getData();
    if($form->sended){
        echo 'Witaj '.$form->name.' '.$form->sname.'.';
    } else {
        echo $form->renderErrors(); //metoda wyświetlająca błędy
                 // poszczególnych elementów jeśli istnieją
        echo $form->render(); // metoda wyświetlająca formularz
    }

I to tyle. Powyższy kod w zależności od tego czy dane zostały poprawnie przesłane wykorzysta je, albo wyświetli informacje o błędzie oraz wyświetli sam formularz (jeśli któreś dane były niepoprane, również odpowiednie kontrolki zostaną zaznaczone np. czerwonym tłem). Wszystko w kilkunastu liniach bardzo przejrzystego kodu. Cały kod obsługujący to będzie siedział w klasach, które niebawem napiszemy. I nie iteresuje nas w momencie korzystania z formularzy HTML, sprawdzanie poprawności, sprawdzanie czy formularz wysłany, wyświetlanie listy błędów oraz pobieranie danych z tablicy $_POST. Wszystko robi się samo.

Pozdrawiam i zapraszam na drugą część tego artykułu która pojawi się już niebawem.

| Komentarze (4)

Kolejna wpadka Google

Czy mi się wydaje czy problemy z googlem pojawiają się ostatnio coraz częsciej?

Tym razem wszystkie usługi google działają tragicznie wolno… Ktoś odłączył googlowi łącza? Mam nadzieję że zaraz naprawią…

| Komentarze

Najlepsza kampania reklamowa roku!

Od samego początku (a zaczęło się już jakiś czas temu) wiedziałem o co chodzi i byłem pewien, że nie jest to przypadek.

A o co chodzi?

Z roku na rok komunia święta staje sie coraz większym marketingowym oszustwem, ale tegoroczne zagranie sieci sklepów Empik można spokojnie określić marketingowym mistrzostwem roku. Tylko bardzo naiwni uwierzą, że głośna oferta (dla niezorientowanych: empik sprzedaje prezenty komunijne, np. konsolę PS3 z papierową biblią w zestawie) Empiku jest błędem jakiegoś marketingowca czy sprzedawcy. Można śmiało powiedzieć, że człowiek, który ją wymyślił jest geniuszem swojego fachu! Opis promocji pojawił się we wszystkich liczących się telewzjach, rozgłośniach radiowych i gazetach. Nie sposób było o niej nie usłyszeć. I cała ta reklama całkowicie ZA DARMO

Smutne jest w tym wszystkim to, że wymienione media dały się na taki trik nabrać.

Chciałem przemilczeć tą “promocję”  (promocję sklepu a nie promocję na produkt), gdyż wydawało mi się sprawa przycichła sama z siebie… ALEŻ SKĄD… w sidłach Empiku dalej zaplątany jest portal tvn24.pl (czy telewizja TVN24 też to nie wiem bo nie oglądam), który dzisiaj dalej drążył tą “moralnie niepoprawną” (to nie jest moje zdanie), aczkolwiek marketingowo GENIALNĄ sprawę (link do artykułu).

goto

| Komentarze (1)

Awaria gMail

Dzisiaj googlowi trafił się kłopot z usługą gMail. Jest niedostępna od co najmniej kilkunastu minut i nie wiadomo kiedy zostanie ponownie uruchomiona. Dla mnia gMail jest podstawowym narzędziem pracy, więc mam nadzieję, że google poradzi sobie szybko z problemami. Tak wygląda strona gMail w tej chwili:

Problemy z gMail

update 13:50


Co ciekawe poczta sama w sobie w czasie “awarii” funkcjonowała (przez protokół IMAP można było wiadomości pobierać – dochodziły również nowe wiadomości). Awaria dotyczyła jedynie interfejsu poczty. Usługi takie jak google calendar czy google talk funkcjonowały poprawnie.

| Komentarze (2)

Dokładność odczytu / zapisu pozycji GPS

Za każdym razem gdy pojawia się temat nawigacji satelitarnej mówi się o dokładności odbiorników. Osoby używające GPSów (może nie tych samochodowych, ale turystycznych i profesjonalnych) wiedzą, że dokładność odbiornika (w określaniu pozycji poziomej) wynosi w zależności od warunków (widoczność nieba, prędkość) od 20 metrów do nawet 2 metrów.

W większości odbiorników dane pomiędzy układem określającym pozycję, a układem odpowiedzialnym za prezentację danych są przesyłane w formacie NMEA. W ramach tego formatu pozycja geograficzna (długość i szerokość) przesyłane są w następujący sposób:

format pozycji gps

gdzie dd i ddd to stopnie a mm to minuty podane z dokładnością do 4 miejsc po przecinku. Jaka jest dokładność tak zapisanej pozycji? Inaczej: ile metrów ma 0,0001 minuty? Zaraz to policzymy: oddzielnie dla szerokości i długości geograficznej, gdyż jak wiadomo długość wszystkich południków jest taka sama, a równoleżników nie. 

długość geograficzna

Każdy południk ma 20 003 930 metrów długości. Południk dzielimy na 180 stopni, każdy stopień na 60 minut i każdą minutę na 10 000 kawałków. Jaka jest długość najmniejszego kawałka? Obliczenie poniżej:

długość geograficzna

Jak widać, dokładność tak zapisanej długości geograficznej wynosi 18,52 centymetra. Z jednej strony dużo, z drugiej mało.

szerokość geograficzna

Z szerokością jest trochę inaczej, ponieważ równoleżniki nie są takiej samej długości. Najdłuższym równoleżnikiem jest równik, który ma 40 075 016,686 metrów.  Aby obliczyć długość równoleżnika odpowiadającego danej szerokości geograficznej należy pomnożyć długość równika przez kosinus kąta szerokości geograficznej.  

Tak uzyskaną długość dzielimy na 360 stopni, każdy stopień na 60 minut i każdą minutę na 10 000 kawałków.  Długość najmniejszego kawałka wyliczamy według wzoru:

szerokość geograficzna

W Polsce dokładność zapisu szerokości geograficznej wynosi od 10,69 centymetra na północy do 12,17 centymetra na południu.

co dalej?

istnieją oczywiście metody określenia pozycji dokładniej niż wyliczone powyżej ograniczenia. Wymaga to jednak wielokrotnych pomiarów pozycji danego punktu i umiejętne uśrednianie pomiarów. Postaram się kiedyś przeprowadzić i opisać taki eksperyment…

| Komentarze

Jeden komputer = 4 ekrany

Może zacznę od wyjaśnienie skąd się wziął opisany poniżej pomysł oraz dlaczego został zrealizowany. Będzie to wymagać sięgnięcia do dość dalekiej historii. Był zapewne rok 2000 (mówię zapewne, bo dokładnie nie pamiętam). W moje ręce trafiła karta graficzna firmy Matrox posiadająca wyjścia na dwa monitory. Po wielu godzinach prób ze sterownikami udało mi się wtedy uruchomić obraz na obydwu ekranach: super. Monitory były kiepskie, rozdzielczości małe a sterowniki do karty powodowały błędy na widok użytkownika wchodzącego do pokoju ale nawet to nie było w stanie zepsuć korzyści płynących z dwóch monitorów. Od tej pory jestem uzależniony od pulpitu szerokiego na 2 monitory.

Obecnie sytuacja ta wygląda zupełnie inaczej: monitory są bardzo dobrej jakości (LCD oczywiście), rozdzielczości wysokie, a praktycznie każda karta graficzna do komputera stacjonarnego posiada dwa wyjścia. (w laptopach też nie ma problemu z pracą na dwóch monitorach). Systemy operacyjne Windows (od XP w górę) bezproblemowo obsługują dwa ekrany.

Wiele osób zapyta pewnie: “fajnie, ale po co?”.  Każdy (a przynajmniej większość) kto choć chwilę pracował na dwóch monitorach wie jak wielkie jest to ułatwienie.

Artykuł ten powstał dlatego, że stałem się posiadaczem nadmiarowego monitora. Stał on sobie koło biurka parę tygodni, aż postanowiłem go wykorzystać. OK, ale do mojego komputera są już podłączone dwa monitory, więc nie mam jak podłączyć trzeci? Zacząłem przesłuchiwać google. Znalazłem karty graficzne z 4 wyjściami DVI: profesjonalne – ponad 2000 zł za sztukę. Trochę zbyt dużo na taki eksperyment.

Dalsze poszukiwania doprowadziły mnie do informacji, że mogę mieć w komputerze więcej niż jedną kartę graficzną. Kiedyś nie byłoby to możliwe, gdyż płyty główne miały jedno specjalne złącze na kartę graficzną. Obecnie bardzo dużo płyt głównych ma więcej niż jedno złącze PCI Express pozwalające podłączyć więcej niż jedną kartę graficzną (do tej pory myślałem, że tylko po to, aby można było połączyć dwie karty (CrossFire, SLI) dla zwiększenia wydajności). Szybko sprawdziłem, że mój komputer ma jedno wolne złącze PCI Express.

Byłem bardzo sceptycznie nastawiony do pomysłu uruchomienia dwóch kart graficznych w jednym komputerze, ale postanowiłem spróbować. Wybrałem się do sklepu i kupiłem najtańszą kartę z dwoma wyjściami DVI (200 zł).

Po powrocie do domu umieściłem kartę w drugim slocie PCI Express, podłączyłem 3 monitor do jednego z jej wyjść i uruchomiłem komputer. Wszystko stało się automatyczne. System (Windows 2008 x64) automatycznie zainstalował sterownik do nowej karty i rozszerzył pulpit na trzeci monitor:

4 monitory w komputerze

Mój pulpit ma teraz 5008 pixeli szerokości: WYPAS 🙂

| Komentarze (11)

« Nowsze wpisy - Starsze wpisy »