poniedziałek, 21 października 2013

Kolejna BETA tuż tuż...

No wreszcie jestem z siebie zadowolony. Problem z lagami leżał w odświeżaniu okna. Po każdym świeżo ściągniętym kaflu całe okno było odrysowywane, w sumie to nie wiem po co, przy okazji zapychała się kolejka komunikatów. Teraz jest ładnie, elegancko i szybko :)

Na próbę zwiększyłem liczbę wątków ściągających kafle z 4 do 16, mogę powiedzieć tylko jedno... miazga! Prędkość odświeżania okna wzrosła, a kafle ściągają się w tempie jakieś 200-300 na sekundę (?!?), przy łączu 16MBit, aż się wystraszyłem ;)
Tyle tylko że coś za coś. Przy 16 wątkach program trochę się "zamyśla" przy zamykaniu, po prostu czeka na zakończenie wszystkich procesów, któreś się widać ociągają.

No i teraz pytanie do Was, drodzy użytkownicy. Czy chcecie więcej wątków, ale za to dziwne "zamyślenie" przy kończeniu programu, czy mniej wątków i szybszą terminację? Czekam na opinie. Zmienić to można w każdej chwili, to tylko jeden parametr w plikach źródłowych.

Acha... no i jeszcze jedno. Nie wiem co zrobią administratorzy serwisów z których uprzejmości korzystamy. Jeżeli wszyscy na hura zaczną obciążać ich serwery 16 razy bardziej, czy się nie wkurzą i nie zaczną nas blokować? Może jednak zostać przy 4?

A w zasadzie to kolejna wersja beta tuż tuż, więc czekam na kolejnych chętnych gotowych do testowania. Dla przypomnienia, mój e-mail to grzesia(małpa)gmail.com, jakby co...

niedziela, 20 października 2013

Noooo może trochę przesadziłem

Trochę mnie poniosło. Siadłem sobie wieczorkiem na spokojnie, sprawdziłem listę zmian w najnowszej wersji frameworka. Okazało się że wrócono do starych ustawień językowych. Po prostu okazało się że do oddzielania części ułamkowej trzeba użyć kropki, za to ustawienia w pliku konfiguracyjnym były z przecinkiem. Efektem było to że mapa mi się ustawiła na jakichś kosmicznych współrzędnych świata, czego skutkiem był szary ekran...

Na szczęście wywołanie prostej funkcji SetCLocale() załatwiło sprawę i znowu jest OK, przecinek rządzi.

Problemy z plikami PNG i JPG nie zostały naprawione, ale znalazłem sposób jak je obejść. Udało mi się przy okazji usunąć te głupie okienka z komunikatami typu "This is not a PNG file.". Sposób jest banalny, wystarczy utworzyć obiekt klasy wxLogNull i problem załatwiony. Bug można uznać za naprawiony, no to teraz następne...

Walka z wiatrakami, tzn. Wolnym Oprogramowaniem...

Ogólnie mogę powiedzieć że jestem fanem Wolnego Oprogramowania. Dlatego też codziennie korzystam z LibreOffice, Firefoxa, na telefonie mam CyanogenMod... No ale momentami krew mnie zalewa, tak jak dzisiaj z wxWidgets. Ogólnie framework jest fajny, podobno nawet aplikacja dla Google Drive z niego korzysta, ale od kilku lat przestawiłem się na inne technologie (.NET, Java). wxWidgets potrzebny mi jest w zasadzie do ZumiBuddy który narodził się parę lat temu.
No i jaki z nim problem? Ano bugi... Kiedyś walczyłem z bugiem związanym z obsługą socketów, dlatego mój program przerywał ściąganie po 1024 kafelkach. Jak zrobiłem obsługę sieci z pomocą zwykłych natywnych gniazdek Windows, problem zniknął. Inne problemy to np. przecinki które pojawiły się zamiast kropek w formacie liczb zmiennoprzecinkowych. No niby fajna rzecz, bo przecież w naszym kraju obowiązują przecinki, no ale ile problemów to wygenerowało... ech.
Teraz natknąłem się na kolejny, związany z obsługą plików PNG, w zasadzie to walczę z nim od kilku dni, chodzi mi o dziwny komunikat który wyświetla program że format pliku PNG lub JPG jest niepoprawny, co jest bzdurą. Postanowiłem w końcu naprawić to bezpośrednio w plikach źródłowych frameworka, w końcu wszystko jest podane na tacy, Wolne Oprogramowanie...
Coś mnie podkusiło żeby ściągnąć nowszą wersję biblioteki. Poprzednio używałem 2.9.4, a dzisiaj znalazłem na stronie wersję 2.9.5. No więc ściągnąłem, skonfigurowałem, poprawiłem buga, skompilowałem... no to czas na testy z pomocą ZumiBuddy. No więc przerobiłem pliki projektu (żeby korzystały z nowszej wersji), skompilowałem programik, o dziwo udało się bez większych problemów, no i uruchamiam... A tutaj co widzę? Szare tło! Tzn. w głównym oknie programu zamiast mapy widzę... właśnie tylko szare tło. Mogę sobie nawet to szare tło przewijać, coś się nawet ściąga... no po prostu ręce mi opadły (nie będę tutaj cytował słów które wtedy wyszły z moich ust, nie wypada).
Jaki z tego wniosek? Znowu coś k%$# zmienili? Poprawili? Są jakieś nowe bugi? No po prostu nie mogę już. Rozumiem że za projektem stoi całe mnóstwo ludzi którzy robią to za darmo i nie można za to wieszać na nich psów, no ale jednak, niesmak pozostaje. No to teraz mam kolejny "bug" do naprawienia. Mam nadzieję że nie pozmieniali nic w obsłudze wątków, bo chyba rzucę to wszystko w cholerę.
Zaraz zaraz, ktoś zapyta. A dlaczego nie zastosuję wersji stabilnej 2.8.x zamiast eksperymentalnej 2.9.x? Ano na przykład dlatego że w wersji "stabilnej" nie działa taka na przykład klasa wxQuantize do redukcji kolorów, jest tylko atrapa tej klasy, czy to ma prawo nazywać się wersją "stabilną"?

Wybaczcie że wylewam tutaj swoje żale, no ale w końcu od tego jest blog, nieprawdaż? Poza tym może ktoś spotyka podobne problemy, dzięki pomocy "Wujka Google" trafi tutaj i może w czymś mu to pomoże?

sobota, 19 października 2013

ZarazBędzie nowa wersja (do testów)

Mam trochę wolnego, więc ZB wrócił na tapetę :) Od dwóch dni walczę z jednym małym bugiem, ale często tak jest że z tymi małymi jest najwięcej roboty. Za kilka dni kolejna wersja BETA będzie gotowa do testów.
Najgorzej będzie poradzić sobie z lagami które powstają w nowej wielowątkowej wersji, ale jakby to było takie proste to każdy mógłby napisać swojego ZB :) Grunt że jestem w dobrym humorze i mam chęć na walkę z C++
Jak kolejna wersja BETA będzie gotowa nie omieszkam się pochwalić.