[Upcoming] I-Nex 7.4.0

Lipiec 27th, 2014

Posted In: Bez kategorii, Cerbero, I-Nex, Uncategorized

Tagi: , , , ,

Zawsze jest element, funkcja którą można by napisać lepiej, zastąpić mniejszą ilością linijek kodu czy też usprawnić w jakiś inny sposób.

Po wydaniu 7.2.0 miała nastąpić przerwa wakacyjna, jednak obecnie wolny nocny czas, pozwala na zajmowanie się projektem. Każda z wersji programu wnosi wiele usprawnień i zmian oraz dodatków. Ostatnie wersje nie przyniosły zbyt wiele zmian w interfejsie aplikacji, za to pod względem usprawnień kodu aż nadto. Od wersji 0.6.6, nie zmienia się praktycznie GUI programu, jedynie przechodzi drobne modyfikacje, mające na celu poprawę wyglądu (Skalowanie).

Wersja 7.4.0 ukaże się najprawdopodobniej dopiero we wrześniu, ponieważ zmiany są tak drastyczne a planowana ilość dodatków jest zbyt duża i wymaga zbyt wielu testów by wydać aplikację szybciej. Jednak I-Nex znany jest z tego, że wersje ukazują się dość często. Jeszcze nigdy jednak nie zdarzyło się tak, aby dana wersja oznaczona jako stabilna była pozbawiona błędu, prawie za każdym razem zapominam o drobnym szczególe.

Największy błąd pojawił się w wydanej kilka dni temu wersji 7.2.0, który to nie powodował problemów w działaniu samej aplikacji, jednak kolidował z funkcjonalnością Cerbero. Dlatego też została wydana wersja 7.2.1, jest to jedynie aktualizacją dla 7.2.0. Wielu projektom zdarza się popełnić błąd, i nic też dziwnego że i ja błąd popełniłem.

Popełniłem także wiele błędów podczas wydawania wersji, aby więcej taka sytuacja nie miała miejsca, w źródłach programu znajduje się już skrypt mkrelease który usprawnia zmianę wersji programu, przez co nigdy już nie powinienem popełnić błędu odnośnie zmiany (podbicia) wersji aplikacji.

Obecnie od wersji 7.2.1 został przepisany na nowo kod odpowiedzialny za kartę Drives, ładuje on szybciej dane do odpowiednich miejsc (pól tekstowych). Wszystkie instrukcje wykonywane za pomocą zewnętrznych programów zostały zastąpione po przez nowe instrukcje które powodują szybszą detekcję ale i także niwelują błędy oraz brak prawdomówności. Wraz z użytkownikiem pavbaranov (Paweł) z forum http://forum.openlinux.pl/ , dzięki niemu byłem w stanie natrafić na błędy oraz napisać odpowiednią funkcję.

Jednak nie tylko zakładka Drives doczekała się zmian. Po raz już czwarty została przepisana na nowo zakładka CPU, jedynie część odpowiedzialna za wydobywanie informacji /proc/cpuinfo. Poprzednio zawartość pliku była ładowana kilka razy podczas uruchamiania programu, od teraz tylko raz, a wszystkie instrukcje SHELL zostały zastąpione za pomocą Open, funkcji która otwiera plik do odczytu.

Zliczanie procesorów zostało także lepiej napisane:

Przed:

Try data = Shell "ls /sys/devices/system/cpu/ | grep cpu[0-9]" For Input

While Not Eof(data)
Line Input #data, sLine
MaxCount += 1
ComboBox1.Add(sLine, MaxCount)
Wend

Try Close #data

Po:
ComboBox1.List = Dir("/sys/devices/system/cpu/", "cpu[0-9]")

Oraz w taki sam sposób zliczanie i dodanie do listy zainstalowanych kerneli:
Przed:

Try data = Shell "ls /boot | grep 'vmlinuz*'" For Input

While Not Eof(data)
Line Input #data, sLine
MaxCount += 1
ListBox1.Add(sLine, MaxCount)
Wend

Try Close #data

Po:

ListBox1.List = Dir("/boot/", "vmlinuz*")
Label228.Text = "Installed Kernels: " & CString(Dir("/boot/", "vmlinuz*").Count)


Close