<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>java &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/java/</link>
	<description>Feed of posts on WordPress.com tagged "java"</description>
	<pubDate>Sat, 17 May 2008 03:10:43 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[CURSOS JAVA]]></title>
<link>http://lifeprogramer.wordpress.com/?p=8</link>
<pubDate>Sat, 17 May 2008 00:56:02 +0000</pubDate>
<dc:creator>cac201</dc:creator>
<guid>http://lifeprogramer.wordpress.com/?p=8</guid>
<description><![CDATA[



]]></description>
<content:encoded><![CDATA[<p style="text-align:center;">
<p style="text-align:center;"><img src="http://img530.imageshack.us/img530/1795/19lb3.png" alt="" width="192" height="295" /></p>
<p style="text-align:center;"><a href="http://rapidshare.com/files/108328042/JAVA.zip.html" target="_blank"><img src="http://img292.imageshack.us/img292/8646/downty3fk6.png" alt="" width="141" height="134" /></a></p>
<p style="text-align:center;">
]]></content:encoded>
</item>
<item>
<title><![CDATA[Anche i Trader sul Linux!!!]]></title>
<link>http://vortige.wordpress.com/?p=62</link>
<pubDate>Fri, 16 May 2008 22:06:00 +0000</pubDate>
<dc:creator>Lorenzo</dc:creator>
<guid>http://vortige.wordpress.com/?p=62</guid>
<description><![CDATA[Grazie alle nuove piattaforme di trading basate sulla teconologia Java molti trader possono usare li]]></description>
<content:encoded><![CDATA[<p>Grazie alle nuove piattaforme di trading basate sulla teconologia Java molti trader possono usare linux per il loro lavoro. Infatti sia la Piattaforma T3 di IntesaTrade che ProRealtime possono essere usati senza particolari problemi. Per i software nativi rimane la possibilità di farli funzionare con Wine... anche se i rendimenti non sono ottimi... guardate qui ...</p>
<p style="text-align:center;"><a href="http://appdb.winehq.org/appbrowse.php?iCatId=63" target="_blank">http://appdb.winehq.org/appbrowse.php?iCatId=63</a></p>
<p style="text-align:left;">In pratica sono presenti solo alcuni software per il trading e i migliori (comeTradeStation, GannTrader, Fibonacci Trader, Hot Trader, TraderLink o TaliaTool) sono assenti!!!</p>
<p style="text-align:center;"><em><strong><a href="http://vortige.wordpress.com/2008/04/16/alice-web-tv-non-per-i-pinguini/" target="_blank">Per non Parlare di Class CnBc che non è accessibile da linux!!! </a></strong></em></p>
<p style="text-align:center;"><a href="http://imparareanalisitecnica.blogspot.com/2008/04/notizie-finanziarie-in-diretta-con.html" target="_blank">Non sono stato il solo a provarci... ecco un'altro povero disperato!!! http://imparareanalisitecnica.blogspot.com/2008/04/notizie-finanziarie-in-diretta-con.html</a></p>
<p style="text-align:center;"><a href="http://vortige.files.wordpress.com/2008/05/prorealtime.png"><img class="alignnone size-medium wp-image-63" src="http://vortige.wordpress.com/files/2008/05/prorealtime.png?w=300" alt="" width="300" height="187" /></a></p>
<p style="text-align:center;">
]]></content:encoded>
</item>
<item>
<title><![CDATA[Lazy Error Handling in Java, Part 1: The Thrower Functor]]></title>
<link>http://apocalisp.wordpress.com/?p=13</link>
<pubDate>Fri, 16 May 2008 21:04:17 +0000</pubDate>
<dc:creator>apocalisp</dc:creator>
<guid>http://apocalisp.wordpress.com/?p=13</guid>
<description><![CDATA[Let&#8217;s say that you&#8217;re coding in Java, and you want to call some code that might throw Ex]]></description>
<content:encoded><![CDATA[<p>Let's say that you're coding in Java, and you want to call some code that might throw Exceptions, but you don't want to be bothered with catching or throwing those exceptions in your code. Or you may want to call some existing code that doesn't handle exceptions, passing it something that has methods which may throw exceptions. This can get ugly really fast, and you may end up with "throws Exception" declarations in places where you don't want them, or <em>try/catch</em> blocks where you're not sure whether to log the error or throw an unchecked exception, or what.</p>
<p>But, despair not. From very simple ingredients, we can conjure up powerful functional-style error handling to save the day. The first ingredient is a generic interface that declares, in its type expression, the exception thrown by its method:</p>
<pre style="background:#242424;color:#f6f3e8;"><span style="color:#cae682;">
  public</span> <span style="color:#cae682;">interface</span> Thrower&#60;A, E <span style="color:#cae682;">extends</span> <span style="color:#8ac6f2;">Throwable</span>&#62;<span style="color:#cae682;"> {</span>
<span style="color:#cae682;">  </span><span style="color:#cae682;">  public</span><span style="color:#cae682;"> A extract()</span> <span style="color:#cae682;">throws</span> E;
<span style="color:#cae682;">  }
 </span></pre>
<p>What we're saying here is that there's some operation preformed by <em>extract()</em> that returns an <em>A</em> and might throw an <em>E. </em>But the operation won't take place (and won't throw anything) until <em>extract()</em> is actually called.</p>
<p>What is such a thing useful for? Well, you could implement this interface, take parameters in a constructor, and perform some calculation in <em>extract()</em>. For example, reading a file and possibly throwing an <em>IOException</em>. But that's a naive view of what generic interfaces are for. <em>Thrower</em> has higher aspirations than that. It's not just an interface. It's a functor. Observe:</p>
<pre style="background:#242424;color:#f6f3e8;">  <span style="color:#cae682;">
  public</span> <span style="color:#cae682;">static</span> &#60;A,B,E <span style="color:#cae682;">extends</span> <span style="color:#8ac6f2;">Throwable</span>&#62; <span style="color:#e5786d;">F</span>&#60;Thrower&#60;A,E&#62;, Thrower&#60;B,E&#62;&#62;
    fmap(<span style="color:#cae682;">final</span> <span style="color:#e5786d;">F</span>&#60;A,B&#62; f) <span style="color:#cae682;">{</span>
      <span style="color:#8ac6f2;">return</span> <span style="color:#8ac6f2;">new</span> <span style="color:#e5786d;">F</span>&#60;Thrower&#60;A,E&#62;, Thrower&#60;B,E&#62;&#62;()<span style="color:#cae682;"> {</span>
<span style="color:#cae682;">        </span><span style="color:#cae682;">public</span><span style="color:#cae682;"> Thrower&#60;B, E&#62; f(</span><span style="color:#cae682;">final</span><span style="color:#cae682;"> Thrower&#60;A, E&#62; a)</span><span style="color:#cae682;"> {</span>
          <span style="color:#8ac6f2;">return</span> <span style="color:#8ac6f2;">new</span> Thrower&#60;B,E&#62;()<span style="color:#cae682;"> {</span>
<span style="color:#cae682;">            </span><span style="color:#cae682;">public</span><span style="color:#cae682;"> B extract()</span> <span style="color:#cae682;">throws</span> E<span style="color:#cae682;"> {</span>
              <span style="color:#8ac6f2;">return</span> f.f(a.extract());
            <span style="color:#cae682;">}</span>
        <span style="color:#cae682;">  }</span>;
        <span style="color:#cae682;">}</span>
      <span style="color:#cae682;">}</span>;
    <span style="color:#cae682;">}
 </span></pre>
<p>OK, so this is a static method on which class? It doesn't matter, let's say we put it in a utility class called <em>Throwers </em>(remembering to make it final and its constructor private)<em>.</em> Just look at the type signature for now. The interface <em>F&#60;A,B&#62;</em> is from <a title="Functional Java" href="http://functionaljava.org" target="_blank">Functional Java</a>, and it's just an interface with one method <em>B f(A a)</em>. So what <em>fmap</em> does is take a function from <em>A</em> to <em>B</em>, and return a function from <em>Thrower&#60;A,E&#62; </em> to <em>Thrower&#60;B,E&#62;</em>. In other words: <strong><em>fmap </em>promotes the function <em>f</em> so that it works with computation that may throw checked errors, without <em>f</em> having been written to handle errors.<br />
</strong></p>
<p>The implementation should be self-explanatory, albeit verbose (this is Java, after all). We construct an anonymous function to return, implementing its only method, which returns a new thrower which in turn yields the result of applying the function f to the contents extracted from the original thrower. It sounds a lot more complicated than it looks, so just read the code. All we're doing is taking the <em>A</em> from a Thrower, turning it into a <em>B,</em> and wrapping that in another Thrower. If taking the <em>A </em>from the Thrower fails with an exception, we'll wrap that in the Thrower instead.</p>
<p>The important thing to note here is that <strong>nothing actually happens</strong> until you call <em>extract() </em>on the resulting Thrower. Values of types F and Thrower are data structures that represent a computation to be carried out in the future. Anybody can pass Throwers around, but only a <em>try/catch</em> block, or a method that throws a <em>Throwable</em> of the right type may actually call <em>extract() </em>on it to run its computation and get its value. Java's type system ensures that you can't go wrong (although, as for unchecked exceptions, you're on your own).</p>
<p>A simple example is in order. Just to illustrate the point, not to do anything very useful. This program reuses a function designed to operate on strings, so that it operates on operations that result in strings but might throw exceptions. The exception handling is done somewhere else, in <em>ErrorHandler</em>, outside of the main program, in an error handling library function called <em>extractFrom</em>, which we assume knows the right thing to do. Note that the main program has no <em>try/catch</em> block at all.</p>
<pre style="background:#242424;color:#f6f3e8;">
  <span style="color:#cae682;">public</span> <span style="color:#cae682;">class</span> Foo <span style="color:#cae682;">{</span>
<span style="color:#cae682;">    </span><span style="color:#cae682;">public</span><span style="color:#cae682;"> </span><span style="color:#cae682;">static</span><span style="color:#cae682;"> </span><span style="color:#cae682;">void</span><span style="color:#cae682;"> main (</span><span style="color:#e5786d;">String</span><span style="color:#cae682;">[] args)</span> <span style="color:#cae682;">{</span>
      Thrower&#60;<span style="color:#e5786d;">String</span>,<span style="color:#8ac6f2;">IOException</span>&#62; readLn = <span style="color:#8ac6f2;">new</span> Thrower&#60;<span style="color:#e5786d;">String</span>,<span style="color:#8ac6f2;">IOException</span>&#62;() <span style="color:#cae682;">{</span>
<span style="color:#cae682;">        </span><span style="color:#cae682;">public</span><span style="color:#cae682;"> </span><span style="color:#e5786d;">String</span><span style="color:#cae682;"> extract()</span> <span style="color:#cae682;">throws</span> <span style="color:#8ac6f2;">IOException</span> <span style="color:#cae682;">{</span>
          <span style="color:#8ac6f2;">return</span> <span style="color:#8ac6f2;">new</span> <span style="color:#e5786d;">BufferedReader</span>(<span style="color:#8ac6f2;">new</span> <span style="color:#e5786d;">InputStreamReader</span>(<span style="color:#e5786d;">System</span>.in)).readln();
        <span style="color:#cae682;">}</span>
      <span style="color:#cae682;">};</span>
      System.out.printLn(ErrorHandler.extractFrom(Throwers.fmap(length).f(readLn)));
    <span style="color:#cae682;">}</span>

    <span style="color:#99968b;"><em>// A first-class function to get a String's length.</em></span>
    <span style="color:#cae682;">public</span> F&#60;<span style="color:#e5786d;">String</span>,<span style="color:#e5786d;">Integer</span>&#62; length = <span style="color:#8ac6f2;">new</span> F&#60;<span style="color:#e5786d;">String</span>,<span style="color:#e5786d;">Integer</span>&#62;() <span style="color:#cae682;">{</span>
<span style="color:#cae682;">      </span><span style="color:#cae682;">public</span><span style="color:#cae682;"> </span><span style="color:#e5786d;">Integer</span><span style="color:#cae682;"> f(</span><span style="color:#cae682;">final</span><span style="color:#cae682;"> </span><span style="color:#e5786d;">String</span><span style="color:#cae682;"> s)</span> <span style="color:#cae682;">{</span>
        <span style="color:#8ac6f2;">return</span> s.length();
      <span style="color:#cae682;">}</span>
    <span style="color:#cae682;">}</span>
  <span style="color:#cae682;">}
 </span></pre>
<p>Sure, it would be simpler to just catch the exception, but this is a very simple program. We'll see later how this paradigm allows us to do things that would otherwise be rather awkward. You might also note that the actual reading from the input buffer doesn't happen in the main program, but "outside" of it, in the <em>ErrorHandler</em> code. This doesn't make a difference to the compiled program except that the execution stack will look a bit different.</p>
<p>So there you go. That's lazy error handling in Java, in a nutshell. But there's more to come, as Thrower has higher aspirations still. It's not just a functor. It's a monad. We'll talk about that in the next post.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Vss Plugin e a Maldita Mensagem "Unable to find any valid VSS Installation"]]></title>
<link>http://sumatrablog.wordpress.com/?p=14</link>
<pubDate>Fri, 16 May 2008 20:59:33 +0000</pubDate>
<dc:creator>mmilanez</dc:creator>
<guid>http://sumatrablog.wordpress.com/?p=14</guid>
<description><![CDATA[Provavelmente somos uma das únicas (sei lá quantas, mas devem ser poucas) equipes de desenvolvimen]]></description>
<content:encoded><![CDATA[<p>Provavelmente somos uma das únicas (sei lá quantas, mas devem ser poucas) equipes de desenvolvimento neste mundo que utilizam como repositório de desenvolvimento, o antigo Microsoft Visual Source Safe, ou VSS como todos dizem.</p>
<p>Como plugin de integração à base do VSS, utilizamos o "<a title="Vss Eclipse Plugin" href="http://sourceforge.net/projects/vssplugin/" target="_blank">Vss Eclipse Plugin</a>". A interface é bastante amigável e o plugin funciona de forma excelente, até que um belo dia você se depara com a seguinte mensagem:</p>
<p>"Unable to find any valid VSS Installation.</p>
<p>Are you sure that the VSS installation is not currupt? "</p>
<p><img src="http://img223.imageshack.us/img223/6792/invalidvsssj5.jpg" alt="Problema no plugin do VSS" width="320" height="283" /><br />
O erro acima passou a ocorrer, após uma nova pessoa ter iniciado em nossa equipe. Ele passou a utilizar uma máquina que já contava com o eclipse em pleno funcionamento com o plugin do VSS, mas seu login de rede era outro e o IP da máquina tmabém havia mudado.</p>
<p>Levamos horas, literalmente, para encontrar uma solução para este problema. Como algo que já funcionava, que não havia sido alterado, que não contava com novas instalações ou desinstalações passou a deixar de funcionar, apenas porque o login e o IP eram outros?</p>
<p>Depois de muito fuçar, entendemos que o plugin do VSS, que exige a instalação de um VSS client na máquina dos desenvolvedores, fazia referência ao ProgID "SourceSafe" para funcionar.  Com esta informação em mãos, tínhamos duas alternativas, ou a engine JNI que faz a interação entre objetos COM e o java do SWT não estava funcionando corretamente por algum motivo qualquer, ou algo estava realmente errado na máquina, fazendo com que o ProgID necessário não fosse encontrado.</p>
<p>Para testar as alternativas, criamos um programa simples em VB Script (argh) para identificar se ele conseguiria criar o objeto "SourceSafe"</p>
<p><code><br />
dim vss<br />
set vss = CreateObject("SourceSafe")<br />
</code></p>
<p>Resultado!!! Na máquina em que o plugin do VSS não funcionava, este pequeno trecho também não rodou, identificando que algo no maldito registry do Windows não estava adequado. Como em todas as outras máquinas da equipe de desenvolvimento, esta máquina em questão contava com o SourceSafe 2005, ou 8.0 de acordo com a Microsoft. Mas o curioso é que nesta máquina, o ProgID do VSS não era <strong>SourceSafe</strong>, como em todas as outras, mas sim <strong>SourceSafe.8.0</strong> ! Mais uma vez a Microsoft nos faz ficar algumas horas a mais no trabalho, por algum motivo que não conseguiremos explicar nunca, talvez. Como em outras máquinas o ProgID era outro? Mistério.</p>
<p>Para solucionar o problema, precisávamos indicar ao plugin do VSS que o ProgID a ser utilizado era outro. Identificamos então que o arquivo contido em <strong>eclipse\plugins\org.vssplugin_1.6.1\org\<br />
vssplugin\message.properties</strong> continha uma entrada (graças a Deus) para o nome do ProgID a ser executado. A linha é a seguinte:</p>
<p><code><br />
# ***********************************************************************************<br />
# Strings from the VSS OLE Interface.. Change these if needed on non-english VSS versions.<br />
# ***********************************************************************************<br />
vssOlePrgName=SourceSafe<br />
</code></p>
<p>Bastando alterar o valor <code>"SourceSafe</code>" para <code>"SourceSafe.8.0"</code> e pronto, um abrir e fechar do eclipse e tudo funciona como deveria!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Pemrograman JavaScript]]></title>
<link>http://aryonline.wordpress.com/?p=55</link>
<pubDate>Fri, 16 May 2008 20:34:15 +0000</pubDate>
<dc:creator>fread</dc:creator>
<guid>http://aryonline.wordpress.com/?p=55</guid>
<description><![CDATA[Memasukkan JavaScript kedalam HTML
JavaScript adalah pemrograman sisi klien yang akan dijalankan ole]]></description>
<content:encoded><![CDATA[<p>Memasukkan JavaScript kedalam HTML</p>
<p>JavaScript adalah pemrograman sisi klien yang akan dijalankan oleh browser dari<br />
pengunjung, dan program JavaScript biasa ditanamkan didalam halaman web untuk<br />
menghasilkan halaman yang dinamis. Untuk mempelajari JavaScript sebaiknya anda<br />
menguasai dasar-dasar HTML Script sehingga akan memudahkan anda untuk menyisipkan<br />
program JavaScript secara baik dan benar.<br />
Ketiklah Contoh berikut dan simpan ke file Hello.html<br />
&#60;HTML&#62;<br />
&#60;HEAD&#62;<br />
&#60;SCRIPT LANGUAGE="JavaScript"&#62;<br />
&#60;!-- Menyembunyikan script terhadap browser non-JavaScript<br />
document.write("Hello world.")<br />
// akhir dari penyembunyian --&#62;<br />
&#60;/SCRIPT&#62;<br />
&#60;/HEAD&#62;<br />
&#60;/HTML&#62;</p>
<p>lebih lengkapnya download <a title="Java Script" href="http://www.mediafire.com/?njrwvy2hxmn" target="_blank">disini</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Atalhos do Eclipse]]></title>
<link>http://renatoonsnails.wordpress.com/?p=6</link>
<pubDate>Fri, 16 May 2008 20:12:52 +0000</pubDate>
<dc:creator>renatoonsnails</dc:creator>
<guid>http://renatoonsnails.wordpress.com/?p=6</guid>
<description><![CDATA[Olá a todos!
Vou falar aqui sobre alguns atalhos úteis do Eclipse que é a IDE que eu uso.
ctrl-sh]]></description>
<content:encoded><![CDATA[<p>Olá a todos!</p>
<p>Vou falar aqui sobre alguns atalhos úteis do Eclipse que é a IDE que eu uso.</p>
<p><strong>ctrl-shift-t</strong> - Open Type - Atalho para abrir o código de um tipo do Java para edição. Por exemplo, em algum lugar do seu projeto tem uma classe GenericDAO. Então se você quiser abrí-la para edição, aperta crtl-shift-r, começa a escrever GenericDAO e clica nela na lista.</p>
<p><strong>ctrl-shit-r</strong> - Open Resource - Serve para você abrir um arquivo qualquer. Por exemplo, você tem um arquivo header.html, aperta ctrl-shift-r, começa a escrever header.html e clica nele na lista.</p>
<p><strong>ctrl-o</strong> - Com o cursor numa classe, navega dentro dela abrindo uma lista de métodos e atributos. Aperte ctrl-o e vá digitando o nome do método, por exemplo, getName. Selecione na lista que o cursor vai direto para o método getName.</p>
<p><strong>ctrl-shift-r</strong> - Refatoração para mudança de nome de um atributo, método, nome, classe em que o cursor estiver em cima. Usando a refatoração, todos os lugares onde estiver sendo utilizado o alvo da mudança também serão modificados.</p>
<p><strong>ctrl-shit-L</strong> - Extract local variable - Refatoração que transforma a parte selecionada numa variável local. Por exemplo, você seleciona no código:</p>
<pre><em>if (<span style="color:#ffffff;"><span style="background-color:blue;">number &#62;= 0</span></span>) { ...</em></pre>
<p>Aperta ctrl-shit-L, e escreve isPositiveNumber, ficando assim:</p>
<pre><em>boolean isPositiveNumber = number &#62;= 0;
if (isPositiveNumber) { ...</em></pre>
<p><strong>ctrl-shift-m</strong> - Extract method - Refatoração que transforma a parte selecionada num método. Por exemplo, você seleciona no código:</p>
<pre><em>if (<span style="color:#ffffff;"><span style="background-color:blue;">number &#62;= 0</span></span>) { ...</em></pre>
<p>Aperta ctrl-shit-m, e escreve isPositiveNumber. Isso irá criar um novo método ficando assim:</p>
<pre><em>if (isPositiveNumber()) { ...</em></pre>
<p>E mais abaixo terá o método:</p>
<pre><em>private boolean isPositiveNumber() {
<span style="padding-left:30px;">return number &#62;= 0;</span></em>
}</pre>
<p>Aprender a usar bem os métodos de refatoração é muito importante, pois assim naturalmente o seu código fica mais legível, limpo e organizado (que é o objetivo de refatorações :) ).</p>
<p>Fico por aqui, espero que tenha ajudado!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Using Hibernate and Java generics]]></title>
<link>http://beb4ch.wordpress.com/?p=19</link>
<pubDate>Fri, 16 May 2008 20:04:22 +0000</pubDate>
<dc:creator>beb4ch</dc:creator>
<guid>http://beb4ch.wordpress.com/?p=19</guid>
<description><![CDATA[In writing Java applications I often get amazed at how much code one needs to write just to perform ]]></description>
<content:encoded><![CDATA[<p>In writing Java applications I often get amazed at how much code one needs to write just to perform some basic business functions. For example, say you need to write an application that needs to use a database. Coding your application using JDBC is really tedious work. So, you decide to follow a different route - you use a persistance API. I myself like to use Hibernate. But I am still amazed by how much "utility" or "house-keeping" code I find myself writing over and over again in every application.</p>
<p>Recently I've decided to do something about it. I've found some of my answers in Java generics. Read on for a description of my generic Java classes that reresent the common DAO layer of my applications.</p>
<p><!--more--></p>
<p>First of all, there is the DaoBaseClass. The idea behind this class is that it should be the generic base class (a sort of a template) for all other DAO classes (or actual DAO classes implementations). The class itself contains methods that support inserting, deleting and updating data. There is also a method that supports lookups based on the primary key and two helper methods for building custom lookup methods. These two methods are protected and are not to be used directly.</p>
<p>This persistance layer that I'm using does have some very important restrictions:</p>
<ul>
<li>First of all, the domain objects are all based on the DomainObject class that has a primary key of type Long and the name "id".</li>
<li>All methods that operate on data throw an unchecked custom exception called DaoException that symbolizes an error. The calling method may choose to catch this exception or it may just disregard it.</li>
</ul>
<p>The idea of using the unchecked exception DaoException to signal errors stems from the idea that the code that calls the DAO layer of the application should not be conserned with the underlying implementation details of the DAO layer. Thus, the layer that uses the DAO layer should not need to know how to handle a Hibernate exception. This way, I can later on exchange the Hibernate-based DAO layer with a XYZ-based DAO layer and leave the rest of the code intact.</p>
<p><a href="http://beb4ch.files.wordpress.com/2008/05/code01.pdf" target="_self">Here is the code. (PDF because wordpresss upload limitations)</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Konsep Basis Obyek]]></title>
<link>http://aryonline.wordpress.com/?p=53</link>
<pubDate>Fri, 16 May 2008 20:00:23 +0000</pubDate>
<dc:creator>fread</dc:creator>
<guid>http://aryonline.wordpress.com/?p=53</guid>
<description><![CDATA[Tujuan
· Mengetahui dan memahami konsep pemrograman berbasis obyek menggunakan bahasa pemrograman J]]></description>
<content:encoded><![CDATA[<p class="MsoNormal"><strong><span style="font-size:10pt;">Tujuan</span></strong></p>
<p class="MsoNormal" style="margin-left:19.85pt;text-align:justify;text-indent:-19.85pt;line-height:150%;"><span style="font-size:10pt;line-height:150%;">·<span style="font-size:7pt;line-height:150%;"> </span>Mengetahui dan memahami konsep pemrograman berbasis obyek menggunakan bahasa pemrograman Java</span></p>
<p class="MsoNormal" style="margin-left:19.85pt;text-align:justify;text-indent:-19.85pt;line-height:150%;"><span style="font-size:10pt;line-height:150%;">·<span style="font-size:7pt;line-height:150%;"> </span>Mengetahui tiga pilar PBO dan cara penggunaannya dalam kode program</span><span></span></p>
<p class="MsoNormal" style="margin-left:19.85pt;text-align:justify;text-indent:-19.85pt;line-height:150%;"><span style="font-size:10pt;line-height:150%;">·<span style="font-size:7pt;line-height:150%;"> </span>Mengidentifikasi penggunaan konstruktor, accessor dan mutator pada struktur Class</span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><strong><span style="font-size:10pt;line-height:150%;">Dasar Teori</span></strong><span></span></p>
<p class="MsoNormal" style="text-align:justify;text-indent:18pt;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Java memiliki karakteristik tersendiri dalam dunia pemrograman. Java merupakan bahasa pemrograman yang sederhana, semudah bahasa C dan memiliki kemampuan seperti C++. Bagi para pengguna yang memiliki pengalaman dalam penggunaan bahasa pemrograman akan menjadi lebih mudah untuk menggunakan Java.</span><!--more--><span style="font-size:10pt;line-height:150%;">Java sangat berorientasi obyek (OOP) dengan implementasi yang sangat baik sehingga kita tidak hanya membuat program yang baik dengan kemampuan <em>reusable</em>, <em>scalable</em> dan <em>maintanable</em>, tetapi juga belajar bagaimana cara berfikir dengan baik untuk mengenali struktur masalah yang dihadapi dan memecahkannya secara sistematis dengan pola tertentu. Java memiliki tiga pilar utama yang mendukung konsep OOP dan membuat Java lebih unggul dibanding bahasa pemrograman lainnya, yaitu:</span><span></span></p>
<ol style="margin-top:0;" type="1">
<li class="MsoNormal"><em><span style="font-size:10pt;">Information Hiding</span></em><span style="font-size:10pt;">/<em>Encapsulation</em>,      yaitu merupakan pengabungan tipe data dan operasi yang bersangkutan      menjadi satu kesatuan. Keutuhan tipe data dijaga dengan adanya      pengendalian akses pada variabel, method pada suatu obyek. </span><span style="font-size:10pt;">(<em>information hiding</em>).</span></li>
<li class="MsoNormal"><em><span style="font-size:10pt;">Polymorphism</span></em><span style="font-size:10pt;">, merupakan operasi      yang sama dapat diterapkan pada class yang berbeda dapat menghasilkan      hasil yang berbeda. Untuk melakukan operasi yang sama diperlukan jumlah      parameter yang sama.</span><span></span></li>
<li class="MsoNormal"><em><span style="font-size:10pt;">Inheritance</span></em><span style="font-size:10pt;">/Pewarisan,      merupakan penurunan suatu class yang lebih general menjadi suatu class      yang lebih spesifik atau perluasan dari suatu class.</span><!--[if gte vml 1]&#62;                    &#60;![endif]--><!--[if !vml]--><!--[endif]--><span></span></li>
</ol>
<p class="MsoNormal" style="text-align:justify;"><em><span style="font-size:10pt;">Implementasi Konsep OOP</span></em></p>
<p class="MsoNormal" style="text-align:justify;"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">Class mahasiswa</span></span></strong></p>
<table class="MsoNormalTable" style="margin-left:5.4pt;border-collapse:collapse;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background:silver none repeat scroll 0 50%;width:27pt;padding:0 5.4pt;" width="36" valign="top">
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">01</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">02</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">03</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">04</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">05</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">06</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">07</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">08</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">09</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">10</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">11</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">12</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">13</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">14</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">15</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">16</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">17</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">18</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">19</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">20</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">21</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">22</span></span></strong></p>
</td>
<td style="width:405pt;padding:0 5.4pt;" width="540" valign="top">
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">package modul1;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public class   mahasiswa{</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">private String npm;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">private String   nama;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public mahasiswa(){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public void   setNpm(String newnpm){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">this.npm = newnpm;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public String   getNpm(){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">return this.npm;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public void   setNama(String newnama){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">this.nama =   newnama;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public String   getNama(){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">return this.nama;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public String   toString(){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">return   “(“+this.npm+”) ”+this.nama;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:150%;">Class di atas bernama mahasiswa, apabila di kompilasi akan menghasilkan <span style="font-size:10pt;line-height:150%;">mahasiswa.class</span>. Class ini tidak dapat langsung dijalankan baik dari <em>command prompt</em> maupun dari IDE. Hal ini dikarenakan class yang dibuat di atas tidak memiliki method main (<span style="font-size:10pt;line-height:150%;">public static void main(String args[])</span>). Class di atas merupakan class dasar dari Java yang menggunakan pola pemrograman basis obyek. Class tersebut tidak dapat langsung dieksekusi sehingga harus diakses dari class lain yang memiliki method main.</span></p>
<p class="MsoNormal" style="text-align:justify;"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">Class dataMahasiswa</span></span></strong></p>
<table class="MsoNormalTable" style="margin-left:5.4pt;border-collapse:collapse;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background:silver none repeat scroll 0 50%;width:27pt;padding:0 5.4pt;" width="36" valign="top">
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">01</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">02</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">03</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">04</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">05</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">06</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">07</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">08</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">09</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">10</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">11</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">12</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">13</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">14</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">15</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">16</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">17</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">18</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">19</span></span></strong></p>
</td>
<td style="width:405pt;padding:0 5.4pt;" width="540" valign="top">
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">package modul1;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public class   dataMahasiswa{</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public static void   main(String args[]){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">mahasiswa mhs =   new mahasiswa();</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">System.out.println(“npm:   “+mhs.getNpm());</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">System.out.println(“nama: “+mhs.getNama());</span></span><span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">//beri   npm dan nama</span></span><span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">mhs.setNpm(“07120098”);</span></span><span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">mhs.setNama(“Bejo”);</span></span><span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">//cetak   npm dan nama yang baru diisikan</span></span><span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">System.out.println(“npm: “+mhs.getNpm());</span></span><span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">System.out.println(“nama: “+mhs.getNama());</span></span><span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">//jika   baris 17 di uncomment, akan menghasilkan error</span></span><span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">//System.out.println(“npm: “+mhs.npm);</span></span><span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><em><span style="font-size:10pt;line-height:150%;">Penjelasan</span></em></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Pada class mahasiswa, baris 05-06 merupakan <em>constructor</em>. <em>Constructor</em> merupakan method yang memiliki nama sama dengan nama class dan tidak memiliki nilai kembalian. </span><span style="font-size:10pt;line-height:150%;">Fungsinya untuk memberikan nilai default pada variabel yang didefinisikan pada class. Pada contoh menghasilkan nilai <span style="font-size:10pt;line-height:150%;">null</span> pada variabel <span style="font-size:10pt;line-height:150%;">npm</span> dan <span style="font-size:10pt;line-height:150%;">nama</span>. </span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Baris 07-09 merupakan mutator. Mutator merupakan method yang tidak memiliki nilai kembalian dan berfungsi untuk melakukan penukaran nilai terhadap variabel yang namanya sama dengan nama mutator setelah kata <span style="font-size:10pt;line-height:150%;">set</span> dan memiliki huruf besar pada awal. Mutator pada baris ini berfungsi untuk melakukan penukaran nilai variabel <span style="font-size:10pt;line-height:150%;">npm</span> dengan nilai parameter <span style="font-size:10pt;line-height:150%;">newnpm</span> pada mutator <span style="font-size:10pt;line-height:150%;">setNpm</span>.</span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Baris 13-15 juga merupakan mutator. Mutator pada baris ini berfungsi untuk melakukan penukaran nilai variabel <span style="font-size:10pt;line-height:150%;">nama</span> dengan nilai parameter <span style="font-size:10pt;line-height:150%;">newnama</span> pada mutator <span style="font-size:10pt;line-height:150%;">setNama</span>.</span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Baris 10-12 merupakan accessor. Accessor merupakan method yang memiliki nilai kembalian yang sesuai dengan tipe data yang diakses dan berfungsi untuk mengambil nilai variabel yang namanya sama dengan nama accessor setelah kata <span style="font-size:10pt;line-height:150%;">get</span> dan memiliki huruf besar pada awal. Accessor pada baris ini berfungsi untuk mengambil nilai variabel <span style="font-size:10pt;line-height:150%;">npm</span> yang bertipe <span style="font-size:10pt;line-height:150%;">String</span>.</span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Baris 16-29 juga merupakan accessor. Accessor pada bari ini berfungsi untuk mengambil nilai variabel <span style="font-size:10pt;line-height:150%;">nama</span> yang bertipe <span style="font-size:10pt;line-height:150%;">String</span>.</span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Pada class dataMahasiswa, pada baris 03 merupakan method main yang merupakan penanda bahwa class tersebut dapat dieksekusi. Pada baris 04 terdapat statement instanisasi class mahasiswa. Class ini diinstanisasi ke obyek <span style="font-size:10pt;line-height:150%;">mhs</span>. Apabila diperhatikan pada proses awal instanisasi, yang dijalankan secara otomatis adalah yang ada pada constructor class <span style="font-size:10pt;line-height:150%;">mahasiswa</span>. Sehingga ketika baris 05 dijalankan akan mencetak <strong><span style="font-size:10pt;line-height:150%;">npm: null</span></strong>. Hal ini menunjukkan bahwa constructor class mahasiswa memberikan nilai default untuk tipe data <span style="font-size:10pt;line-height:150%;">String</span> pada variabel <span style="font-size:10pt;line-height:150%;">npm</span> yang telah didefinisikan di awal.</span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Untuk memulai penyimpanan data, pada baris 09 diberikan nilai <span style="font-size:10pt;line-height:150%;">07120098</span> untuk <span style="font-size:10pt;line-height:150%;">npm</span>. Pada baris 10 diberikan nilai <span style="font-size:10pt;line-height:150%;">Bejo</span> untuk <span style="font-size:10pt;line-height:150%;">nama</span>. Informasi ini akan disimpan pada variabel <span style="font-size:10pt;line-height:150%;">npm</span> dan <span style="font-size:10pt;line-height:150%;">nama</span> sesuai dengan mutator <span style="font-size:10pt;line-height:150%;">setNpm</span> dan <span style="font-size:10pt;line-height:150%;">setNama</span>.</span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Pada baris 13 dilakukan akses <span style="font-size:10pt;line-height:150%;">npm</span> menggunakan accessor <span style="font-size:10pt;line-height:150%;">getNpm</span>, yang akan menghasilkan <strong><span style="font-size:10pt;line-height:150%;">npm: 07120098</span></strong></span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Pada baris 14 dilakukan akses <span style="font-size:10pt;line-height:150%;">nama</span> menggunakan accessor <span style="font-size:10pt;line-height:150%;">getNama</span>, yang akan menghasilkan <strong><span style="font-size:10pt;line-height:150%;">nama: Bejo</span></strong></span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Pada baris 17, apabila tanda komentar dihilangkan akan menghasilkan pesan error. Hal ini dikarenakan <span style="font-size:10pt;line-height:150%;">npm</span> pada class <span style="font-size:10pt;line-height:150%;">mahasiswa</span> memiliki modifier <span style="font-size:10pt;line-height:150%;">private</span>. Modifier <span style="font-size:10pt;line-height:150%;">private</span> ini hanya bisa diakses oleh class itu sendiri.</span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:10pt;line-height:150%;">Pada baris 19-21, merupakan method yang meng-<em>override</em> method induk dari <span style="font-size:10pt;line-height:150%;">java.lang.Object</span> untuk melakukan perubahan informasi dari <span style="font-size:10pt;line-height:150%;">Object</span> ke <span style="font-size:10pt;line-height:150%;">String</span>.</span><span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">Class kuliahMahasiswa</span></span></strong></p>
<table class="MsoNormalTable" style="margin-left:5.4pt;border-collapse:collapse;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background:silver none repeat scroll 0 50%;width:27pt;padding:0 5.4pt;" width="36" valign="top">
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">01</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">02</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">03</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">04</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">05</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">06</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">07</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">08</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">09</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">10</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">11</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">12</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">13</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">14</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">15</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">16</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">17</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">18</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">19</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">20</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">21</span></span></strong></p>
<p class="MsoNormal" style="text-align:right;" align="right"><strong><span style="font-size:10pt;"><span style="font-size:10pt;">22</span></span></strong></p>
</td>
<td style="width:405pt;padding:0 5.4pt;" width="540" valign="top">
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">package modul1;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public class   kuliahMahasiswa extends mahasiswa{</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">private String   matakuliah;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">private String   kelas;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public   kuliahMahasiswa(){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">matakuliah = “”;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">kelas = “-“;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public void   setMatakuliah(String newmatakuliah){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">this.matakuliah =   newmatakuliah;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public String   getMatakuliah(){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">return   this.matakuliah;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public void   setKelas(String newkelas){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">this.kelas =   newkelas;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">public String   getKelas(){</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">return this.kelas;</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;"><span style="font-size:10pt;">}</span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="text-align:justify;">
]]></content:encoded>
</item>
<item>
<title><![CDATA[Graphics Processors Grow Up, Go Corporate]]></title>
<link>http://gigaom.com/?p=13442</link>
<pubDate>Fri, 16 May 2008 18:45:54 +0000</pubDate>
<dc:creator>Stacey Higginbotham</dc:creator>
<guid>http://gigaom.com/?p=13442</guid>
<description><![CDATA[Remember when CPU processor speeds were the driving force behind new computers? Going from a 500 MHz]]></description>
<content:encoded><![CDATA[<p>Remember when CPU processor speeds were the driving force behind new computers? Going from a 500 MHz to 1 GHz  then 2 GHz machine meant noticeable improvements. Then chip vendors started adding more cores. But for the style of computing consumers use today, it's not about the CPU anymore.</p>
<p>It's all about graphics processors. Thanks to today's visually intensive style of computing, a good GPU can improve the user experience much better than a fast CPU. In the data center certain tasks are moving from commodity CPU boxes to GPUs, meaning that over the next year or two, more of them will be sold for corporate computing use. <!--more--></p>
<p>That's why Intel is pushing graphics chips such as Larrabee, while AMD is set to unveil integrated chipsets that combine CPUs with GPUs, the result of its <a href="http://www.theinquirer.net/en/inquirer/news/2006/07/24/amd-has-to-buy-ati-to-survive">acquisition of ATI</a> in 2009. All of this was driven home for me during a trip to Nvidia a few weeks ago, where I saw, side-by-side, the difference between a computer with a super-fast CPU and a computer with a slower CPU but a high-end GPU.</p>
<p>Of course, the demo was optimized for graphics-intense programs (I didn't see any spreadsheets), but the movies, games and transcoding were all impressive, and more akin to the things I use my laptop for nowadays anyhow.  And then the Nvidia guys dropped a bomb on me.</p>
<p>All PDF documents now run through the graphics processor, they told me, as does <a href="http://www.nvidia.com/object/testimonial_google_earth.html">Google Earth</a> and multiple other web applications. The same goes for PowerPoint slides, Word and other parts of Microsoft Office, starting with Office 2007. On Macs, the visual interface on the file system is handled through the GPU, which makes flipping through thousands of photos and movies much easier. On the consumer side, the rise of the such graphical interfaces helps  people visually navigate through ever-increasing amounts of information.</p>
<p>Nvidia and AMD probably have the most to gain from this shift in the consumer field, but Intel won't be sitting out. However, on the enterprise side is where a GPU might offer a lot more value when it comes to rapid information processing. GPUs are good for applications that require a processor to crunch a lot of data in parallel; they're not good for step-by-step processes that require decision-making at each step.</p>
<p>So Nvidia doesn't actually want to <a href="http://gigaom.com/2008/04/11/can-nvidia-kill-the-x86-architecture/">kill CPUs</a> so much as have its GPUs shoulder some of the load in corporate data centers that are providing transcoding services and running database queries and Monte Carlo simulations. This heterogeneous computing environment will be more expensive than the Google-like x86 server farms, but certain industries have already shown they will pay for specialized processing in certain areas. Financial institutions, for example, that have deployed servers using <a href="http://www.sun.com/processors/throughput/">Sun's Niagara chips</a> or <a href="http://www.azulsystems.com/">Azul Systems'</a> many-core boxes for high-end computing pay more for faster processing.</p>
<p>As the large content vendors and even carriers try to deploy media content in multiple formats for televisions, personal computers and mobile phones over IP networks, they'll either have to pay more for storing those multiple versions or pay for real-time transcoding, either in the data center or on the network. The increasing delivery of visual media over an IP network and the increasing amount of electronics data stored in corporate databases all represent an opportunity for GPUs that mean the chips might move out of the graphic niche.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Emprego em T.I sem Experiência?]]></title>
<link>http://camilolopes.wordpress.com/?p=78</link>
<pubDate>Fri, 16 May 2008 18:28:52 +0000</pubDate>
<dc:creator>Camilo Lopes</dc:creator>
<guid>http://camilolopes.wordpress.com/?p=78</guid>
<description><![CDATA[Salve! Salve! Pessoal! Bom mais um final de semana chegando e aproveitando para atualizar o blog! Al]]></description>
<content:encoded><![CDATA[<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong><span style="color:#888888;">Salve! Salve! Pessoal! Bom mais um final de semana chegando e aproveitando para atualizar o blog! Algumas pessoas estranharam a demora de atualização do blog! Conforme no ultimo post informei  que por alguns problemas de saude, entao nao seria possivel, atualizar o blog tres vezes na semana. Queria ter postado ontem, porem fiquei impossibilitado. Mas acredito que em breve estarei de volta a todo vapor!<br />
Hoje resolvi falar sobre o processo de sem experiencia como conseguir um emprego em T.I? A maioria dos profissionais seja de T.I ou nao ja passou por isso e passam por isso, entao resolvi montar esse post, para motivar aqueles que acreditam que sem experiencia nao  sao capazes de conseguir um bom emprego!</span></strong></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong><span style="color:#888888;">let's go...</span></strong></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;">Esse é um tema bastante discutido em diversos locais (físicos/virtual). Mas a questão é consigo emprego sem ter experiência comprovada?</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;">A resposta é sim. É claro que consegue, sabemos que de 10 vagas umas 8 pede experiência + 3, + 5 anos etc. Mas por causa disso que você não vai tentar a vaga se em termos de conhecimentos técnicos você conhece e domina muito bem? </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;">Há uma carência por profissionais no mercado e na área de T.I não é diferente e por que será? Advinha....</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong><span style="color:#000000;">Conhecimento </span></strong><span style="color:#000000;">é o divisor de águas e custa caro, leva tempo e dedicação e isso não está acessível a todos. Uns tem dinheiro o suficiente para comprar quantos livros achar conveniente sem se importar com o preço, estudar nas faculdades mais conceituadas do país (os pais bancam), porém não tem dedicação e muito menos saco para ficar horas e horas estudando e ainda bem que não é possível comprar. Levando em conta isso, no final do post há algumas vagas e veja que se você não se candidataria caso tivesse um sólido conhecimento, mas não tivesse a experiência exigida. Não deixe que as experiências divulgadas pelo R.H faça  desistir de algo, falo isso por que recentemente um colega meu desistiu da carreira de T.I por esse fato. Lembre-se de uma coisa sem conhecimento você não consegue nem trabalhar como porteiro ( não discriminando a profissão pelo contrario). Então veja que o conhecimento é algo muito importante e mais valorizado que a experiência. Mas não descarto que a experiência é algo fundamental, ou seja, conhecimento + experiência se completam. Porém considero o conhecimento superior a experiência. </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;">Olhando esse exemplo tire suas conclusões:</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><em><span style="color:#000000;">“Você contraria um desenvolvedor com 5 anos de experiência  mais seus códigos, são uma gambiarra, que se  cara fica doente o projeto dele, ninguém consegue dar manutenção...”</span></em></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;">Agora:</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><em><span style="color:#000000;">“Tem um desenvolvedor que não tem nem um ano de experiência mais é um cara que se atualiza sempre, utiliza as boas praticas de programação, segue as nomeações da tecnologia, e gambiarras é algo distante do seu ambiente de desenvolvimento...”</span></em></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;">Qual contratar?</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;">Minha decisão seria sem duvida nenhuma o <strong>desenvolvedor sem experiência</strong>. Como dizem os engenheiros de software 80%  tempo  gasto  está na manutenção.</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;">Então <strong>desenvolvedor sem experiência </strong>não deixe que uma descrição de uma vaga, impeça de tentá-la. Vá que o recrutador não execute aqueles procedimentos robóticos para seleção como acontece. Sempre converso com o depto de R.H da empresa onde trabalho, o maior problema de encontrar um bom profissional está nos métodos aplicados pelo R.H quase todos utilizam as mesmas tácticas e que em minha opinião não são eficientes uma boa parte.  Vamos pensar se você que um desenvolvedor e acha um cara que demonstra no currículo sólido conhecimento nas áreas  que a empresa precisa o que custa, colocar esse desenvolvedor em 1 dia para fazer um teste  do tipo desenvolver uma aplicação X, fazer analise de requisito etc. disponibilizar uma boa maquina com as ferramentas, já configuradas pelo pessoal de produção e largar o cara o dia todo lá. Se ele entregar a solução (sem gambiarras), você em médio prazo terá um bom um <strong>bom desenvolvedor + experiência</strong> e com isso em pouco tempo sua necessidade de contratar novos profissionais estaria estabilizada e com menor pressão da diretoria. O tempo gasto pelo R.H com uma vaga leva ate 6 meses e esse processo atrasa o crescimento da  empresa, do departamento e faturamento.. Mais isso daria um novo post, aqui somente umas dicas para alguns recrutadores que visitam o blog :D.</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong><span style="color:#000000;">Desenvolvedor sem experiência</span></strong><span style="color:#000000;"> valorize o quanto você sabe e esteja preparado para qualquer tipo de teste dentro do que foi exposto no seu currículo (não minta por que o teste pode ser elaborado de maneira especifica e nesse momento se mentiu a mascara vai cair).</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000080;">VAGAS:<br />
</span><strong><span style="color:#000000;">Vaga para Analista Desenvolvedor JAVA, em 03/03/2008 </span></strong></span><span style="color:#000000;"> </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:#000000;"><span style="font-size:small;font-family:Calibri;">- Vaga: Analista Desenvolvedor:<br />
</span><span style="font-size:small;"><span style="font-family:Calibri;"><strong>- Requisitos: Java, Struts, Modelagem de Dados, UML<br />
</strong>- Desejável: PL-SQL, JSF<br />
- Jornada: 44 horas semanais (de segunda a sábado)<br />
- Remuneração: R$3.000,00 (CLT)</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;">RH DP TEC<br />
</span><span style="color:#000000;"><a href="mailto:rhdptec@gmail.com"><span style="color:#0000ff;">rhdptec@gmail.com</span></a></span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:9pt;color:#000000;"> </span><span style="color:#000000;"><span style="font-size:small;font-family:Calibri;"> </span></span><strong><span style="color:#000000;"><span style="font-size:small;font-family:Calibri;">Vaga para Analista Desenvolvedor Jr, em 04/03/2008 <br />
</span></span></strong><span style="color:#000000;"><span style="font-size:small;font-family:Calibri;">Estamos recrutando Profissionais com o seguinte perfil:<br />
</span><span style="font-size:small;"><span style="font-family:Calibri;"><strong>Vaga: Analista Desenvolvedor:<br />
- Requisitos: Java, Struts, Hibernat, Javascript.<br />
- Experiência mínima de 1 ano<br />
- Desejável conhecimento: Oracle<br />
</strong><br />
Os interessados devem encaminhar os Currículos para: recrutamento@altis.org.br<br />
Título do e-mail: Desenvolvedor Java JR<br />
Fernanda Villas - Bôas<br />
Recursos Humanos<br />
Centro de Alta Tecnologia e Inovação em Software - ALTIS<br />
Visite nosso site: http://www.altis.org.br</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><strong><span style="color:#000000;"><span style="font-size:small;font-family:Calibri;">Vaga para Analista Programador Sênior JAVA, em 04/03/2008 </span></span></strong><span style="font-size:9pt;color:#000000;"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;">Pessoal,<br />
estamos com novas oportunidades para atuação junto a tecnologia Java.</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:#000000;"><span style="font-size:small;font-family:Calibri;">Local: VIVO-BA<br />
Cargo: Analista Programador Sénior<br />
Carga horária: 8h por dia ( 40h por semana)<br />
Salário: a combinar (Acima da média do mercado)<br />
Atividades: Atuar junto ao processo de análise e desenvolvimento de grandes sistemas de abrangência nacional.</span></span><span style="font-size:9pt;color:#000000;"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><strong><span style="color:#000000;"><span style="font-size:small;font-family:Calibri;">Tecnologias: UML, JSE 5.0, JEE 1.4, JBoss 4.x, WebLogic 9.x, EJB 3.0<br />
</span></span></strong><span style="color:#000000;"><br />
<span style="font-size:small;"><span style="font-family:Calibri;">Interessado favor enviar e-mail para bruno.simon.meta@vivo.com.br / itania.ferrer@metainf.com.br  <em>Frase do SEBRAE: “com conhecimento você vai longe!”</em> </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><em><span style="color:#000000;">Ditado popular: “água mole em pedra dura, quanto bate ate que fura”</span></em></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;"> Quero deixar claro que não quis dizer que a experiência não é importante, mais apenas alertar aqueles que acham que sem ela você é um profissional sem valor. Há cargos que a experiência é muito importante como: engenheiros de software, gerente de software, infelizmente sem experiência nessas áreas o risco  de contratar um profissional que nunca liderou uma equipe por exemplo e não teve nem 100h de experiência se torna arriscado.<br />
Mais no geral veja as considerações feitas aqui para programadores, desenvolvedores etc. onde acho que é possível contratar  o profissional mesmo sem experiência de 1 ano, desde que ele compense isso no nível de conhecimento .</span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong><span style="color:#7f7f7f;">Flw! Espero ter contribuindo mais vez! E até a próxima!! Bom final de semana a todos</span></strong></span></span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Relatórios em Flex? Jasper4Flex pode ser uma opção]]></title>
<link>http://jsatriani.wordpress.com/?p=7</link>
<pubDate>Fri, 16 May 2008 17:18:15 +0000</pubDate>
<dc:creator>jsatriani</dc:creator>
<guid>http://jsatriani.wordpress.com/?p=7</guid>
<description><![CDATA[Recentemente por uma iniciativa de Teodor Danciu, foi desenvolvido mais uma opção de renderizaçã]]></description>
<content:encoded><![CDATA[<p class="MsoBodyText" style="text-align:justify;"><span>Recentemente por uma iniciativa de </span><a href="http://www.jasperforge.org/sf/global/do/viewUser/teodord">Teodor Danciu</a><span>, foi desenvolvido mais uma opção de renderização de relatórios feitos em jasper, so que desta vez em swf, ou seja, para desenvolvimento </span><span><a href="http://www.adobe.com/products/flex/">Flex</a></span><span>, conhecido como </span><a href="http://www.jasperforge.org/sf/projects/jasper4flex">Jasper4Flex</a><span>, o mesmo possui algumas peculiaridades em relação ao </span><a href="http://flexreport.riaforge.org/">FlexReport</a><span>, pois constitui base jasper </span><strong><span>server-side</span></strong><span>, então toda a geração do relatório ocorre no servidor jasper seguido de um </span><strong><span>parser</span></strong><span> Jasper4Flex, feito por um servlet registrado no </span><em><span>deploy descriptor:</span></em></p>
<p class="western" style="margin-bottom:0;" align="justify"><em></em></p>
<p class="western" style="margin-bottom:0;" align="justify">
<p class="western" style="margin-bottom:0;" align="justify"><strong>web.xml</strong></p>
<p class="western" style="margin-bottom:0;" align="justify">....</p>
<p class="western" style="margin-bottom:0;" align="justify"><span style="font-family:Courier New;"><span style="font-size:x-small;"><span style="color:#008080;">&#60;</span><span style="color:#3f7f7f;">servlet</span><span style="color:#008080;">&#62;</span></span></span></p>
<p class="western" style="margin-bottom:0;" align="left"><span style="font-family:Courier New;"><span style="font-size:x-small;"><span style="color:#008080;">&#60;</span><span style="color:#3f7f7f;">servlet-name</span><span style="color:#008080;">&#62;</span><span style="color:#000000;">SwfServlet</span><span style="color:#008080;">&#60;/</span><span style="color:#3f7f7f;">servlet-name</span><span style="color:#008080;">&#62;</span></span></span></p>
<p class="western" style="margin-bottom:0;" align="left"><span style="font-family:Courier New;"><span style="font-size:x-small;"><span style="color:#008080;">&#60;</span><span style="color:#3f7f7f;">servlet-class</span><span style="color:#008080;">&#62;</span><span style="color:#000000;">net.sf.jasperreports.j2ee.servlets.SwfServlet</span><span style="color:#008080;">&#60;/</span><span style="color:#3f7f7f;">servlet-class</span><span style="color:#008080;">&#62;</span></span></span></p>
<p class="western" style="margin-bottom:0;" align="left"><span style="font-family:Courier New;"><span style="font-size:x-small;"><span style="color:#008080;">&#60;/</span><span style="color:#3f7f7f;">servlet</span><span style="color:#008080;">&#62;</span></span></span></p>
<p class="western" style="margin-bottom:0;" align="left"><span style="color:#000000;"><span style="font-family:Courier New;"><span style="font-size:x-small;"> </span></span></span></p>
<p class="western" style="margin-bottom:0;" align="left"><span style="font-family:Courier New;"><span style="font-size:x-small;"><span style="color:#008080;">&#60;</span><span style="color:#3f7f7f;">servlet-mapping</span><span style="color:#008080;">&#62;</span></span></span></p>
<p class="western" style="margin-bottom:0;" align="left"><span style="font-family:Courier New;"><span style="font-size:x-small;"><span style="color:#000000;"> </span><span style="color:#008080;">&#60;</span><span style="color:#3f7f7f;">servlet-name</span><span style="color:#008080;">&#62;</span><span style="color:#000000;">SwfServlet</span><span style="color:#008080;">&#60;/</span><span style="color:#3f7f7f;">servlet-name</span><span style="color:#008080;">&#62;</span></span></span></p>
<p class="western" style="margin-bottom:0;" align="left"><span style="font-family:Courier New;"><span style="font-size:x-small;"><span style="color:#000000;"> </span><span style="color:#008080;">&#60;</span><span style="color:#3f7f7f;">url-pattern</span><span style="color:#008080;">&#62;</span><span style="color:#000000;">/servlets/swf</span><span style="color:#008080;">&#60;/</span><span style="color:#3f7f7f;">url-pattern</span><span style="color:#008080;">&#62;</span></span></span></p>
<p class="western" style="margin-bottom:0;" align="left"><span style="font-size:x-small;"><span style="font-family:Courier New;"><span style="color:#008080;">&#60;/</span><span style="color:#3f7f7f;">servlet-mapping</span><span style="color:#008080;">&#62;</span></span></span></p>
<p class="western" style="margin-bottom:0;" align="justify">
<p class="western" style="margin-bottom:0;" align="justify">......</p>
<p class="western" style="margin-bottom:0;" align="justify">Em poucas linhas podemos fazer nossa chamada apartir de um servlet.</p>
<p class="western" style="margin-bottom:0;" align="justify">
<p><code>JasperPrint impressao = JasperFillManager.fillReport("Report_exemplo.jasper", parametros,conn);<br />
HttpSession session  =   request.getSession();<br />
session.setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, impressao);<br />
response.sendRedirect("servlets/swf");</code></p>
<p class="western" style="margin-bottom:0;" align="justify">
<p class="MsoBodyText" style="margin-bottom:0.0001pt;text-align:justify;"><span>Neste caso foi criado um servlet para testar o exemplo. O código, não tem muito mistério a única diferença está, em como esse servlet vai responder essa requisição direcionando 'servlets/swf'. O resto o jasper4Flex se encarrega de fazer. Estou ate satisfeito com os testes que tenho feito ate agora. Mais o projeto é muito recente? Sim, eu sei mais a comunidade esta ai pra isso, testar, motivar e colaborar. Vejo isso como mais um incentivo a desenvolvedores que querem usar projetos </span><span><a href="http://java.sun.com/">Java</a></span><span> em </span><strong><em><span>front-end</span></em></strong><strong><span> </span></strong><span>Flex. Os exemplos podem ser baixados <a href="http://sourceforge.net/project/showfiles.php?group_id=36382">aqui</a> no site do projeto.<br />
</span></p>
<p class="western" style="margin-bottom:0;" align="justify"><span> </span></p>
<p class="western" style="margin-bottom:0;" align="justify">
]]></content:encoded>
</item>
<item>
<title><![CDATA[Sun Tech Days!]]></title>
<link>http://robextrem.wordpress.com/?p=63</link>
<pubDate>Fri, 16 May 2008 16:10:42 +0000</pubDate>
<dc:creator>robextrem</dc:creator>
<guid>http://robextrem.wordpress.com/?p=63</guid>
<description><![CDATA[Pues ya empieza la cuenta regresiva para este evento, que se llevara a cabo del 21 al 23 de mayo en ]]></description>
<content:encoded><![CDATA[<p>Pues ya empieza la cuenta regresiva para este evento, que se llevara a cabo del 21 al 23 de mayo en el Centro Banamex, Av. del Conscripto 311, Lomas de Sotelo, CP 11200, México D.F.</p>
<p>Sin embargo, las inscripciones ya se cerraron, asi que a todos los afortunados participantes ya nos veremos por alla.</p>
<p>El dia viernes habra una sesion especial para miembros de la comunidad Sun asi que no dejen de ir. Y recuerden que si van a los talleres deberan asistir con su lap-top.</p>
<p><strong>La agenda:</strong></p>
<table border="1" cellspacing="0" cellpadding="2" width="100%">
<tbody>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;" colspan="5">Mayo 21, 2008 - Sun Tech Days día 1</td>
</tr>
<tr>
<td>7:30 - 9:00am</td>
<td colspan="4">REGISTRO</td>
</tr>
<tr>
<td>9:00 - 9:10am</td>
<td colspan="4">Bienvenida a Sun Tech Days</td>
</tr>
<tr>
<td>9:10 - 9:30am</td>
<td colspan="4">Presentación del Country Manager: <strong>Eduardo Gutiérrez Ramos</strong></td>
</tr>
<tr>
<td>9:30 - 10:10am</td>
<td colspan="4">Demo. Showcase: Las tecnologías del mañana, en acción hoy.</td>
</tr>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;">10:10 - 10:30am</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" colspan="4" align="center">COFFEE BREAK - Pabellón de Sponsors y Expositores habilitado</td>
</tr>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;"></td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" align="center">ENTERPRISE TRACK</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" align="center">DESKTOP TRACK</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" align="center">SOLARIS  TRACK</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" align="center">SOLARIS TRACK &#38; HANDS-ON LABS</td>
</tr>
<tr>
<td>10:30 - 11:20am</td>
<td>Java EE, GlassFish y su futuro</td>
<td>JavaFX: una rica Plataforma de Aplicaciones</td>
<td>¿Qué hace a Solaris interesante?</td>
<td rowspan="2">LAB-8430: Aislando cuellos de botella en la performance con NetBeans Profiler</td>
</tr>
<tr>
<td>11:30 - 12:20pm</td>
<td>Sesión Técnica Oracle</td>
<td>Java SE 6: Las 10 características más importantes y Java SE 7</td>
<td>Características de seguridad nuevas en Solaris y OpenSolaris</td>
</tr>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;">12:30 - 1:30pm</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" colspan="4" align="center">COMIDA - Pabellón de Sponsors y Expositores habilitado</td>
</tr>
<tr>
<td>1:30 - 2:20pm</td>
<td colspan="4">Presentación clave de Sun (Keynote): <span style="font-weight:bold;">Jim Parkinson</span></td>
</tr>
<tr>
<td>2:20 - 3:10pm</td>
<td>Rapid Development con Ruby, JRuby y Rails<span style="background-color:#ffffff;"><br />
</span></td>
<td>Implementación sencilla: un runtime ligero y capaz</td>
<td>Desarrollo de aplicaciones de alto rendimiento en sistemas multi-núcleo con los compiladores y herrramientas Sun Studio</td>
<td>SYS-ADMIN: Avances en la infraestructura de red de Solaris</td>
</tr>
<tr>
<td>3:20 - 4:10pm</td>
<td>API de Persistencia de Java: simplificando aún más la Persistencia</td>
<td>Swing con Zing</td>
<td>Ajustes a la performance: Sun Studio Analyzer, Race Detection Tool y DTrace</td>
<td>SYS-ADMIN: Virtualización con Solaris para Sys-Admins</td>
</tr>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;">4:20 - 4:40pm</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" colspan="4" align="center">COFFEE BREAK - Pabellón de Sponsors y Expositores habilitado</td>
</tr>
<tr>
<td>4:40 - 5:30pm</td>
<td>Metro y REST: Web Services para el día a día<span style="background-color:#ff6666;"><br />
</span></td>
<td>Consejos para la solución de problemas en Java</td>
<td>Deja que SMF se haga cargo</td>
<td rowspan="2">LAB-350: Clientes completos con JavaFX</td>
</tr>
<tr>
<td>5:40 - 6:30pm</td>
<td>Java EE con Spring y Seam</td>
<td>Usando NetBeans con tus proyectos en curso</td>
<td>OpenSolaris y AMP: soporte para desarrollo de Web 2.0</td>
</tr>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;">6:40 - 7:40pm</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" colspan="4" align="center">RECEPCIÓN DE BIENVENIDA</td>
</tr>
</tbody>
</table>
<hr class="light" />
<table border="1" cellspacing="0" cellpadding="2" width="100%">
<tbody>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;" colspan="5">Mayo 22, 2008 - Sun Tech Days día 2</td>
</tr>
<tr>
<td>9:00 - 9:10am</td>
<td colspan="4">Bienvenida</td>
</tr>
<tr>
<td>9:10 - 9:50am</td>
<td colspan="4">Presentación clave de Sun (Community Keynote): <span style="font-weight:bold;">Tim Bray</span></td>
</tr>
<tr>
<td>9:50 - 10:40am</td>
<td colspan="4">Presentación clave de Oracle (Keynote)</td>
</tr>
<tr>
<td>10:40 - 11:00am</td>
<td colspan="4">Show de talentos extraños e inusuales.</td>
</tr>
<tr></tr>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;">11:00 - 11:20am</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" colspan="5" align="center">COFFEE BREAK - Pabellón de Sponsors y Expositores habilitado</td>
</tr>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;"></td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" align="center">WEB 2.0 TRACK</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" align="center">JAVA DEVELOPMENT AND DEPLOYMENT TRACK</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" align="center">SOLARIS TRACK</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" align="center">HANDS-ON LABS</td>
</tr>
<tr>
<td>11:20 - 12:10pm</td>
<td>Ajax, entornos y herramientas de la Web 2.0</td>
<td><span style="background-color:transparent;">Mayor productividad en el desarrollo con Python y Jython</span></td>
<td>ZFS para Developers</td>
<td rowspan="2">LAB-9520: DTrace Hands-on<br />
DTrace para Java y otros lenguajes web</td>
</tr>
<tr>
<td>12:20 - 1:10pm</td>
<td>Desarrollando aplicaciones Web 2.0 con jMaki</td>
<td>Sun SPOTs: una muestra detallada y demos divertidas</td>
<td>NFS y pNFS: Storage de alta performance para aplicaciones HPC</td>
</tr>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;">1:20 - 2:20pm</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" colspan="4" align="center">COMIDA - Pabellón de Sponsors y Expositores habilitado</td>
</tr>
<tr>
<td>2:20 - 3:10pm</td>
<td>Sesión técnica de Computer Associates - CA</td>
<td>JSF y Ajax</td>
<td>Sesión técnica AMD: optimizando para sistemas Solaris  Quad-core sobre plataforma AMD</td>
<td rowspan="2">LAB-3410: Metro - Web services</td>
</tr>
<tr>
<td>3:20 - 4:10pm</td>
<td>Sesión técnica de SAP</td>
<td>Rompecabezas Java, de fácil moderación</td>
<td>Sesión técnica Intel: ¿qué hacemos para optimizar Solaris para la arquitectura Intel?</td>
</tr>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;">4:10 - 4:40pm</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" colspan="4" align="center">COFFEE BREAK - Pabellón de Sponsors y Expositores habilitado</td>
</tr>
<tr>
<td>4:40 - 5:30pm</td>
<td style="background-color:transparent;">SOA usando OpenESB, BPEL y NetBeans</td>
<td>MySQL y Sun Java DB</td>
<td>Cómo desarrollar Solaris Parallel Applications</td>
<td rowspan="2">LAB-6400: Juegos para móviles</td>
</tr>
<tr>
<td>5:40 - 6:30pm</td>
<td>Seguridad en Web Services: OpenSSO y Administración de accesos para SOA</td>
<td>Ajustando el rendimiento de las aplicaciones: programando en Java para una mejor Garbage Collection</td>
<td>Tus Parallel Applications en la Grid con Sun Grid Engine</td>
</tr>
</tbody>
</table>
<hr class="light" />
<table border="1" cellspacing="0" cellpadding="2" width="100%">
<tbody>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;" colspan="4">Mayo 23, 2008 - Community Events</td>
</tr>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;"></td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" align="center">NETBEANS</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" align="center">SOLARIS</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" align="center">UNIVERSITY</td>
</tr>
<tr>
<td>9:00 - 9:10am</td>
<td>Bienvenida NetBeans Day</td>
<td>Bienvenida Solaris Day</td>
<td>Bienvenida University Day</td>
</tr>
<tr>
<td>9:10 - 10:00am</td>
<td>Qué hay de nuevo e interesante en NetBeans</td>
<td>¿Qué es OpenSolaris?</td>
<td>Demos Java y NetBeans para no perderse</td>
</tr>
<tr>
<td>10:10 - 11:00am</td>
<td>Aprovechando el poder de JavaFX con NetBeans</td>
<td>Testeo de OpenSolaris</td>
<td>Introducción a Solaris y OpenSolaris.org - ¡Con certificación!</td>
</tr>
<tr></tr>
<tr>
<td style="font-weight:bold;background-color:#5382a1;color:white;">11:00 - 11:20am</td>
<td style="font-weight:bold;background-color:#5382a1;color:white;" colspan="3" align="center">COFFEE BREAK</td>
</tr>
<tr>
<td>11:20 - 12:10pm</td>
<td>Herramientas integradas de perfilado</td>
<td><span style="background-color:transparent;">Tecnologías de Virtualización en OpenSolaris</span></td>
<td rowspan="2">Tecnologías del "Mundo Real": NetBeans GUI Builder, JRuby, JavaFX y JavaME<br />
-<br />
¡Con certificación!</td>
</tr>
<tr>
<td>12:20 - 1:10pm</td>
<td>La plataforma NetBeans</td>
<td>Descubriendo Open High Availability Cluster</td>
</tr>
<tr>
<td>1:20 - 2:10pm</td>
<td>NetBeans Mobility Pack</td>
<td>OpenStorage para Solaris</td>
<td>Mejorando tu perfil profesional: El poder de Sun</p>
<p>--Embajador en el campus</td>
</tr>
</tbody>
</table>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Arrays$ArrayList]]></title>
<link>http://0signal.wordpress.com/?p=34</link>
<pubDate>Fri, 16 May 2008 15:44:56 +0000</pubDate>
<dc:creator>robinseybold</dc:creator>
<guid>http://0signal.wordpress.com/?p=34</guid>
<description><![CDATA[Today I got a ClassCastException for trying to cast a java.util.Arrays$ArrayList to java.util.ArrayL]]></description>
<content:encoded><![CDATA[<p>Today I got a ClassCastException for trying to cast a java.util.Arrays$ArrayList to java.util.ArrayList. I couldn't understand how that cast was forbidden until I had read some forums and documentation:</p>
<p>If you have an Arrays-object and call its function asList(), you will get an Arrays$ArrayList-object back. However, this is a List representing the Arrays-object rather than an ArrayList. So, besides the 'normal' ArrayList, there is also an inner class in the Arrays-class (which also belongs to the java.util-package) that is named ArrayList..and it is NOT a 'normal' ArrayList! Confusing? Very.</p>
<p>I would have named it ArraysList...or just List, since that's what it is.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Java Grundlagen]]></title>
<link>http://impalervlad.wordpress.com/?p=4</link>
<pubDate>Fri, 16 May 2008 15:41:03 +0000</pubDate>
<dc:creator>impalervlad</dc:creator>
<guid>http://impalervlad.wordpress.com/?p=4</guid>
<description><![CDATA[Sobald Eclipse lauffertig gebracht worden ist, kann es eigentlich schon losgehen. Ich versuche hier ]]></description>
<content:encoded><![CDATA[<p>Sobald Eclipse lauffertig gebracht worden ist, kann es eigentlich schon losgehen. Ich versuche hier kurz eine Referenz zu entwerfen, die die Grundlagen von Java vermittelt. Dank des Internets kann jeder Mensch hier jederzeit nachschlagen, falls gewisse Grundlagen fehlen. Dank des Open Source Geistes natürlich kostenlos und jeder, der kommentieren möchte, kann dies auch gerne tun.</p>
<p><b>1. Schachtelung</b></p>
<p>Java sieht aus wie C++, wer C++ nicht kennt: auch nicht schlimm! In Java geschieht die Hauptarbeit in der Main Methode. Die Methode selber befindet sich in der sogenannten Main Klasse. Egal wie sie heißt. Die Main Methode allerdings muss main heißen. Hier folgt ein einfaches Beispiel:</p>
<p><i>public MyPartyMainClass</i></p>
<p><i>{</i></p>
<p><i>public static void main(String[] args)</i></p>
<p><i>{</i></p>
<p>...</p>
<p><i>}</i></p>
<p><i>}</i></p>
<p>So sieht das aus und was es genau bedeutet ist egal. An der Stelle der drei Punkt beginnt die eigentliche Arbeit des Programmes. Das ganze hier ist ein Einsprungspunkt für die Java Maschine. Man muss sich ja irgendwie einigen, damit Java weiß, wo das Programm anfängt. Wir wollen ja nicht irgndwo anfangen sondern am Anfang!</p>
<p><br></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Reflections in Java]]></title>
<link>http://jenszetech.wordpress.com/?p=7</link>
<pubDate>Fri, 16 May 2008 15:06:24 +0000</pubDate>
<dc:creator>jcsze</dc:creator>
<guid>http://jenszetech.wordpress.com/?p=7</guid>
<description><![CDATA[To make a very flexible or dynamic functions or classes.. use the reflections.. 
Involve: Class, Met]]></description>
<content:encoded><![CDATA[<p>To make a very flexible or dynamic functions or classes.. use the reflections.. </p>
<p>Involve: Class, Method, Field</p>
<p>Normally, given the name of the class, you can generate everything you want from that class.</p>
<p>Class klazz = Class.forName("db.HelpDeskTable");<br />
Object obj = klazz.newInstance();<br />
Field f[] = klazz.getFields();<br />
Method m[] = klazz.getMethods(); </p>
<p>To get a particular field or method, you could also specify it:<br />
Field f = klazz.getFields("HDNo");</p>
<p>To get the field itself and set it to a class:<br />
Column col = (Column) f.get(obj)</p>
<p>To run the method and get the value:<br />
Object oRet = m.invoke(obj, param1... )</p>
<p>You can also use ANNOTATIONS to specify the fields that you want:</p>
<p>import java.lang.annotation.Retention;<br />
import java.lang.annotation.RetentionPolicy;</p>
<p>@Retention(value=RetentionPolicy.RUNTIME)<br />
public @interface FieldName {<br />
}</p>
<p><strong>THEN YOU USE IT AS : </strong> klazz.isAnnotationPresent(FieldName.class) -&#62; to get only the field that has annotations @FieldName</p>
<p>Basically you could get all the information you need about the class =)</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Don't judge a book by its cover]]></title>
<link>http://bbossola.wordpress.com/?p=41</link>
<pubDate>Fri, 16 May 2008 12:52:32 +0000</pubDate>
<dc:creator>bbossola</dc:creator>
<guid>http://bbossola.wordpress.com/?p=41</guid>
<description><![CDATA[
This is not a spot. This is a book I&#8217;ve been leaving closed because of its cover&#8230; what ]]></description>
<content:encoded><![CDATA[<p><a title="Head First Object-Oriented Analysis and Desing (on Amazon.com)" href="http://www.amazon.com/Head-First-Object-Oriented-Analysis-Design/dp/0596008678//" target="_blank"><img class="alignleft" style="float:left;" border="0" src="http://ecx.images-amazon.com/images/I/51H8F665FAL._SS500_.jpg" alt="Head First Object-Oriented Analysis and Design" width="160" height="175" /></a><br />
This is not a spot. This is a book I've been leaving closed because of its cover... what a pity! This is the first book I've ever read that actually talks and explain object oriented in an easy and pleasant way. Most experienced programmers will find it not much useful, but for a newbie or an intermediate OO programmer this is a must read.</p>
<p>In case of doubt, just read it :) It will worth the time you're going to spend. Definitely. And it's also quite amusing sometimes!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Internet Explorer Sicherheitslücke erlaubt ausführen von Schadcode]]></title>
<link>http://serviceforen.wordpress.com/?p=100</link>
<pubDate>Fri, 16 May 2008 12:12:35 +0000</pubDate>
<dc:creator>ReneDD</dc:creator>
<guid>http://serviceforen.wordpress.com/?p=100</guid>
<description><![CDATA[
Durch speziell manipulierte Webseiten können Angreifer über den Internet Explorer Schadcode einsc]]></description>
<content:encoded><![CDATA[<p><img style="float:left;" src="http://www.service-foren.de/images/stories/news_sicherheit.png" border="0" alt="Sicherheit" hspace="6" width="100" height="100" /></p>
<p>Durch speziell manipulierte Webseiten können Angreifer über den Internet Explorer Schadcode einschleusen und ausführen. Entdeckt wurde dies durch Aviv Raff.</p>
<p>Es wird eine Cross-Zone-Lücke ausgenutzt, durch diese Lücke kann Webseiten Code anstatt in der Internet-Zone in der lokalen Zonen ausführt werden. Die Benutzer müssen allerdings dazu beitragen das die Lücke genutzt werden kann.</p>
<p>Eine Beispiel Webseite demonstriert die Lücke in dem sie den Windows-Taschenrechner aufruft.</p>
<p>Sobald der Benutzer die Webseite, mit aktiviertem "Liste der Links ausdrucken", ausdruckt wird der Taschenrechner gestartet. Dabei ist es irrelevant ob man die Ausführung von aktiven Inhalten zulässt oder nicht.</p>
<p>Der Fehler tritt in der aktuellen Internet Explorer Version 7 auf Windows XP mit SP2 auf.</p>
<p>Sobald ein Benutzer eine Webseite ausdrucken möchte, nutzt der Browser ein lokales Skript, welches eine neue HTML Datei erzeugt. Die neu erstellte Seite wird dann gedruckt.</p>
<p>Das HTML enthält eine Kopf- und Fußzeile sowie das Hauptelement. Zusätzlich kann eine Liste der Links erstellt werden.<br />
Das Problem besteht darin dass das lokale Skript die URLs nicht überprüft, der URL-Code wird direkt übernommen.</p>
<p>Lokale Skripte vom Internet Explorer laufen meist in der Internet-Zone, das Skript zum ausdrucken allerdings in der lokalen Zone. Dies reißt die Sicherheitslücke auf und ermöglicht JavaScript mit beliebigen Code auf den Rechner des Benutzers einzuspielen.</p>
<p>Das Problem besteht auch bei der Beta vom Internet Explorer 8.</p>
<p>Unter Windows XP kann man belieben Code ausführen, unter Windows Vista mit aktivierter Benutzerkontensteuerung (UAC) ist nur das ausspähen von Informationen möglich.</p>
<p>Solange kein Patch von Microsoft bereitgestellt wird sollten Benutzer auf das ausdrucken mit aktiver Linkliste verzichten.</p>
<p><a href="http://computer.service-foren.de/viewtopic.php?f=61&#38;t=124">Diskussion zur Nachricht</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Inside WDK DocbaseObject]]></title>
<link>http://robau.wordpress.com/?p=4</link>
<pubDate>Fri, 16 May 2008 11:51:34 +0000</pubDate>
<dc:creator>robau</dc:creator>
<guid>http://robau.wordpress.com/?p=4</guid>
<description><![CDATA[Last days I&#8217;ve been struggling with the dmfx:docbaseobject in the wdk 5.3.
Because I wanted mo]]></description>
<content:encoded><![CDATA[<p>Last days I've been struggling with the dmfx:docbaseobject in the wdk 5.3.</p>
<p>Because I wanted more control on the layout of the attributes, I choose to create the attributes one by one in the jsp, instead of using the attributelist.</p>
<p>Snippet:</p>
<pre><span style="color:#3366ff;">&#60;dmfx:docbaseobject name='current_document' /&#62;                        </span>
<span style="color:#3366ff;">&#60;tr&#62;&#60;td&#62;
&#60;dmfx:docbaseattribute name='attr_obj_id' object='current_document' attribute='r_object_id'  col1="&#60;/td&#62;&#60;td&#62;" /&#62;
&#60;/td&#62;&#60;/tr&#62;</span>
<span style="color:#3366ff;">&#60;tr&#62;&#60;td&#62;
&#60;dmfx:docbaseattribute name='attr_medewerkercode' object='current_document' attribute='medewerkercode' size='12' col1="&#60;/td&#62;&#60;td&#62;" /&#62;
&#60;/td&#62;&#60;/tr&#62;</span></pre>
<p>This piece of code resides in a component-page. I have created a button that refreshes the page and changes the docbaseobject's id. When re-rendering, the old values of the attributes remain on the page. This has to do with the internal workings of the DocbaseAttributeValueTag.</p>
<p>The problem lies in the renderEnd code, which does something like this:           </p>
<pre>DocbaseAttributeValue value = (DocbaseAttributeValue) getControl();
 
if(obj.isADocbaseObjectInstance())
{
  strValue = value.getValue();
  if(strValue == null)
  {
    IObjectAdapter objectAdapter = obj.getObjectAdapter();
    if(objectAdapter != null)
    {
      strValue = getValueFromObjectAdapter(objectAdapter);
    } else
    {
      strValue = getValueFromDocbaseObject();
    }
    value.setValue(strValue);
    bGotDisplayValuesForRepeatingAttr = true;
  }
}</pre>
<p>It acutally reads the value directly from it's control class. But once the value inside the control class gets set to somethinh other than null, the object is no longer updated.</p>
<p>This is how I worked around it.</p>
<p>I created a extra boolean value "m_reloadFromDocbase" in the control class and in the DocbaseAttribute class, and added these lines in the renderEnd</p>
<pre>   if (value.getReloadFromDocbase())
      strValue = null;</pre>
<p>This ensures the value of the attribute will get reloaded from the docbase.</p>
<p>In the behaviour class that handles thes jsp, the render-code is a little extended:</p>
<pre>                DocbaseAttribute dat = (DocbaseAttribute) getControl( "attr_" + attribute, DocbaseAttribute.class );
                dat.setReloadFromDocbase( true );</pre>
<p>The attribute comes form analyzing the page, using a FindValidAttribute visitor. If the boolean is set to false, the filled-in value will remain.</p>
<p>If you are interested in more detail, please dorp me a line [still figuring out howto]</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[NTLM Authentication for Java http clients]]></title>
<link>http://info4tech.wordpress.com/?p=86</link>
<pubDate>Fri, 16 May 2008 11:41:05 +0000</pubDate>
<dc:creator>imranaziz</dc:creator>
<guid>http://info4tech.wordpress.com/?p=86</guid>
<description><![CDATA[I was working to provide NTLM authentication to a RSS aggregator plugin  http://confluence.atlassian]]></description>
<content:encoded><![CDATA[<p>I was working to provide NTLM authentication to a RSS aggregator plugin  http://confluence.atlassian.com/display/CONFEXT/RSS+aggregator+macro+plugin , in our implementation the rssaggregator needed to access rss feed from an IIS installed application within an AD intergrated setup, so our http request needed to go through NTLM authentication.</p>
<p>What I found out during this exercise is that if one is on the same AD domain as the server  hosting the secure contents then JDK 1.5 and 1.6 does a transparent authentication at the backend, automatically transferring the login details from the http client to the server , however if the request is being made from a client outside the domain then the login details have to be provided using the username and password for the client accessing the protected resource, for that I found the Jave <a title="Authenticator" href="http://java.sun.com/j2se/1.4.2/docs/api/java/net/Authenticator.html" target="_blank">Authenticator </a>class to be the best option, since you do not have to alter your existing code and just call the Authenticator before the http request and populate the authentication credentials in it. Worked really well for me.</p>
<p><strong>References</strong><br />
Two exhaustive definitions of how ntlm works, and the interactions</p>
<p><a href="http://www.innovation.ch/personal/ronald/ntlm.html">http://www.innovation.ch/personal/ronald/ntlm.html</a><br />
<a href="http://davenport.sourceforge.net/ntlm.html"> http://davenport.sourceforge.net/ntlm.html</a><br />
Useful link to valid Java Implementation<a href="http://oaklandsoftware.com/papers/ntlm.html"><br />
http://oaklandsoftware.com/papers/ntlm.html</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Java, Javascript, AJAX, HTML, CSS, XML,PHP Video Tutorial,Videos, Video Lectures,Tutorials,Free Videos]]></title>
<link>http://getweightlosstips.wordpress.com/?p=27</link>
<pubDate>Mon, 17 Mar 2008 00:30:32 +0000</pubDate>
<dc:creator>getweightlosstips</dc:creator>
<guid>http://getweightlosstips.wordpress.com/?p=27</guid>
<description><![CDATA[Java, Javascript, AJAX, HTML, CSS, XML, PHP Video Tutorial,Videos, Video Lectures, Tutorials, Free V]]></description>
<content:encoded><![CDATA[<p>Java, Javascript, AJAX, HTML, CSS, XML, PHP Video Tutorial,Videos, Video Lectures, Tutorials, Free Videos <a href="http://blogcone.blogspot.com/">here</a></p>
<p><a href="http://blogcone.blogspot.com/">more......</a></p>
<p>Harvard Video lectures and MIT Open Course Ware <a href="http://blogcone.blogspot.com/">here</a></p>
]]></content:encoded>
</item>

</channel>
</rss>
