<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rogério Lino &#187; java</title>
	<atom:link href="http://rogeriolino.com/tags/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://rogeriolino.com</link>
	<description>Desenvolvimento Web, tecnologia, jogos e etcetera</description>
	<lastBuildDate>Wed, 01 Feb 2012 19:22:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>PHP: Manga Framework</title>
		<link>http://rogeriolino.com/2011/09/20/php-manga-framework/</link>
		<comments>http://rogeriolino.com/2011/09/20/php-manga-framework/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 18:35:56 +0000</pubDate>
		<dc:creator>Rogério Alencar Lino Filho</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[facelets]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[ioc]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsf]]></category>
		<category><![CDATA[lithium]]></category>
		<category><![CDATA[manga]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[playframework]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[ror]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[vraptor]]></category>
		<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://rogeriolino.com/?p=364</guid>
		<description><![CDATA[<p>Criado o projeto para o framework <a href="https://github.com/rogeriolino/manga-framework" title="Manga Framework">Manga, no Github</a> (PHP 5.3+).</p> <p>Entre algumas funcionalidades, destaca-se o seu template engine baseado no <a href="http://facelets.java.net/" title="Facelets">Facelets</a>.</p> <p>Os arquivos de configuração poderão ser escritos em mais de um formato, inicialmente suporte a XML e YAML. Annotations são utilizadas para enxugar esses arquivos de configuração, deixando [...]]]></description>
			<content:encoded><![CDATA[<p>Criado o projeto para o framework <a href="https://github.com/rogeriolino/manga-framework" title="Manga Framework">Manga, no Github</a> (PHP 5.3+).</p>
<p>Entre algumas funcionalidades, destaca-se o seu template engine baseado no <a href="http://facelets.java.net/" title="Facelets">Facelets</a>.</p>
<p>Os arquivos de configuração poderão ser escritos em mais de um formato, inicialmente suporte a XML e YAML. Annotations são utilizadas para enxugar esses arquivos de configuração, deixando o código mais intuitivo.</p>
<p>O próximo passo é implementar suporte à <a href="http://en.wikipedia.org/wiki/Inversion_of_control" title="Inversion of Control">IoC</a>, que inicialmente pode ser simulado pelo arquivo de configuração de rotas (com suporte <a href="http://en.wikipedia.org/wiki/Representational_state_transfer" title="Representational State Transfer">REST</a>).</p>
<p>A intenção não é desenvolver um framework revolucionário, e sim adaptar as ideias e metodologias já utilizadas por outros em um único framework afim de aumentar a produtividade. Servem como inspiração os seguintes frameworks:</p>
<p><strong>Ruby</strong></p>
<ul>
<li><a href="http://rubyonrails.org/" title="Ruby on Rails">RoR</a></li>
</ul>
<p><strong>Java</strong></p>
<ul>
<li><a href="http://javaserverfaces.java.net/" title="Java Server Faces">JSF2</a></li>
<li><a href="http://www.springsource.org/" title="Spring">Spring 3</a></li>
<li><a href="http://vraptor.caelum.com.br/" title="VRaptor">VRaptor</a></li>
<li><a href="www.playframework.org" title="Play Framework">Play Framework</a></li>
</ul>
<p><strong>PHP</strong></p>
<ul>
<li><a href="http://lithify.me/" title="Lithium">Lithium</a></li>
<li><a href="http://symfony.com/" title="Symfony">Symfony</a></li>
<li><a href="http://www.yiiframework.com/" title="Yii">Yii</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rogeriolino.com/2011/09/20/php-manga-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Template Engines</title>
		<link>http://rogeriolino.com/2010/09/09/php-template-engines/</link>
		<comments>http://rogeriolino.com/2010/09/09/php-template-engines/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 21:22:29 +0000</pubDate>
		<dc:creator>Rogério Alencar Lino Filho</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[dwoo]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[facelets]]></category>
		<category><![CDATA[flexy]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[fxl]]></category>
		<category><![CDATA[h2o]]></category>
		<category><![CDATA[inheritance]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jinja]]></category>
		<category><![CDATA[jsf]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[quickskin]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[tinybutstrong]]></category>
		<category><![CDATA[vemplator]]></category>
		<category><![CDATA[vlib]]></category>
		<category><![CDATA[xtemplate]]></category>

		<guid isPermaLink="false">http://rogeriolino.com/?p=315</guid>
		<description><![CDATA[<p>Todo mundo que programa em PHP sente falta de uma boa alternativa para separar o código PHP do visual (HTML). Nessas horas vale a pena estudar algumas template engines para PHP disponíveis para saber qual que melhor se adapta à suas necessidades e projeto. Alguns frameworks MVC possuem sua própria engine, outros tentam.</p> <p><a href="http://www.smarty.net/">Smarty</a></p> [...]]]></description>
			<content:encoded><![CDATA[<p>Todo mundo que programa em PHP sente falta de uma boa alternativa para separar o código PHP do visual (HTML). Nessas horas vale a pena estudar algumas template engines para PHP disponíveis para saber qual que melhor se adapta à suas necessidades e projeto. Alguns frameworks MVC possuem sua própria engine, outros tentam.</p>
<p><a href="http://www.smarty.net/">Smarty</a></p>
<p>O mais famoso e usado como inspiração por muitos outros projetos. Robusto (possuindo blocos condicionais/loops e várias funções próprias) e rápido (&#8220;compilando&#8221; suas páginas para arquivos PHP).</p>
<pre name="code" class="html">
&lt;ul&gt;
{foreach from=$myArray item=foo}
    &lt;li&gt;{$foo}&lt;/li&gt;
{/foreach}
&lt;/ul&gt;
</pre>
<pre name="code" class="php">
$smarty = new Smarty;
$arr = array(1000, 1001, 1002);
$smarty->assign ('myArray', $arr);
$smarty->display ('HelloWorld.tpl');
</pre>
<p><a href="http://vlib.clausvb.de/vlibtemplate.php">vlibtemplate</a></p>
<p>Com esta engine saímos de um problema e entramos em outro, é necessário aprender (lembrar) algumas palavras reservadas para sinalizar variáveis, além do uso dos limitadores das expressões.</p>
<pre name="code" class="html">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;{tmpl_var name='title_text'}&lt;/title&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;p&gt;{tmpl_var name='body_text'}&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<pre name="code" class="php">
$tmpl = new vlibTemplate('tmpl/basic.htm');
$tmpl->setvar('title_text', 'TITLE: This is the vLIB basic example ...');
$tmpl->setvar('body_text', 'BODY: This is the message set using setvar()');
$tmpl->pparse();
</pre>
<p><a href="http://www.feverxl.org/template/">FXL Template</a></p>
<p>Muito pouco usual, o FXL faz uso dos blocos de comentário HTML para definir os loops. Outros semelhantes e nada melhores são: <a href="http://quickskin.worxware.com/">QuickSkin</a> e <a href="http://xtemplate.sourceforge.net/">XTemplate</a>.</p>
<pre name="code" class="html">
 &lt;table&gt;
     &lt;!-- START row --&gt;
         &lt;tr&gt;
             &lt;!-- START cell --&gt;
             &lt;td &gt;{td_value} &lt;/td&gt;
             &lt;!-- END cell --&gt;
         &lt;/tr&gt;
     &lt;!-- END row --&gt;
 &lt;/table&gt;
</pre>
<pre name="code" class="php">
$fxlt = new fxl_template('example.tpl');
$fxlt_row = $fxlt->get_block('row');
$fxlt_cell = $fxlt_row->get_block('cell');
for ($tr = 1; $tr <= 3; $tr++) {
    for ($td = 1; $td <= 3; $td++) {
        $fxlt_cell->assign('td_value', $tr.':'.$td);
        $fxlt_row->assign('cell', $fxlt_cell);
        $fxlt_cell->clear();
    }
    $fxlt->assign('row', $fxlt_row);
    $fxlt_row->clear();
}
$fxlt->display();
</pre>
<p><a href="http://www.greaterscope.net/projects/Vemplator">Vemplator</a></p>
<p>Mais do mesmo, mas com alterações de sintaxe.</p>
<pre name="code" class="html">
 &lt;h1&gt;{if:logged} Welcome {username} {else:} User not logged {end:} &lt;/h1&gt;
&lt;ul&gt;
{foreach:rows,row}
    &lt;li&gt;
    {row['name']}
    &lt;/li&gt;
{end:}
&lt;/ul&gt;
</pre>
<pre name="code" class="php">
$t = new vemplator();
// if/else
$t->assign('logged', true);
$t->assign('username', 'Rogerio');
// loop
$items = array(
	array('name' => 'Laptop'),
	array('name' => 'Memory Stick')
);
$t->assign('rows', $rows);
echo $t->output('example.template.html');
</pre>
<p><a href="http://www.tinybutstrong.com/">TinyButStrong</a></p>
<p>Uma alternativa ao estilo Smarty de muitos, porém é mais confuso e segue um padrão de nomenclatura bem particular.</p>
<pre name="code" class="html">
 &lt;table &gt;
 &lt;tr&gt;&lt;td&gt;[blk.val;block=tr]&lt;/td&gt;&lt;/tr&gt;
 &lt;/table &gt;
</pre>
<pre name="code" class="php">
$TBS =&#038; new clsTinyButStrong ;
$TBS->LoadTemplate('template.htm') ;
$list = array('X','Y','Z') ;
$TBS->MergeBlock('blk',$list) ;
$TBS->Show();
</pre>
<p><a href="http://dwoo.org/">Dwoo</a></p>
<p>Possui como diferencial um <a href="http://wiki.dwoo.org/index.php/TemplateInheritance">Template Inheritance</a>, o que facilita muito a vida na construção de templates.</p>
<pre name="code" class="html">
 &lt;html&gt;
 &lt;head&gt;
 &lt;title&gt;{block "title"}My site name{/block} &lt;/title&gt;
 &lt;/head&gt;
 &lt;body&gt;
     &lt;h1&gt;{block "page-title"}Default page title{/block} &lt;/h1&gt;
     &lt;div id="content"&gt;
      {block "content"}
        Welcome to my amazing homepage
      {/block}
     &lt;/div&gt;
 &lt;/body&gt;
 &lt;/html&gt;
</pre>
<pre name="code" class="html">
{extends "base.html"}
{block "title"}
Gallery
{/block}
{foreach $images img}
    <img src="{$img.url}" alt="{$img.description}" />
  {/foreach}
</pre>
<pre name="code" class="php">
$dwoo = Dwoo();
$images = array(
    array('url' => 'img1.jpg', 'description' => 'Ferrari'),
    array('url' => 'img2.jpg', 'description' => 'BMW')
);
$params = array();
$params['images'] = $images;
echo $dwoo->get("gallery.tpl", $params);
</pre>
<p><a href="http://www.h2o-template.org/">h2o</a></p>
<p>Baseado no Smarty, <a href="http://www.djangoproject.com/">Django Templates</a> e <a href="http://jinja.pocoo.org/">Jinja</a> (os dois últimos para Python).</p>
<pre name="code" class="html">
 &lt;html&gt;
 &lt;head&gt;
 &lt;title&gt;{{ page.title }}&lt;/title&gt;
 &lt;/head&gt;
 &lt;body&gt;
     {{ page.content }}
 &lt;/body&gt;
 &lt;/html&gt;
</pre>
<pre name="code" class="php">
$h2o = new h2o('index.html');
$page = array(
  'title' => 'title of a page',
  'body' => 'Hello world'
);
echo $h2o->render(compact('page'));
</pre>
<p><a href="http://pear.php.net/package/HTML_Template_Flexy/">PEAR Flexy</a></p>
<p>Entre os projetos disponíveis no PEAR (<a href="http://pear.php.net/package/HTML_Template_PHPLIB/">PHPLIB</a>, <a href="http://pear.php.net/package/HTML_Template_Sigma/">Sigma</a> e <a href="http://pear.php.net/package/HTML_Template_IT/">IT</a>) esse é o melhor. </p>
<p>Tem como desvantagem o fato de ter que definir as propriedades da sua classe como public (pelo menos dá para trabalhar com classes), linhas de includes e configurações exageradas (não presentes no exemplo abaixo), e algumas automações que precisam ser bem explicadas senão o programador (usuário) fica doido. Além de ter que codificar muito mais linhas se compararmos com os demais exemplos. </p>
<pre name="code" class="html">
 &lt;html&gt;
 &lt;head&gt;
 &lt;title&gt;{title}&lt;/title&gt;
 &lt;/head&gt;
 &lt;body&gt;
    &lt;!-- o valor do input será adicionado em $element['input'] --&gt;
    Input Box: &lt;input name="input" /&gt;
    &lt;ul&gt;
        &lt;!-- isso é o mesmo que foreach ($numbers as $number => $string) --&gt;
        &lt;li flexy:foreach="numbers,number,string" &gt;
            &lt;a href="mypage.html?id={number}"&gt;{string}&lt;/a&gt;
        &lt;/li&gt;
    &lt;/ul&gt;
    &lt;!-- chamando o método da classe --&gt;
    {someMethod()}
 &lt;/body&gt;
 &lt;/html&gt;
</pre>
<pre name="code" class="php">
class controller_test  {

    var $title;
    var $numbers = array();
    var $elements = array();

    function controller_test() {
        $this->start();
        $this->output();
    }

    function start() {
        $this->title = "Hello World";
        // create an HTML Element for the form element.
        $this->elements['input'] = new HTML_Template_Flexy_Element;
        $this->elements['input']->setValue('Hello');

        for ($i = 1;$i< 5;$i++) {
            $this->numbers[$i] = "Number $i";
        }
    }

    function output() {
        $output = new HTML_Template_Flexy();
        $output->compile("home.html");
        $output->outputObject($this,$this->elements);
    }

    function someMethod() {
        return "Hello From A Method";
    }

}
new controller_test();
</pre>
<p><em>Todos os exemplos a cima foram retirados dos próprios sites dos projetos, sofrendo alterações afim de minimizar as linhas e focar em suas caracterísicas, vantagens e desvantagens.</em></p>
<p>Em meados do ano passado comecei escrever uma engine baseada no <a href="https://javaserverfaces.dev.java.net/">JSF</a>+<a href="https://facelets.dev.java.net/">Facelets</a> (Java) e nesse mês voltei a trabalhar nela e espero que no próximo ano (2011) já tenha uma versão liberada (farei um post sobre).</p>
]]></content:encoded>
			<wfw:commentRss>http://rogeriolino.com/2010/09/09/php-template-engines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Annotations</title>
		<link>http://rogeriolino.com/2010/03/26/php-annotations/</link>
		<comments>http://rogeriolino.com/2010/03/26/php-annotations/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 13:21:12 +0000</pubDate>
		<dc:creator>Rogério Alencar Lino Filho</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[addendum]]></category>
		<category><![CDATA[annotations]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jpa]]></category>
		<category><![CDATA[persistence]]></category>
		<category><![CDATA[reflection]]></category>

		<guid isPermaLink="false">http://rogeriolino.com/?p=249</guid>
		<description><![CDATA[<p>É indiscutível a agilidade e facilidade de configuração que as annotations provêm no <a href="http://java.sun.com/">Java</a>, e com o objetivo de trazer tal comodidade ao <a href="http://php.net">PHP</a> surgiu o projeto <a href="http://code.google.com/p/addendum/">Addendum</a> &#8211; escrito por <a href="http://jsmf.net/">Jan Suchal</a> &#8211; que permite via <a href="http://en.wikipedia.org/wiki/Reflection_(computer_science)">Reflection</a> acessar as annotations das classes.</p> <p>As annotations devem ser escritas em blocos [...]]]></description>
			<content:encoded><![CDATA[<p>É indiscutível a agilidade e facilidade de configuração que as annotations provêm no <a href="http://java.sun.com/">Java</a>, e com o objetivo de trazer tal comodidade ao <a href="http://php.net">PHP</a> surgiu o projeto <a href="http://code.google.com/p/addendum/">Addendum</a> &#8211; escrito por <a href="http://jsmf.net/">Jan Suchal</a> &#8211; que permite via <a href="http://en.wikipedia.org/wiki/Reflection_(computer_science)">Reflection</a> acessar as annotations das classes.</p>
<p>As annotations devem ser escritas em blocos de comentários, uma vez que o <a href="http://thesmithfam.org/blog/2006/05/07/php-the-operator/">@</a> (caracter que inicia uma annotation) é um caractere reservado no PHP. Elas podem ser mono ou multi valoradas de acordo com os exemplos abaixo.</p>
<pre name="code" class="php">

// Custom annotation
class Persistent extends Annotation {}

// Custom annotation
class Table extends Annotation {}

// Multi valued annotation
class Secured extends Annotation {
   public $role;
   public $level;
}

/**
 * @Persistent
 * @Table("people")
 * @Secured(role = "admin", level = 2)
 */
class Person {
   // some code
}

// getting the annotation by class name
$reflection = new ReflectionAnnotatedClass('Person');

// getting the annotation by instance
$person = new Person();
$reflection = new ReflectionAnnotatedClass($person);

// true
$reflection->hasAnnotation('Persistent'); 

// contains string "people"
$reflection->getAnnotation('Table')->value; 
</pre>
<p>E seguindo na mesma onda da <a href="http://java.sun.com/javaee/technologies/persistence.jsp">JPA</a>, a <a href="http://www.doctrine-project.org/blog/php-5-3-and-doctrine-2-0-teaser">versão 2.0 do projeto Doctrine</a> implementou também a mesma funcionalidade e agora possui suas próprias annotations facilitando a configuração das classes de persistência e seus relacionamentos.</p>
<pre name="code" class="php">

/**
 * @DoctrineEntity(tableName="cms_articles")
 */
class CmsArticle {

   /**
    * @DoctrineId
    * @DoctrineColumn(type="integer")
    * @DoctrineIdGenerator("auto")
    */
   public $id;

   /**
    * @DoctrineColumn(type="varchar", length=255)
    */
   public $topic;

   /**
    * @DoctrineColumn(type="varchar")
    */
   public $text;

   /**
    * @DoctrineManyToOne(targetEntity="CmsUser",
           joinColumns={"user_id" = "id"})
    */
   public $user;

   /**
    * @DoctrineOneToMany(targetEntity="CmsComment", mappedBy="article")
    */
   public $comments;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://rogeriolino.com/2010/03/26/php-annotations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitter: Resumo #1</title>
		<link>http://rogeriolino.com/2010/03/05/twitter-resumo-1/</link>
		<comments>http://rogeriolino.com/2010/03/05/twitter-resumo-1/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 23:44:31 +0000</pubDate>
		<dc:creator>Rogério Alencar Lino Filho</dc:creator>
				<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[ps3]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rogeriolino.com/?p=199</guid>
		<description><![CDATA[<p><a title="Follow me!" href="http://twitter.com/rogeriolino"></a></p> <a href="http://bit.ly/aLnYDH">IE6 Funeral</a> <a href="http://bit.ly/9aolgt">The Computer Language Benchmarks Game</a> <a href="http://bit.ly/c21JDs">Java Performance comparisons</a> <a href="http://bit.ly/9on1mE">Ubuntu cada vez mais Mac</a> <a href="http://bit.ly/bpO0QQ">Password Chart: bom para os gestores de redes</a> <a href="http://bit.ly/aPGsB4">Empresa aérea bane Flash de seu site</a> <a href="http://bit.ly/ciYcRG">Twitter Drops MySQL For Cassandra</a> <a href="http://bit.ly/8XMxc2">PS3 Bug</a> <a href="http://bit.ly/d8p6xw">Mercado de games sofre com [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Follow me!" href="http://twitter.com/rogeriolino"><img class="aligncenter size-full wp-image-227" src="http://rogeriolino.com/wp-content/uploads/2010/03/Twitter.gif" alt="" width="300" height="300" /></a></p>
<ul>
<li><a href="http://bit.ly/aLnYDH">IE6 Funeral</a></li>
<li><a href="http://bit.ly/9aolgt">The Computer Language Benchmarks Game</a></li>
<li><a href="http://bit.ly/c21JDs">Java Performance comparisons</a></li>
<li><a href="http://bit.ly/9on1mE">Ubuntu cada vez mais Mac</a></li>
<li><a href="http://bit.ly/bpO0QQ">Password Chart: bom para os gestores de redes</a></li>
<li><a href="http://bit.ly/aPGsB4">Empresa aérea bane Flash de seu site</a></li>
<li><a href="http://bit.ly/ciYcRG">Twitter Drops MySQL For Cassandra</a></li>
<li><a href="http://bit.ly/8XMxc2">PS3 Bug</a></li>
<li><a href="http://bit.ly/d8p6xw">Mercado de games sofre com falta de mão de obra</a></li>
<li><a href="http://bit.ly/cFMmvJ">Nova hierarquia para certificações Java</a></li>
</ul>
<p>Gostou dos links? <a href="http://twitter.com/rogeriolino">Follow me!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rogeriolino.com/2010/03/05/twitter-resumo-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript: Games</title>
		<link>http://rogeriolino.com/2010/02/02/javascript-games/</link>
		<comments>http://rogeriolino.com/2010/02/02/javascript-games/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 14:03:47 +0000</pubDate>
		<dc:creator>Rogério Alencar Lino Filho</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jogos]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[akihabara]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[applet]]></category>
		<category><![CDATA[battleship]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[capman]]></category>
		<category><![CDATA[effectgames]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[flashplayer]]></category>
		<category><![CDATA[gamequery]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mario kart]]></category>
		<category><![CDATA[solitaire]]></category>
		<category><![CDATA[tetris]]></category>

		<guid isPermaLink="false">http://blog.rogeriolino.com/?p=158</guid>
		<description><![CDATA[<p>Conforme a evolução dos browsers e consequentemente das suas engines de javascript, hoje é possível encontrarmos diversas API/Engines dessa linguagem de script. E um tipo de engine que vem crescendo nessa linguagem é a de jogos.</p> <p>O que antes precisariámos de um plugin adicional &#8211; <a title="Flash Player" href="http://get.adobe.com/br/flashplayer/">Flash Player</a> e/ou <a title="Java Applet" href="http://java.sun.com/applets/">Java [...]]]></description>
			<content:encoded><![CDATA[<p>Conforme a evolução dos browsers e consequentemente das suas engines de javascript, hoje é possível encontrarmos diversas API/Engines dessa linguagem de script. E um tipo de engine que vem crescendo nessa linguagem é a de jogos.</p>
<p>O que antes precisariámos de um plugin adicional &#8211; <a title="Flash Player" href="http://get.adobe.com/br/flashplayer/">Flash Player</a> e/ou <a title="Java Applet" href="http://java.sun.com/applets/">Java Applet</a> &#8211; consumindo mais memória e processamento, podemos agora nos divertir com jogos rodando nativamente no browser.</p>
<p>É possível encontrar na web jogos desde os simples e clássicos <strong>Paciência</strong> (Solitaire), <strong>Tetris</strong>, <strong>Resta Um</strong> (Peg), passando por clássicos não tão simples como <strong>Mario Kart</strong>, até jogos mais complexos como <strong>Shadow of Time 4</strong> e <strong>Crystal Galaxy</strong>.</p>
<h2>Segue abaixo alguns jogos:</h2>
<ul>
<li><a title="Solitaire" href="http://www.freejavascriptgames.info/games/solitaire/solitaire1.0.html">Solitaire</a></li>
<li><a title="Tetris" href="http://www.freejavascriptgames.info/games/jsTetris/tetris1.html">Tetris</a></li>
<li><a title="Peg (Resta Um)" href="http://www.freejavascriptgames.info/games/peg/peg.html">Peg</a></li>
<li><a title="Battleship (Batalha Naval)" href="http://www.tammyyee.com/keiki_page/javascript_games/battle/battleship.html">Battleship</a></li>
<li><a title="Panic Run" href="http://www.def-logic.com/panic/panic.html">Panic Run</a></li>
<li><a title="Bubble Trouble" href="http://xwuz.com/bubble/">Bubble Trouble</a></li>
<li><a title="Super Mario Kart" href="http://www.nihilogic.dk/labs/mariokart/">Super Mario Kart</a></li>
<li><a title="Pudracer" href="http://www.xs4all.nl/~peterned/games.html#pudracer">Pudracer</a></li>
<li><a title="Bunny Hunt" href="http://www.themaninblue.com/experiment/BunnyHunt/">Bunny Hunt</a></li>
<li><a title="Shadow of Time 4" href="http://sot4.aerosphere-studios.com/">Shadow of Time 4</a></li>
<li><a title="Crystal Galaxy" href="http://www.effectgames.com/effect/games/crystalgalaxy/">Crystal Galaxy</a></li>
<li><a title="Capman" href="http://www.kesiev.com/akihabara/demo/game-capman.html">Capman</a></li>
</ul>
<h2>Javascript Game Engines:</h2>
<p><a title="gameQuery" href="http://gamequery.onaluf.org/">gameQuery</a>: é um plugin do famoso jQuery, que fornece animação de sprites multi camadas, hierarquia de sprite (agrupamentos), detecção de colisões, dentre outras funcionalidades. Para visualizar alguns demos de jogos desenvolvidos por essa engine é só <a title="gameQuery: Demos" href="http://gamequery.onaluf.org/demos.php">clicar aqui</a>.</p>
<p><a title="GameJS" href="http://tommysmind.com/gamejs/">GameJS</a>: inspirado nos códigos javascript da <a title="ExtJS - JavaScript Library and RIA Framework" href="http://www.extjs.com/">ExtJS</a> e com a ideia de portar a facilidade de criar jogos da XNA <a href="http://www.xna.com/">Game Framework da Microsoft</a>. No site do projeto possui um jogo demo chamado <a href="http://www.tommysmind.com/jetris/">Jetris</a>.</p>
<p><a title="EffectGames.com" href="http://www.effectgames.com/effect/">EffectGames</a>: consiste na verdade em um site que provê ferramentas online e gratuitas para desenvolvimento, hospedagem e compartilhamento de jogos. Há uma wiki contendo o passo-a-passo de como utilizar as ferramentas através do <a title="Getting Started Guide" href="http://www.effectgames.com/effect/#Article/docs/Getting_Started_Guide">Getting Started Guide</a>. E também há a <a title="API Reference Guide" href="http://www.effectgames.com/effect/#Article/docs/API_Reference_Guide|1">documentação da API fornecida</a> pelo site. Na própria página principal você irá encontrar os demos.</p>
<p><a title="The Render Engine" href="http://www.renderengine.com/index.php">Render Engine</a>: engine cross-browser, opensource, tem como principal característica facilidade de uso. Veja seus <a title="Render Engine - Demos" href="http://www.renderengine.com/demos.php">demos aqui</a>.</p>
<p><a title="Akihabara Home Page" href="http://www.kesiev.com/akihabara/">Akihabara</a>: engine para jogos arcade, estilo 8-bit. Na mesma página da engine se encontram os demos.</p>
<h2>Mais sobre jogos em javascript:</h2>
<p><a title="def-logic" href="http://www.def-logic.com/">http://www.def-logic.com/</a></p>
<p><a title="Javascript Gaming" href="http://www.javascriptgaming.com/">http://www.javascriptgaming.com/</a></p>
<p><a title="Webresources" href="http://www.webresourcesdepot.com/25-amazing-javascript-games-some-fun-and-inspiration/">http://www.webresourcesdepot.com/25-amazing-javascript-games-some-fun-and-inspiration/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rogeriolino.com/2010/02/02/javascript-games/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Javascript: Code Syntax Highlight</title>
		<link>http://rogeriolino.com/2007/11/23/javascript-highlight-code-syntax/</link>
		<comments>http://rogeriolino.com/2007/11/23/javascript-highlight-code-syntax/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 14:34:49 +0000</pubDate>
		<dc:creator>Rogério Alencar Lino Filho</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[colored]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[highlight]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jscc]]></category>
		<category><![CDATA[syntax]]></category>

		<guid isPermaLink="false">http://rogeriolino.wordpress.com/2007/11/23/javascript-highlight-code-syntax/</guid>
		<description><![CDATA[<p style="text-align:center;"></p> <p>Algo que qualquer editor que se prese tem que ter é a capacidade de facilitar a leitura do código utilizando o que se chama Syntax Highlight . O ato de distinguir partes do código com cores diferentes ajudando assim a uma melhor associação do mesmo.O que não ocorria na web até um tempo [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><img src="http://blog.rogeriolino.com/wp-content/uploads/2007/11/jscc1.jpg" alt="jscc.jpg" /></p>
<p>Algo que qualquer editor que se prese tem que ter é a capacidade de facilitar a leitura do código utilizando o que se chama <strong>Syntax</strong> <strong>Highlight </strong>. O ato de <strong>distinguir </strong>partes do <strong>código </strong>com <strong>cores diferentes </strong>ajudando assim a uma melhor associação do mesmo.O que não ocorria na web até um tempo atrás, quando alguém teve a idéia de<em> &#8220;pintar&#8221;</em> os códigos disponibilizados na rede. Existem vários scripts para esse fim, muitos com suporte a mais de uma sintaxe (mais de uma linguagem).</p>
<p>E nessa mesma onda fiz um script de fácil entendimento, com a possibilidade de personalizar o código usando <strong>CSS </strong>ficando o resultado de sua preferência.</p>
<p><strong>JsCC </strong>(<em>Javascript Colored Code</em>) por enquanto só atende a códigos <strong>Java </strong>e <strong>Javascript</strong>, mas pretendo ir incluindo outras linguagens com o passar do tempo (e ganho de tempo também).</p>
<p>Para visualiza-lo em funcionamento <a href="http://www17.brinkster.com/chivalrous/exemplos/jscc/jscc.html" title="JsCC - Highlight Code Syntax">clique aqui</a>, download <a href="http://www17.brinkster.com/chivalrous/exemplos/jscc/jscc.rar" title="JsCC - Download">disponível aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rogeriolino.com/2007/11/23/javascript-highlight-code-syntax/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Paradigma Orientado a Objetos</title>
		<link>http://rogeriolino.com/2006/10/05/paradigma-orientado-a-objetos/</link>
		<comments>http://rogeriolino.com/2006/10/05/paradigma-orientado-a-objetos/#comments</comments>
		<pubDate>Thu, 05 Oct 2006 18:48:48 +0000</pubDate>
		<dc:creator>Rogério Alencar Lino Filho</dc:creator>
				<category><![CDATA[Paradigmas]]></category>
		<category><![CDATA[clas]]></category>
		<category><![CDATA[herança]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[objetos]]></category>
		<category><![CDATA[oo]]></category>
		<category><![CDATA[orientado]]></category>
		<category><![CDATA[paradigma]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[polimorfismo]]></category>
		<category><![CDATA[poo]]></category>

		<guid isPermaLink="false">http://rogeriolino.wordpress.com/2006/10/05/paradigma-orientado-a-objetos/</guid>
		<description><![CDATA[<p>A Programação Orientada a Objetos (POO) tem grande vantagem diantes as demais, como por exemplo o reuso de código, organização lógica dos programas e estruturação do código produzido.</p> <p>Abaixo alguns conceitos de POO.</p> <p>Classe<br /> É na classe que definimos as propriedades e os métodos dos objetos.</p> <p>Objeto:<br /> É a instância de uma classe, [...]]]></description>
			<content:encoded><![CDATA[<p>A Programação Orientada a Objetos (POO) tem grande vantagem diantes as demais, como por exemplo o reuso de código, organização lógica dos programas e estruturação do código produzido.</p>
<p>Abaixo alguns conceitos de POO.</p>
<p><strong>Classe</strong><br />
É na classe que definimos as propriedades e os métodos dos objetos.</p>
<p><strong>Objeto:</strong><br />
É a instância de uma classe, é o elemento criado a partir da classe, segundo o molde definido nela.</p>
<p><strong>Herança:</strong><br />
É a característica da Orientação a Objetos que permite derivar uma classe de outra já existente. Herdando seus métodos e tudo que contém nela.</p>
<p><strong>Polimorfismo:</strong><br />
É a alteração da funcionalidade de um método em diferentes níveis de classe, sem alterar o formato do mesmo. Permite a Classe derivada alterar a funcionalidade de algo feito pela mãe, aproveitando ou não o que a mãe fazia. Ou seja, é o fato de objetos diferentes responderem a uma mesma chamada de método de maneiras diferentes.</p>
<p>Exemplo (Java):</p>
<pre name="code" class="java">

class FormaGeometrica {

    public void introduz() {
        System.out.println("Sou uma forma geométrica");

    }

}

class Retangulo extends FormaGeometrica {

    public void introduz() {
        System.out.println("Sou um retângulo");
    }

}

class Circulo extends FormaGeometrica {

    public void introduz() {
        System.out.println("Sou um círculo");
    }

}

public class Uso {

    public static void main (String[] args) {
        FormaGeometrica g1, g2, g3;
        g1 =  new FormaGeometrica();
        g2 = new Retangulo();
        g3 = new Circulo();
        g1.introduz(); // Sou uma forma geométrica
        g2.introduz(); // Sou um retângulo
        g3.introduz(); // Sou um círculo
    }

}
</pre>
<p><strong>mais sobre:</strong></p>
<p>http://pt.wikipedia.org/wiki/Orientado_a_objeto</p>
<p>http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=2365</p>
]]></content:encoded>
			<wfw:commentRss>http://rogeriolino.com/2006/10/05/paradigma-orientado-a-objetos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

