<?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>Blog do Robson Dantas &#187; C++ web</title>
	<atom:link href="http://blogdodantas.dxs.com.br/tag/c-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogdodantas.dxs.com.br</link>
	<description>Tecnologia, segurança, cotidiano, pesca esportiva e inutilidades</description>
	<lastBuildDate>Tue, 31 Jan 2012 02:31:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Compilando CGICC com Visual C++ 6.0</title>
		<link>http://blogdodantas.dxs.com.br/2008/06/26/compilando-cgicc-com-visual-c-60/</link>
		<comments>http://blogdodantas.dxs.com.br/2008/06/26/compilando-cgicc-com-visual-c-60/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 13:32:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desenvolvimento de software]]></category>
		<category><![CDATA[WUW - Watch using web]]></category>
		<category><![CDATA[C++ web]]></category>
		<category><![CDATA[cgicc]]></category>
		<category><![CDATA[gnu cgicc]]></category>
		<category><![CDATA[visual c++ 6.0]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=68</guid>
		<description><![CDATA[Dando continuidade aos posts sobre o projeto de como controlar um ambiente via internet, decidi ilustrar um pouco do que a biblioteca CGICC é capaz. Um ponto importante para destacar é que essa biblioteca é mantida pelo pessoal da GNU.org, os mesmos que mantém uma série de bibliotecas para linux, inclusive o compilador de C e C++, [...]]]></description>
			<content:encoded><![CDATA[<p>Dando continuidade aos posts sobre o projeto de como controlar um ambiente via internet, decidi ilustrar um pouco do que a biblioteca CGICC é capaz.</p>
<p>Um ponto importante para destacar é que essa biblioteca é mantida pelo pessoal da GNU.org, os mesmos que mantém uma série de bibliotecas para linux, inclusive o compilador de C e C++, ou seja, totalmente seguro de usar.<span id="more-68"></span></p>
<div style="float: right; display: inline; margin-left: 10px;">
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-3076033770669884";
/* 200x200, criado 13/05/08 */
google_ad_slot = "6940144538";
google_ad_width = 200;
google_ad_height = 200;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</div>
<p><strong>[O que é o CGICC]</strong></p>
<p>CGICC, do inglês Common Gateway Interface for CC (C++), é uma biblioteca escrita totalmente em C++ ANSI e que habilita os programadores de C++ criar aplicativos CGI, ou em outras palavras, aplicativos que possam rodar via WEB.</p>
<p>Você não leu errado. É possível escrever aplicações web em C++ e isso não é novidade. Vários sites fazem uso disso pelo poder do C++.</p>
<p><strong>[Portabilidade]</strong></p>
<p>Atualmente a biblioteca está pronta para ser executada a partir de sistemas que possuam os seguintes compiladores:</p>
<ul>
<li>gcc a partir da versão 2.81;</li>
<li>aCC da HP;</li>
<li>Microsoft Visual C++ 6.0;</li>
<li>C++ Builder 5.0 da Borland;</li>
</ul>
<p>Essa série de compiladores cobre a maioria dos sistemas operacionais. Já escrevi aplicativos que rodaram em linux e windows, bastando recompilar a aplicação. Com os makefiles da vida, isso não é nenhum impeditivo.</p>
<p><strong>[Compilando com Visual C++ 6.0]</strong></p>
<p>O primeiro passo é baixar a aplicação diretamente pelo site do mantenedor. Pegue a versão mais recente pela url <a href="http://ftp.gnu.org/gnu/cgicc/" onclick="javascript:pageTracker._trackPageview('out/ftp.gnu.org');">http://ftp.gnu.org/gnu/cgicc/</a> . No momento que escrevi esse post a versão mais atual era a 3.2.6.</p>
<p>Depois disso, descompacte o arquivo para uma pasta qualquer e abra o workspace (.dsw) que está dentro da pasta <em>win</em>. Lembrando que o arquivo está como .tar.gz; usei o winrar para descompactar.</p>
<p>Após aberto o workspace, aparecerão do lado esquerdo do Visual C++ os projetos carregados, na ordem:</p>
<ul>
<li>cgicc;</li>
<li>cookie;</li>
<li>dns;</li>
<li>example;</li>
<li>test;</li>
<li>upload;</li>
</ul>
<p>Clique no menu <em>build</em> e depois build <em>cgicc.dll.</em> No momento em que compilei me deparei com dois cenários:</p>
<ol>
<li>Faltava o include <em>cgicc/Cgidefs.h</em> e o erro era: <em>cannot open include file: &#8216;cgicc/CgiDefs.h&#8217;. </em>Basta abrir o diretório onde você descompactou os arquivos, abrir a pasta <em>cgicc</em> e renomear o arquivo <em>CgiDefs.h.in</em> para <em>CgiDefs.h;<br />
</em></li>
<li>Depois de mandar compilar novamente, recebi vários erros com as mensages <em>&#8220;error C2039: &#8217;&lt;any cctype&gt;&#8217; : is not a member of &#8216;std&#8217;&#8221; messages.</em> Clique em cada erro e remova o <em>std </em>da frente. Ex: <em>std::isspace(*data_iter)</em> deve ficar <em>::isspace(*data_iter). </em>Faça isso para todos os casos que aparecerem esse tipo de erro;</li>
</ol>
<p>Pronto, depois disso tudo deve ter gerado o <em>cgicc.dll</em>. Compile os outros arquivos e jogue dentro da pasta cgi-bin do apache, juntamente com a dll gerada.</p>
<p>Chame o aplicativo via browser e depois é só colocar as idéias para rolar &#8230; <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><img src="http://www.dxs.com.br/wordpress/images/cgicc-vc++.jpg" alt="Aplicação CGI escrita com C++ e cgicc" width="525" height="408" /></p>
<p>Happy coding !</p>
<p>Dúvidas ? Comente !</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F26%2Fcompilando-cgicc-com-visual-c-60%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F26%2Fcompilando-cgicc-com-visual-c-60%2F&amp;title=Compilando+CGICC+com+Visual+C%2B%2B+6.0" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F26%2Fcompilando-cgicc-com-visual-c-60%2F&amp;title=Compilando+CGICC+com+Visual+C%2B%2B+6.0" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F26%2Fcompilando-cgicc-com-visual-c-60%2F&amp;t=Compilando+CGICC+com+Visual+C%2B%2B+6.0" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F26%2Fcompilando-cgicc-com-visual-c-60%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F26%2Fcompilando-cgicc-com-visual-c-60%2F&amp;title=Compilando+CGICC+com+Visual+C%2B%2B+6.0" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p><p><script type="text/javascript"><!--
google_ad_client = "pub-3400408440819022";
/* 468x60, criado 02/11/10 */
google_ad_slot = "1718761682";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2008/06/26/compilando-cgicc-com-visual-c-60/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Faça você mesmo: Controle sua casa pela internet &#8211; Parte 2 &#8211; Desenvolvimento</title>
		<link>http://blogdodantas.dxs.com.br/2008/06/24/faca-voce-mesmo-controle-sua-casa-pela-internet-parte-2-desenvolvimento/</link>
		<comments>http://blogdodantas.dxs.com.br/2008/06/24/faca-voce-mesmo-controle-sua-casa-pela-internet-parte-2-desenvolvimento/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 17:54:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desenvolvimento de software]]></category>
		<category><![CDATA[WUW - Watch using web]]></category>
		<category><![CDATA[api c++ web]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[C++ web]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[monitoramento]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=66</guid>
		<description><![CDATA[No post passado falei de todo o trabalho que tivemos para montar o planejamento do projeto. Depois de planejar, conseguimos visualizar todos os pontos necessários para o desenvolvimento, parte que particularmente eu já tinha tudo esquematizado na cabeça . Como uma das premissas era utilizar soluções opensource, comecei a pesquisar o que realmente era importante: [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogdodantas.dxs.com.br/2008/06/24/faca-voce-mesmo-controle-sua-casa-pela-internet-com-software-opensource/" >No post passado falei de todo o trabalho que tivemos para montar o planejamento do projeto</a>. Depois de planejar, conseguimos visualizar todos os pontos necessários para o desenvolvimento, parte que particularmente eu já tinha tudo esquematizado na cabeça <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .<span id="more-66"></span></p>
<p>Como uma das premissas era utilizar soluções opensource, comecei a pesquisar o que realmente era importante:</p>
<ul>
<li>Sistemas operacionais para desenvolvimento e execução do projeto;</li>
<li>Bibliotecas C++ Ansi;</li>
<li>Frameworks para portar aplicações;</li>
<li>Servidor web leve e portátil;</li>
<li>Servidor de streaming para vídeo;</li>
</ul>
<p>Depois desse levantamento, escolhi os itens. Vale ressaltar que caso você queira montar o projeto, o que vale é seguir as bibliotecas que utilizamos. Desde que o sistema operacional seja *NIX, use o que você achar melhor. Itens eleitos:</p>
<ul>
<li>Mandriva Linux para desenvolvimento do software. Possui muitas bibliotecas empacotadas, economizou bom tempo no desenvolvimento;</li>
<li>Slax para rodar a aplicação. O Slax é um Slackware Linux customizado que roda através de CDROM ou pendrive direto;</li>
<li>Boost &#8211; Biblioteca C++ bem conhecida no mundo dos programadores da linguagem e que dá suporte a diversas funcionalidades, principalmente no quesito de gerenciamento de memória. Utilizamos o boost_regex também para validar dados com expressões regulares;</li>
<li>CGICC &#8211; Biblioteca do projeto GNU para trabalhar com requisições CGI. Trabalha com request, response, cookies e utiliza todo conceito da STL;</li>
<li>Servidor web Apache com mod_cgi ativo no ambiente de desenvolvimento, para testar a aplicação. Em ambiente de produção utilizei uma versão do Miniserv que é bem pequeno e funcional;</li>
<li>Para streaming de vídeo, utilizei o <a href="http://blogdodantas.dxs.com.br/2008/05/12/monitoramento-com-cameras-pela-internet-usando-solucao-opensource-monitoring-using-web-and-motion/" >Motion (há um post sobre ele no blog)</a>. Esse servidor é para você assistir imagens de câmeras através do browser;</li>
</ul>
<p>Com as ferramentas em mãos, fiz setup de todo ambiente e utilizei o Kdevelop para codificar. Já havia trabalhado com essa IDE e não tinha muito tempo para ficar gastando e aprendendo outras ferramentas. Há a possibilidade de usar o Eclipse com o plugin CDT ativo, vai da preferência do programador!</p>
<p>Outro ponto que não mencionei acima, mas faz parte das boas práticas é o uso de um controlador de versões. Utilizamos o Subversion para controlar os fontes do projeto, bem como as documentações produzidas. Para aqueles que nunca ouviram falar desse tipo de ferramenta é bom ir atrás. Imagine que legal você precisar resgatar um fonte com alterações que vocês fez há dias, semanas ou meses ? O controle de versões permite que você faça isso em poucos cliques, além de facilitar possíveis <em>merges</em>, ou mesclas de código.</p>
<p>Não vou entrar no mérito de como fazer o setup de todo ambiente nesse post, afinal, você precisa aprender alguma coisa também, certo ? Caso tenha alguma dúvida, é só fazer um comentário por aqui.</p>
<p>Para finalizar&#8230; Aqueles que duvidam que dá pra rodar C++ como aplicação WEB, façam o seguinte teste:</p>
<p>&#8211; Início teste.cpp</p>
<p>#include&lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>int main(int argc, char **argv){</p>
<p>   cout &lt;&lt; &#8220;Content-type: text/html\r\n\r\n&#8221; &lt;&lt; endl;<br />
   cout &lt;&lt; &#8220;&lt;html&gt;&lt;body&gt;&lt;h1&gt;Hello World!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;&#8221; &lt;&lt; endl;</p>
<p>   return 0;</p>
<p>}</p>
<p>&#8211; Fim teste.cpp</p>
<p>Compile esse código utilizando o g++ ( *nix ) ou o mingw (windows):</p>
<p>shel:&gt; g++ teste.cpp -o teste.cgi</p>
<p>O comando gerará um arquivo executável chamado teste.cgi, idêntico ao <em>.exe</em> . Faça um teste digitando <em>./teste.cgi </em>e o resultado será igual ao abaixo:</p>
<p>shel:&gt; <em>Content-type: text/html</em></p>
<p><em>&lt;html&gt;&lt;body&gt;&lt;h1&gt;Hello World!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</em></p>
<p>Se você conhece um pouco de programação, sabe que imprimimos um HTML simples. O protocolo HTTP define que o que separa o cabeçalho do conteúdo são duas quebras de linhas consecutivas, no caso o cabeçalho é <em>Content-type: text/html\r\n\r\n</em> e o resto é o HTML que o browser vai processar.</p>
<p>Feito isso, basta garantir com que o seu servidor WEB permita executar um cgi e retornar só o conteúdo processado. Isso explica o motivo pelo qual estou usando o <em>mod_cgi para o Apache</em> <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p><strong>[Testando no apache]</strong></p>
<ul>
<li>Copie o arquivo teste.cgi para o diretório cgi-bin do apache (que é criado por padrão na instalação). Na maioria dos casos fica no diretório /var/www/cgi-bin;</li>
<li>Dê permissão de execução para o script ao usuário do apache. Normalmente eu seto o owner do arquivo para o usuário apache e depois mudo os privilégios através de um chmod 755 /var/www/cgi-bin/teste.cgi;</li>
<li>Chame o aplicativo pelo browser, ex: <em>http://localhost/cgi-bin/teste.cgi</em> . O resultado deve ser um <em><strong>Hello World</strong></em> bem grande na tela!</li>
</ul>
<p><strong>[Testando no IIS]</strong></p>
<ul>
<li>Copie o arquivo teste.cgi para algum diretório dentro de c:\inetpub\wwwroot e dê permissão de execução de script através do console do IIS;</li>
<li>Execute via browser: <em>http://localhost/pasta/teste.cgi</em></li>
</ul>
<p>Fácil, né ? <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong>[Links descritos no post - úteis]</strong></p>
<p>Apache Server<br />
<a href="http://httpd.apache.org" onclick="javascript:pageTracker._trackPageview('out/httpd.apache.org');">http://httpd.apache.org</a></p>
<p>Biblioteca CGICC<br />
<a href="http://www.gnu.org/software/cgicc/" onclick="javascript:pageTracker._trackPageview('out/www.gnu.org');">http://www.gnu.org/software/cgicc/</a></p>
<p>Biblioteca Boost para C++<br />
<a href="http://www.boost.org/" onclick="javascript:pageTracker._trackPageview('out/www.boost.org');">http://www.boost.org/</a></p>
<p>Motion<br />
<a href="http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome" onclick="javascript:pageTracker._trackPageview('out/www.lavrsen.dk');">http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome</a></p>
<p>Slax<br />
<a href="http://www.slax.org/" onclick="javascript:pageTracker._trackPageview('out/www.slax.org');">http://www.slax.org/</a></p>
<p>Mandriva linux<br />
<a href="http://www.mandriva.com/" onclick="javascript:pageTracker._trackPageview('out/www.mandriva.com');">http://www.mandriva.com/</a></p>
<p>Começaremos a falar da implementação no próximo post. Até lá !</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-parte-2-desenvolvimento%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-parte-2-desenvolvimento%2F&amp;title=Fa%C3%A7a+voc%C3%AA+mesmo%3A+Controle+sua+casa+pela+internet+%26%238211%3B+Parte+2+%26%238211%3B+Desenvolvimento" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-parte-2-desenvolvimento%2F&amp;title=Fa%C3%A7a+voc%C3%AA+mesmo%3A+Controle+sua+casa+pela+internet+%26%238211%3B+Parte+2+%26%238211%3B+Desenvolvimento" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-parte-2-desenvolvimento%2F&amp;t=Fa%C3%A7a+voc%C3%AA+mesmo%3A+Controle+sua+casa+pela+internet+%26%238211%3B+Parte+2+%26%238211%3B+Desenvolvimento" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-parte-2-desenvolvimento%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-parte-2-desenvolvimento%2F&amp;title=Fa%C3%A7a+voc%C3%AA+mesmo%3A+Controle+sua+casa+pela+internet+%26%238211%3B+Parte+2+%26%238211%3B+Desenvolvimento" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2008/06/24/faca-voce-mesmo-controle-sua-casa-pela-internet-parte-2-desenvolvimento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faça você mesmo: Controle sua casa pela internet, com software opensource!</title>
		<link>http://blogdodantas.dxs.com.br/2008/06/24/faca-voce-mesmo-controle-sua-casa-pela-internet-com-software-opensource/</link>
		<comments>http://blogdodantas.dxs.com.br/2008/06/24/faca-voce-mesmo-controle-sua-casa-pela-internet-com-software-opensource/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 12:53:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desenvolvimento de software]]></category>
		<category><![CDATA[WUW - Watch using web]]></category>
		<category><![CDATA[C++ web]]></category>
		<category><![CDATA[monitoramento web]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[porta paralela]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=65</guid>
		<description><![CDATA[Essa é a primeira iniciativa de postar os detalhes do nosso brilhante projeto de conclusão do curso de Ciência da Computação! Quando disse nosso, foi para dar os créditos também ao meu amigo de faculdade, Leonardo Fraietta, que dividiu comigo os momentos de trabalho árduo e de glória, que fizeram com que todo o esforço gerasse [...]]]></description>
			<content:encoded><![CDATA[<p>Essa é a primeira iniciativa de postar os detalhes do nosso brilhante projeto de conclusão do curso de Ciência da Computação! <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Quando disse <em>nosso</em>, foi para dar os créditos também ao meu amigo de faculdade, Leonardo Fraietta, que dividiu comigo os momentos de trabalho árduo e de glória, que fizeram com que todo o esforço gerasse uma <em>nota dez com menção.</em> Esse dez não seria tão importante se a nossa banca não tivesse dois doutores e uma mestra. Entre os doutores estava o Prof. Ítalo Santiago Vega, o qual admiro muito.<span id="more-65"></span></p>
<h2>[Post n.1 - Início do Projeto]</h2>
<p><strong>Nome</strong></p>
<ul>
<li>WUW &#8211; Watch using Web &#8211; além de ser uma sigla que montamos em inglês, lembra o latido de um cachorro; daí surgiu a idéia do logotipo - um cachorro segurando um cadeado com a boca.</li>
</ul>
<p><strong>Objetivos</strong></p>
<ul>
<li>Aprofundar o conhecimento em eletrônica e no controle de componentes através do computador ( PC );</li>
<li>Controlar um ambiente via internet, desenvolvendo e utilizando software opensource;</li>
<li>Provar que é possível desenvolver uma solução de baixo custo com qualidade e eficiência. Para determinar o &#8220;baixo custo&#8221;, levamos em consideração as soluções de mercado que custavam na casa dos R$ 7.000,00;</li>
</ul>
<p><strong>Premissas</strong></p>
<ul>
<li>Utilizar todos os conceitos de engenharia de software na elaboração dos requisitos do projeto;</li>
<li>Desenvolver todo o sistema utilizando linguagem C++ (sim, é possível escrever aplicações WEB em C++) ;</li>
</ul>
<p> </p>
<h2>[O Desafio]</h2>
<p>Com esse breve descritivo em mãos, iniciamos o nosso trabalho em meados do ano de 2006. Tínhamos em mente o tamanho do trabalho que teríamos pela frente e o desafio foi o principal motivador da empreitada.</p>
<p>Começamos detalhando todos os requisitos funcionais e não funcionais e o resultado foi um belo documento de casos de uso. Esse documento delineou todo o escopo do nosso projeto e serviu como base para deixar claro aos professores que estavam acompanhando, onde queríamos chegar.</p>
<p>Após os casos de uso, elaboramos o story board, que é basicamente um protótipo funcional do projeto. Escrevemos os html´s, fizemos a simulação da navegação e lá estava a &#8220;casca&#8221; totalmente pronta. Estávamos ansiosos para codificar a aplicação, mas a síndrome de fazer o projeto bem feito conteve nossos ânimos.</p>
<p>Muita gente ignora os passos de detalhar o projeto. Afirmo com certeza que salvamos um precioso tempo. Não refizemos uma tela sequer e o nosso plano de testes, extraído dos casos de uso, validou todas as funcionalidades.</p>
<h2>[Dia-Dia]</h2>
<p>Logo após todos os passos descritos no item acima, concentramos os esforços para desenvolver um cronograma que pudesse detalhar o que cada um deveria fazer e quando deveria fazer. Todos os projetos devem ter metas e objetivos: tínhamos prazos curtos e encaramos todas as etapas como se estivéssemos fazendo um produto para entregar para um cliente. Com metas e objetivos, chegamos em um plano estratégico que fez com que as atividades do projeto ficassem claras:</p>
<ul>
<li>Escrever a monografia;</li>
<li>Codificar API´s em C++;</li>
<li>Desenvolver hardware e controle através da porta paralela;</li>
<li>Testar&#8230; testar&#8230;;</li>
<li>Escrever a apresentação e preparar para apresentar (nos preparamos, ensaiamos as falas, ordem dos slides, etc);</li>
</ul>
<p>Enfim, acho que deu para ter uma idéia macro do que fizemos &#8230;</p>
<p>Acho que cobri os pontos principais e encerro assim a primeira parte deste post. Nos próximos, vou dar detalhes da implementação das API´s em C++ para desenvolver páginas web, todo controle do banco de dados, desenvolvimento e controle do hardware através da porta paralela.</p>
<p>Enquanto isso, vou deixar você na expectativa do que vem pela frente. Veja o vídeo do primeiro teste controlando o motor de passo pela aplicação !</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/TbM_WwWqDRM&amp;hl=pt-br" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/TbM_WwWqDRM&amp;hl=pt-br"></embed></object></p>
<p>Não deixe de comentar !</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-com-software-opensource%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-com-software-opensource%2F&amp;title=Fa%C3%A7a+voc%C3%AA+mesmo%3A+Controle+sua+casa+pela+internet%2C+com+software+opensource%21" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-com-software-opensource%2F&amp;title=Fa%C3%A7a+voc%C3%AA+mesmo%3A+Controle+sua+casa+pela+internet%2C+com+software+opensource%21" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-com-software-opensource%2F&amp;t=Fa%C3%A7a+voc%C3%AA+mesmo%3A+Controle+sua+casa+pela+internet%2C+com+software+opensource%21" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-com-software-opensource%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2008%2F06%2F24%2Ffaca-voce-mesmo-controle-sua-casa-pela-internet-com-software-opensource%2F&amp;title=Fa%C3%A7a+voc%C3%AA+mesmo%3A+Controle+sua+casa+pela+internet%2C+com+software+opensource%21" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2008/06/24/faca-voce-mesmo-controle-sua-casa-pela-internet-com-software-opensource/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

