Autor Wątek: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR  (Przeczytany 174554 razy)

Offline mcgiwer

  • Użytkownik
  • Wiadomości: 24
    • Zobacz profil
  • Skąd: Wrocław
[Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« dnia: 09 Kwiecień 2014, 15:02:25 »
Mam kilka pomysłów które mogły by udoskonalić symulator oraz ułatwić jego rozwój. Dodatkowo, myślę że mogły by one również zadowolić tych bardziej wymagających użytkowników.

Aby mój zapis był bardziej czytelny, podzielę moje pomysły na sekcje, punkty i podpunkty.

== Lista pomysłów ==

I. Ułatwienie rozwoju ISDR:

  • utworzenie tzw. stałego "jądra (core)" programu zawierającego główny interfejs z menu, w którym były by takie funkcje jak m.in.:

    • nowa symulacja (z możliwością wybrania pliku pulpitu)
    • otwórz zapisaną symulację
    • zapisz symulację
    • opcje programu (może zawierać funkcję włączającą zaawansowane ustawienia i funkcje programu)

  • Wszystkie elementy oprócz "core" powinny być zrobione w postaci dołączanych "snippetów" i/lub modułów, co ułatwiło by rozbudowę bez potrzeby ingerencji w główny kod programu
  • edytor umożliwiający tworzenie i edycję pulpitów. W tym edytorze były by dostępne wszystkie elementy i kostki z których można by było samemu ułożyć sobie w pełni funkcjonalny pulpit

Powyższe rozwiązanie pozwoliło by ludziom nie będącym programistami tworzyć własne pulpity bez ingerencji w kod programu

II. Inne powiązane pomysły:
  • wersje dla systemów innych niż Windows

Polecam również stronę: Beskidzka Strona Kolejowa zawierająca wiele ciekawych informacji dotyczących infrastruktury kolejowej oraz sterowania ruchem kolejowym

c.d.n.
« Ostatnia zmiana: 09 Kwiecień 2014, 15:11:04 wysłana przez mcgiwer »

Offline jageer

  • Projektant
  • Użytkownik
  • Wiadomości: 1395
  • Podg. Papago
    • Zobacz profil
  • Skąd: wieś Papago.
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #1 dnia: 09 Kwiecień 2014, 16:00:21 »
No to siadaj do kompa i pisz...

Jak oglądałem serial Mc Gyver, to on umiał wszystko zrobic  ;)
« Ostatnia zmiana: 09 Kwiecień 2014, 16:03:52 wysłana przez jageer »

Offline Zacha

  • Użytkownik
  • Wiadomości: 449
    • Zobacz profil
  • Skąd: podg Lumpago
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #2 dnia: 09 Kwiecień 2014, 16:02:55 »
Każdy może złożyć własny pulpit w programie EPK. Tylko nie wiem jaki ma sens wymyślanie własnego pulpitu do gotowej stacji.
Polecam również stronę: Beskidzka Strona Kolejowa zawierająca wiele ciekawych informacji dotyczących infrastruktury kolejowej oraz sterowania ruchem kolejowym
To akurat jest strona autora tego symulatora ;)

Offline Paweł

  • Administrator
  • Użytkownik
  • Wiadomości: 1047
    • Zobacz profil
  • Skąd: Kęty
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #3 dnia: 09 Kwiecień 2014, 18:26:11 »
edytor umożliwiający tworzenie i edycję pulpitów. W tym edytorze były by dostępne wszystkie elementy i kostki z których można by było samemu ułożyć sobie w pełni funkcjonalny pulpit

Urządzenia stacyjne to nie tylko pulpit, ale przede wszystkim system zależności. W chwili obecnej zależności zapisane są jako kawałek (kawał...) kodu źródłowego i są ściśle powiązane z pulpitem i urządzeniami zewnętrznymi. W planach jest zastąpienie tego uniwersalnym modułem zależności opartym na modułach o układzie geograficznym, który prawdopodobnie będzie mniej realistycznie odzwierciedlał urządzenia typu E (będzie je bardziej udawał niż wiernie symulował obwody przekaźników), ale za to będzie bardziej zwarty, mniej problematyczny do "zaprogramowania" i pozwoli na symulowanie innych systemów. Nie mniej jednak tworzenie nowego symulatora wiązać się będzie z koniecznością poskładania tego finalnie na poziomie kodu i nie prędko się to zmieni.

wersje dla systemów innych niż Windows

W planach jest też przeniesienie kodu na Lazarusa, który pozwoli tworzyć wersje na inne platformy.

Offline mcgiwer

  • Użytkownik
  • Wiadomości: 24
    • Zobacz profil
  • Skąd: Wrocław
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #4 dnia: 10 Kwiecień 2014, 19:45:14 »
Cytat: Paweł
W planach jest też przeniesienie kodu na Lazarusa, który pozwoli tworzyć wersje na inne platformy.

A może tak spróbować napisać w C++ lub javie? myślę że był by to bardziej uniwersalny język i mogło by to zwiększyć liczbę ludzi rozwijających program ;)

Można opublikować również pliki z kodem w takich serwisach jak GitHub i/lub Sourceforge

Cytat: Paweł
Urządzenia stacyjne to nie tylko pulpit, ale przede wszystkim system zależności. W chwili obecnej zależności zapisane są jako kawałek (kawał...) kodu źródłowego i są ściśle powiązane z pulpitem i urządzeniami zewnętrznymi.

Pomyślałem że gdyby interfejs był by modułowy, a do kostek był przypisany obsługujący je (i zależności) kod to można by było ułatwić rozbudowę

Cytat: Paweł
Nie mniej jednak tworzenie nowego symulatora wiązać się będzie z koniecznością poskładania tego finalnie na poziomie kodu i nie prędko się to zmieni.

Gdyby udało się zrobić, że te snippety i moduły były by ładowane dynamicznie to rozwiązało by wspomniany problem

Cytat: jagger
No to siadaj do kompa i pisz...

Niestety nie piszę w Delphi ani Pascalu :(

Cytat: zacha
Każdy może złożyć własny pulpit w programie EPK. Tylko nie wiem jaki ma sens wymyślanie własnego pulpitu do gotowej stacji.

Możesz mnie podlinkować do strony z tym EPK? Dzięki

Offline MaKu

  • Moderator
  • Użytkownik
  • Wiadomości: 565
  • Starszy Dyżurny Ruchu
    • Zobacz profil
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #5 dnia: 10 Kwiecień 2014, 20:11:40 »
Możesz mnie podlinkować do strony z tym EPK? Dzięki

Odezwij się bezpośrednio do Pawła. Najlepiej poprzez PW.

Offline djuzi

  • Użytkownik
  • Wiadomości: 175
  • Prawie jak Dyżurny Ruchu
    • Zobacz profil
  • Skąd: IZ Warszawa
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #6 dnia: 22 Kwiecień 2014, 08:57:51 »
A może tak spróbować napisać w C++ lub javie? myślę że był by to bardziej uniwersalny język i mogło by to zwiększyć liczbę ludzi rozwijających program ;)

Chyba nie orientujesz się jak duży jest kod ISDRa podając takie propozycje...

Offline mcgiwer

  • Użytkownik
  • Wiadomości: 24
    • Zobacz profil
  • Skąd: Wrocław
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #7 dnia: 07 Maj 2014, 13:44:17 »
Chyba nie orientujesz się jak duży jest kod ISDRa podając takie propozycje...

Odsyłam spowrotem do mojego pomysłu z pocztku, gdzie napisałem, że kod można by było rozbić na moduły, co ułatwiło by prace rozwojowe, gdyż pracowało by się z mniejszymi partiami kodu

No to siadaj do kompa i pisz...

Niestety, kod isdr nie jest chyba nigdzie udostępniony

Offline axtomek

  • Użytkownik
  • Wiadomości: 110
    • Zobacz profil
  • Skąd: Z-Nienacka
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #8 dnia: 07 Maj 2014, 20:58:51 »
No to siadaj do kompa i pisz...

Niestety, kod isdr nie jest chyba nigdzie udostępniony

Ale przecież twórcy co jakiś czas na forum poszukują osób chętnych do współpracy. Kiedyś odpowiedziałem, ale na tamten czas nie programistów poszukiwali. Paweł jednak pozwolił mi się zapoznać z biblioteką ISDR.

Chyba nie orientujesz się jak duży jest kod ISDRa podając takie propozycje...

Odsyłam spowrotem do mojego pomysłu z pocztku, gdzie napisałem, że kod można by było rozbić na moduły, co ułatwiło by prace rozwojowe, gdyż pracowało by się z mniejszymi partiami kodu

Więc właśnie... miałem okazję zapoznać się z biblioteką i
1/ jest potężna, więc jej rozbicie na mniejsze moduły przechowywane np. w postaci dll-i, to gigantyczna praca,
2/ trzeba znać się nie tylko na języku programowania, ale przede wszystkim znać się na pracy ISDR żeby wiedzieć, jaka procedura i funkcja w bibliotece symuluje jakie zdarzenie w urządzeniach SRK, łączności i jaką sytuację ruchową.

Jeśli jednak mimo to chcesz spróbować swoich sił, zgłoś się do Pawła, może pozwoli Tobie zapoznać się z biblioteką, ale obawiam się, że to będzie słomiany zapał.  ;)

Offline mcgiwer

  • Użytkownik
  • Wiadomości: 24
    • Zobacz profil
  • Skąd: Wrocław
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #9 dnia: 08 Maj 2014, 11:16:13 »
1/ jest potężna, więc jej rozbicie na mniejsze moduły przechowywane np. w postaci dll-i, to gigantyczna praca,

można przecież stworzyć własny rodzaj bibliotek (np. z rozszerzeniem .isdrmod), które było by wykorzystywane wyłącznie przez IDSR, co pozwoliło by w przyszłości łatwiej przenieść na inne systemy operacyjne

Jeśli jednak mimo to chcesz spróbować swoich sił, zgłoś się do Pawła, może pozwoli Tobie zapoznać się z biblioteką, ale obawiam się, że to będzie słomiany zapał.  ;)

Paweł jest chyba bardzo zajęty skoro jeszcze nie odpisał na moje poprzednie PM ;)

Dodatkowo, myślę że dobrym pomysłem było by przeniesienie projektu z Deplhi na np. C++ lub javę, które w przeciwieństwie do Delphi i Pascala umożliwiają stworzenie (w przypadku C++ kompilację) wersji dla np. Linuxa

Offline axtomek

  • Użytkownik
  • Wiadomości: 110
    • Zobacz profil
  • Skąd: Z-Nienacka
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #10 dnia: 08 Maj 2014, 14:27:01 »
Dodatkowo, myślę że dobrym pomysłem było by przeniesienie projektu z Deplhi na np. C++ lub javę...

Aż wczoraj sprawdziłem z ciekawości... Obecna biblioteka ma ponad 16,3 tys linii kodu. Paweł zaczął pracę nad nią w 2007 roku. Także wybacz, nie zgadzam się z Tobą. Przeniesienie wszystkiego na inny język to nie jest praca polegająca na wrzucenie do Google Translate... To jest konieczność napisania wszystkiego od nowa, z uwzględnieniem bardzo wielu różnic, jakie występują pomiędzy Delphi, Javą i C++ i oczywiście koniecznie trzeba by kod zoptymalizować. To jest wytężona praca programistyczna. Zakładam, że jesteś kozak w C++ i Javie, skoro tak usilnie to proponujesz, ale i tak to zbyt wiele pracy dla jednego programisty, aby we w miarę racjonalnym czasie (a być może i w ogóle) doczekać się oprogramowania symulatora pod nowym silnikiem.

...z Deplhi na np. C++ lub javę, które w przeciwieństwie do Delphi i Pascala umożliwiają stworzenie (w przypadku C++ kompilację) wersji dla np. Linuxa

Sorry... ale muszę zadać Ci kłam ;). Gadasz bzdury. Czy kiedykolwiek zapoznawałeś się z projektem zwanym Lazarus? To narzędzie umożliwiające zakodowanie multiplatformowych aplikacji w języku Delphi. Jest to na tyle świetne narzędzie, że można kod napisać jeden raz i bez żadnych poprawek kompilować pod Lazarusem w Linuxie, Windowsie aplikacje przeznaczone dla konkretnych systemów operacyjnych.

Jakie są zatem racjonalne przesłanki, żeby przepisywać ponad 16 tys. linii kodu napisanego w Delphi na inny język programowania. Tylko nie mów proszę, że wydajność C++ lub Java jest wyższa, bo będę musiał znowu zadać Ci kłam.

Po pierwsze. To dziecinne argumenty osób, które przymierzały się do pisania gier w Delphi wykorzystując gotowe pakiety do programowania 3D. Faktycznie wydajność takich gier była zdecydowanie niższa, niż gier 3D pisanych w C++. Ale szczerze? Nie znam porządnego programisty, który pisząc gry 3D z prawdziwego zdarzenia korzysta z gotowych komponentów. Takie gry nie będą nigdy wydajne, bo oprócz tego, co jest tam potrzebne znajdzie się tam mnóstwo kodu absolutnie niepotrzebnego. Każdy szanujący się programista 3D sam oprogramowuje sobie tylko to, co jest mu potrzebne.

Po drugie. ISDR jest prostą aplikacją okienkową, nie obciążającą zanadto zasobów systemowych. W takich aplikacjach pojęcie wydajności jest w ogóle bardzo mało istotne.

Takie jest moje zdanie :)

Offline piotr1859

  • Użytkownik
  • Wiadomości: 39
    • Zobacz profil
  • Skąd: Z Google
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #11 dnia: 09 Maj 2014, 10:20:27 »
Szkoda, że nie znam się na programowaniu, nie wiem czy można się samemu nauczyć tzn na pewno można, ale wtedy trzeba mieć większe IQ. Nie ma nawet takiej szkoły czy kursów w moim mieście, które by uczyły od podstaw programowania. Przeglądnąłem kilka książek ale jednak to nie jest to. Co innego uczyć się samemu z książek, a co innego chodzić na kurs do profesjonalnego programisty. Ale ciekawy jestem jak wygląda "Obecna biblioteka, która  ma ponad 16,3 tys linii kodu".

Offline MaKu

  • Moderator
  • Użytkownik
  • Wiadomości: 565
  • Starszy Dyżurny Ruchu
    • Zobacz profil
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #12 dnia: 09 Maj 2014, 10:49:14 »
Chcieć, to już sporo. Wystarczy zaopatrzyć się w oprogramowanie tzw "turbo pascala", przegrzebać google w poszukiwaniu kursów i można stworzyć swój pierwszy program. Wystarczą chęci.

A co do biblioteki isdr, to jest duża. A jak już wspomniał @axtomek, do jej zrozumienia potrzebne jej minimum wiedzy z zakresu inżynierii ruchu i przede wszystkim automatyki urządzeń srk.

Offline axtomek

  • Użytkownik
  • Wiadomości: 110
    • Zobacz profil
  • Skąd: Z-Nienacka
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #13 dnia: 09 Maj 2014, 13:18:45 »
...nie wiem czy można się samemu nauczyć tzn na pewno można...

Można można, tylko trwa to zdecydowanie dłużej, niż w szkole, bo do wszystkiego dochodzi się samemu. Ja jestem samoukiem. Siedzę jednak w Delphi od 1998 roku i nadal jest mnóstwo rzeczy, których nie umiem. W szkole masz instruktora, który pokaże Ci co i jak zrobić, więc jest łatwiej, ale masz kolokwia, egzaminy i zwyczajnie musisz gonić z materiałem, nawet, jeśli jest on dla Ciebie nie zrozumiały. Grozi to tym, że programowanie nie będzie sprawiało Tobie przyjemności, bo się będzie kojarzyło z przykrymi obowiązkami. Gdy uczysz się samemu, to jest to mozolny i długotrwały proces, ale masz satysfakcję z każdej nawet "pierdółki", którą uda się Tobie rozgryźć. Programowanie wtedy jest dla Ciebie frajdą.

@MaKu: Jeśli ktoś chce zacząć przygodę z Delphi (Pascalem) w najczystszej postaci API to można polecić darmowy Free Pascal Compiler. Jeśli zaś koś miałby chęć uderzyć od razu w kierunku programowania obiektowego, wtedy polecam również darmowego, wspomnianego wcześniej, Lazarusa.

Offline dp116

  • Użytkownik
  • Wiadomości: 138
    • Zobacz profil
  • Skąd: Warszawa
Odp: [Pomysł] Ciekawe pomysły na udoskonalenie ISDR
« Odpowiedź #14 dnia: 09 Maj 2014, 21:43:41 »
Jeśli ktoś chce zacząć przygodę z Delphi (Pascalem) w najczystszej postaci API to można polecić darmowy Free Pascal Compiler.
Ja co nieco pisałem w Turbo Pascalu i polecam kompilator firmy Borland. Teraz już jest darmowy, więc można go legalne ściągnąć. Ewentualnie gdzieś też posiadam instalkę do wersji 5 i 7.