Projekty

Stamina.lib / K.API – kontrola wersji

W nowym K.API bardzo istotna jest skuteczna kontrola wersji, bo jak wiadomo różnice pomiędzy różnymi wydaniami bibliotek mogą prowadzić do (znacznych) niestabilności. Przydatna byłaby również możliwość zablokowania konkretnych wersji, w których występują znane nam już błędy. Typowym rozwiązaniem jest porównywanie wersji API programu i wtyczek. W tym wypadku jest jednak zupełnie niewystarczające.

Spójrzmy na przykład na wtyczkę kSound – wykorzystuje do działania tylko podstawowe elementy API. Jeżeli np. zostaną wprowadzone większe zmiany w API obsługi plików .dtb – podniesienie numeru wersji całego API spowoduje konieczność ponownej kompilacji i dystrybucji wtyczki. Można oczywiście zdefiniować i sprawdzać kilka wersji newralgicznych podsystemów, ale myślę, że najlepsze rozwiązanie zostało wbudowane w Stamina.lib.

Czytaj dalej »

Stamina.lib – podstawy

Od dłuższego już czasu pracuję nad biblioteką Stamina.lib – będącej z założenia zbiorem klas ułatwiających obiektowe pisanie w C++. Założenie trochę się rozrosło, bo obecnie jest tu bardzo przyjemna obsługa wątków, plików .dtb, obrazów, zaczątki obsługi okien (które były pisane trochę “na gorąco” i w swoim czasie będą musiały być przekonstruowane ;) ) i masa innych przyjemności. Czemu pisać kolejną tego typu bibliotekę? Dobre pytanie :) Myślę, że chociażby dlatego, bo nie mogłem do tej pory znaleźć takiej, która posiadałby wszystkie poszukiwane przeze mnie cechy. Większość nie ma wiele wspólnego z obiektowością (GLib), inne z kolei są przeszablonowane i miejscami mało wygodne (boost). Wszystkie za to łączy jedna cecha – praktycznie w ogóle nie stosują czystych interfejsów. Być może gdzieś tam istnieje dokładnie to czego szukam – niestety nie było mi się dane na to natknąć, ani specjalnie intensywnie nie szukałem… Stamina.lib jest już faktem, a rozwija się dzięki pracom przy nowy API Konnekta (którego bez s.l już skompilować się nie da…).
Biblioteka jest co prawda wciąż w trakcie tworzenia (a co za tym idzie permanentnej przebudowy), to pewne jej elementy wydają się już na tyle stabilne, że można o nich cokolwiek napisać. Ten wpis będzie ewidentnie dla C++Geeks, więc takowych zapraszam dalej – inni z ciekawości też mogą popatrzeć co się gotuje :) Czytaj dalej »

DTVictory

Najstarszy kod w Konnekcie jest już historią. Obsługa plików DTB jest teraz kodem najnowszym, chodzi szybciej, jest lżejsza, ładniejsza i ogólnie w końcu mi się podoba. Stała się częścią biblioteki Stamina.Lib, korzysta w pełni z jej dobrodziejstw i dostarczyła do niej coś od siebie (np. ulepszoną obsługę czasu, wygodne i szybkie przeglądanie plików w katalogach, obsługa MD5, tony poprawek i nowych funkcji)… Nowe pliki DTB będą miały ulepszony system zabezpieczeń… W zasadzie słowo ulepszony jest mocno na wyrost, bo to co jest aktualnie w dtb zabezpieczeniem nazwać nie sposób ;) Nowa funkcjonalność zapewnia średnie bezpieczeństwo przed niechcianym czytaniem naszych wiadomości przez siostrę i nie uzdolnionego kryptograficznie brata. Oczywiście pod warunkiem że ustawimy jakiekolwiek hasło… Jeżeli masz fioła na punkcie bezpieczeństwa, najpewniej i tak trzymasz pliki profilu w dodatkowo szyfrowanych plikach.
Nowe DTB powinno też rozwiązać raz na zawsze problemy z ginącymi danymi. Konnekt będzie chyba pierwszym komunikatorem który robi automatycznie kopie zapasowe swoich plików i w razie problemów równie automatycznie je przywraca.
Nowe dobrodziejstwa pojawią się w nowej becie, do której zostało jednak jeszcze trochę czasu bo do przerobienia jest teraz sporo kodu w samym Konnekcie.

Aha… Ostatni ponad-tydzień mogę ogólnie zaliczyć do udanych, oprócz powyższego oteksturowałem inżyniera i przeszedłem GTA… Bigup’Nigga!