Interaktywny podgląd VI
: 26 wrz 2007 14:07
Od dłuższego czasu noszę się z pewnym pomysłem. Niniejszy post jest pierwszą próbą pisemnego usystematyzowania sobie tego, więc z góry przepraszam jeżeli wkradnie się tu jakiś chaos.
Opis problemu Jest sobie forum LabVIEW (BTW szczere wyrazy uznania dla administratorów). Na forum użytkownicy opisują swoje problemy ilustrując je bądź screenami swoich programów, bądź pełnymi VI-ami. Jakie te programy bywają - wszyscy wiemy. Te dwa sposoby prezentacji mają swoje wady. Screeny bywają duże i rozwalają wyświetlanie wątku. Często zawierają bloczki, których akurat po ikonce nie rozpoznajemy. Jeżeli program zawiera stacked sequence albo case structure (nie daj Bóg zagnieżdżone), to części kodu w ogóle nie widać. Z kolei dołączony VI trzeba ściągnąć, uruchomić LV, przebrnąć warningi wynikające z brakujących bibliotek, nie mówiąc już o niezgodności wersji LV. Jak sobie człowiek to wszystko przypomni widząc VI dołączony do mętnie sformułowanego pytania, to przestaje mu się chcieć pomagać, choć nierzadko jest to tylko kwestia zerknięcia na diagram. A jak już wygeneruje jakąś odpowiedź w postaci diagramu to znów staje przed dylematem - robić screena czy zamieszczać VI. Najprościej screena, ale jak są jakieś case'y, to trzeba się trochę przy tym napracować. Z kolei po zamieszczeniu VI skorzysta tylko autor pytania i to jak będzie miał odpowiednią wersję LV. Każdy tylko średnio zainteresowany problemem nie zapozna się z jego rozwiązaniem. W efekcie tego ogólna wiedza użytkowników nie przyrasta tak szybko jak by mogła.
Rozwiązanie Rozwiązaniem mogłaby być aplikacja generująca interaktywne podglądy VI-ów. Podstawowe funkcje takiego interaktywnego podglądu to: - daje się w prosty sposów zamieścić w treści postu, nie psując wyświetlania wątku - okienko ze scrollbarami - przełączanie pomiędzy widokiem panelu i diagramu - możliwość oglądania wszystkich zagnieżdżonych i przełączalnych struktur - najechanie kursorem na element powoduje pojawienie się w dymku jego Label i Description - możliwość ściągnięcia pełnego VI
Nasuwają mi się dwa możliwe rozwiązanie techniczne - Flash - DHTML Za Flashem przemawia
większa kompaktowość (1 plik), łatwość umieszczania w poście i możliwość dodatkowej funkcji - skalowanie. Za DHTML-em - łatwość generowania. Oraz dwa możliwe miejsca działania - Client side - rozwiązanie najprostsze - użytkownik ściąga sobie program, generuje podgląd VI-a i umieszcza go w poście. Wada - trzeba go tego nauczyć - Server side - serwer za pomocą CGI sam generuje podgląd na podstawie VI zamieszczonego przez użytkownika. Wada - na serwer musi mieć CGI, musi stać na nim LV z pełnym dostępem do bibliotek (inaczej np. nie odczyta ikon).
Ja skłaniam się raczej do kombinacji Flash/Client side.
Implementacja Bez Scriptingu (niech będzie przeklęty na wieki) ani rusz. Porobiłem już pierwsze próby i przy pomocy LV8.2 i różnych narzędzi spod ciemnej gwiazdy wygrzebanych w mrocznych zakamarkach LAVY jestem w stanie mniej lub bardziej sprawnie dobrać się do diagramu i rozebrać go na części.
Można w zasadzie wykorzystać też drukowanie diagramu do HTMLa i generowane przy tej okazji obrazki, ale jakoś to mniej eleganckie i mniej mroczne. Przyjrzałem się też kilku narzędziom do dynamicznego generowania Flashek. Szczególnie obiecujące wydaje się SSWF - generuje swf-y na podstawie skryptów z pliku tekstowego.
Zasada działania generatora podglądów byłaby taka: Analiza Front Panelu i generowanie obrazków (liczba mnoga, bo zakładki) -> analiza diagramu i generowanie obrazków -> tworzenie skryptu na podstawie przygotowanego wcześniej szablonu i drzewa diagramu -> generacja Flashki. Proste jak drut, niestety kupa roboty
Proponuję więc stworzenie zespołu, który zająłby się takim projektem jako wkładem dla polskiej społeczności LV i nie tylko - te same problemy muszą przecież występować na wszystkich innych forach dotyczących LV. Oczywiście na jakiejś opensourcowej licencji. Potrzebni będą w szczególności - ktoś znający się na zarządzaniu projektem informatycznym, żeby można to było sensownie zaplanować i ogarnąć - ktoś znający się na Flashu, jakby miał praktykę w dynamicznej generacji, to byłaby poezja - ktoś mający pojęcie o Scriptingu, szczególnie jeżeli miałby dostęp do LV7 - każdy inny kto będzie miał czas, chęć i umiejętności by w sensowny sposób do projektu się przyłożyć.
Dużym problemem może tu być czas i dostęp do narzędzi, ponieważ LV nie należy do programów, które miewa się w domu. Ja osobiście spróbuję poprosić swojego pracodawcę by pozwolił mi wygospodarować trochę czasu na ten projekt w zamian za umieszczenie w programie logo firmy i kilku informacji - jako rodzaj promocji, mam nadzieję że ogólnoświatowej. Myślę, że MGI to sobie w taki sposób niezłą reklamę zrobiło.
Rozwój W dalszej perspektywie widzę przekształcenie takiego narzędzia w coś w rodzaju programu do automatycznej dokumentacji kodu. O ile wiem to jeszcze nic takiego nie ma, a drukowanie do HTML-a jest dosyć ubogie. Co prawda wpadło mi gdzieś w oko, że podobno w OpenG gdzieniegdzie używano czegoś w tym rodzaju, ale jest to w baaardzo wczesnej fazie rozwoju.
To z grusza tyla. Pomożecie?
Opis problemu Jest sobie forum LabVIEW (BTW szczere wyrazy uznania dla administratorów). Na forum użytkownicy opisują swoje problemy ilustrując je bądź screenami swoich programów, bądź pełnymi VI-ami. Jakie te programy bywają - wszyscy wiemy. Te dwa sposoby prezentacji mają swoje wady. Screeny bywają duże i rozwalają wyświetlanie wątku. Często zawierają bloczki, których akurat po ikonce nie rozpoznajemy. Jeżeli program zawiera stacked sequence albo case structure (nie daj Bóg zagnieżdżone), to części kodu w ogóle nie widać. Z kolei dołączony VI trzeba ściągnąć, uruchomić LV, przebrnąć warningi wynikające z brakujących bibliotek, nie mówiąc już o niezgodności wersji LV. Jak sobie człowiek to wszystko przypomni widząc VI dołączony do mętnie sformułowanego pytania, to przestaje mu się chcieć pomagać, choć nierzadko jest to tylko kwestia zerknięcia na diagram. A jak już wygeneruje jakąś odpowiedź w postaci diagramu to znów staje przed dylematem - robić screena czy zamieszczać VI. Najprościej screena, ale jak są jakieś case'y, to trzeba się trochę przy tym napracować. Z kolei po zamieszczeniu VI skorzysta tylko autor pytania i to jak będzie miał odpowiednią wersję LV. Każdy tylko średnio zainteresowany problemem nie zapozna się z jego rozwiązaniem. W efekcie tego ogólna wiedza użytkowników nie przyrasta tak szybko jak by mogła.
Rozwiązanie Rozwiązaniem mogłaby być aplikacja generująca interaktywne podglądy VI-ów. Podstawowe funkcje takiego interaktywnego podglądu to: - daje się w prosty sposów zamieścić w treści postu, nie psując wyświetlania wątku - okienko ze scrollbarami - przełączanie pomiędzy widokiem panelu i diagramu - możliwość oglądania wszystkich zagnieżdżonych i przełączalnych struktur - najechanie kursorem na element powoduje pojawienie się w dymku jego Label i Description - możliwość ściągnięcia pełnego VI
Nasuwają mi się dwa możliwe rozwiązanie techniczne - Flash - DHTML Za Flashem przemawia
większa kompaktowość (1 plik), łatwość umieszczania w poście i możliwość dodatkowej funkcji - skalowanie. Za DHTML-em - łatwość generowania. Oraz dwa możliwe miejsca działania - Client side - rozwiązanie najprostsze - użytkownik ściąga sobie program, generuje podgląd VI-a i umieszcza go w poście. Wada - trzeba go tego nauczyć - Server side - serwer za pomocą CGI sam generuje podgląd na podstawie VI zamieszczonego przez użytkownika. Wada - na serwer musi mieć CGI, musi stać na nim LV z pełnym dostępem do bibliotek (inaczej np. nie odczyta ikon).
Ja skłaniam się raczej do kombinacji Flash/Client side.
Implementacja Bez Scriptingu (niech będzie przeklęty na wieki) ani rusz. Porobiłem już pierwsze próby i przy pomocy LV8.2 i różnych narzędzi spod ciemnej gwiazdy wygrzebanych w mrocznych zakamarkach LAVY jestem w stanie mniej lub bardziej sprawnie dobrać się do diagramu i rozebrać go na części.
Można w zasadzie wykorzystać też drukowanie diagramu do HTMLa i generowane przy tej okazji obrazki, ale jakoś to mniej eleganckie i mniej mroczne. Przyjrzałem się też kilku narzędziom do dynamicznego generowania Flashek. Szczególnie obiecujące wydaje się SSWF - generuje swf-y na podstawie skryptów z pliku tekstowego.
Zasada działania generatora podglądów byłaby taka: Analiza Front Panelu i generowanie obrazków (liczba mnoga, bo zakładki) -> analiza diagramu i generowanie obrazków -> tworzenie skryptu na podstawie przygotowanego wcześniej szablonu i drzewa diagramu -> generacja Flashki. Proste jak drut, niestety kupa roboty
Proponuję więc stworzenie zespołu, który zająłby się takim projektem jako wkładem dla polskiej społeczności LV i nie tylko - te same problemy muszą przecież występować na wszystkich innych forach dotyczących LV. Oczywiście na jakiejś opensourcowej licencji. Potrzebni będą w szczególności - ktoś znający się na zarządzaniu projektem informatycznym, żeby można to było sensownie zaplanować i ogarnąć - ktoś znający się na Flashu, jakby miał praktykę w dynamicznej generacji, to byłaby poezja - ktoś mający pojęcie o Scriptingu, szczególnie jeżeli miałby dostęp do LV7 - każdy inny kto będzie miał czas, chęć i umiejętności by w sensowny sposób do projektu się przyłożyć.
Dużym problemem może tu być czas i dostęp do narzędzi, ponieważ LV nie należy do programów, które miewa się w domu. Ja osobiście spróbuję poprosić swojego pracodawcę by pozwolił mi wygospodarować trochę czasu na ten projekt w zamian za umieszczenie w programie logo firmy i kilku informacji - jako rodzaj promocji, mam nadzieję że ogólnoświatowej. Myślę, że MGI to sobie w taki sposób niezłą reklamę zrobiło.
Rozwój W dalszej perspektywie widzę przekształcenie takiego narzędzia w coś w rodzaju programu do automatycznej dokumentacji kodu. O ile wiem to jeszcze nic takiego nie ma, a drukowanie do HTML-a jest dosyć ubogie. Co prawda wpadło mi gdzieś w oko, że podobno w OpenG gdzieniegdzie używano czegoś w tym rodzaju, ale jest to w baaardzo wczesnej fazie rozwoju.
To z grusza tyla. Pomożecie?