<?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>Dev For Dummies</title>
	<atom:link href="http://www.devfordummies.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devfordummies.com</link>
	<description></description>
	<lastBuildDate>Tue, 30 Nov 2010 02:15:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Instalando FFMPEG-0.6 no Ubuntu 10.04</title>
		<link>http://www.devfordummies.com/2010/11/instalando-ffmpeg-0-6-no-ubuntu-10-04/</link>
		<comments>http://www.devfordummies.com/2010/11/instalando-ffmpeg-0-6-no-ubuntu-10-04/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 02:15:39 +0000</pubDate>
		<dc:creator>Patrick Shinzato</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.devfordummies.com/?p=59</guid>
		<description><![CDATA[Este tutorial tem por objetivo mostrar passo-a-passo a instalação do FFMPEG-0.6 com as configurações para que o OpenCV seja capaz de gravar videos. Além disso, o ffmpeg pode ser utilizado para converter formatos de video e som.]]></description>
			<content:encoded><![CDATA[
<p>Este tutorial tem por objetivo mostrar passo-a-passo a instalação do FFMPEG-0.6 com as configurações para que o OpenCV seja capaz de gravar videos.</p>
<ol>
<li>O primeiro passo antes de instalar o ffmpeg, é retirar do sistema os pacotes do repositório, pois iremos instalar versões mais novas e/ou com novas configurações:
<pre>sudo apt-get remove ffmpeg x264 libx264-dev</pre>
</li>
<li>Agora vamos instalar todos os pacotes que são as dependências do FFMPEG e do codec x264 (vc precisa estar com os repositórios universe e multiverse habilitados):
<pre>sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev</pre>
</li>
<li>Após instalar todas as dependências, vamos instalar o primeiro codec, o x264. Ele é opcional, mas vamos tentar deixar a instalação mais completa possível. Primeiro, puxe o código fonte <a href="https://sites.google.com/site/patrickshinzato/x264.tar.gz">(aqui)</a> após o download, abra um terminal no diretório onde se encontra o arquivo  &#8221;x264.tar.gz&#8221; execute os seguintes passos:
<pre>tar -xzf x264.tar.gz
cd x264
./configure
make
sudo checkinstall --pkgname=x264 --pkgversion "2:0.`grep X264_BUILD x264.h -m1 | cut -d' ' -f3`.`git rev-list HEAD | wc -l`+git`git rev-list HEAD -n 1 | head -c 7`" --backup=no --default</pre>
</li>
<li>Após a instalação do x264, vamos ao FFMPEG! Primeiro puxe o código fonte <a href="https://sites.google.com/site/patrickshinzato/ffmpeg-0.6.tar.bz2">(aqui)</a> e em seguida, no diretório onde se encontra o arquivo &#8220;ffmpeg-0.6.tar.bz2&#8243; execute os seguintes comandos:
<pre>tar -xjf ffmpeg-0.6.tar.bz2
cd ffmpeg-0.6
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-x11grab
make
sudo make install</pre>
</li>
<li>Após isso, temos o FFMPEG instalado e pronto para ser utilizado pelo OpenCV. Qualquer dúvida ou problemas, postem um comentário. Tentaremos deixar esse tutorial mais completo com o passar do tempo.</li>
</ol>
<div>
</div>
<div>
<p>Links Úteis / Fontes / Adaptado de &#8230;</p>
</div>
<div>
<ul>
<li><a href="http://ubuntuforums.org/showthread.php?t=1471616">http://ubuntuforums.org/showthread.php?t=1471616</a></li>
<li><a href="http://ubuntuforums.org/showthread.php?t=786095">http://ubuntuforums.org/showthread.php?t=786095</a></li>
<li><a href="http://ubuntuforums.org/showpost.php?p=9868359&amp;postcount=1289">http://ubuntuforums.org/showpost.php?p=9868359&amp;amp;postcount=1289</a></li>
</ul>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.devfordummies.com/2010/11/instalando-ffmpeg-0-6-no-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criando Plugins no WordPress: O Básico</title>
		<link>http://www.devfordummies.com/2010/08/criando-plugins-no-wordpress-o-basico/</link>
		<comments>http://www.devfordummies.com/2010/08/criando-plugins-no-wordpress-o-basico/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 13:49:52 +0000</pubDate>
		<dc:creator>Agripino Duarte</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.devfordummies.com/?p=57</guid>
		<description><![CDATA[As duas últimas semanas de trabalho eu passei quase que exclusivamente dedicadas a criação de um plugin em WordPress que gerencia o conteúdo da página institucional da empresa onde eu trabalho, a Radig (www.radig.com.br). Depois de algumas limitações e uma série de ajustes o plugin ficou pronto e está quase perfeito, precisa de uns retoques [...]]]></description>
			<content:encoded><![CDATA[
<p>As duas últimas semanas de trabalho eu passei quase que exclusivamente dedicadas a criação de um plugin em WordPress que gerencia o conteúdo da página institucional da empresa onde eu trabalho, a Radig (<a href="http://radig.com.br/" target="_blank">www.radig.com.br</a>). Depois de algumas limitações e uma série de ajustes o plugin ficou pronto e está quase perfeito, precisa de uns retoques e a correção de alguns bugs.</p>
<p>Criar plugins para o WordPress pode ser uma tarefa simples, mas algumas vezes pode ser algo que dê um certo trabalho. Na api do WordPress, as funções são membros isolados, quase sempre salvas em arquivos únicos, de nomes significativos em diretórios específicos. Não há orientação a objetos e de qualquer ponto de sua aplicação (seja um tema ou um plugin) é possível acessar funções que estejam presentes em qualquer diretório da aplicação.</p>
<p>Por isso o WordPress recomenda nomear funções novas (em plugins e temas) com nomes únicos, assim evita o conflito de nomes de função, já que quase sempre não há necessidade de se incluir arquivos ou definir escopos em funções. É importante também verificar se o nome do plugin que estamos criando já não existe no repositório do WordPress, pois se já existir pode haver conflitos em pesquisar um plugin ou atualizar o mesmo.</p>
<p>Criar plugins no WordPress é basicamente criar uma aplicação php, que se utiliza de funções do WordPress e algumas definidas pelo usuário. Um único arquivo php (de preferência com o nome do plugin), dentro de um diretório com o nome do plugin, já é o suficiente para a existência do plugin, mas é necessário ainda que esse arquivo php possua em seu cabeçalho o seguinte comentário:</p>
<p>/*<br />
Plugin Name: Nome do Plugin<br />
Plugin URI: http://website-do-plugin.com<br />
Description: alguma descrição<br />
Version: 0.1<br />
Author: jose<br />
*/</p>
<p>Basta apenas informar Plugin Name e Author para que o WordPress reconheça o seu plugin e o coloque na lista de plugins instalados.</p>
<p>Nesse arquivo php, ou em outros que forem inclusos, deverão declarar suas funções e utilizar de funções básicas do WordPress para realizarem a modificação do conteúdo que é exibido ou armazenamento e busca de dados no banco de dados do WordPress. Para que o plugin faça a modificação do conteúdo ou busca/armazenamento é necessário interceptar algumas funções básicas do WordPress, como the_content (retorna o conteudo de um post), wp_head (imprime o conteúdo da seção head de uma página), etc.</p>
<p>Essa interceptação e feita utilizando filtros , que podem substituir uma dessas funções básicas do WordPress pela nossa função. O código para isso e bem simples:</p>
<p><?php</p>
<p>add_filter('the_content', 'my_content');<br />
function my_content()<br />
{<br />
echo 'my content';<br />
}<br />
?></p>
<p>A declaração acima faz com que o conteúdo de uma página ou post que seja buscado pela função the_content, seja substituído pela minha função my_content;</p>
<p>Uma extensa lista de filtros e ações permitem a manipulação do que será exibido e salvo na aplicação WordPress. Essa lista está na documentação do Wordpres.</p>
<p>Por ora o que tenho a dizer é isso. Postarei mais dicas de como fazer plugins em WordPress, mas se você não quer esperar  e quer começar agora mesmo, leia a documentação oficial, pois apesar de deixar algumas coisas de fora, ajuda muito quem está começando.</p>
<p><a href="http://codex.wordpress.org/Developer_Documentation" target="_blank">http://codex.wordpress.org/Developer_Documentation</a></p>

]]></content:encoded>
			<wfw:commentRss>http://www.devfordummies.com/2010/08/criando-plugins-no-wordpress-o-basico/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gerente ou líder, eis a questão!</title>
		<link>http://www.devfordummies.com/2010/08/gerente-ou-lider-eis-a-questao/</link>
		<comments>http://www.devfordummies.com/2010/08/gerente-ou-lider-eis-a-questao/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 04:40:06 +0000</pubDate>
		<dc:creator>Angelina Uesato</dc:creator>
				<category><![CDATA[Gestão]]></category>
		<category><![CDATA[Gestão de Equipes]]></category>
		<category><![CDATA[Gerência]]></category>
		<category><![CDATA[Liderança]]></category>

		<guid isPermaLink="false">http://www.devfordummies.com/?p=48</guid>
		<description><![CDATA[No dicionário Aurélio gerente é um administrador e líder é um condutor logo, não há dúvidas que são papéis totalmente diferentes. A pessoa empenhada em se tornar um bom gerente deve aprender o que fazer e como fazer. O que seria melhor aplicar, o que é bom desenvolver como prática e o que nunca aplicar [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://www.devfordummies.com/wp-content/uploads/2010/08/Uma-Licao-de-Vida-para-Futuros-Lideres-Gerentes.jpg"><img class="alignleft size-full wp-image-49" title="Lideres Gerentes unidos na busca da qualidade" src="http://www.devfordummies.com/wp-content/uploads/2010/08/Uma-Licao-de-Vida-para-Futuros-Lideres-Gerentes.jpg" alt="" width="299" height="300" /></a>No dicionário Aurélio gerente é um administrador e líder é um condutor logo, não há dúvidas que são papéis totalmente diferentes.<br />
<span id="more-48"></span><br />
A pessoa empenhada em se tornar um bom gerente deve aprender o que fazer e como fazer. O que seria melhor aplicar, o que é bom desenvolver como prática e o que nunca aplicar na gerência de um grupo de trabalho. Porque na área de computação como foi comentando em sala, o profissional que torna-se gerente foi o profissional que era muito bom tecnicamente e para a empresa não perder o funcionário o promove para gerente da equipe de desenvolvimento, isso é muito comum de acontecer nas empresas e acaba acontecendo que muito não possuem a prática de gerência de equipe.</p>
<p>Para se tornar um líder não é somente o aprendizado de técnicas de liderança seriam suficientes para ser um bom líder, porque para isso as pessoas deste grupo tem que perceber essa característica e sentir confiança que esse futuro lídier terá a capacidade de guiar, influenciar e direcionar o grupo a se tornar uma equipe coesa para atingir os objetivos com qualidade.</p>
<p>Em O gerente eficaz em ação de Peter Drucker escreve que: “Os gerentes não têm sidos pagos por aquilo que sabem. Eles têm sidos pagos por fazer as coisas acontecerem.”, pode-se chegar a uma conclusão que um líder seria alguém que seja pago pelo que sabe e que possa guiar um grupo a se tornar uma equipe coesa e de alta produtividade e qualidade e que o gerente seria o profissional responsável por controlar e acompanhar para que as atividades sejam feitas.</p>
<p>Segue um comparativo das visões de um gerente e líder:</p>
<table border="1">
<tbody>
<tr>
<th>Gerente</th>
<th>Líder</th>
</tr>
<tr>
<td>Mostra o que tem que ser feito</td>
<td>Ajuda a fazer e como fazer</td>
</tr>
<tr>
<td>Controla o tempo e qualidade de uma tarefa</td>
<td>Influencia e motiva no desenvolvimento de uma tarefa</td>
</tr>
<tr>
<td>Foco nos resultados</td>
<td>Foco nas pessoas</td>
</tr>
</tbody>
</table>
<p><a href="http://www.devfordummies.com/wp-content/uploads/2010/08/eqpvenc.png"><img class="alignright size-medium wp-image-50" title="Equipe vencedora" src="http://www.devfordummies.com/wp-content/uploads/2010/08/eqpvenc-300x282.png" alt="" width="300" height="282" /></a>Para uma organização deve haver a presença de líder e gerente, pois são papéis que se completam numa empresa, onde um administra e o outro conduz, hoje em dia procura-se no mercado gerentes que sejam líderes ao mesmo tempo, que possam motivar e conduzir os grupos de forma que possam produzir mais e melhor, mas poder influenciar um grupo não é algo fácil, porque nem todos tem o carisma e a facilidade de desempenhar o papel de líder e podem acabar esbarrando na cobrança e desmotivação.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.devfordummies.com/2010/08/gerente-ou-lider-eis-a-questao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Funções para Manipulação de variáveis</title>
		<link>http://www.devfordummies.com/2010/07/funcoes-para-manipulacao-de-variaveis/</link>
		<comments>http://www.devfordummies.com/2010/07/funcoes-para-manipulacao-de-variaveis/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 18:45:24 +0000</pubDate>
		<dc:creator>ffarias</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.devfordummies.com/?p=47</guid>
		<description><![CDATA[Ao se trabalhar com javaScript ou qualquer outra linguagem de programação, muitas vezes é necessário saber o tipo da variável que estamos manipulando. Por exemplo: uma variável do tipo boolean pode representar dois valores lógicos (verdadeiro ou falso) e deve assumir somente um dos símbolos dessa faixa de valores. Considere agora que no seu código [...]]]></description>
			<content:encoded><![CDATA[
<p>Ao se trabalhar com javaScript ou qualquer outra linguagem de programação, muitas vezes é necessário saber o tipo da variável que estamos manipulando. Por exemplo: uma variável do tipo boolean pode representar dois valores lógicos (verdadeiro ou falso) e deve assumir somente um dos símbolos dessa faixa de valores.</p>
<p>Considere agora que no seu código existe uma variável qualquer, e em uma determinada condição seja necessário saber o tipo dessa variável.</p>
<p><em>Exemplificando:</em></p>
<p>Se tipoVariavel(estado) = ‘boolean’ Então { &#8230; }</p>
<p>No javaScript isso acaba se tornado um problema, apesar de pequeno, mas que pode se estender se você precisar saber em outras “várias” linhas de código se uma determinada variável é uma string, um número, um objeto e por aí vai&#8230;</p>
<p>O objetivo deste artigo é escrever um código em javaScript (uma pequena biblioteca) para resolver estes pequenos problemas do dia a dia.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p47code2'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p472"><td class="code" id="p47code2"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/**
 * Manipulação de Variáveis 1.0
 * @author: Felipe Lunardi Farias
 *
 * @class check
*/</span>
<span style="color: #003366; font-weight: bold;">var</span> check <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">/**
         *  Criamos um objeto (op) com a propriedade prototype para
         *  adicionar propriedades e/ou métodos a um determinado objeto
         */</span>
        op <span style="color: #339933;">:</span> Object.<span style="color: #660066;">prototype</span><span style="color: #339933;">,</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">/**
         * Determina se o objeto possui valor indefinido
         * @method is_undefined
         * @param {object} objeto em teste
         * @return {boolean} resultado
         */</span>
        is_undefined<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> o <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">typeof</span> o <span style="color: #339933;">===</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">throw</span> <span style="color: #003366; font-weight: bold;">new</span> Error<span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;Error: &quot;</span> <span style="color: #339933;">+</span> e <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">/**
         * Determina se é um array
         * @method is_array
         * @param {object} objeto em teste
         * @return {boolean} resultado
         */</span>
        is_array<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> o <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">op</span>.<span style="color: #660066;">toString</span>.<span style="color: #660066;">apply</span><span style="color: #009900;">&#40;</span>o<span style="color: #009900;">&#41;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'[object Array]'</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">throw</span> <span style="color: #003366; font-weight: bold;">new</span> Error<span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;Error: &quot;</span> <span style="color: #339933;">+</span> e <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">/**
         * Determina se o objeto é do tipo string
         * @method is_string
         * @param {object} objeto em teste
         * @return {boolean} resultado
         */</span>
        is_string<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> o <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">typeof</span> o <span style="color: #339933;">===</span> <span style="color: #3366CC;">'string'</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">throw</span> <span style="color: #003366; font-weight: bold;">new</span> Error<span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;Error: &quot;</span> <span style="color: #339933;">+</span> e <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">/**
         * Determina se o objeto é do tipo número
         * @method is_number
         * @param {object} objeto em teste
         * @return {boolean} resultado
         */</span>
        is_number<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> o <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">typeof</span> o <span style="color: #339933;">===</span> <span style="color: #3366CC;">'number'</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> isFinite<span style="color: #009900;">&#40;</span>o<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">throw</span> <span style="color: #003366; font-weight: bold;">new</span> Error<span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;Error: &quot;</span> <span style="color: #339933;">+</span> e <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">/**
         * Determina se o objeto é uma função
         * @method is_function
         * @param {object} objeto em teste
         * @return {boolean} resultado
         */</span>
        is_function<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> o <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">op</span>.<span style="color: #660066;">toString</span>.<span style="color: #660066;">apply</span><span style="color: #009900;">&#40;</span>o<span style="color: #009900;">&#41;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'[object Function]'</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">throw</span> <span style="color: #003366; font-weight: bold;">new</span> Error<span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;Error: &quot;</span> <span style="color: #339933;">+</span> e <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">/**
         * Determina se o objeto é um boleano
         * @method is_boolean
         * @param {object} objeto em teste
         * @return {boolean} resultado
         */</span>
        is_boolean<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> o <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">typeof</span> o <span style="color: #339933;">===</span> <span style="color: #3366CC;">'boolean'</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">throw</span> <span style="color: #003366; font-weight: bold;">new</span> Error<span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;Error: &quot;</span> <span style="color: #339933;">+</span> e <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">/**
         * Determina se o objeto possui valor nulo
         * @method is_null
         * @param {object} objeto em teste
         * @return {boolean} resultado
         */</span>
        is_null<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> o <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">return</span> o <span style="color: #339933;">===</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">throw</span> <span style="color: #003366; font-weight: bold;">new</span> Error<span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;Error: &quot;</span> <span style="color: #339933;">+</span> e <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>            
&nbsp;
        <span style="color: #006600; font-style: italic;">/**
         * Determina se o objeto é do tipo objeto
         * @method is_object
         * @param {object} objeto em teste
         * @return {boolean} resultado
         */</span>
        is_object<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> o <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">typeof</span> o <span style="color: #339933;">===</span> <span style="color: #3366CC;">'object'</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">throw</span> <span style="color: #003366; font-weight: bold;">new</span> Error<span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;Error: &quot;</span> <span style="color: #339933;">+</span> e <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p><span id="more-47"></span></p>
<p><strong>Como utilizar:</strong></p>
<p><em>// Crie uma instância de check</em></p>
<p>check = new check();</p>
<p><em>// Variáveis com valores default (para exemplo)<br />
</em></p>
<p>var teste1 = undefined;</p>
<p>var teste2 = new Array(1,2,3);</p>
<p>var teste3 = &#8216;Dev&#8217;;</p>
<p>var teste4 = 123456;</p>
<p>var teste5 = function(){};</p>
<p>var teste6 = true;</p>
<p>var teste7 = null;</p>
<p>var teste8 = new Object;</p>
<p><em>// Testes</em></p>
<p>check.is_undefined( teste1 ) ; // retorna verdadeiro</p>
<p>check.is_array( teste2 ) ; // retorna verdadeiro</p>
<p>check.is_string( teste3 ) ; // retorna verdadeiro</p>
<p>check.is_number( teste4 ); // retorna verdadeiro</p>
<p>check.is_function( teste5 ) ;  // retorna verdadeiro</p>
<p>check.is_boolean( teste6 ); // retorna verdadeiro</p>
<p>check.is_null( teste7 ); // retorna verdadeiro</p>
<p>check.is_object( teste8 );</p>
<p>check.is_undefined( teste3 ) ; // retorna falso</p>
<p>check.is_array( teste7 ) ; // retorna falso</p>
<p><strong>Download:</strong> <a title="clique aqui e faça o download do script" href="http://sistema.grevena.uni5.net/checkVarJs1.0.rar">Clique aqui e faça o download completo + código minify para utilizar em produção.</a></p>
<p>Se você tiver dúvidas, sugestões ou quiser adicionar funcionalidades a esta pequena biblioteca entre em contato por e-mail: felipelunardifarias@gmail.com</p>

]]></content:encoded>
			<wfw:commentRss>http://www.devfordummies.com/2010/07/funcoes-para-manipulacao-de-variaveis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usabilidade</title>
		<link>http://www.devfordummies.com/2010/07/usabilidade/</link>
		<comments>http://www.devfordummies.com/2010/07/usabilidade/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 23:08:41 +0000</pubDate>
		<dc:creator>karin</dc:creator>
				<category><![CDATA[Dicas]]></category>

		<guid isPermaLink="false">http://www.devfordummies.com/?p=43</guid>
		<description><![CDATA[A interface é um fator essencial para a qualidade de um software, pois é por meio dela que os usuários podem interagir com o computador e suprir suas necessidades permitindo a realização das suas tarefas. A usabilidade diz respeito ao relacionamento do usuário com o sistema. Uma ferramenta computacional eficaz permite que sejam realizadas as [...]]]></description>
			<content:encoded><![CDATA[
<p>A interface é um fator essencial para a qualidade de um software, pois é por meio dela que os usuários podem interagir com o computador e suprir suas necessidades permitindo a realização das suas tarefas. A usabilidade diz respeito ao relacionamento do usuário com o sistema. Uma ferramenta computacional eficaz permite que sejam realizadas as tarefas da melhor maneira possível. Pode-se dizer que a usabilidade acaba se tornando uma característica daquilo que é utilizável e funcional, desejando-se que essa utilização supra todas as necessidades do usuário e que faça todas as tarefas que ele deseja.</p>
<p>A usabilidade pode ser encontrada em qualquer objeto ou dispositivo que possa ser adequado para se tornar algo mais fácil de ser utilizado e mais funcional.</p>
<p>A usabilidade é relativa, depende do contexto de uso e do usuário. Os usuários experientes têm mais habilidades e isso pode diminuir as dificuldades enfrentadas no uso de sistemas; além disso, se o sistema é freqüentemente utilizado, não quer dizer que ele seja de fácil manuseio. Por outro lado, uma interface com uma aparência atraente, se não for rápida, pode trazer frustrações para os usuários.</p>
<p>O conceito de usabilidade em geral não é pensado quando um produto é usável, mas sim quando ele não é adequado ao usuário.</p>
<p>O conceito de usabilidade vem evoluindo e foi-se percebendo que o fato a se considerar é a análise de uso de um produto combinado com o ponto de vista do usuário a respeito do software. Acompanhando essa evolução, a norma ISO 9241-11, define a usabilidade como “a capacidade que apresenta um sistema interativo de ser operado, de maneira eficaz, eficiente e agradável, em um determinado contexto de operação, para a realização das tarefas específicas de seus usuários”.</p>
<p>A usabilidade desenvolve conhecimentos sobre os limites e características referentes ao desempenho do homem que estão relacionadas às interfaces e componentes do sistema.</p>
<p>A usabilidade é um conceito que está evoluindo, pois não tem um significado concreto; ela considera o contexto de uso de acordo com o ponto de vista do usuário.</p>
<p>A <em>web</em> fornece um exemplo acessível da importância da usabilidade, pois os usuários procuram páginas fáceis de usar, <em>sites</em> sem falhas, com informações claras e com boa localização para que eles não se percam nas páginas e <em>sites</em>. As informações devem ser apresentadas de forma que seja de fácil entendimento, caso contrário, os usuários desistem da pesquisa pois se cansam antes mesmo de ter acesso ao que realmente desejam.</p>
<p>A usabilidade é uma combinação de fatores que atingem as habilidades do usuário diante do sistema. Por isso ela trata da interação humano-computador, que é observada desde o desenvolvimento de software por meio de testes de usabilidade com o usuário.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.devfordummies.com/2010/07/usabilidade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas de Otimização: Alocação dinâmica de memória para uma Matriz</title>
		<link>http://www.devfordummies.com/2010/06/dicas-de-otimizacao-alocacao-dinamica-de-memoria-para-uma-matriz/</link>
		<comments>http://www.devfordummies.com/2010/06/dicas-de-otimizacao-alocacao-dinamica-de-memoria-para-uma-matriz/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 13:37:58 +0000</pubDate>
		<dc:creator>Patrick Shinzato</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Alocação Dinâmica]]></category>
		<category><![CDATA[C]]></category>

		<guid isPermaLink="false">http://www.devfordummies.com/?p=37</guid>
		<description><![CDATA[É normal no mundo da programação, não importa a linguagem, trabalharmos com matrizes de dados. A forma de alocação de memória pode ser estática ou dinâmica, depende da linguagem. Esta dica, mostrará como otimizar uma alocação dinâmica de memória para uma matriz na linguagem C.]]></description>
			<content:encoded><![CDATA[
<p>É normal no mundo da programação, não importa a linguagem,  trabalharmos com matrizes de dados. A forma de alocação de memória pode  ser estática ou dinâmica, depende da linguagem. Esta dica, mostrará como  otimizar uma alocação dinâmica de memória para uma matriz na linguagem  C.</p>
<p>Pode parecer idiota postar uma dica assim, mas se a velocidade de  execução do seu programa importa então você deve otimizar as funções que  fazem chamadas de sistema, como alocação de memória, no SO. Imagine por  exemplo trabalhar com um vídeo, onde temos que processar 30 imagens por  segundo e cada imagem é uma matriz de pixels por exemplo.</p>
<p>Um programa simples de alocação de uma matriz de (<strong>m</strong>x<strong>n</strong>)  seria assim:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p37code3'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p373"><td class="code" id="p37code3"><pre class="c" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// assuma que você já leu os valores dos inteiros &lt;strong&gt;m&lt;/strong&gt; e &lt;strong&gt;n&lt;/strong&gt;</span>
<span style="color: #666666; font-style: italic;">// ALOCAÇÃO DA MEMÓRIA</span>
&nbsp;
<span style="color: #993333;">int</span> <span style="color: #339933;">**</span>matriz <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span><span style="color: #339933;">**</span><span style="color: #009900;">&#41;</span> malloc<span style="color: #009900;">&#40;</span> m <span style="color: #339933;">*</span> <span style="color: #993333;">sizeof</span> <span style="color: #009900;">&#40;</span> <span style="color: #993333;">int</span><span style="color: #339933;">*</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span> <span style="color: #993333;">int</span> i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>m<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
matriz<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span> malloc<span style="color: #009900;">&#40;</span> m <span style="color: #339933;">*</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//LIBERAÇÃO DA MEMÓRIA</span>
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span> <span style="color: #993333;">int</span> i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>m<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
free<span style="color: #009900;">&#40;</span>matriz<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
free<span style="color: #009900;">&#40;</span>matriz<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p><strong>Isso não é muito  eficiente!</strong></p>
<p>Se pudermos eliminar algumas chamadas de sistema (<em>free</em> e<em> malloc</em>) e o laço (<em>for</em>), ganharemos um pouco de  desempenho. Para isso, que tal alocarmos apenas 2 vezes e liberamos  também apenas 2 vezes?</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p37code4'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p374"><td class="code" id="p37code4"><pre class="c" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// ALOCAÇÃO DA MEMÓRIA</span>
&nbsp;
<span style="color: #993333;">int</span> <span style="color: #339933;">*</span>buffer <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span> malloc<span style="color: #009900;">&#40;</span> m <span style="color: #339933;">*</span> n <span style="color: #339933;">*</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span> <span style="color: #993333;">int</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">int</span> <span style="color: #339933;">**</span>matriz <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span><span style="color: #339933;">**</span><span style="color: #009900;">&#41;</span> malloc<span style="color: #009900;">&#40;</span> m <span style="color: #339933;">*</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span> <span style="color: #993333;">int</span><span style="color: #339933;">*</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span> <span style="color: #993333;">int</span> i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>m<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
matriz<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span>buffer<span style="color: #009900;">&#91;</span> i <span style="color: #339933;">*</span> m <span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//LIBERAÇÃO DA MEMÓRIA</span>
&nbsp;
free<span style="color: #009900;">&#40;</span>buffer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
free<span style="color: #009900;">&#40;</span>matriz<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Você pode achar que estamos gastando memória a mais, mas se você reparar bem, estamos usando apenas um ponteiro a mais.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.devfordummies.com/2010/06/dicas-de-otimizacao-alocacao-dinamica-de-memoria-para-uma-matriz/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dica: Guia de instalação de programas para o Ubuntu 10.4</title>
		<link>http://www.devfordummies.com/2010/06/dica-guia-de-instalacao-de-programas-para-o-ubuntu-10-4/</link>
		<comments>http://www.devfordummies.com/2010/06/dica-guia-de-instalacao-de-programas-para-o-ubuntu-10-4/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 00:02:23 +0000</pubDate>
		<dc:creator>Patrick Shinzato</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.devfordummies.com/?p=36</guid>
		<description><![CDATA[Se você vai instalar o ubuntu 10.4 (lançado em Abril deste ano) ou está procurando os programas disponíveis no repositório ( instalar via APT ), acesse primeiramente http://ubuntuguide.org/wiki/Ubuntu:Lucid. É um excelente guia para os usuários que não sabem qual programa (ou pacote) instalar para gravar um cd, editar um vídeo, máquina virtual ou mesmo assistir [...]]]></description>
			<content:encoded><![CDATA[
<p>Se você vai instalar o ubuntu 10.4 (lançado em Abril deste ano) ou está procurando os programas disponíveis no repositório ( instalar via APT ), acesse primeiramente<a title="http://ubuntuguide.org/wiki/Ubuntu:Lucid" href="http://ubuntuguide.org/wiki/Ubuntu:Lucid" target="_blank"> http://ubuntuguide.org/wiki/Ubuntu:Lucid</a>. É um excelente guia para os usuários que não sabem qual programa (ou pacote) instalar para gravar um cd, editar um vídeo, máquina virtual ou mesmo assistir a filmes. É de fácil entendimento mas está em inglês.</p>
<p>Se você já possui alguma distribuição anterior Ubuntu, acesse <a title="http://ubuntuguide.org/wiki/Main_Page" href="http://ubuntuguide.org/wiki/Main_Page" target="_blank">http://ubuntuguide.org/wiki/Main_Page</a>, nele você encontra um link para as distribuições anteriores.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.devfordummies.com/2010/06/dica-guia-de-instalacao-de-programas-para-o-ubuntu-10-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Uma história ágil de guerra</title>
		<link>http://www.devfordummies.com/2010/05/uma-historia-agil-de-guerra/</link>
		<comments>http://www.devfordummies.com/2010/05/uma-historia-agil-de-guerra/#comments</comments>
		<pubDate>Wed, 26 May 2010 13:51:07 +0000</pubDate>
		<dc:creator>Angelina Uesato</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Showcase]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.devfordummies.com/?p=31</guid>
		<description><![CDATA[Olá Pessoal, no mundo de desenvolvimento de software, há várias metodologias de desenvolvimento de software como RUP, SCRUM, XP, Lean e etc&#8230; Não vim aqui dizer qual metodologia é a melhor de ser implementada para a tua equipe de desenvolvimento, porque aplicar um modelo de desenvolvimento irá depender de como os processos são executados dentro [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://www.devfordummies.com/wp-content/uploads/2010/05/Scrum_XP.jpg"><img class="alignleft size-medium wp-image-35" title="Scrum_XP" src="http://www.devfordummies.com/wp-content/uploads/2010/05/Scrum_XP-198x300.jpg" alt="" width="198" height="300" /></a><br />
Olá Pessoal,</p>
<p>no mundo de desenvolvimento de software, há várias metodologias de desenvolvimento de software como RUP, SCRUM, XP, Lean e etc&#8230;</p>
<p>Não vim aqui dizer qual metodologia é a melhor de ser implementada para a tua equipe de desenvolvimento, porque aplicar um modelo de desenvolvimento irá depender de como os processos são executados dentro da equipe, qual o &#8220;<em>estilo</em>&#8221; de trabalho, mas hoje vim dar uma dica de leitura de uma prática de Scrum e XP numa equipe de aproximadamente 40 pessoas.<br />
<span id="more-31"></span><br />
Link para download da Versão do livro:</p>
<p><a href="http://www.infoq.com/minibooks/scrum-xp-from-the-trenches">Scrum and XP from the Trenches (Inglês)</a><br />
<a href="http://www.infoq.com/br/minibooks/scrum-xp-from-the-trenches">Scrum and XP from the Trenches  (tradução &#8211;  Português)</a></p>
<p>Segue o link onde é difundido os princípios do desenvolvimento ágil.</p>
<p><a href="http://www.manifestoagil.com.br/">Manifesto Ágil (tradução &#8211; Português)</a><br />
<a href="http://www.agilemanifesto.org/">Manifesto Ágil (Inglês)</a></p>

]]></content:encoded>
			<wfw:commentRss>http://www.devfordummies.com/2010/05/uma-historia-agil-de-guerra/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android 2.1 disponível para o Sprint Hero</title>
		<link>http://www.devfordummies.com/2010/05/android-2-1-disponivel-para-o-sprint-hero/</link>
		<comments>http://www.devfordummies.com/2010/05/android-2-1-disponivel-para-o-sprint-hero/#comments</comments>
		<pubDate>Fri, 21 May 2010 22:09:17 +0000</pubDate>
		<dc:creator>Márcio Silva</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.devfordummies.com/?p=28</guid>
		<description><![CDATA[Os proprietários Sprint Hero agora podem finalmente realizar a atualização para a versão 2.1 do Android. Está disponível no site de suporte da HTC.  Dentre as melhorias destaca-se: melhorias no HTC Sense, melhor qualidade da câmera e todas as melhorias Android 2,1 (telas mais rápidas, mais suporte a outras resoluções, melhorias  no Google Maps, suporte ao Exchange, wallpapers [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://www.devfordummies.com/wp-content/uploads/2010/05/sprintheroimage.jpg"><img class="alignleft size-full wp-image-29" title="sprintheroimage" src="http://www.devfordummies.com/wp-content/uploads/2010/05/sprintheroimage.jpg" alt="" width="215" height="300" /></a><br />
Os proprietários Sprint Hero agora podem finalmente realizar a atualização para a versão 2.1 do Android. Está disponível no site de suporte da HTC.  Dentre as melhorias destaca-se: melhorias no HTC Sense, melhor qualidade da câmera e todas as melhorias Android 2,1 (telas mais rápidas, mais suporte a outras resoluções, melhorias  no Google Maps, suporte ao Exchange, wallpapers e muito mais).</p>
<p>O site coolsmartphone perguntou para a HTC quando o update será feito para o HTC Hero na Europa, e resposta foi que o update para os outros HTC Hero só estarão disponíveis em Junho. Lá vamos nós esperarmos mais um adiamento.</p>
<p>Via <a href="http://www.coolsmartphone.com/news5813.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+coolsmartphone/huIR+(Coolsmartphone+News)&amp;utm_content=Google+Reader" target="_blank">CoolSmartPhone</a></p>

]]></content:encoded>
			<wfw:commentRss>http://www.devfordummies.com/2010/05/android-2-1-disponivel-para-o-sprint-hero/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Criando Plugins no CakePHP</title>
		<link>http://www.devfordummies.com/2010/05/criando-plugins-no-cakephp/</link>
		<comments>http://www.devfordummies.com/2010/05/criando-plugins-no-cakephp/#comments</comments>
		<pubDate>Fri, 21 May 2010 18:04:44 +0000</pubDate>
		<dc:creator>Agripino Duarte</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.devfordummies.com/?p=26</guid>
		<description><![CDATA[Criar plugins para o CakePHP não é muito diferente de criar uma aplicação CakePHP. Os plugins nada mais são que elementos adicionais da aplicação CakePHP (models, views, controllers, behaviors, etc) e não é necessário criar o trio model-controller-view para que o plugin funcione, porém, conforme a necessidade do plugin, os elementos básicos de uma aplicação [...]]]></description>
			<content:encoded><![CDATA[
<p>Criar plugins para o CakePHP não é muito diferente de criar uma aplicação CakePHP. Os plugins nada mais são que elementos adicionais da aplicação CakePHP (models, views, controllers, behaviors, etc) e não é necessário criar o trio model-controller-view para que o plugin funcione, porém, conforme a necessidade do plugin, os elementos básicos de uma aplicação e outros elementos coadjuvantes (helpers, components, behaviors) poderão ser adicionados.</p>
<p><span id="more-26"></span><br />
<strong>1. Criando o diretório do plugin</strong><br />
Numa aplicação aplicação CakePHP qualquer crie um diretório com o nome do plugin.</p>
<p>../plugins/nome_do_plugin</p>
<p>Use de preferência um nome em minúsculo, separando as palavras por underscore. Tenha certeza que o nome do plugin seja diferente do nome de algum controlador existente na aplicação. A hierarquia de diretórios segue o mesmo padrão de uma aplicação CakePHP</p>
<p><strong>2 . Criando um controlador</strong><br />
Para que o plugin possa ser acessado por uma url, é necessária a criação de um controlador e algumas views. Antes de criar o controlador, um controlador base deve ser criado. No diretório do plugin, crie um arquivo chamado nome_do_plugin_app_controller.php com o seguinte conteúdo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p26code9'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p269"><td class="code" id="p26code9"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> NomeDoPluginAppController <span style="color: #000000; font-weight: bold;">extends</span> AppController
<span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//algumas actions e callbacks</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Não é necessário colocar métodos no controlador, porém você poderá definir as ações que serão utilizadas apenas pelo plugin. Opcionalmente, caso haja necessidade de se usar models, crie um model base “nome_do_plugin_app_model.php”</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p26code10'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2610"><td class="code" id="p26code10"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> NomeDoPluginAppModel <span style="color: #000000; font-weight: bold;">extends</span> AppModel
<span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//alguns métodos</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p><strong>3. Criando controladores e views</strong><br />
Para criar os controllers do seu plugin, crie um diretório “controllers” no diretório do plugin. O nome do controlador não precisa do nome do plugin como prefixo, porém tente criar um nome particularmente único. O controlador deverá estender o controlador base do plugin:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p26code11'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2611"><td class="code" id="p26code11"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> MeuControladorController <span style="color: #000000; font-weight: bold;">extends</span> NomeDoPluginAppController
<span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//...</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>O resto é o que normalmente é feito para se visualizar uma action. Crie um diretório “views/meu_controlador” para inserir as views das actions correspondentes.</p>
<p>Para adicionar um model de um plugin em sua aplicação, é necessário chamar o model com o nome do plugin prefixado, separado por “.” (ponto). Por exemplo, para chamar o model “Pie” do plugin “Bakery” no seu controlador, escreva:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p26code12'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2612"><td class="code" id="p26code12"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//…</span>
<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$uses</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>‘Bakery<span style="color: #339933;">.</span>Pie’<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//…</span></pre></td></tr></table></div>

<p>Para adicionar outros componentes do plugin, adicione sempre o prefixo do nome do plugin separado por ponto</p>

]]></content:encoded>
			<wfw:commentRss>http://www.devfordummies.com/2010/05/criando-plugins-no-cakephp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
