tag:blogger.com,1999:blog-79341907579888529002024-02-19T18:06:39.849+01:00java dolgokjava komponensek, alkalmazások, oldalak stb. leírása, tesztje, kritikájajóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-7934190757988852900.post-52163844287803160912008-05-30T10:32:00.001+02:002008-05-30T10:32:00.300+02:00négyrétegű architektúra<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.manageability.org/graphics/cache-tier.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 454px; height: 295px;" src="http://www.manageability.org/graphics/cache-tier.jpg" alt="" border="0" /></a>A <a href="http://www.manageability.org/blog">manageability </a>blogban olvastam egy <a href="http://www.manageability.org/blog/stuff/cache-tier-architecture">érdekes post</a>ot a rétegelt architektúrákról. A szerző a két vagy háromrétegű architektúra helyett négyrétegűt ajánl (lásd ábra). Az értelmét ennek az egésznek a <a href="en.wikipedia.org/wiki/Service-oriented_architecture">SOA </a>adja. Vannak régi rendszereink, amiket webszolgáltatásokba, vagy webes interfészekbe csomagoltunk. Ezektől adatokat igényelünk, de mindegyik más rendszer, így más a sebessége. Emiatt (a szerző szerint) szükség van a késleltetéseket kezelő Latency Engine-re. Ez hangolja össze az adatokat, és türelmesen vár, amíg minden beérkezik.<br />A késleltetés kezelésére többek közt azért sincs más módunk, mert a régi, működő rendszerekbe nem nyúlhatunk bele.<br />Az eredeti post egyébként <a href="http://www.infoq.com/presentations/services-without-soap-yahoo">Mark Nottingham Leveraging the Web for Services at Yahoo</a> előadásából született. Én inkábbb a postot ajánlanám kezdetnek, mivel sokkal rövidebb.jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0tag:blogger.com,1999:blog-7934190757988852900.post-61173735716493593702008-05-27T16:54:00.004+02:002008-05-27T16:58:09.771+02:00rémi forax a parametrizált típusokról<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://weblogs.java.net/images/people/remi_forax.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 167px; height: 115px;" src="http://weblogs.java.net/images/people/remi_forax.jpg" alt="ő itt remi forax" border="0" /></a><a href="http://weblogs.java.net/blog/forax/archive/2008/05/parameterized_t.html">Rémi Forax blogjában arról ír</a>, hogy mi a probléma a típusparaméteres tömbökkel, és miért nem megengedett a definíciójuk. De nem csak a problémát veti fel: leírja, hogy a későbbiekben a nyelvi specifikációt hohyan lehetne átírni, hogy minden jó legyen.<br /><span style="font-weight: bold;">Érdekes és rövid post</span>.jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0tag:blogger.com,1999:blog-7934190757988852900.post-33394418729923999792008-05-21T11:39:00.001+02:002008-05-21T11:39:00.965+02:00újgenerációs java plugin technologyPár napja az RSS olvasóm a <a href="https://jdk6.dev.java.net/plugin2/">next-generation java plugin technology</a> bejegyzésektől volt hangos, utánenéztem hát, hogy mi is ez pontosan. Természetesen a <span style="font-weight: bold;">JavaSE 6 legújabb update</span>-jéről volt szó, vagyis arról, hogy milyen új funkciókat hozott magával. A release notes elolvasása után ezeket találtam a legfontosabbnak (illetve a leglátványosabbnak):<br /><ul><li>Az <span style="font-weight: bold;">appletek az új pluginnel kiemelhetők a browser ablakból</span>, azaz egy kólön ablakot kaphatnak. Túlzottan nem mennék bele, azt ki lehet próbálni. Akit érdekel, hogy mi történik a sessionnel, az olvashat róla a <a href="https://jdk6.dev.java.net/plugin2/">java.net fórumon</a>.</li><li>Az appletek betöltése alatt látható <span style="font-weight: bold;">kép lecserélhető </span>(bár kinek ne tetszene a narancssárga kávé...). Ehhez az applet elem új paraméterét (centerimage) használhatjuk (ugyanúgy, mint a többbit: egy <span style="font-family: courier new;">param</span> elemben).</li><li><a href="http://java.sun.com/developer/technicalArticles/Programming/jnlp/">JNLP </a>támogatás. Az appleteket <span style="font-weight: bold;">közvetlenül JNLP állományokból </span>futtathatjuk - azaz az appletekből úgymond Java webstart alkalmazás lesz.</li></ul>Az új lehetőségeket kitűnően bemutatják a <a href="http://download.java.net/javadesktop/plugin2/wwj/">NASA World Wind Java</a> oldalon található appletek.jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0tag:blogger.com,1999:blog-7934190757988852900.post-87087799073466353612008-05-17T22:08:00.002+02:002008-05-17T22:08:00.853+02:00pénzdíjas Sun verseny diákoknak - érdemes<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.sun.com/images/l1/l1_2_mysun-connection.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://www.sun.com/images/l1/l1_2_mysun-connection.jpg" alt="" border="0" /></a>A Sun <a href="http://www.sun.com/products-n-solutions/reviews/studentzone/contest.jsp">pénzdíjas versenyt indított</a> diákoknak. A feladat egyszerű: véleményt alkotni az OpenSolarisról vagy a NetBeans 6.1-ről, és közzétenni (természetesen angol nyelven). A határidő <span style="font-weight: bold;">június 6</span>.<br />A <span style="font-weight: bold;">díjak</span>: 250 dollár nagydíj, illetve 5*100 dollár kisdíj. Erre rájön még a saját blog/honlap megnövekedett forgalma, ugyanis <span style="font-weight: bold;">minden beadott művet</span> a Sun honlapján közzé tesznek. Ráadásul ha nagyon jól sikerül, <span style="font-weight: bold;">fel is figyelhetnek </span>Rád.<br />A téma gyakorlatilag bármi lehet: tipp, pluginfejlesztés, benchmark stb. Csak a fantázia szab határt az ötleteknek.<br />Mindenkinek <span style="font-weight: bold;">érdemes megpróbálni</span>, aki viszonylag jól ír angolul. Én biztosan megpróbálom. Ha meg nem is gazdagszom, veszíteni biztos nem fogok.<br />A verseny <a href="http://www.sun.com/products-n-solutions/reviews/studentzone/contest.jsp#rules">szabályai</a>.jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0tag:blogger.com,1999:blog-7934190757988852900.post-18298618981747115572008-05-15T10:46:00.004+02:002008-05-15T21:48:53.219+02:00mi várható a Java7-ben?<div style="text-align: justify;">A Java rajongók népes tábora izgatottan várja, milyen újdonságokat hoz majd a Java7. Nézzük meg, mikről hallottunk eddig.<br /><br /><ol><li><span style="font-weight: bold;">Mapekre alkalmazható for ciklus.</span> A Java5 újdonsága volt a foreach szerű for ciklus. Ezzel egyszerűen járhatjuk be a kollekció<span style="display: block;" id="formatbar_Buttons"><span class="on down" style="display: block;" id="formatbar_Bold" title="Félkövér" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 3);ButtonMouseDown(this);"></span></span>kat, pontosabban az Iterable interfészt implementáló osztályokat. Sajnos a Map-re, mit speciális kollekcióra nem igazán lehet alkalmazni ezt a konstrukciót: vagy a kulcsok kollekcióját, vagy az elemekét járjuk be. A Java7-ben valószínűleg a for ciklust már Mapekre is használhatjuk, hasonlóan a PHP-hoz, valahogy így:<br /><br /><span style="font-family:courier new;">for(String key, String elem: map){</span><br /><span style="font-family:courier new;">...</span><br /><span style="font-family:courier new;">}</span><br /><br />Ezzel a ciklussal egyidejűleg járhatnánk be a kulcsokat és az elemeket, leegyszerűsítve a Map-ek bejárását.</li><li><span style="font-weight: bold;">Típusfelismerő for ciklus.</span> Ez az újítás szintén a foreach ciklushoz kapcsolódik. Egy kollekció bejárásához jelenleg szükségünk van egy változóra, amelyben az aktuális elemet tároljuk. Azaz mindig meg kell adnunk a változó nevét és típusát. Ez az újítás egy kicsivel leegyszerűsítené a dolgunk azzal, hogy a típusmegadást elhagynánk. Ezt a fordító találná ki helyettünk a kollekció objektum típusából.<br /></li><li><span style="font-weight: bold;"><a href="http://blogs.sun.com/andreas/resource/superpackage_strawman.html">Szupercsomag</a>.</span> A szupercsomag egy teljesen új nyelvi konstrukció lenne. Lányege, hogy a csomagokat egy logikai egységbe szervezhetnénk, amelyen belül módosíthatnánk az egyes osztályok láthatóságát. Például megmondhatnánk, hogy egy adott csomag osztályait csak a szupercsomag többi csomagjának soztályai láthatják. Ezzel új lehetőségeket kapnánk az adatbezárás tökéletesebb kezelésére.</li><li><span style="font-weight: bold;">A C# properyjeihez hasonló konstrukció.</span> Ezzel sokkal természetesebben érhetnénk el az egyes adattagokat (get és set metódusok hívogatása helyett), de az osztályok belső állapotához sem kellene nagyobb hozzáférést biztosítanunk. <span style="font-family:courier new;">x.getField()</span> helyett <span style="font-family:courier new;">x.field</span>-et írhatnánk. Aki ismeri a C#-ot (vagy a <a href="http://www.blogger.com/groovy.codehaus.org/">groovyt</a>), az sejtheti, mire számíthatunk.</li><li><span style="font-weight: bold;">A dátum API cseréje.</span> Erről korábban már írtam egy <a href="http://javalinkek.blogspot.com/2008/05/joda-time-s-java-api.html">postot</a>.</li><li><span style="font-weight: bold;">A <a href="http://www.infoq.com/news/2007/07/concurrency-java-se-7">konkurencia kezelése</a> a nyelv részévé válhat</span>, azaz kulcsszavakat vezethetnek be a többszálúság kezelésére.</li></ol>A fentieken kívül még rengeteg dologról hallani, viszont ezek még nem mind kiforrottak, csak egyszerű lehetőségek. A szóba kerülő újításokról bővebben <a href="http://www.cafeaulait.org/slides/nycjava/java7/Java_7_and_Beyond.html">ezen a linken</a> lehet tájékozódni. Én a fentieket találtam a legérdekesebbnek.<br /><br /><br /></div>jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0tag:blogger.com,1999:blog-7934190757988852900.post-69581527641926333442008-05-12T20:53:00.003+02:002008-05-15T21:49:40.026+02:00joda time és a Java APIRégóta tudjuk, hogy <span style="font-weight: bold; font-style: italic;">a Java dátumkezelése javításra szorul</span> (a <span style="font-family:courier new;">java.util.Date </span>osztály már mejdnem minden metódusa használaton kívül helyezett, nem véletlenül). Mikor komolyabb dátumkezelésre volt szükségem, akkor találkoztam a <a href="http://www.joda.org/">JodaTime </a>nevű open source komponenssel. Most azért találkoztam vele újra, mert szóba került, hogy a Java7-be bekerül a dátum keretrendszer.<br />A JodaTime teljes egészében a dátumkezelésre összpontosít (bár vannak más joda szoftverek is). Természetesen mindent tud, amit a Java <span style="font-family:courier new;">Date </span>és különböző <span style="font-family:courier new;">Calendar </span>osztályai, és valamennyire kompatibilis is azokkal. A <span style="font-family:courier new;">Date </span>osztály akkor vált elavulttá, mikor a dátumkezelés nemzetköziesítése szükségessé vált. Ennek támogatására új osztályokat vezettek be. A dátumkezelés osztályainak a többszálúsággal is meg kellett küzdeniük, azaz nem módosítható objektumokra volt szükség. A JodaTime szintén felkészült ezekre a kihívásokra, de jóval többet is tud. Nézzük, mik ezek pontosan:<br /><br /><ul><li>Dátumok kezelésének kifinomult támogatása. Erre a <span style="font-family:courier new;">DateTime </span>osztályt használhatjuk. Mindetn tud, ami a dátumkezeléshez szükséges. A dátumrengszeret (gregoriánus, juliánus stb.) egy másik osztály, a <span style="font-family:courier new;">Chronology </span>segítségével állíthatjuk be. Számos <span style="font-family:courier new;">Chronology </span>elkészült, illetve újak készíthetők. Mint majdnem minden osztály, a <span style="font-family:courier new;">DateTime </span>is nem módosítható, és hogy a leszármazottak se viselkedhessenek másképp, egyszerűen nem származtathatunk alosztályokat belőle.<br /></li></ul><ul><li>Időtartamok kezelse. Egy időtartam valamennyi ezredmásodpercet jelent, ahogy a neve is mutatja. Kezelésére a <span style="font-family:courier new;">Duration </span>osztály használhatjuk.</li><li>Intervallumok beépített kezelése az <span style="font-family:courier new;">Interval </span>osztállyal.</li><li>Parciális dátumok kezelése. Egy parciális dátum olyan dátum, amelynek nem ismerjük minden részletét. Ha például nem ismerjük az időzónát, akkor lokális dátummal van dolgunk. Ha nem ismerjük a dátumkomponenst, akkor egy időt reprezentáló objektumunk van. A parciális dátumok kezelését a <span style="font-family:courier new;">Partial </span>osztállyal valósíthatjuk meg.</li><li>Több nap, hét, óra, perc stb. együttes kezelése. Ez hasznos lehet például akkor, ha öt napor (a munkanapokat) együttesen akarunk kezelni.</li><li>Előre elkészített <span style="font-family:courier new;">Comparator </span>a dátumok hasonlításához.</li></ul>A JodaTime mögött <span style="font-weight: bold;">több éves fejlesztés</span> áll. Ebből köetkezően egy nagyon kiforrott API-val van dolgunk, ami tényleg megérett arra, hogy a Java API részévé váljon. Kezelése nagyon egyszerű, ebben sokat segít a jó dokumentáció is. Nem kell attól sem tartanunk, hogy a jelenlegi Java dátumkezelés buktatóival találkozunk. Összességében érdemes már most áttérni a JodaTime használatára, ha komoly dátumkezelésre van szükségünk.<br />A komponens honlapján több bemutató példa is található, érdemes átnézni őket. Az API használatát viszonylag gyorsan el lehet sajátítani.jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0tag:blogger.com,1999:blog-7934190757988852900.post-26629346502477095032008-05-10T08:47:00.001+02:002008-05-10T08:47:00.639+02:00open source a JavaOne-onEgy nappal az <a href="http://javalinkek.blogspot.com/2008/05/mi-baj-open-source-szal.html">open source hibát boncsolgató</a> bejegyzésem után <span style="font-weight: bold;">Simon Phipps</span> and <span style="font-weight: bold;">Patrick Finch </span>JavaOne előadásának <a href="http://blogs.sun.com/javaone2008/entry/simon_phipps_and_patrick_finch">összefglalója </a>megjelent a <a href="http://www.sun.com/">Sun </a>blogoldalán. Írnak benne az open source történetéről, természetesen a sunos ősőkre nagyon büszkék. Ezután áttérnek a jelenre, de a jövő a legérdekesebb. Megemlítik ugyanis, hogy a <a href="http://www.gartner.com/">Gartner </a>előrejelzése szerint<span style="font-weight: bold;"> 2010-re a szoftverek 90%-a</span> open source alapokon fog állni (azaz pl. open source komponensekből építik fel). Remélhetőleg a fennmaradó 2 év alatt javul a nyíltforrású színvonal. A cikk végén beszélnek a jövőbeli khívásokról (licenszing stb.)<br />Érdekes cikk, hiteles szerzők. <span style="font-weight: bold;">Érdemes elolvasni</span>.jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0tag:blogger.com,1999:blog-7934190757988852900.post-82438327981263032182008-05-06T21:50:00.000+02:002008-05-08T22:42:44.210+02:00mi a baj a open source-szal?Az <a href="http://www.opensource.org/docs/definition.php">open source</a> szoftver alapvetően egy kedves ötlet, és lehet jól csinálni. Magam is nagyon szeretem az ingyenes, forrásböngészhető dolgokat - főleg az ingyenesség miatt (de ha éppen nincs kedvem a forrást bogarászni, akkor már sokszor bajban vagyok - és ennek később még fontos szerepe lesz). Szép dolog az, hogy valakik akár lelkesedésből összeraknak egy alkalmazást és minden juttatás nélkül átadják azt másoknak, és még azt is megengedik (amit sok programozó nehezen visel), hogy idegenek piszkáljanak a kódjukba - de sajnos néha a lelkesedés is elfogy. Ebben a postban azt nézem meg, mitől rossz egy open source komponens.<br /><ol style="text-align: justify;"><li><span style="font-weight: bold;">Elhaló projektek.</span> Sok open source projekt az idő előrehaladtával egyszerűen elhal. Nem mondom, hogy ez pénzes szoftverekkel nem esik meg, de ott más a helyzet. Ha egy fizetős dolgot kezdek használni, előtte jól megnézem: vannak-e bugok; várható-e, hogy kijavítják őket; lesz-e a problémáimmal kihez fordulnom. Megnézem, mire költöm a pénzt. Az ingyenes dolgokkal más a helyzet. Azokra könnyebb ráállni. Persze felteszem ilyenkor is a fenti kérdéseket, de a válaszoknál megengedőbb vagyok. Ráadásul az open source projektek ezekre a dolgokra akkora hangsúlyt nem is fektetnek. Gyakran csak az oldalfrissítésük idejéből derül ki, hogy a projekt már meghalt.</li><li><span style="font-weight: bold;">Hiányos dokumentáció.</span> Ez a legkényesebb kérdés. Nagyon sok open projektből egyszerűen kifelejtik még a kommenteket is, talán szándékosan, és semmilyen más dokumentációt nem készítenek. Egyszer találkoztam a <a href="http://jasperreports.sourceforge.net/">JasperReposts</a>-szal. Semmiféle leírást nem sikerült találnom - csak pénzért. És ez a legmocskosabb az egészben. Mintha azt mondanák: "Ingyen megkapod, de használni úgysem tudod." Sajnos rengeteg projekttel van ez így (lásd még <a href="http://ws.apache.org/axis2/1_3/api/index.html"><span style="font-weight: bold;">axis2</span></a> doksi stb.). <a href="http://blogs.ittoolbox.com/eai/leadership/archives/why-open-source-software-sucks-2035"><span style="font-style: italic;">"</span><span style="font-style: italic;" name="intelliTXT" id="intelliTXT">A simple truth is that writing documentation does not make endorphins flow."</span></a></li><li><span style="font-weight: bold;">Vállalati rettegés.</span> Sok vállalat egyszerűen fél az open source komponensek bevetésétől. Részben ezért is a komponens fejlesztői a felelősek: a hiányos dokumentációk csak erősítik ezt a félelmet. A másik ok a tapasztalatok hiánya. Sokszor azok a fejlesztők sem írják le a tapasztalataikat, akiknek sikerült valamit kihozniu egy adott eszközből. Próbálj csak a <a href="http://www.hibernate.org/">hibernate </a>és az axis2 kapcsolatáról megtudni valamit! mindenhol ugyanazok a kérdések fogadnak - válaszok nélkül. A válaszok tudói egyszerűen elbújnak a vilá elől.</li></ol><div style="text-align: justify;">Az open source legnagyobb problémáit a fentiekben látom.<br />A kedvenc open source postom: <a href="http://www.bleepsoft.com/tyler/?itemid=47">i hate open source, a sort of.</a></div>jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0tag:blogger.com,1999:blog-7934190757988852900.post-31173397596758247742008-05-01T12:13:00.000+02:002008-05-08T22:43:06.025+02:00forráskód keresők párbaja<div style="text-align: justify;">A forráskód keresők olyan szolgáltatások, amelyekkel más programozók kódjai közt kereshetünk a nekünk fontos szempontok szerint. <span style="font-weight: bold;">Azért találták ki őket, hogy felgyorsítsák a szoftverfejlesztést</span>. Ugyanis ha egy programozó könnyen megnézheti más kódját abban a témakörben, amiben dolgozik, abból ötleteket meríthet, kevesebbet kell agyalnia és gyorsabban halad. Open source kódokat akár teljes egészében át is vehet.<br />Manapság több ilyen szolgáltatást is találhatunk. Ebben a postban azt tekintem át, hogy melyik kereső támogatja leginkább a fejlesztés hatékonyabbá tételét. Ehhez az szükséges, hogy minél több nyelven, minél több kód között lehessen keresni, és a találatok a lehető legpontosabbak legyenek. A szolgáltatásokat ezek szerint hasonlítom össze.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.google.com/intl/en/images/codesearch_logo.gif"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 149px; height: 60px;" src="http://www.google.com/intl/en/images/codesearch_logo.gif" alt="google code search" border="0" /></a><a href="http://www.google.com/codesearch">Google Code</a>: A google hozza a szokásos minőséget. Azt mondják, a <a href="http://optimalizalas.info/jelensegek/egyedi-design.php#">megszokott felület vonzza az embereket</a> - ha ez igaz, akkor mindenki ezt a keresőt használja. De nem csak emiatt. A keresőben szinte az összes fontosabb nyelvet kiválaszthatjuk. A kereshető kódsorok mennyisége sem elhanyagolható, valószínűleg <span style="font-weight: bold;">több milliárd</span>. Az egyszerű kereséseken kívül (amikben használhatunk <a href="http://www.szabilinux.hu/verhas/perl/rege.html">reguláris kifejezéseket</a>) bonyolultabbakat is írhatunk. Megmondhatjuk, milyen legyen a licensz (ez akkor fontos, ha a kódot fel akarjuk használni úgy, ahogy van), mi legyen a csomagnév stb. Ez a kereső ennyit tud, de ez tökéletesen elég is. Ha valaki ráadásul google rajongó is, akkor biztosan ezt választja.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.krugle.org/perl/hub_logo.pl"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 130px; height: 42px;" src="http://www.krugle.org/perl/hub_logo.pl" alt="krugle public kódkereső" border="0" /></a><br /><a href="http://www.krugle.org/">Krugle Public</a>: A nevéből gondolom egyértelmű, hogy ez a kereső nem a teljes változat, csak az enterprise edition kicsit lebutított testvére. De hogy miben butították le, az már jó kérdés. <span style="font-weight: bold;">2,5 milliárd kódsor</span> közt kereshetünk 50 programozási nyelven. Megadhatjuk, hogy a kód melyik részében (komment, definíció stb.) akarunk keresni, és azt is, hogy milyen projektben. Egyszóval ez a kereső mindent tud, amit kell. De itt még nincs vége: egyidejűleg kereshetünk kapcsolódó szakmai cikkek, és projektek között. Azaz többet kapunk, mint amit kértünk. A felület is tetszetős, egyszóval érdemes ezt használni. Ha nem vagy google rajongó, talán ezt fogod választani.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://media.blackducksoftware.com/koders/bds/logo_big_tag_bd.gif"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 151px; height: 41px;" src="http://media.blackducksoftware.com/koders/bds/logo_big_tag_bd.gif" alt="koders open source kódkereső" border="0" /></a><a href="http://www.koders.com/">Koders</a>: Egyik személyes kedvencem a <a href="http://www.blackducksoftware.com/">blackducksoftware </a>keresője. Amikor hibernate-l dolgoztam, és a hiányos dokumentáció miatt nem tudtam semmit, itt néztem meg a forráskódot. Ebben a keresőben is rengeteg nyelv között kereshetünk, a kódsorok száma majdnem <span style="font-weight: bold;">800 millió</span>. A nyitóoldal szerint naponta 30000 programozó használja, valószínűleg nem véletlenül. Itt is megadhatjuk a licenszet, és kereshetünk a kód különböző pontjain. Viszont ehhez speciális formulákat kell használnunk. Például osztálydefinícióban kereséshez: cdef:Shape. A formulák viszont adják magukat, így egy perc alatt megtanulhatók. A kereső gyors (sebességben nem marad el a google-től), felülete egyszerű és szép.<br />A fentiek alapján a győztes a Krugle kereső, de mindenki döntse el magának, hogy neki melyik tetszik a legjobban. Az én személyes kedvencem a Koders (azaz nálam a <span style="font-weight: bold;">google nem került a top 2-be</span>).</div>jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0tag:blogger.com,1999:blog-7934190757988852900.post-3798058897691753072008-04-29T09:14:00.000+02:002008-05-08T22:43:20.777+02:00cyvis - szoftver komplexitás elemző<div style="text-align: justify;">A <a href="http://cyvis.sourceforge.net/">cyvis </a>egy <span style="font-weight: bold;">Java </span>alapú <span style="font-weight: bold;">open source</span> szoftver komplexitás elemző. A hivatalos oldalon ezt írják róla:<br /><blockquote><span style="font-style: italic;">"CyVis collects data from java class or jar files. Once the raw data is collected, certain metrics like number of lines, statements, methods, classes and packages are obtained. Other metrics like cyclomatic complexity etc. are also be deducted."</span><br /></blockquote>Azaz: az alkalmazás különböző <a href="http://www.cs.uu.nl/wiki/Swe/SoftwareMetrics">szoftver metrikákat</a> számít ki, például: <a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity">ciklomatikus komplexitás</a> (ez aegyjából azt méri, hogy mennyire összetett a kód a vezérlési szerkezetek mélységének, egymásban ágyazásának stb. szempontjából). Ezekből aztán <span style="font-weight: bold;">lehet következtetni a szoftver minőségére</span>. A fontosabb metrikákat a kód alaptulajdonságaiból számítja ki (sorok száma, metódusok száma, metódushívások száma) a fontosabb metrikákat.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhshNNspFATH4OtneOtU96KB-uJuDsumPEqsZBgiWPSL0ZrAzwXWBQyDHZ3tNiMiPRRIdhoDZVplkfQOPQF2MOmlXOsAmsk6_VkK2VlJLjnut983usO62VvK1NQoBrVgWJcA1c_vOr6xJI/s1600-h/cyvis.JPG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhshNNspFATH4OtneOtU96KB-uJuDsumPEqsZBgiWPSL0ZrAzwXWBQyDHZ3tNiMiPRRIdhoDZVplkfQOPQF2MOmlXOsAmsk6_VkK2VlJLjnut983usO62VvK1NQoBrVgWJcA1c_vOr6xJI/s200/cyvis.JPG" alt="" id="BLOGGER_PHOTO_ID_5197912006419301250" border="0" /></a>A cyvis.jar-t f<span style="font-weight: bold;">uttathatjuk önállóan, és kódból is</span>. Ha önállóan futtatjuk, akkor létre kel hoznunk egy új projektet, majd ahhoz hozáadni jar, illetve class fájlokat. A cyvis ezután elvégzi az elemzért, amit grafikusan megjelenít. Az eredményben egyszerűen böngészhetünk, és a színkódok egyérteművé teszik, hol kell javítani a kódon. Pontosabban nem kell, de tanácsos, mivel a rossz metrika értékek valamilyen hibát jeleznek.<br />Összességében a programot <span style="font-weight: bold;">megéri használni</span>, mivel egyszerű, és érdekes tancsokat ad. Én többször is felhasználtam, és sokkal egyszerűbb. átláthatóbb és könnyebben változtatható kódot kaptam - viszonylag nagy projektben. Csak ajánlani tudom. Nálam ötös.</div>jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0tag:blogger.com,1999:blog-7934190757988852900.post-56165179004825390152008-04-25T20:20:00.000+02:002008-05-08T22:43:36.395+02:00java tippek blogja<div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHuu1gv7rJhkyluvLGQYv9u6D-e5gOunOPWsxP1hnZONNyw_oJoBS60T0S3muoNu5lr0Ryoz3e0Upl4_uOnXtBtaSyJOUQt8Tr7VDoTbXSTYszO5coxbLdRlAUzmMyo2wrR_9rW8SJwAo/s1600-h/javatips.JPG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHuu1gv7rJhkyluvLGQYv9u6D-e5gOunOPWsxP1hnZONNyw_oJoBS60T0S3muoNu5lr0Ryoz3e0Upl4_uOnXtBtaSyJOUQt8Tr7VDoTbXSTYszO5coxbLdRlAUzmMyo2wrR_9rW8SJwAo/s200/javatips.JPG" alt="" id="BLOGGER_PHOTO_ID_5197705349772886898" border="0" /></a><a href="http://www.java-tips.org/blog/">www.java-tips.org</a>:<br />Ahogy a címéből is látszik, a blogon <span style="font-weight: bold;">Javával kapcsolatos tipp</span>eket olvashattok (természetesen angolul). Ami tetszik a blogban, az az, hogy a postokon látszik, hogy <span style="font-weight: bold;">Wendigo33</span> mennyire ért a nyelvhez. Ezen kívül előnyös az, hogy a postok rövidek, tömörek, de mégis szájbarágósak. Minden bejegyzés nagy részét egy példa adja. Ezek a tulajdonságok megkönnyítik a nyelv megtanulását. Mindig egy témára összpontosítanak, zavaró tényezők nélkül. A blog ráadásul gyakran frissül, szinte minden nap új tartalom kerül fel.<br />A hátrányok: a postok <a href="http://en.wikipedia.org/wiki/RSS_%28file_format%29">r</a><span style="font-weight: bold;"><a href="http://en.wikipedia.org/wiki/RSS_%28file_format%29">ss </a>feedjében a postoknak csak a bevezetője érhető el</span>, a többi csak a weben; az egyes témakörök általában (kivéve a nagyon egyszerűeket) több bejegyzésben jelennek meg, pedig bőven elférnének egyben is (úgy látszik, a szerző ügyel arra, hogy <a href="http://i-do-web.freeblog.hu/archives/2008/01/28/Milyen_hosszu_legyen_egy_bejegyzes/">megfelelő hosszúságúak legyenek a postjai</a>).<br />A <span style="font-weight: bold;">felület szép és egyszerű</span> (én ezeket szeretem), nem vonja el a figyelmet a tartalomról, segíti az olvasást.<br />Összességében érdemes feliratkozni rá.<br />Kedvenc bejegyzésem a blogról (mégpedig azért, mert röviden és tömören elmagyaráz egy fontos konstrukciót): <a href="http://www.java-tips.org/blog/java-se/using-static-and-final-attributes-%e2%80%93-an-example-i.html">Using static and final attributes</a></div>jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0tag:blogger.com,1999:blog-7934190757988852900.post-55180055090695533082008-04-20T18:49:00.000+02:002008-05-08T22:43:56.002+02:00javablogs közösség<div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.javablogs.com/"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-ztREgG6gu_hzpm3snqK-XxlODasf6lQpOd9BZ9L5hY7O656FTWFF79oQ4-PG1zjudx10jZuJufO1KwEtGOmRiWJrMFtpgpuoKk6D8-w6DTUXtcs9z1wWUwO1hXT1uVe-QZIUBBo7LKM/s200/javablogs.JPG" alt="" id="BLOGGER_PHOTO_ID_5197681340905702242" border="0" /></a><a href="http://www.javablogs.com/">www.javablogs.com</a>:<br />Egy <span style="font-weight: bold;">blog </span><a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Aggregator">aggregátor</a>, a <a href="http://java.com/"><span style="font-weight: bold;">Java technológiával</span></a> kapcsolatos blogok gyűjtője. Bárki regisztrálhatja a saját blogját, de ha nem vág témába, eltávolítják. A főoldalon megjelenő bejegyzéseket a közösség moderálja - erről <a href="http://www.javablogs.com/about.jsp;jsessionid=EKDLOACOAHDG">pontosabban semmit nem mondanak</a>. Valószínűleg magyarnyelvű postok nem kerülnek a főoldalra.<br />Bugok is vannak még benne rendesen. Például nem kell megijedni, ha egy post linkjére kattintasz, és nem a post töltődik be, hanem a javablogs főoldala.<br />A felület egyszerű, de tetszetős, viszont az aloldalak kinézete néha eltér, ami nem tú szerencsés. Firefoxban a szövegek néha szétcsúsznak, de ez valószínűleg <a href="http://www.w3.org/Style/CSS/">css </a>hiba.<br />A hibáin felül <span style="font-weight: bold;">nagyon jó oldal</span>, a főoldalon (valahogyan) tényleg jó tartalmak jelennek meg, azonnal feliratkoztam rá. Kezdők és haladók is sokat okulhatnak belőle. Jelennek meg dolgok a <a style="font-weight: bold;" href="http://java.sun.com/">Java </a>nyelv alapjairól, és mélyebb tudásról is. A <span style="font-weight: bold;">keresésekkel viszont vigyázni kell</span>: néha halott linkeket ad (például keress rá a <a href="http://www.hibernate.org/">hibernate </a>szóra). Ha ezt is megszokod, már semmi nem akadályozhat meg a felhőtlen tanulásban.<br />A kedvenc blogom innen: <a href="http://www.java-tips.org/blog/">java-tips.org</a></div>jóga debrecenhttp://www.blogger.com/profile/12438811745154848822noreply@blogger.com0