Next feature to implement in WindRide was integration with WindUp 0.7.x.
From now on, WindRide unleashes WindUp to scan all the deployments in the source server (EAP 5), and includes the WindUp report in WindRide report.
For more info about WindRide, see my previous blog post EAP config migration tool - WindRide 1.0.0 released.
As usually, you can download WindRide from the JBoss Maven Repository:
In the short term future, WindRide development will focus on improving basic configuration, by covering more configuration details of things like datasources, transactions, security, etc. [MIGR-156]
Mid term, it should support IBM WebLogic configuration migration. [MIGR-171]
Enjoy!
To use WindUp to create a report from an archive:
<!-- WindUp --> <dependency> <groupId>org.jboss.windup</groupId> <artifactId>windup-engine</artifactId> <version>0.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.jboss.windup</groupId> <artifactId>windup-rules</artifactId> <version>0.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.jboss.windup</groupId> <artifactId>windup-reporting</artifactId> <version>0.7.0</version> <scope>compile</scope> </dependency>
// WindUp final WindupEnvironment windupEnv = new WindupEnvironment(); //final WindupEngine windupEng = new WindupEngine( windupEnv ); final ReportEngine windupReport = new ReportEngine( windupEnv ); windupReport.process( depl, reportDir );
This is for czech students, hence in czech only.
Rád bych zde shrnul pár svých poznatků z vedení diplomek.
Než to zpracuju do podoby článku, dávám k dispozici pár instruktážních mailů.
Jsou psané na konkrétní situace, v článku (snad) později zobecním.
Diplomová práce je jednou z vašich posledních možností, kdy se budete moci věnovat přesně tomu, co si sami vyberete.
Dále je to vaše vizitka do budoucna - první zaměstnavatel se bude na 100 % zajímat, co jste jako diplomku dělali.
Navíc je možné, že se z diplomky stane úspěšný opensourcový projekt, případně na ní založíte start-up.
Proto:
Zadání obsahuje úkoly jak pro praktickou, tak textovou část práce. Mělo by z něj být jasné, co vlastně máte dělat.
Za účelem volnosti ve zpracování se někdy zadává vágně, ale je lepší, když se v závěru dá jasně posoudit, zda jste uspěli či ne.
Mělo by tedy obsahovat konkrétní cíle.
Nemusí však stanovovat, jak se těmto cílům dostanete. Proto se v zadání nelimitujte na podružné technologie a postupy (kromě těch, kterých se práce týká); spíše si určete mantinely.
Obvykle zadání vypadá nějak takto:
Při práci na prvním větším projektu se snadno stane, že se dostanete do tzv. paralýzy vyvolaná analýzou. To je stav, kdy máte natolik složité vstupní podmínky a natolik mnoho či naopak málo možností řešení, že se točíte na místě a výsledek je bobtnající chaos. Správná metodika práce je prevencí proti uvíznutí v takovém stavu. Metodika sestává z obecných pravidel.
TBD
Dělí se, jak znáte ze slohu ze základky, na úvod, stať a závěr.
V úvodu rozebíráte, o čem vlastně práce je. Tj. krátké (2-3 odstavce) pojednání o tématice.
Dále konkrétní věc, kterou chcete řešit, a proč - tj. proč je současný stav nevyhovující či co jde zlepšit.
Existující řešení - jak se problém řeší (či obchází)
Hrubý návrh vašeho řešení
Představení možných technologií
Stanovení kritérií pro výběr technologií, které použijete. Měly by korelovat se zadáním a s tím, co chcete zlepšit (rychlost, snadnost, škálovatelnost, rozšiřitelnost, ...)
Vyhodnocení kritérií a výběr technologií
Opět návrh, tentokrát detailnější, se zohledněním vybraných technologií.
Problémy při realizaci a jejich řešení
Vyhodnocení výsledků - srovnání s dosavadními kritérii podle nějakých kritérií.
Pokud se projekt uchytil v komunitě, uveďte - vypadá to dobře.
Možnosti dalšího vývoje - co byste hrozně rádi dodělali, ale nebyl čas; nicméně projekt je na to připraven (pluginovatelný nebo API, dobrá struktura).
Technické zdroje - bude zpracováno do dalšího postu:
>> Takže, vědecká práce má nějaké metodologie a postupy. Není třeba to
>> nějak extra hrotit, ale třeba výběr SVG vs. Canvas nabízí možnost
>> předvést, jak postupovat a zjednodušit si výběr.
>>
>> 1) Založ si nějaký textový soubor, třeba ve Wordu (nebo, jestli jsi
>> linuxák, tak LibreOffice, nebo Latex, ... ale klidně i plaintext, a
>> naformátuješ potom).
>>
>> 2) Do něj si napiš osnovu. Osnova se dělá tak, že si v onom Wordu
>> vytvoříš obsah automaticky generovaný z nadpisů (kdybys nevěděl jak,
>> zeptej se, nebo to určitě najdeš na netu), a pak začneš psát nadpisy
>> (za použití stylů "Nadpis 1", "Nadpis 2", ... a rovnou do odstavců
>> pod nimi i některé poznámky. Nějak takto:
>>
>> * Úvod
>> * cíle - co chceme dosáhnout
>> * motivace - proč to chceme dosáhnout
>>
>> * Analýza
>> * Jaký je současný stav - tj. jaká existují řešení - knihovny
>> řešící daný problém. Tuto rešerši jsem dělal já sám před lety, od té
>> doby asi bude hodně nového, takže se můžeš inspirovat, ale asi najdeš
>> kupu nových:
>>
>> * Jaké jsou technologie, které můžem použít. Sem právě patří SVG,
>> Canvas, pak možná můžeš zmínit Java applety, Flash, a vykreslování
>> pomocí <div> a <img> s průhlednými .gif nebo .png. Nebo pokud tě
>> ještě něco napadne.
>>
>> * Postup
>> Zde budou jednotlivé fáze vývoje:
>> Výběr technologií - kritéria, testy, výsledný výběr
>> Popis modelového (testovacího) problému (tj. např. "zkusíme
>> naprogramovat něco, co vykreslí mapu podobně jako Transport Tycoon,
>> nebo X-COM apocalypse, nebo Civilization 4, nebo Travian, atd...)
>> Dále návrh, jak se problém bude řešit, tj. např. pokud zvolíš
>> Canvas, tak bude potřeba kreslit odzhora dolu kvůli překryvům; pokud
>> budeš řešit kopce jako jsou v Transport Tycoon, pak je třeba vymyslet
>> algoritmus na výpočet, kde má daná dlaždice být vykreslena vzhledem k
>> výšce, atd.
>> Mezitím budeš kódit, takže ti budou přicházet další myšlenky
>> a problémy a jejich řešení, to vše si tam poznamenáš, později to
>> třeba stručně rozvedeš.
>>
>> * Závěr.
>> Zde je potom:
>> * ukázka, jak to ve výsledku funguje,
>> * zhodnocení, jak jsme splnili cíle práce,
>> * limity výskedku, tedy - co tvoje implementace neumožňuje, a
>> proč, a jestli se to dá dodělat, a to už přecházíme k ->
>> * možnosti dalšího vývoje - tj. co by se s tím dalo do
>> budoucna dělat (aneb "co bych býval udělal sám kdybych měl víc času"
>>
>> (Poznámka: Vědecké práce se píšou v množném čísle, i když ji píšeš
>> celou sám.)
>>
>> A teď konečně tomu SVG vs. Canvas:
>>
>> Obě technologie jsou dobré a obě můžou vyhovět. Takže jak už jsem
>> naznačil výše: stanov si kritéria, podle kterých vybereš. Navrhoval
>> bych:
>>
>> 1) Jednoduchost implementace. Prostě s čím se ti to líp naprogramuje.
>> SVG hodně usnadní věci tím, že má eventy jako HTML, tj. když máš
>> čtverec a v něm další, a jsou vnořené i jejich elementy, a klikneš na
>> ten vnitřní element, potom událost onClick probublá i k tomu
>> vnějšímu. Také když posuneš ten vnější, posune se i vnitřní. Atd.
>> Canvas zase asi umožnuje větší skopičiny - různé naklápění, barevné
>> filtry, 3D vykreslování, video, průhlednost, atd. atd.
>>
>> 2) Technické limity. Například je dost důležité, abys mohl po
>> vykreslení "mapy" také zjistit, kam v ní uživatel kliknul. Kdysi to
>> Canvas neumožňoval, teď snad už bude. SVG to umožňuje, posílá
>> normální JavaScriptový eventy, stejně jako v HTML - onclick objekt,
>> který má vlastnosti jako srcElement atd.
>>
>> 3) Výkon. Pokud budeš vykreslovat celou obrazovku prohlížeče na
>> monitoru 1920x1200, tak tam budou tisíce položek. Je třeba zkusit,
>> jestli to dokáže prohlížeč nějak rozumně rychle vykreslovat, a to i s
>> animacemi.
>>
>> 4) Podpora v prohlížečích. Kdysi SVG podporoval jen Firefox. Teď už
>> to snad budou všechny hlavní prohlížeče. Canvas je myslím jako
>> součást HTML 5 podporovaný ve všech nových.
>>
>> To by asi mohlo stačit.
>> Ta kritéria zhodnotíš nějakým jednoduchým testem - jednoduchou
>> stránkou, kde zkusíš danou věc. Co nejjednodušeji. Nejdelší bude asi
>> ta 3), kde bude nutné vykreslit těch X * Y buněk, a pak je nějak
>> posunovat - ale i to by mělo být tak na 2 dny (vypadals jako
>> ostřílený webař, tak možná i za den
>>
>> No a výsledky si oznámkuješ a na základě toho se rozhodneš. Kdyby to
>> vyšlo nastejno, tak si prostě hodíš mincí Ale ta 1) by to měla v
>> tom případě rozhodnout.