[Qt] sms-0.2

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

Wprawdzie napisałem tę wersję już ponad tydzień temu, ale jakoś z braku czasu nie wrzuciłem. Poprawione błędy z poprzedniej wersji (m.in. obrazki dodane wreszcie do zasobów pliku wykonywalnego) oraz dodane funkcje z TODO. Oto i lista zmian w stosunku do wersji poprzedniej:

  • wprowadzenie historii wiadomości (użytkownik w łatwy sposób może wybrać, czy daną wiadomość chce zapisać w pliku historii),
  • dodanie wygodnej przeglądarki SMS-ów z historii,
  • edytor książki telefonicznej,
  • zmiany w interfejsie (np. zmiana sposobu wywoływania historii oraz edytora książki telefonicznej).
  • Brakło mi pomysłów na wersję 0.3, więc gdyby ktoś znalazł błędy w obecnej wersji lub miał jakiś pomysł – prosiłbym o napisanie go w komentarzu lub na mój e-mail.


    Linki do ściągnięcia:

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

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


    A oto zrzuty ekranów z nowej wersji:

[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:

Dlaczego to nie działa?

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

Czy ktoś może mi powiedzieć, dlaczego w poniższym kodzie podświetlony warunek nie wykonuje się? Chodzi mi o przypadek, gdy str2 nie zostanie znalezione w str1. Mimo tego, że według dokumentacji funkcja strstr() powinna zwracać NULL.

#include 
#include 

using namespace std;

int main()
{
char str1[80], str2[80];
char *ptr;

cout << "Wpisz tekst do przeszukania:";
cin >> str1;

cout << "Co mam wyszukac?";
cin >> str2;

ptr = strstr(str1, str2);
cout << "Znalazlem: " << '\'' << str1 << '\'' << " w ";
cout << '\'' << str2 << '\'' << '\n';
cout << ptr;
if(ptr==NULL) cout << "Nic z tego!"; // highlight
return 0;
}


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.

 

Ruszyła XIV Olimpiada Informatyczna!

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

Wczoraj ruszyła XIV Olimpiada Informatyczna. Jak zwykle do rozwiązania mamy pięć zadań.

Póki co, dopiero je wydrukowałem, jednak w wolnym czasie postaram się przejrzeć i zacząć „dłubać”. 🙂 Jeśli coś wymyślę, podzielę się spostrzeżeniami (oczywiście mieszcząc się w ramach regulaminu).

Czy ktoś z Was bierze również w niej udział? Jeśli tak, to w jakim jesteście wieku (która klasa) i który raz próbujecie? Macie na swoim koncie jakieś sukcesy? 🙂

Zapraszam do dyskusji w komentarzach.