Początki projektu centrum oprogramowania

Projekt centrum oprogramowania planowany jest przeze mnie od dłuższego czasu. Zanim jeszcze zdecydowałem się prowadzić własnego bloga podejmowałem pierwsze próby wdrażania mojej koncepcji. Zaczęło się od prostych prototypów. Często nie mających sensu, ponieważ w produkcyjnym zastosowaniu raczej by się nie sprawdziły. Za wszelką cenę chciałem stworzyć coś co by ułatwiło życie innym. Poniekąd jest to spowodowane moimi doświadczeniami jakie zdobywam podczas poszukiwania oprogramowania na co dzień. Doskonale są mi znane ich problemy. Dlatego pomysł na projekt zrodził się nie przypadkowo.

Trochę historii centrum oprogramwowania

Może brzmi to trochę nierealnie, ale plany projektu centrum oprogramowania tak naprawdę mają za sobą już prawie 7 lat. Sam wspominam to z wielkim zdziwieniem. Przez tyle czasu trzymałem się tych planów i nigdy o nich nie zapomniałem. Mimo, że doznawałem na tej ścieżce wiele porażek. Początki były dość skromne. Najpierw zwykła strona w HTML’u i CSS. Może dlatego, że w tym czasie intensywnie korzystałem z tego języka przy projektowaniu stron internetowych. Miałem już za sobą jeden większy projekt, który niestety krótko przed rozpadł się. Testowanie oprogramowania nadal zostało. Do dzisiaj lubię poznawać nowe ciekawe rozwiązania. Zacząłem, więc rozmyślać nad tym jak połączyć te dwie pasje. Rozpocząłem wtedy prace nad aplikacją, którą wstępnie nazwałem Centrum oprogramowania Windows. Prosta nazwa. Bez skomplikowanych sformułowań. Tak, aby było wiadomo czego dotyczy. Zabrałem się za projektowanie, a jako, że byłem jeszcze w czasach licealnych to miałem dość sporo czasu, aby poświęcić się jego realizacji. Niestety nie nadrabiałem wtedy doświadczeniem i umiejętnościami. Mimo, że projekt ambitny i ciekawy to jego forma niezbyt odzwierciedlała moje pomysły. Prosta strona w HTML’u, gdzie stawiałem kolejne fragmenty kodu tabeli z podlinkowanymi pozycjami. Na pierwszy rzut oka pełna satysfakcja, ale po trzech dniach zrozumiałem, że będzie mega problem z utrzymywaniem tego i aktualizowaniem zawartości.

Minęło kilka miesięcy. W Internecie znalazłem ciekawe oprogramowanie do tworzenia nośników startowych o nazwie Autorun Pro Enterprise II. Moje zdolności poszukiwawcze i testera okazały się przydatne. Przez kilka tygodni znowu nakręciłem się na realizację swojego projektu. Skończyło się to jednak na zwykłej stronce HTML. Ale za to wyświetlana za pomocą dedykowanej aplikacji. Kilka dni testów i stwierdziłem, że taka forma rozwiązania raczej nie ma przyszłości i wygląda to od strony technicznej dość amatorsko, ale za to użytkownik końcowy mógłby już mieć jakąś funkcjonalność. Nie poddawałem się. Podejmowałem kolejne próby stworzenia aplikacji za pomocą oprogramowania Autorun, ale zbyt rozbudowany interfejs tracił na wydajności w wyniku słabej kompilacji. Projekt musiałem ostatecznie zawiesić. Z nadzieją, że jeszcze do niego kiedyś powrócę.

Longtion Autorun Pro Enterprise II
Autorun Pro Enterprise II – Oprogramowanie do tworzenia nośników i obrazów startowych

Po swoich dwóch mega porażkach zrozumiałem, że pełnoprawne centrum oprogramowania bez umiejętności programistycznych nie ma racji bytu. W między czasie stworzyłem SoftPack Solution. Czyli gotowy nośnik z określonym oprogramowaniem. Instalowane po świeżej instalacji systemu operacyjnego. Nadal była to jednak prosta aplikacja stworzona za pośrednictwem czegoś, czyli w tym wypadku prostego generatora nośników startowych. Dawało mi to satysfakcję i poczucie sukcesu. Chodź utrzymanie tego było znacznie łatwiejsze to nie miało to żadnej większej przyszłości. Portal internetowy, na którym można pobrać oprogramowanie raczej nie wchodził w grę. Moim celem jest usprawnienie jego pozyskiwania, a idąc w tym kierunku trafiłbym do punktu wyjścia, czyli podążyłbym tą samą ścieżką pozostałych autorów tego typu portali. A w tych czasach trudno jest zdobyć popularność i jeszcze się z tego utrzymać.

Rozwój

Minęło trochę czasu. Skończyłem liceum. Zdałem maturę. Zaraz przed przyjęciem na studia zacząłem naukę programowania. Z dwóch prostych powodów. Po prostu lubię to robić i wiedziałem, że realizacja projektów pokroju centrum oprogramowania bez tych umiejętności nie będzie możliwa. Kiedy doszedłem do połowy etapu zaczęły rodzić się nowe pomysły, ale nadal nie zapomniałem o tych wcześniejszych. Pod koniec studiów byłem już na tyle gotowy żeby wznowić projekt centrum oprogramowania, ale już od strony programistycznej. Przy okazji załatwiłem temat na pracę dyplomową. Cała koncepcja przyjęła się z pozytywnym przyjęciem. Pierwszy prototyp o nazwie kodowej Sotelier, który zresztą można zobaczyć na moim blogu, dał mi nie tylko dobrą ocenę, ale również motywację do kontynuacji. Prezentując swój projekt wiedziałem już, że doszedłem do takiego momentu, gdzie cała koncepcja może ujrzeć światło dzienne i będzie zgodna z moimi przekonaniami. Teraz jedyne co mi pozostaje to realizować swoje pomysły.

Rewolucja

Jeszcze nie tak dawno uważałem, że moje pierwsze podejścia do projektu to była niepotrzebna strata czasu. Tak naprawdę nic wiele nie zrobiłem. Nie mam czego zaprezentować. Straciłem mnóstwo czasu na to, aby eksperymentować. Po głębszej refleksji zrozumiałem, że godziny stracone na stworzeniu prototypowej wersji dał mi obraz na to jak w rzeczywistości wytwarza się oprogramowanie. Trzeba być bardzo zdyscyplinowanym. Planować swoje działania i przede wszystkim rozwijać się. Często jeden zwykły projekt może nas poruszyć do poznawania nowych rzeczy. Przecież gdyby nie próby stworzenia czegoś, dążenia do celu, być może w ogóle nie nauczyłbym się jakiegokolwiek języka programowania. Po tak naprawdę chęć stworzenia czegoś konkretnego najbardziej mobilizowała mnie do nauki i pracy.

Przeglądarka repozytorium
Przeglądarka centrum oprogramowania w projekcie Sotelier

Tworząc aplikację na pracę dyplomową, całą jej koncepcję przemyślałem na nowo. Rozwiązania, które uważałem za słuszne dopasowywałem pod kątem programistycznym. Pozostałe elementy musiałem zaprojektować od nowa. Często wspomagałem się eksperymentowaniem, bo nadal uważam, że ten kierunek pracy przynosi największe owoce, szczególnie gdy nie mamy pewności co do niektórych rzeczy.

Plany na dziś

Powoli przymierzam się do wdrażania swojej koncepcji centrum oprogramowania. Historia tego projektu, mam nadzieje, że dla wielu ciekawa, ma stanowić pewne wprowadzenie do tego czym będę zajmować się przez najbliższy czas. Chodź wcześniej pisałem, że rozpocząłem pracę nad aplikacją Apptelier to pamiętajcie, że jest to tylko część całego projektu. Przede wszystkim dzisiejszy obraz centrum oprogramowania to usługa, która jest świadczona przez społeczność. Wcześniejsze jego koncepcje sprowadzały się do jednego centralnego punktu, które jak zapewne wiecie niesie za sobą spore ryzyko i problemy. Zaraz na początku wyciągałem dość istotne wnioski. A mianowicie aktualizacja zawartości. Liczyłem się z tym, że jest to dość czasochłonny proces, szczególnie w wczesnych fazach projektu. Jednakże nie szukałem właściwego rozwiązania. Około rok temu kiedy rozpocząłem prace nad Sotelier, opracowałem pewne wyjście z tej sytuacji. Już prototypowa wersja aplikacji nastawiała się na to, że jej zawartość będzie uzupełniana przez inne osoby. Ochotnicy, którzy zdecydują się na prowadzenie własnego repozytorium będą mogli to zrobić stawiając własną bazę danych i dopisując się do globalnego pliku konfiguracyjnego, który będzie zintegrowany z klientem. Związku z tym, aby ułatwić życie przyszłym administratorom narodziła się druga część projektu, czyli narzędzie do zarządzania.

Menedżer repozytoriów
Panel kontrolny menedżera repozytoriów projektu Apptelier

Umiejętności programistyczne otworzyły przede mną większe możliwości rozbudowy całej aplikacji. Jestem w stanie zaimplementować funkcjonalność, która nie jest możliwa do wygenerowania przez rozwiązania firm trzecich (tutaj Autorun Pro Enterprise), a przecież klient centrum oprogramowania to nie menedżer pobierania oferujący sponsorowane niespodzianki. Ma on nie tylko zapewniać pełną dostępność oprogramowania, ułatwiać jego wdrażanie, ale i również pomóc przy jego wyborze. Sam wiele razy szukałem opinii na temat jakie oprogramowanie jest lepsze. Często sami użytkownicy zadawali mi to pytanie. Stąd zrodził się pomysł na system rekomendacji na podstawie ocen, komentarzy i recenzji. Dzisiejszy Internet wie wszystko. Wystarczy wpisać dane rozszerzenie pliku i w kilka sekund znajdziemy jakie oprogramowanie je obsługuje. Ale nadal pozostaje jego samodzielna instalacja. Tutaj wymyśliłem tzw. Analizator rozszerzeń, który na podstawie pliku lub wprowadzonej informacji dobiera oprogramowanie z repozytorium i instaluje je automatycznie.

Mam nadzieję, że z projektu centrum oprogramowania coś wyjdzie. Chodź koncepcja jest znacznie większa niż przedtem to uważam to za wyzwanie, które może pomóc w kwestii zdobycia doświadczenia w programowaniu.