Sporo gier komputerowych (zresztą nie tylko komputerowych) z elementami RPG stosuje tzw. "skill tree" - czyli drzewko kolejnych umiejętności (zachęcam do wklepania "skill tree" w google images), które dana postać może zdobyć/poznać/posiąść. Drzewko jest zorganizowane w taki sposób, że po poznaniu danej umiejętności odblokowuje się kolejna (lub kolejne) - tak więc aby poznać umiejętność Z, być może trzeba najpierw nabyć umiejętność Y, która wymaga X. Jakieś dwa lata temu wpadłem na pomysł, żeby pomysł ten przenieść do IT (programowania/hackingu/RE) - stworzyłem sobie ogólne drzewko rzeczy które chciałbym poznać (np. architekturę ARM), a potem oddzielne drzewko szczegółowe dla każdej umiejętności z drzewka ogólnego. Co ciekawe, kilku znajomych podłapało pomysł i kilka wieczorów spędziliśmy na projektowaniu takich drzewek i dyskusji jaka kolejność jest dla nauki danej rzeczy najlepsza (lub, jak nam się wydaje która będzie najlepsza ;>).

Ostatnio do pomysłu wróciłem, a to za sprawą kilku osób, które próbowały mnie podpytać czego się uczyć (np. w kontekście C++) i w jakiej kolejności. Pomyślałem, że fajnie byłoby stworzyć trochę takich drzewek i rzucić na sieć, ot tak aby początkujący (z danej tematyki) mieli (prawie) pełen obraz czego powinni się uczyć, i jaka jest proponowana (przez osoby które już przez to przeszły, oraz samych zainteresowanych) kolejność.
Niemniej jednak moja wiedza jest ograniczona, a mój punkt widzenia strikte przyczepiony do mnie (a więc zawężony do moich doświadczeń), więc projekt będzie od początku otwarty i będę zachęcał Was do udziału :)

przykładowe drzewko umiejętnościNa ilustracji po prawej (kilk to zoom) widnieje przykładowe (i tak należy to traktować - jako ilustrację, propozycję formy, a nie gotowe do użycia...) drzewko umiejętności dla języka skryptowego BAT (wybrałem BAT z uwagi na jego stosunkowy brak skomplikowania). Jak widać, nie jest to typowe "drzewko", a raczej (jak słusznie zauważył ged_ podczas dyskusji o pomyśle kilka dni temu) DAG (graf skierowany bez cykli).

W tym przypadku, pierwszą umiejętnością do pozyskania są oczywiście "Podstawy składni" - chciałbym zwrócić tu uwagę, że każda umiejętność i tak jest podzbiorem innych - np. w omawianym przypadku (Podstawy składni) mamy do poznania "kolejność wykonywania poleceń", "skoki bezwarunkowe i etykiety" oraz "komentarze".
Po nabyciu powyższych umiejętności można odhaczyć ten "node" i iść dalej do "Zmiennych środowiskowych".
W drugą stronę - jeśli chcielibyśmy się nauczyć "Funkcji", to musimy poznać przynajmniej "Parametry", "Zmienne środowiskowe" i "Podstawy składni".
Jak widać jest to trywialne :)

A teraz sprawy do przedyskutowania / to do:

1. W jakiej technologii prezentować najlepiej takie drzewka? Osobiście skorzystałem z OpenOffice.org Draw (link do .odg na końcu posta), ponieważ można to wyeksportować do PNG, PDF, itp. Natomiast gdyby chcieć zdynamizować trochę takie drzewa (np. po kliknięciu na dany node miałaby pojawiać się lista materiałów/artykułów/linków/książek/etc) to sprawa ogranicza się do PDF lub HTML. PDF nie koniecznie jest wygodny, a eksport grafów do HTML chyba też nie jest trywialny. SVG byłoby niezłe, ale nie każdy browser jeszcze to natywnie supportuje.

2. W drzewku szczegółowym (tj. o danym języku) - na ile rozbijać umiejętności? Czy tak jak na ilustracji jest OK? Czy może rozbić którejś node'y jeszcze bardziej? A może któreś połączyć? Można również iść o krok dalej i stworzyć jeszcze jeden poziom drzew dla sub-skilli - np. z "Podstaw składni" zrobić malutkie, kilku elementowe, drzewo?

3. Jak tworzyć takie drzewa? Osobiście proponuje spisać najpierw umiejętności i je opisać, a potem myśleć o tym którą "połączyć" z którą, etc. Ale równie dobrze można wziąć jedną umiejętność, taką która wydaje się nam najbardziej podstawowa, i wrzucić ją na górę drzewa, po czym wpisywać kolejne umiejętności które zależą od niej, i tak kontynuować w dół drzewa. A może jakiś mieszany pomysł?

4. Zapomnijmy na chwilę że przykładowe drzewko umiejętności jest rzeczywiście przykładowe. Co w nim zmienić? Jakie rzeczy dodać? Co usunąć? Co rozbić a co połączyć?

5. Jeżeli chodzi o ogólne drzewka, w którym np. dla programisty było by to drzewko z kolejnymi językami (Python, PHP, C++, Assembler, etc), narzędziami (obsługa różnych kompilatorów, debuggerów, profilerów), libami (STL, OpenGL, pthreads), algorytmami (np. wyszukiwanie drogi w grafie) i strukturami danych (linked lista, hash lista/hash mapa/słownik, octree etc)... no właśnie... czy rozbijać je ze względu na "profesje"? Osobne dla programisty, inne dla spec. od bezpieczeństwa, a jeszcze inne dla reversera? A może wziąć jakiegoś gosu i go przepytać w jakiej kolejności się uczył i na podstawie tego stworzyć np. "drzewo lcamtufa"? A może oba :) Taak, sądzę, że oba podejścia są dobre i się nie wykluczają.

Po RECON (pojutrze lecę w związku z nim do Montrealu) postaram się zaproponować kilka drzewek i będę zachęcał do ich przedyskutowania :)

Na koniec - link do "źródła" przykładowego skill tree: st_bat.odg (17 KB) - załóżmy, że plik jest na licencji GNU GPL 3 :)

Zapraszam do dyskusji!

Comments:

2010-07-05 09:29:21 = faramir
{
Jeśli chodzi o tworzenie drzewek, to może dobrym byłoby skorzystanie z jakiegoś programu do mapy myśli? Ostatnio widziałem Visual Understanding Environment (VUE; http://vue.tufts.edu/), który wydaje się, że jest dobry do tworzenia rozbudowanych drzewek. Dodatkowo w danym nodzie pozwala tworzyć poddrzewka, co chyba pozwala z jednej strony na pisanie "podstawy składni" a w środku kolejność w tych podstawach. Nie jest to oczywiście najlepszy program, bo z tego co widziałem, to nie pozwala na proste rozrzucenie wszystkich nodów by odpowiednio sam obliczył gdzie mają stać.. Ale może to być taki wskaźnik co i jak robić dalej.
}
2010-07-05 10:29:17 = przemoc
{
Te drzewka to świetny pomysł. Tak się zastanawiam czy czasem gdzieś to już nie funkcjonuje. To się nadaje wręcz na osobny serwis internetowy, którego treść choć (relatywnie) niewielka, mogłaby być dalece lepsza i ciekawsze od niejednej książki, a tym samym bardziej wartościowa.

Takie randomowe myśli w związku z tym.

Co do narzędzi to żadnych .odg i innych GUI-based pierdół za przeproszeniem, bo to jest counter-productive i fajne co najwyżej na raz, dwa. Potrzeba czegoś, co można by prosto opisać tekstowo, łyknęłoby i zrobiło grafik. Być może jakiś preprocessing do LaTeX+PGF/TikZ.

Co do wyjścia to wektorowe rozwiązania to jedynie słuszna. PDF byłby OK, ale SVG jest w porządku, bo każda współczesna normalna przeglądarka obsługuje ten format, więc jako output styka. Proszę, nie mów, że martwisz się np. o IE6. :)

Co do tworzenia, to po krótkim namyślę, dochodzę do wniosku, że najlepsze byłoby coś oparte na LOD, ale to wymagałoby dynamicznej formuły by wygodnie zaglądać do ewentualnych podgrafów w węzłach, czyli SVG i PDF odpadałyby. Najwygodniej byłoby mieć coś własnego (pewnie w Qt) z eksportem bieżącego wyniku do SVG chociażby. Kontrolowany poziom szczegółowości (i to nawet raczej właśnie na poziomie węzłów, a nie całego grafu) pozwalałby uniknąć przeładowania informacji w pierwszym rzucie, wciąż umożliwiając wchodzenie w głąb zagadnień. Taki C++... nie, boję się myśleć nad jego lasem tropikalnym.

Co do spektrum obejmowanego przez poszczególne drzewka, to byłbym przeciwny zawężaniu per profesja. Lepszym rozwiązaniem byłoby dodawanie hintów/tagów. Tu znów własna aplikacja byłaby najlepsza, bo pozwalałaby na jakieś podświetlanie czy nawet filtrowanie drzewa wg jakichś z góry przewidzianych helperów/przewodników.

Co do języków w ogóle. Takie drzewka naprawdę dobrze zrobione byłyby bezcenne. Mamy na początku podstawy składni i ewentualnie jej zaawansowane elementy (w przypadku bardziej złożonych języków). Dalej jednak istotna jest filozofia języka, którą można próbować przedstawiać m.in. za pomocą implementacji podstawowych idei w aspekcie danego języka. Oczywiście, można powiedzieć, że znając, dajmy na to, nieszczęsny wzorzec typu singleton, powinniśmy być w stanie zaimplementować go w każdym języku. Jest to jednak półprawda, bo bardzo łatwo zrealizować to źle, po prostu mało (lub niedostatecznie dużo) wiedząc o języku. Najważniejsza i zarazem najcenniejsza umiejętność do nabycia, to pisanie z duchem danego języka. Można znać składnię języka, rozumieć jego filozofię, a wciąż nie umieć pisać w pełni poprawnych (w warstwie syntaktycznej i semantycznej zarówno na poziomie kodu jak i projektowym) aplikacji.

Może ja po prostu za dużo bym chciał od takich drzewek. ;)
}
2010-07-05 10:46:51 = MSM
{
ad. 1 - Co do technologii tworzenia - ja osobiście lubię XSL, ale niezły hardkor by był napisać arkusz do drzewka :)

ad. 4 - pseudo OOP bym wykluczył poza główny nurt, bo obfuskować i interpretować kod można i bez tego.

i ogólnie - pomysł listy umiejętności jest ciekawy, ale są rzeczy "nie do opisania" - np. zrozumienie filozofii języka albo po prostu "obycie" w pisaniu.

PS. ale drzewko kolejnych języków to już perwersja. Drzewka mają być pomocą w nauce czy planem na całe życie ;)
}
2010-07-05 11:02:56 = Jurgi Filodendryta
{
Ciekawy pomysł. Podobne drzewka mogłyby pomóc planować naukę nie tylko języków programowania, ale i wielu innych umiejętności i zagadnień.
}
2010-07-05 11:03:17 = tanatos
{
Bardzo dobry pomysł. Czytając ten wpis od razu wpadł mi do głowy pomysł stworzenia serwisu, nazwijmy go: skilltrees.com, coś na kształt stackoverflow, gdzie użytkownicy zostawialiby requesty o skilltree na jakiś temat, a specjaliści z danej dziedziny tworzyliby te drzewka w jakimś intuicyjnym formularzu AJAXowym. Oczywiście podział na kategorie (nie tylko programowanie ale też np. elektronika, mechanika, elektryka, matematyka, biznes/giełda, prawo jazdy, lotnictwo... właściwie każda dziedzina zasługuje na interesujące skilltrees :) ) oraz "toplisty" najpopularniejszych skilltree w danej dziedzinie. Każdy mógłby dodawać "ulubione skilltree" do swojego konta. Moim zdaniem pomysł może się przyjąć, bo ludzie lubią mieć wypunktowane krok po kroku co mają robić. Można by też wstawić gdzieś obok reklamy google, rozpropagować serwis na digg'u czy slashdot'cie i serwis powinien na siebie zarobić :)
}
2010-07-05 11:16:34 = Makdaam
{
Jeżeli chodzi o technologię, to też skłaniam się do opisu tekstowego, w tym jakieś pola "required", tylko wtedy trzeba nadawać UUIDy każdej umiejętności. Co do przeróbki na grafikę to jest biblioteka graphviz, którą można wykorzystać do rozmieszczenia elementów lub wygenerowania grafiki rastrowej.

Może najpierw zebrać zestaw podstawowych umiejętności, które zawierałyby odnośniki do zasobów pozwalających na ich uzyskanie, a zupełnie osobno składać DAGi według uznania? Wtedy każdy mógłby złożyć własny graf nauki np. do jakiegoś certu, który niekoniecznie zgadzałby się w 100% z umiejętnościami potrzebnymi w naturze i kolejnością ich poznawania?
}
2010-07-05 11:17:11 = lRem
{
Do fafnastu różnych formatów można też eksportować DOT. Który jest cokolwiek przyjemniejszy niż ręczne rozmieszczanie node'ów... Gdyby ktoś nie znał: http://graphviz.org/
}
2010-07-05 11:23:54 = Gynvael Coldwind
{
Wyjątkowo pozwolę sobie odpisywać tematycznie, a nie nickami :)

@technologia wyświetlania
Zgadzam się (z tanatos/przemoc) że pomysł z serwisem internetowym sam się narzuca :)
W zasadzie pozwoliło by to na:
1. podejście w stylu wiki - czyli każdy może stworzyć lub zmodyfikować drzewo
2. idąc o krok dalej - dać możliwość "realizacji" danego drzewa, tj. user mógłby sobie odznaczać co już umie, czego się własnie uczy, jak tam mu idzie, etc; można by też "odznaczanie" na podstawie jakiś testów zrobić (luźna myśl)
3. dynamizacje wszystkiego (linki, etc)
(+ to co zostało przez was wymienione)

Aplikacji (jako .exe/ELF) bym raczej nie robił. Webowo da się to samo osiągnąć (javascript etc), a dostajemy od razu aspekt "multiplayer" prawie że gratis ;)

Co do SVG, to chyba na tym się skończy. To moim zdaniem kapitalne narzędzie, a IE6 miało już pogrzeb, więc... no zombie browser allowed ;p


@technologia tworzenia
Przemoc, imo masz rację co do nie-GUI. Jak przywróciłem ten pomysł do życia parę dni temu, to zacząłem właśnie od klepania w pythonie "kompilatora" takich grafów. Składnia wyglądała mniej więcej tak:
-- code --
title Skill Tree C++

section Język

node 0 SYNTAX Podstawy Składni
c FUNC_USE

node 1 FUNC_USE Korzystanie z funkcji
c VAR_INT
c VAR_FLOAT

node 2 VAR_INT Zmienne integer
c VAR_STRING
c VAR_INT_EX

node 2 VAR_FLOAT Zmienne float
c VAR_FLOAT_EX

node 3 VAR_STRING Łańcuchy znaków

node 5 VAR_INT_EX Zaawansowane detale integerów
desc Integer overflow i underflow, odejmowanie przez dodawanie, dzielenie przez mnożenie.
link http://jakis.tam.link.o.intach/
-- code --

(node poziom_na_ktorym_ma_byc_node identyfikator tytuł)

Póki co kompilator leży z uwagi na RECON, ale pewnie do niego wrócę za parę dni.
Po za tym mam pewną zagwozdkę

Jeśli chodzi o XSL, to mało miałem z nim do czynienia. Rzucę na to okiem potem ;)

@MSM Ad PS.
Szczegółowe drzewko ma pomóc w nauce. Natomiast przyznaje, że jeśli chodzi o ogólne, to ma być planem na dłuższy czas (może nie całe życie, ale jednak).
Oczywiście, nie chodzi mi o to aby zainteresowany takie drzewko realizował od A do Z. Ale zrealizowanie nawet wycinka takiego drzewka może być ciekawe i oszczędzić zastanawiania się "what next" na jakiś czas :)

@drzewka nie tylko do IT (via Jurgi / tanatos)
Popieram! :)

@reklamy google etc
Jeśli byłaby konieczność finansowego wsparcia projektu, to reklamy są dobrym pomysłem. Ale to baaardzo odległa przyszłość ;)

@drzewko BAT
Przyznaje że z tym pseudo OOP miałem zagwozdkę, i w pierwszej wersji było to na równi z interpreterem i obfuskacją. Tak więc przyznaje ci MSM rację i zmienię to w następnej wersji :)

@filozofia programowania, etc (via przemoc)
Bardzo słuszna uwaga. Doświadczenie, ogólne rozumienie danej działki, etc, nie koniecznie jest czymś co można zawszeć w drzewie. Pytanie czy można tak sformułować drzewo, żeby pomagało w nabyciu takowych meta-umiejętności ;)

@przemoc
Ja też bym dużo od nich chciał. Zacznijmy od początku i zobaczymy co z tego wyjdzie :)
}
2010-07-05 11:25:22 = Gynvael Coldwind
{
@lRem
Thx, wygląda kapitalnie! Rzucę potem okiem w licencje czy można to w miarę wygodnie używać i modyfikować :)
}
2010-07-05 11:27:33 = Gynvael Coldwind
{
@Makdaam
Również thx za zwrócenie uwagę na ten lib :)

Ah, takie oddzielenie warstwy grafu od umiejętności to kapitalny pomysł :)
Bardzo by to ułatwiło przerabianie drzew. Taaak, tak, stanowczo warte zastosowania :)
}
2010-07-05 11:46:15 = dd3s
{
Jak dla mnie jest to bdb pomysł. Pozostaje czekać na jakieś realizacje :)
BTW można by się pokusić o stworzenie jakichś achievement'ów - tych w stylu World of Warcraft'a. Np:: http://img820.imageshack.us/img820/6288/achivment.png
}
2010-07-05 12:18:30 = przemoc
{
@Gyn
"zawszeć"
Miej litość nad naszymi duszami. Zawrzeć! :)

"Pytanie czy można tak sformułować drzewo, żeby pomagało w nabyciu takowych meta-umiejętności"
Wierzę, że tak. Z drugiej strony, skoro mało która książka zajmuje się filozofią języka (już prędzej udają, że to robią), a mają do tego zdecydowanie lepsze warunki, to jestem świadom, że w przypadku drzewek będzie to zadanie ekstremalnie trudne i nie ma w tym przesady. Tu mogłyby być pomocne jakieś takie odatutorskie notki do węzłów. Komentarzy do węzłów chyba bym się bał, bo mogłyby iść w niewłaściwym kierunku. Za to te notki mogłyby być na zasadzie community wiki, ale koniecznie moderowane.

@graphviz, dot
Graphviza bezpośrednio nie używałem, ale dota i owszem, dlatego też tak chętnie bym go nie polecał. W graphvizie bodaj cały czas obecny jest absurd polegający na niemożności wygenerowania grafu w pamięci, bo tylko plik może być wyjściem. Dot natomiast jako narzędzie daje naprawdę niewielką kontrolę, która w malutkich grafach nie przeszkadza, a w większych doprowadza do furii. Próbujesz się wtedy ratować overlapami, packami, etc. co różnie się kończy. Nie mówię, że to zła droga z założenia, tylko jestem mocno sceptyczny wobec niej w przypadku skilltrees.
}
2010-07-05 12:19:25 = tanatos
{
Tak, tylko w jaki sposób te achievementy weryfikować.
Bo można by np. zrobić tak, że przy każdym elemencie drzewa byłby checkbox do zaznaczania "done" i robić ranking tych którzy mają najwięcej "done", jednak żeby weryfikować, czy ludzie sobie tego nie zaznaczają bezprawnie można by wprowadzić coś w stylu egzaminu: np. napisz poprawny kod w języku xyz wykonujący abc... :)
}
2010-07-05 12:41:49 = przemoc
{
@osiągnięcia
Hmm. Umiejętność napisania boot loadera, hypervisora, prostego systemu operacyjnego? Złożonego systemu operacyjnego? ;)
Czy bardziej na zasadzie znam, rozumiem, jestem świadom wad i zalet prostszych technik (jak NVI) czy tych ciut bardziej złożonych (jak CRTP)?

Pytanie retoryczne, ale to byłoby też dobre zwyczajnie do odświeżania sobie wiedzy o tym i owym. Nawet jeżeli znamy te advanced & sophisticated techniques, to przecież nie używamy ich nieustannie i o mniejszych lub większych detalach z czasem zapominamy. Normalna sprawa, jak to kiedyś Roland McGrath na IRC-u ujął:
"i do indeed forget and rediscover quarterly more about ptrace than most people ever know"
}
2010-07-05 12:59:03 = Makdaam
{
@osiągnięcia:
Osiągnięcia typowo growe sprawdzają się w scentralizowanym środowisku. Może zamiast tego zrobić testy przygotowywane przez poszczególnych użytkowników? Np. "Gynvael's seal of approval - exploiting stack overflows." znaczyłby sporo.

Centralizacja ogranicza o tyle, że w każdej dziedzinie potrzebne byłoby grono sprawdzonych ekspertów, przy rozproszonych egzaminach/osiągnięciach wszystko opierałoby się na reputacji układających test.

@graphviz
Z tego co pamiętam w graphvizie można wykorzystać jeden z kilku silników do zrobienia layoutu, a następnie odczytać położenie poszczególnych węzłów, oczywiście w samej bibliotece, nie wiem czy w samym narzędziu jest to możliwe.
}
2010-07-05 13:31:33 = przemoc
{
@graphviz
Jasne, że jest kilka "rozkładaczy" grafów, tyle że do skierowanych przeznaczone są praktycznie tylko trzy: dot, twopi i circo, z czego dwa ostatnie wypadają z oczywistych względów. Możesz użyć innych i odczytać ich położenia, ale mogą one być jeszcze bardziej nie po Twojej myśli. To jest problem graphviza, że nie ma jakiejś większej kontroli, a niestety chyba nie ma żadnej sensownej open-source'owej alternatywy. Tzn. pośrednio jest, zaszyta w KCachegrind, i IMO byłaby tu lepsza, tylko trzeba by ją najpierw wyekstrahować i do jakiegoś liba wrzucić. Że też nikt tego jeszcze nie zrobił, albo zrobił a ja o tym nie wiem.
}
2010-07-05 20:29:51 = Sokol
{
Zawsze mozesz uzyc Freeminda do zamodelowania takiego drzewko. Uzywam tego z powodzeniem do rozpisywania prostych i skomplikowanych rzecz (link http://freemind.sourceforge.net/wiki/index.php/Main_Page)
}
2010-07-06 00:14:32 = Gynvael Coldwind
{
@osiągnięcia
Przyznaje, że też myślałem o achivmentach, natomiast jak słusznie kilka osób zauważyło, trzeba by jakąś weryfikacje zrobić, najlepiej automatyczną. Oczywiście jest to do zrobienia w większości przypadków, natomiast jest to raczej temat "na później".
(btw dd3s ahahah jaki example achivement ;>>> uśmialem się ;>)

@graphviz & KCachegrind & etc
Rzucę na to okiem po reconie.

@Freemind
Też o tym myślałem, ale chyba nie do końca spełnia do założenia z mojego postu (np. opisy w node'ach). Po za tym nie pamiętam czy Freemind umie robić DAG czy tylko drzewa ;) (offtopic - do map myśli jednak niezastąpiona jest kartka papieru he he he)

@UML
Padł jeszcze pomysł (via darkjames) żeby pomyśleć o zastosowaniu UML / narzędzi do tworzenia UML. Też rzucę na to okiem po recon, natomiast hmmm... raczej chciałbym zostać przy tekstowym zapisie drzewek i automagicznym "kompilowaniu" do grafów.

@komentarze do node'ów
Dobry pomysł, na pewno warty przemyślenia ;)
(z moderowaniem też się zgadzam ;>)
}
2010-07-06 04:48:52 = gemGreg
{
gyn to ja sobie będę stackowal poziom pierwszy drzewka to mogę potem od razu skoczyć na poziom ostatni jak w diablo? :P
}
2010-07-06 10:59:10 = piatkosia
{
Nawiążę do gier RPG i tych drzewek.
Hmmm może kiedyś powstaną gry, które serio będą podnosić skill....
Tzn, umiejętności poznawanych przez bohatera gracz będzie mógł użyć w rzeczywistym życiu...
Dobra, schodzę na ziemię. De facto jak na razie nikt takiej gry nie wykodził. A szkoda, pomysły na fabułę tego typu można mnożyć.
}
2010-07-07 12:47:49 = mh
{
> Hmmm może kiedyś powstaną gry, które serio będą podnosić skill....
> Tzn, umiejętności poznawanych przez bohatera gracz będzie mógł użyć w rzeczywistym życiu...

Nie uczyłaś/-eś się programowania [1] na Colobocie? *g*

[1] http://pl.wikipedia.org/wiki/Kategoria:Gry_programistyczne
}
2010-07-07 13:42:44 = piatkosia
{
Nieee. BTW te gierki na wiki to chyba nie rpg.
}
2010-07-07 14:31:35 = Leming
{
Pomysł fajny. Nowy niekoniecznie :) http://regedit.gamedev.pl/produkcje/inne/SkillTree/
Takie drzewka mocno by pomogły w definiowaniu i stawianiu sobie konkretnych celów, ja jestem bardzo za :) Wygląda to obiecująco ;)
}
2010-07-07 15:06:37 = Jurgi Filodendryta
{
No to co, nowy startup? Ja trzymam kciuki. ;)
}
2010-07-09 08:44:57 = candm
{
Przydałoby mi się takie drzewko jeżeli chodzi o administrację serwerami itp :)
}
2010-07-16 01:34:06 = Gynvael Coldwind
{
@graphviz & KCachegrind & etc
Przejrzałem źródełka KCachegrind i się okazało, że on też używa graphviz:
--code--
_renderProcess = new QProcess(this);
if (_layout == GraphOptions::Circular)
_renderProcess->addArgument( "twopi" );
else
_renderProcess->addArgument( "dot" );
_renderProcess->addArgument(_exporter.filename());
_renderProcess->addArgument( "-Tplain" );

connect( _renderProcess, SIGNAL(readyReadStdout()),
this, SLOT(readDotOutput()) );
connect( _renderProcess, SIGNAL(processExited()),
this, SLOT(dotExited()) );

if (1) kdDebug() << "Running '"
<< _renderProcess->arguments().join(" ")
<< "'..." << endl;

if ( !_renderProcess->start() ) {
QString e = i18n("No call graph is available because the following
"
"command cannot be run:
'%1'
")
.arg(_renderProcess->arguments().join(" "));
e += i18n("Please check that 'dot' is installed (package GraphViz).");
showText(e);

delete _renderProcess;
_renderProcess = 0;

return;
}
--end of code--

Możliwości grpahviz muszę jeszcze przejrzeć (tylko sobie *nixa na VMcę muszę postawić najpierw; pewnie to poczeka parę dni, bo na warsztaty po weekendzie wyjeżdżam, a mam jeszcze trochę materiałów do skończenia).

@gemGreg
Nie. Tak. Jeszcze nie zdecydowałem ;p

@piatkosia
W sensie "klik" i np. właśnie poznałaś 1000 nowych słów po eng ?;)
Ciekawy pomysł, w kilku filmach / książkach już to było ;)

@Leming
A popatrz, nawet nie wiedziałem ;)

@Jurgi
;D Może ze startupem nie przesadzajmy, ale coś w tym kierunku chcę pchnąć ;)

@candm
:) Pewnie nie tylko tobie hehe ;)
}
2010-07-16 12:09:29 = przemoc
{
@Gyn
Wtopa. Faktycznie, nawet jest to jak byk napisane na stronie: http://kcachegrind.sf.net/
Sorry za kłopot, musiałem KCachegrind pomylić z czymś innym, co na pewno z niego nie korzysta. Tylko nie mogę skojarzyć z czym...
Jest jeszcze jedna aplikacja, o której zapomniałem, a którą warto w tym kontekście wymienić. Jest nią aiSee, program dostępny za darmo do użytku niekomercyjnego. Choć wiem, że i tak będziesz wolał raczej coś otwartego.
http://www.aisee.com/
http://www.absint.com/aisee/
}
2010-07-17 16:28:37 = Gynvael Coldwind
{
@przemoc
aiSee... hmm, rzucę okiem, thx ;) Nie widziałem tego chyba wcześniej.

Anyway, warsztaty na które miałem jechać jednak się nie odbędą, więc w następnym tyg. rzucę okiem na te graphvizy etc porządnie ;)
}
2010-07-25 15:48:57 = Kele
{
Calkiem niezly pomysl. Chyba musze sobie samemu cos takiego przygotowac ^^

@offtopic
Wyobrazilem sobie wykorzystanie tego do stworzenia jakiejs gry. "Gram Gynvaelem!" :D
}
2010-07-27 22:55:10 = Jack
{
Hi, są może jakieś nowe wieści? :)
Pięknie by się komponowało drzewko RE na stronie reverscraftu ;]
}
2014-01-27 10:56:41 = axl
{
@gynvael co się stało z tym pomysłem? Ostatnio zastanawiałem się nad SkillTree i przypomniałem sobie o Twoim wpisie.
}

Add a comment:

Nick:
URL (optional):
Math captcha: 7 ∗ 6 + 7 =