[Qt] sms-0.1

UWAGA! Ten wpis ma już 10 lat. Pewne stwierdzenia i poglądy w nim zawarte mogą być nieaktualne.

Ostatnio z nudów i braku internetu na stancji, postanowiłem przepisać mój konsolowy program do wysyłania SMS-ów na jakąś „okienkową” bibliotekę. W moim wydaniu „jakąś” oznacza oczywiście Qt. 🙂

Wciągnęło mnie to dość. Ułożyłem GUI, użyłem QSocket zamiast socket.h, pobawiłem się trochę QListBox. Postanowiłem, że będę regularnie rozwijał ten program. I tak oto, po poprawieniu masy błędów i problemach z wspominanym QListBox, wydałem wersję 0.1, której funkcjonalność ogranicza się na razie jedynie do wysyłania SMS-ów i możliwości skorzystania z (manualnie jeszcze tworzonej) książki telefonicznej. Stworzyłem już jednak „listę życzeń” TODO, która w obecnej wersji wygląda następująco:

  • usunięcie dolnego paska zmiany rozmiaru,
  • usunięcie możliwości maksymalizacji,
  • logowanie wysłanych SMS-ów do pliku historii (jako opcja zależna od użytkownika),
  • dodanie opisów do elementów (podpowiedzi),
  • walidacja numeru,
  • edytor książki telefonicznej,
  • przejście TAB-em to kolejnych pól i przycisków.

To na razie tyle, po napisaniu tych opcji nadam projektowi numer wersji 0.2. Oczywiście, czekam też na wszelkie sugestie, które można zgłaszać w komentarzu do tego wątku, lub – jeśli komuś tak wygodniej – poprzez e-mail. Będę na bieżąco aktualizował powyższą listę.

Projekt powstaje oczywiście na licencji GNU GPL, ale po to, aby ktoś mógł sobie w przyszłości podejrzeć jego kod i być może się czegoś nauczyć, a nie po to, aby można było się wylansować na moich błędach (co już się zdarzało). Naprawdę – proszę o wyrozumiałość i konstruktywną krytykę, jestem otwarty na wszelkie propozycje. 🙂


A oto linki do poszczególnych wersji programu:

Kod źródłowy – sms-0.1.tar.bz2

Binaria dla Linuksa (bez bibliotek) – sms-0.1-bin.tar.bz2


Brak tam jeszcze wersji skompilowanej statycznie (wie ktoś, jak to zrobić dla Qt?) oraz wersji dla Windows. Tę drugą próbowałem wykonać, jednak dostaję błąd przy kompilacji. Gdyby komuś się to udało – proszę o kontakt.

I na koniec screen dla patrzących. 🙂

Z góry dziękuję za wszelkie sugestie i pomysły!

Konsolowy program do wysyłania SMS (przez bramkę Plus GSM)

UWAGA! Ten wpis ma już 10 lat. Pewne stwierdzenia i poglądy w nim zawarte mogą być nieaktualne.

Ostatnio fascynuję się programowaniem sieciowym i jestem na etapie zainteresowania nagłówkami HTTP. Tak się składa, że chciałem sobie zautomatyzować proces wysyłania SMS-ów, aby nie wchodzić na sms.plusgsm.pl, a uruchomić sobie jeden konsolowy program, wpisać nadawcę, odbiorcę i treść.

W nagłówku wysyłanym przez program nie ma informacji o ID ciasteczka (wycięta celowo) po to, aby ominąć jedną z wielu ograniczeń bramki – czyli 10 SMS-ów na dobę z jednego komputera. Ograniczenia jednak są – ilośc SMS-ów wysłanych z bramki na konkretny numer GSM oraz z jednego IP.

Program nie obsługuje póki co polskich znaków w treści SMS-a, zaś zmienna nadawcy może zawierać jedynie litery, bez interpunkcji i znaków białych.

Może komuś akurat przyda się ten program. 😉 Zamieszczam jego źródło:

Dandys IM v0.1 :)

UWAGA! Ten wpis ma już 10 lat. Pewne stwierdzenia i poglądy w nim zawarte mogą być nieaktualne.

Ostatnimi czasy z nudów wziąłem się wreszcie za naukę socketów w C++. Miałem to już zrobić na początku maja, mam nawet wydrukowane samouczki, jednak myślę, że to właśnie one mnie do tego zniechęcały. A to nie był← pisane pod kątem C++, a to były zbyt obszerne i za dużo w nich było teorii. Dopiero kolejne poszukiwania (bodajże przedwczorajsze) naprowadziły mnie na właściwy trop. I tak oto, aby poznać sockety w praktyce, postanowiłem napisać sobie pseudokomunikator – Dandys IM. 😉

Póki co ma on tylko funkcję serwera (klienta mi się dopisać nie chciało, dlatego robi z niego teraz Telnet) i parę błędów (m.in. taki, że wiadomości pojawiają się czasem dopiero po wysłaniu wiadomości przez nas), ale mi to wystarczyło, żeby się przekonać, jak to fajnie, gdy mój pierwszy program z socketami potrafi porozumiewać się ze światem. 🙂

Niżej zamieszczam źródełko programu, jak komuś się chce, to wiadomo, co robić (nie wiadomo? no to: g++ socket_server.cpp -o socket_server). Jakby komuś się aż tak nudziło i poprawił buga, o którym pisałem, to proszę o kontakt.

I na koniec podziękowania dla testerów, których to często nękałem ostatnio:

Dzięki chłopaki za czas!

I oczywiście dokumenty, z których korzystałem przy nauce. Polecam ściągnięcie obydwu, wydrukowanie i parę godzin analizy.

 

Mercedes W123 vs Daewoo Tico

UWAGA! Ten wpis ma już 10 lat. Pewne stwierdzenia i poglądy w nim zawarte mogą być nieaktualne.

Dzisiaj – z braku zajęć i nadmiaru wolnego czasu – postanowiliśmy z kumplem porównać nasze samochody. Mój to Mercedes W123 (tzw. Beczka), jego – Daewoo Tico. Porobiliśmy trochę zdjęć, trochę się pośmialiśmy. A więc wyniki walki czas przedstawić!

1. Długość

Na początku ustawiliśmy samochody równo tylnymi zderzakami.


Po oględzinach przedniej części aut, efekt był porażający. Miejsce kierowcy było na poziomie mojej tylnej kanapy, zaś Tico kończyło się wraz z moimi przednimi drzwiami. 🙂



No cóż, głupi to test, ale czego się z nudów nie robi. ;] Czas na kolejny punkt porównania:

2. Wygląd zewnętrzny

Nic tak nie odda wyglądu samochodu jak zdjęcia. Oto i one:


Myślę, że jednak film ukazałby te samochody lepiej. Zaopatrzyłem się oczywiście w takowy:

Wynik to już subiektywna ocena każdego oglądającego – jedni lubią oldsmobile, drudzy świeże kompakty. 😉

3. Silnik

No dobra, ten punkt jest retoryczny. 3000 cm3 diesel vs 900 cm3 benzyna.




4. Wnętrze i ładowność

Jak wyżej.


Co do ładowności, to warto obejrzeć ten film:

5. Przyspieszenie i prędkość

W Beczce – niestety – nie jest dobrze ani z przyspieszeniem…

… ani z prędkością!

Podsumowanie

Podsumowania nie będzie, bo jest ono tak bezpodstawne w tym przypadku, jak bezpodstawnym był cały ten „test”. Jednak dobrą godzinę mieliśmy co robić, a to się liczy! 🙂

Gdyby kogoś interesowała zwrotność, to polecam obejrzeć filmy z jazd po łuku. ;D

Jak zrobić biodiesla?

UWAGA! Ten wpis ma już 10 lat. Pewne stwierdzenia i poglądy w nim zawarte mogą być nieaktualne.

Wpis ten będzie nietypowy, bowiem postaram się w nim dokładnie opisać, jak w prosty sposób uzyskać tańsze paliwo do silników wysokoprężnych – czyli popularnych diesli.

Biodiesel – bo tak nazywa się owo paliwo – to mówiąc dość ogólnie substytut oleju napędowego, składający się wyłącznie z oleju roślinnego bądź jego mieszanki z olejem napędowym. W zależności od typu biodiesla (B5, B20, B50, B100) zawartość oleju jest zróżnicowana. Współczynnik przy literce „B” w nazwie to procentowa zawartość oleju w danym gatunku biodiesla. I tak oto B5 to mieszanka składająca się z 5% oleju rzepakowego oraz 95% oleju napędowego – jest to potocznie nazywana „ropa”, którą tankujemy na każdej stacji (od paru lat istnieje obowiązek dodawania do paliwa tradycyjnego 5% biokomponentów). Z B20, B50 oraz B100 sprawa jest analogiczna.

W tym wpisie przedstawiam, jak uzyskać biodiesel B20. Dlaczego akurat ten? Spieszę z wyjaśnieniem. Po pierwsze, jest to paliwo bezpieczne dla większości silników. 20% oleju rzepakowego niemal całkowicie rozpuszcza się w ropie, przez co na dnie baku nie odkłada się osad, utrudniający późniejszy zapłon silnika. Po drugie, każda większa dawka powoduje dość dużo spalin przy rozruchu oraz rozgrzewaniu silnika do temperatury pracy. Taka ilość oleju w końcu nie powoduje rozpuszczania się uszczelek gumowych w silniku, co ma często miejsce przy tankowaniu samego oleju rzepakowego (OR).

Myślę, że te uwagi powinny przekonać osoby, które miały jeszcze pewne wątpliwości. W końcu nie przypadkiem to właśnie ten typ biodiesla jest sprzedawany w coraz większej liczbie stacji benzynowych jako substytut ropy. Warto też dodać, że jest to ostatni biodiesel, do którego nie jest wymagana przeróbka silnika na olej roślinny (poprzez zamontowanie specjalnej nagrzewnicy, osobnego baku na olej oraz drobnej przeróbki układu chłodzenia).

Czego więc będziemy potrzebowali do zrobienia takiego paliwa? Podstawową rzeczą jest oczywiście samochód z silnikiem diesla. Jednak nie każdy nadaje się do tego typu paliwa. W żadnym wypadku nie można stosować go do silników zbudowanych w technologii common rail, ponieważ elektronika obsługująca ten silnik może najzwyczajniej zgłupieć (o efektach nie muszę nikogo pouczać). Opierając się na kilkudziesięciu opiniach internautów, odradzam także stosowanie biodiesla do silników z turbiną.

Samochód powinien być więc w miarę „stary” i najlepiej pozbawiony dodatkowej elektroniki, stosowanej w dzisiejszych silnikach wysokoprężnych. Dodatkowym atutem jest też duża pojemność silnika oraz liczba cylindrów (czym więcej, tym lepiej).

Do testów posłużę się moim samochodem, który wydaje się być idealny do tego typu zadań. 😉 3 litry pojemności oraz 5 cylindrów wraz z 30 latami na karku:

Jednak nie jest to zasada. Najlepiej przeszukać grupy dyskusyjne oraz fora pod względem opinii nt. naszego samochodu. Warto też zajrzeć do którejś z wielu baz opinii o pracy konkretnych samochodów na biodieslu.

Kolejną rzeczą jest olej rzepakowy. Skąd go wziąć? Najprościej kupić najtańszy olej jadalny w supermarkecie. Będziemy go potrzebowali dość dużo (chociaż zależy to od ilości ropy, jaką zużyjemy). Ja kupiłem 20 litrów w cenie 2,69 za litr, co nie jest znowuż rewelacyjną ceną, jednak nie miałem dostępu do innych marketów niż LIDL, Biedronka i Champion (kupiłem ostatecznie w LIDL-u). Warto też śledzić promocje w gazetkach marketowych, które dostępne są na stronach sieci w internecie.

Gdy mamy już olej, należy zatankować samochód zwykłym olejem napędowym. Oczywiście czym taniej, tym lepiej. Musimy też zapisać albo dokładnie zapamiętać ilość ropy, jaką zatankowaliśmy – będzie to niezbędne do obliczenia ilości oleju, jaką możemy dodać.

Gdy zatankujemy, należy skorzystać z następującego wzoru:

Za V ON podstawiamy ilość zatankowanej na stacji ropy (w litrach), dzięki czemu obliczymy V OR – czyli ilość oleju, którą możemy dolać do baku.

Teraz już tylko otwieramy wlew…

… szykujemy odpowiednią ilość oleju…

… i wlewamy. 🙂

Pozostaje tylko przejechać się, aby zamieszać naszego biodiesla (można posadzić początkującego kierowcę, wtedy efekt będzie najpełniejszy ;-)). I gotowe – możemy „rozkoszować się” zapachem placków ziemniaczanych z wydechu. 🙂

W razie pytań lub dyskusji proszę o reakcje w komentarzach.