<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>MXStudio</title>
	
	<link>http://www.mxstudio.com.br</link>
	<description>Macromedia e Adobe - Artigos, colunas, tutorias e muito mais...</description>
	<lastBuildDate>Thu, 29 Jul 2010 13:13:48 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- google_ad_section_start -->	<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mxstudio" /><feedburner:info uri="mxstudio" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><feedburner:emailServiceId>mxstudio</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Liberada segunda versão do Beta do Firefox 4</title>
		<link>http://feedproxy.google.com/~r/mxstudio/~3/QQnEdou4zTY/</link>
		<comments>http://www.mxstudio.com.br/noticias/mxnews/liberada-segunda-versao-do-beta-do-firefox-4/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 13:00:33 +0000</pubDate>
		<dc:creator>Juliano Haussen</dc:creator>
				<category><![CDATA[MX News]]></category>
		<category><![CDATA[firefox 4]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=4653</guid>
		<description><![CDATA[Mozilla disponibilizou o segundo beta do Firefox 4. Esta nova versão apresenta novas funcionalidades. Entre as principais mudanças do Firefox 4 esta a transferência das guias para o alto, acima da barra de ferramentas principal e da caixa de texto URL. O menu foi substituído por um botão de menu único e esta embutido no [...]]]></description>
			<content:encoded><![CDATA[<p>Mozilla disponibilizou o segundo beta do Firefox 4. Esta nova versão apresenta novas funcionalidades. Entre as principais mudanças do Firefox 4 esta a transferência das guias para o alto, acima da barra de ferramentas principal e da caixa de texto URL. O menu foi substituído por um botão de menu único e esta embutido no canto superior da janela. Estas mudanças entram em conformidade com o padrão utilizado por Opera e Chrome.</p>
<p>As novidades na interface principal do beta 2 é o suporte para aplicações &#8220;tabs&#8221;. Quando você converter uma guia normal em guia de aplicativo, selecionando com o botão direito do mouse, a guia vai encolher até o ícone do lado esquerdo da sua aba.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2010/07/img1.jpg"><img class="alignnone size-full wp-image-4654" title="img1" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/img1.jpg" alt="" width="565" height="376" /></a></p>
<p>Mozilla está trabalhando para melhorar o desempenho de inicialização, rolagem e manipulação de padrões web do Navegador. As transições e transformações do CSS3 são suportadas na nova versão beta. Os usuários que querem testar o novo beta podem<a href="http://www.mozilla.com/en-US/firefox/beta/" target="_blank"> baixar</a> no site da Mozilla.</p>
<img src="http://feeds.feedburner.com/~r/mxstudio/~4/QQnEdou4zTY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/noticias/mxnews/liberada-segunda-versao-do-beta-do-firefox-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mxstudio.com.br/noticias/mxnews/liberada-segunda-versao-do-beta-do-firefox-4/</feedburner:origLink></item>
		<item>
		<title>#91 Devil May Cry – Top 100 Jogos</title>
		<link>http://feedproxy.google.com/~r/mxstudio/~3/zLHfsBjIQiY/</link>
		<comments>http://www.mxstudio.com.br/tecnologia/jogos/91-devil-may-cry-top-100-jogos/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 20:12:42 +0000</pubDate>
		<dc:creator>ricardofernandes</dc:creator>
				<category><![CDATA[Jogos]]></category>
		<category><![CDATA[ação]]></category>
		<category><![CDATA[Devil May Cry]]></category>
		<category><![CDATA[jogos de ação]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=4645</guid>
		<description><![CDATA[Quem diria que um  clássico da literatura mundial pudesse ser adaptado para o videogame — e fazer  tanto sucesso! Devil May Cry é um jogo de ação eletrizante, cuja personagem  principal é Dante. Isso mesmo, como o famoso escritor de a Divina Comédia,  Dante Aliguieri. E um dos inimigos centrais é [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-4646" style="float: left;" title="Devil May Cry" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/devil-may-cry-300x300.jpg" alt="Devil May Cry" width="300" height="300" />Quem diria que um  clássico da literatura mundial pudesse ser adaptado para o videogame — e fazer  tanto sucesso! Devil May Cry é um <a href="http://jogosonline.clickgratis.com.br/acao.html">jogo de ação</a> eletrizante, cuja personagem  principal é Dante. Isso mesmo, como o famoso escritor de a Divina Comédia,  Dante Aliguieri. E um dos inimigos centrais é Vergil, que bem poderia ser  Virgílio, o escritor preferido de Aliguieri e que o guia através do inferno na  Comédia. Duas das armas de Dante chamam-se Alastor e Ifriti, também tirados da  obra.</p>
<p>Apesar das referências,  as semelhanças entre os dois param por aí, pois no game o protagonista tem a  aparência de um roqueiro num cenário gótico. O jogo da Capcom para Playstation  foi lançado em 2001 e possui um enredo envolvente. O grafismo é considerado um  dos melhores pela sua beleza, mas a grande atração é mesmo a jogabilidade. Se o  game Tony Hawk&#8217;s Pro Skater foi eleito o primeiro jogo 3D apenas por parecer em  três dimensões, esse realmente foi concebido em 3D. Assim, é possível jogar  realizando várias tarefas, como pular, lutar, atirar etc. A personagem  principal, Dante, ainda pode se transformar em demônio e, sem alterar os  botões, usar vários outros poderes, como voar e soltar raios.</p>
<p>Atualmente, já há  quatro versões de Devil May Cry. Na versão mais recente, lançada em 2008, já  para computador, a personagem Nero vira um dos inimigos principais. Na  sequência do primeiro game, o jovem Nero, metade humano e metade demônio, faz  parte do grupo que adora Sparda. Este, além de ser o pai de Dante, destruiu o  demônio Murdus. Dante mata o líder do grupo ao qual Nero pertence e este vai  querer vingança.</p>
<p>Este ano, correram  rumores de que uma quinta versão poderia estar sendo desenvolvida, embora a  própria Capcom tivesse referido à revista PSM3 que não pretendia lançar outro  jogo da série nos próximos dois anos. Mesmo assim, ficou a expectativa que a  desenvolvedora anunciasse o quinto jogo da série na grande feira mundial de  jogos, a E3.</p>

<a href='http://www.mxstudio.com.br/tecnologia/jogos/91-devil-may-cry-top-100-jogos/attachment/devil-may-cry-cena2/' title='Devil May Cry'><img width="150" height="150" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/devil-may-cry-cena2-150x150.jpg" class="attachment-thumbnail" alt="" title="Devil May Cry" /></a>
<a href='http://www.mxstudio.com.br/tecnologia/jogos/91-devil-may-cry-top-100-jogos/attachment/devil-may-cry-cena1/' title='Devil May Cry'><img width="150" height="150" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/devil-may-cry-cena1-150x150.jpg" class="attachment-thumbnail" alt="" title="Devil May Cry" /></a>
<a href='http://www.mxstudio.com.br/tecnologia/jogos/91-devil-may-cry-top-100-jogos/attachment/devil-may-cry/' title='Devil May Cry'><img width="150" height="150" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/devil-may-cry-150x150.jpg" class="attachment-thumbnail" alt="" title="Devil May Cry" /></a>

<img src="http://feeds.feedburner.com/~r/mxstudio/~4/zLHfsBjIQiY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/tecnologia/jogos/91-devil-may-cry-top-100-jogos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mxstudio.com.br/tecnologia/jogos/91-devil-may-cry-top-100-jogos/</feedburner:origLink></item>
		<item>
		<title>Criando Classes em JavaScript com o recurso prototype</title>
		<link>http://feedproxy.google.com/~r/mxstudio/~3/hfd5R6S9Smk/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/javascript/criando-classes-em-javascript-com-o-recurso-prototype/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 18:13:58 +0000</pubDate>
		<dc:creator>Ted k'</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[classes]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=4632</guid>
		<description><![CDATA[A utilização de Classes é uma maneira pratica de ter um bom rendimento e organização em suas aplicações web.
A estrutura de Classes em JavaScript é a mesma que usamos em linguagens de programação como ASP ou PHP.
Nesse artigo você irá aprender a usar Classes com o uso da prototype. Vamos a definição do que é [...]]]></description>
			<content:encoded><![CDATA[<p>A utilização de Classes é uma maneira pratica de ter um bom rendimento e organização em suas aplicações web.</p>
<p>A estrutura de Classes em <strong>JavaScript</strong> é a mesma que usamos em linguagens de programação como <strong>ASP</strong> ou <strong>PHP</strong>.</p>
<p>Nesse artigo você irá aprender a usar Classes com o uso da <strong>prototype</strong>. Vamos a definição do que é a <strong>prototype</strong> no <strong>JavaScript</strong></p>
<p><strong>prototype</strong> é um recurso do <strong>JavaScript</strong> (nesse caso não estou falando do <a href="http://www.prototypejs.org/" target="_blank"><strong>Framework Prototype</strong></a>) que possibilita modificar uma Classe depois que ela foi criada.</p>
<p>Vamos criar uma classe chamada <strong>DadosPessoais</strong> e dentro dela colocar as variáveis <strong>&#8220;nome&#8221;</strong> e <strong>&#8220;telefone&#8221;</strong>;</p>
<pre>-----------------------------------------------------
<span style="color: #808080">function DadosPessoais(){
 var nome;
 var telefone;
}</span>
-----------------------------------------------------
</pre>
<p>Para dar inicio ao processo das funções dentro da classe usamos a <strong>prototype</strong> assim:</p>
<pre>-----------------------------------------------------
<span style="color: #808080">DadosPessoais.prototype.campos = function(){
 this.nome = "Menu Nome";
 this.telefone = "(99) 9999-9999";
}

var obj = new DadosPessoais();
obj.campos();</span>
<pre>-----------------------------------------------------
</pre>
</pre>
<p>No final, criamos o objeto e chamamos ele&#8230;</p>
<p>O Script completo fica assim:</p>
<pre>
<pre>-----------------------------------------------------
<span style="color: #808080">&lt;script language="javascript"&gt;
function DadosPessoais(){
 var nome;
 var telefone;

 DadosPessoais.prototype.campos = function(){
 this.nome = "Menu Nome";
 this.telefone = "(99) 9999-9999";
 }
}

var obj = new DadosPessoais();
obj.campos();
&lt;/script&gt;

Nome: &lt;script&gt;document.write(obj.nome);&lt;/script&gt;&lt;br&gt;
Telefone: &lt;script&gt;document.write(obj.telefone);&lt;/script&gt;</span>

-----------------------------------------------------</pre>
</pre>
<p>Creio que ficou um bom entendimento para todos de como usar Classes no <strong>JavaScript</strong> usando o recurso <strong>prototype</strong>.</p>
<p>Abraços a todos.</p>
<img src="http://feeds.feedburner.com/~r/mxstudio/~4/hfd5R6S9Smk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/javascript/criando-classes-em-javascript-com-o-recurso-prototype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mxstudio.com.br/desenvolvimento/javascript/criando-classes-em-javascript-com-o-recurso-prototype/</feedburner:origLink></item>
		<item>
		<title>Workshop sobre como criar conteúdo interativo de e-Learning com Adobe Connect</title>
		<link>http://feedproxy.google.com/~r/mxstudio/~3/6iko52tvUUg/</link>
		<comments>http://www.mxstudio.com.br/noticias/eventos/workshop-sobre-como-criar-conteudo-interativo-de-e-learning-com-adobe-connect/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 12:37:04 +0000</pubDate>
		<dc:creator>Juliano Haussen</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[adobe connect]]></category>
		<category><![CDATA[e-learning]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=4627</guid>
		<description><![CDATA[Atividade da ENG mostrará como a tecnologia possibilita garantir excelentes resultados nos cursos e treinamentos via Internet, ao vivo ou sob demanda.
Com a Internet, aumentou a utilização de ferramentas tecnológicas para a criação de ambiente online para realização de cursos, treinamentos corporativos, vídeoconferências entre outras atividades. No entanto, a escolha da melhor ferramenta entre as [...]]]></description>
			<content:encoded><![CDATA[<p>Atividade da ENG mostrará como a tecnologia possibilita garantir excelentes resultados nos cursos e treinamentos via Internet, ao vivo ou sob demanda.</p>
<p>Com a Internet, aumentou a utilização de ferramentas tecnológicas para a criação de ambiente online para realização de cursos, treinamentos corporativos, vídeoconferências entre outras atividades. No entanto, a escolha da melhor ferramenta entre as disponíveis no mercado demanda conhecimento, paciência e e análise complexa das reais capacidades da rede e das aplicações disponíveis.</p>
<p>Entre as ferramentas mais avançadas está o Adobe Connect, um sistema seguro e flexível de comunicação via Web que permite criar soluções empresariais de comunicação para treinamentos, marketing, conferência pela Internet e colaboração on-line.</p>
<p>A ENG DTP &#038; Multimídia, pioneira em transferência em tecnologias, realiza, no dia 28 de julho, um workshop de apresentação sobre a utilização do Adobe Connect para os ambientes corporativos visando oferecer às empresas e profissionais de TI treinamento sobre como a ferramenta pode ser utilizada e como aproveitar melhor as suas avançadas funcionalidades. A atividade acontece das 10 às 12 horas na ENG São Paulo (Rua Martins 168, Butantã). As vagas são gratuitas e limitadas.</p>
<p>Mais informações e inscrições: http://www.eng.com.br/eventos</p>
<img src="http://feeds.feedburner.com/~r/mxstudio/~4/6iko52tvUUg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/noticias/eventos/workshop-sobre-como-criar-conteudo-interativo-de-e-learning-com-adobe-connect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mxstudio.com.br/noticias/eventos/workshop-sobre-como-criar-conteudo-interativo-de-e-learning-com-adobe-connect/</feedburner:origLink></item>
		<item>
		<title>#92 Tony Hawk’s Pro Skater 2 – Top 100 Jogos</title>
		<link>http://feedproxy.google.com/~r/mxstudio/~3/p7mVIFrJgcc/</link>
		<comments>http://www.mxstudio.com.br/tecnologia/jogos/92-tony-hawks-pro-skater-2-top-100-jogos/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 20:18:09 +0000</pubDate>
		<dc:creator>ricardofernandes</dc:creator>
				<category><![CDATA[Jogos]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[jogos de esporte]]></category>
		<category><![CDATA[monobras]]></category>
		<category><![CDATA[skate]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=4616</guid>
		<description><![CDATA[Se  Pelé é o rei do futebol, Tony  Hawk é o rei dos skates, tendo sido campeão diversas vezes em Vertical,  Street Style e X Games. Seu nome virou uma marca comercial, inspirando a  empresa Neversoft a desenvolver, em 1999, um jogo de vídeo game, publicado pela  Activision para Playstation, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-4617" style="float: left; margin: 0 5px 0 0;" title="Tony Hawk's Pro Skater 2" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/tony-hawks-pro-skater2-300x297.jpg" alt="Tony Hawk's Pro Skater 2" width="300" height="297" />Se  Pelé é o rei do futebol, Tony  Hawk é o rei dos skates, tendo sido campeão diversas vezes em Vertical,  Street Style e X Games. Seu nome virou uma marca comercial, inspirando a  empresa Neversoft a desenvolver, em 1999, um jogo de vídeo game, publicado pela  Activision para Playstation, baseado tanto no esporte como no próprio skatista.</p>
<p>A  série Tony Hawk&#8217;s Pro Skater já teve várias versões desde então, mas para a  Edge, a segunda versão, lançada um ano depois da primeira, está entre os 100  melhores games do mundo. A popularidade de Tony Hawk 2 se  deve, em parte, pelo seu grafismo, que já se assemelhava muito ao que hoje  conhecemos por três dimensões. É, inclusive, considerado o primeiro jogo  portátil em 3D. A interatividade é outro ponto forte do <a href="http://jogosonline.clickgratis.com.br/esporte.html">game de esporte</a>, pois esta foi a  primeira versão que possibilitou a criação de skatistas masculinos pelos  jogadores. Apesar das possibilidades que o jogo na sua versão dois permitia,  somente em versões posteriores os jogadores puderam criar skatistas do sexo  feminino.</p>
<p>Além  do console Playstation, o jogo também pode ser encontrado nas plataformas  Dreamcast, GameCube, Nintendo 64, Game Boy Color e Game Boy Advance, Windows e  Windows Mobile, Mac OS e Xbox 360, entretanto não é possível encontrar <a href="http://jogosonline.clickgratis.com.br/">jogos online</a> do Tony Hawk 2. Vários outros skatistas famosos já passaram  pela série como personagens do game, inclusive o brasileiro Bob Burnquist, que  fez presença em quase todas as versões já criadas.</p>
<p>O  modelo vendeu tanto que, em abril desse ano, a Activison relançou o mesmo Tony Hawk&#8217;s Pro Skater 2 para iPhones. Segundo a MacMagazine, o novo  lançamento manteve muitos dos recursos da versão original, adaptados para a  interface touchscreen. A trilha sonora é composta de clássicos do rock, como  nos jogos para Playstation, e os 12 skatistas originais da série, bem como as  pistas com seus cenários, estarão nesta versão. O objetivo é atravessar todas  as pistas, com seus obstáculos, e participar de competições. Conforme se ganham  pontos, dá para conseguir dinheiro virtual e melhorar o desempenho com novos  acessórios e manobras.</p>

<a href='http://www.mxstudio.com.br/tecnologia/jogos/92-tony-hawks-pro-skater-2-top-100-jogos/attachment/tony-hawks-pro-skater2-cena4/' title='Tony Hawk&#039;s Pro Skater 2'><img width="150" height="150" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/tony-hawks-pro-skater2-cena4-150x150.jpg" class="attachment-thumbnail" alt="" title="Tony Hawk&#039;s Pro Skater 2" /></a>
<a href='http://www.mxstudio.com.br/tecnologia/jogos/92-tony-hawks-pro-skater-2-top-100-jogos/attachment/tony-hawks-pro-skater2-cena3/' title='Tony Hawk&#039;s Pro Skater 2'><img width="150" height="150" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/tony-hawks-pro-skater2-cena3-150x150.jpg" class="attachment-thumbnail" alt="" title="Tony Hawk&#039;s Pro Skater 2" /></a>
<a href='http://www.mxstudio.com.br/tecnologia/jogos/92-tony-hawks-pro-skater-2-top-100-jogos/attachment/tony-hawks-pro-skater2-cena2/' title='Tony Hawk&#039;s Pro Skater 2'><img width="150" height="150" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/tony-hawks-pro-skater2-cena2-150x150.jpg" class="attachment-thumbnail" alt="" title="Tony Hawk&#039;s Pro Skater 2" /></a>
<a href='http://www.mxstudio.com.br/tecnologia/jogos/92-tony-hawks-pro-skater-2-top-100-jogos/attachment/tony-hawks-pro-skater2-cena1/' title='Tony Hawk&#039;s Pro Skater 2'><img width="150" height="150" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/tony-hawks-pro-skater2-cena1-150x150.gif" class="attachment-thumbnail" alt="" title="Tony Hawk&#039;s Pro Skater 2" /></a>
<a href='http://www.mxstudio.com.br/tecnologia/jogos/92-tony-hawks-pro-skater-2-top-100-jogos/attachment/tony-hawks-pro-skater2/' title='Tony Hawk&#039;s Pro Skater 2'><img width="150" height="150" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/tony-hawks-pro-skater2-150x150.jpg" class="attachment-thumbnail" alt="" title="Tony Hawk&#039;s Pro Skater 2" /></a>

<img src="http://feeds.feedburner.com/~r/mxstudio/~4/p7mVIFrJgcc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/tecnologia/jogos/92-tony-hawks-pro-skater-2-top-100-jogos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mxstudio.com.br/tecnologia/jogos/92-tony-hawks-pro-skater-2-top-100-jogos/</feedburner:origLink></item>
		<item>
		<title>ASP – Arrays Dinâmicos</title>
		<link>http://feedproxy.google.com/~r/mxstudio/~3/yWOgoDD9L7E/</link>
		<comments>http://www.mxstudio.com.br/marketingdigital/usabilidade/asp-arrays-dinamicos/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 17:34:42 +0000</pubDate>
		<dc:creator>X@nBuRzUm</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Usabilidade]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=4611</guid>
		<description><![CDATA[Os Arrays ou matrizes são umas estruturas de dados muito utilizadas em Qualquer linguagem. Trata-se de variáveis, porém que estão preparadas para Salvar uma quantidade maior de elementos. É como uma variável que tem vários compartimentos para salvar a informação e a cada um desses compartimentos há que acessar como um índice. 
Antes de utilizar [...]]]></description>
			<content:encoded><![CDATA[<p>Os Arrays ou matrizes são umas estruturas de dados muito utilizadas em Qualquer linguagem. Trata-se de variáveis, porém que estão preparadas para Salvar uma quantidade maior de elementos. É como uma variável que tem vários compartimentos para salvar a informação e a cada um desses compartimentos há que acessar como um índice. </p>
<p>Antes de utilizar um array devemos declara-lo de maneira obrigatória, para isso utilizamos a palavra chave DIM, deste modo. </p>
<p>dim Array(50) </p>
<p>Despois da palavra DIM devemos indicar o nome do array e a seguir, entre parênteses, coloca-se o número de posição máxima do array, neste caso 50. </p>
<p>Os arrays começam desde a posição 0, ou seja, o primeiro elemento de um array está na posição 0. Portanto, se o array foi definido com 50 campos, como no exemplo, terá 51 elementos, primeira posição será a 0 e a última posição seria a 50.</p>
<p>Para atribuir um valor a um array se realiza igual que uma variável, porém acessando com o índice da posição que queremos escrever. </p>
<p>Array(0) = 128 </p>
<p>Para utilizar o conteúdo de um array devemos faze-lo indicando o índice ao que se deseja acessar. Por exemplo, se quiséssemos imprimir na página a primeira posição de nosso Array o faríamos desta maneira. </p>
<p>document.write(Array(0)) </p>
<p>Agora vamos ver um exemplo sobre como utilizar os arrays, onde vamos realizar dois percorridos, um para escrever nele e o outro para ler a informação e escreve-la na página.<br />
dim matriz (10)<br />
for i=0 to 10<br />
   matriz(i)=100 * i<br />
next<br />
for i=0 to 10<br />
   document.writeln(&#8220;Posicao &#8221; &amp; i &amp; &#8220;: &#8221; &amp; matriz(i) &amp; &#8220;<br />&#8220;)<br />
next</p>
<p>Este exemplo escreveria na página as posições do array, que contém variáveis numéricas que correspondem de multiplicar seu índice por 100.<br />
Bom agora, que vimos como funciona os arrays iremos partir para Arrays dinâmicos.</p>
<p><strong>Aplicação de Objetos  com Arrays Dinâmicos</strong></p>
<p>Dentro de qualquer aplicação que eventualmente é necessário o uso de matrizes de dados. Nós precisamos encontrar os dados para o objetos, a fim de simplificar a lógica que vai ser de execução, bem como para tornar o código mais flexível e escalável. Usando uma classe que engloba uma série de objetos, que se mantém e matriz de objetos, descobrimos que a classe superior nos permite adquirir uma forma simplificada de classificar, filtrar e controlar os itens de dados, bem como os valores desses itens de dados.</p>
<p>Essas classes simplificada permitirá que alcance rapidamente e aprender a usar um array dinâmico que mantém uma matriz dinâmica de objetos (ambas as matrizes dinâmicas objetos que estão sendo eles mesmos). </p>
<p>A camada mais profunda da nossa estrutura é uma classe simples de todos os atributos que você pode precisar de realizar.</p>
<p>&#8216;*********** class ***************<br />
‘Classe valor do item<br />
Class item_value_class<br />
	Private c_item_value<br />
	&#8216; handle value  (let/get)<br />
	public property let value(byval data)<br />
		c_item_value = data<br />
	end property<br />
	public property get value()<br />
		value = c_item_value<br />
	end property<br />
end class<br />
&#8216;******************************************</p>
<p>Observe que esta classe tem um atributo com duas propriedades para permitir a escrita e leitura para o atributo. Isto é normal e não é nada especial. Passamos agora para a próxima camada, onde encontramos a nossa primeira matriz dinâmica.</p>
<p>&#8216;********* classe média ***********************<br />
Class item_class<br />
	Private c_item<br />
	Private c_values()  &#8216; Matriz de todos os valores para o item<br />
	Private c_size  &#8216; max determina os valores possíveis para o item</p>
<p>	&#8216; handle item  (let/get)<br />
	public property let item(byval data)<br />
		c_item = data<br />
	end property<br />
	public property get item()<br />
		item = c_item<br />
	end property</p>
<p>	&#8216;*************************************************<br />
	&#8216;************* metodos ***************************<br />
	&#8216;*************************************************</p>
<p>	 &#8216;*********** Event Handlers *************<br />
	Private Sub Class_Initialize()<br />
		Redim c_values(0)<br />
		Set c_values(0) = New item_value_class<br />
		c_size=0<br />
	End Sub<br />
	&#8216; matar todos os objetos em Adata e livrar memória<br />
	Private Sub Class_Terminate()<br />
	  Dim x<br />
			for x=0 to ubound(c_values)<br />
				Set c_values(0) = nothing<br />
			next<br />
	  c_size=0<br />
	  erase c_values<br />
	End Sub<br />
  &#8216;****************************************<br />
	Public Function getValue(iPos)<br />
		getValue = c_values(iPos).value<br />
	End Function</p>
<p>	Public Function putValue(iPos,data)<br />
		if iPos&gt;c_size then<br />
			Redim preserve c_values(iPos)<br />
			for x = c_size+1 to ubound(c_values)<br />
				set c_values(x)= New item_value_class<br />
			next<br />
			c_size=iPos<br />
		end if<br />
		c_values(iPos).value=cstr(data)</p>
<p>	End Function</p>
<p>	Public Property get numbervalues()<br />
		numbervalues=c_size<br />
	end property</p>
<p>	Public property get allvalues()<br />
		allvalues=c_values<br />
	end property</p>
<p>	Public property let allvalues(ByRef temp)<br />
		Dim x<br />
		Dim sizetochange<br />
		sizetochange=ubound(temp)<br />
			 if sizetochange &lt; c_size then<br />
				for x=sizetochange+1 to ubound(c_values)<br />
					set c_values(x)=nothing<br />
				next<br />
				Redim preserve c_values(sizetochange)<br />
			else<br />
				Redim preserve c_values(sizetochange)<br />
				for x = c_size+1 to ubound(c_values)<br />
					set c_values(x)= New item_value_class<br />
				next<br />
			end if<br />
			c_size=sizetochange<br />
			for x=0 to sizetochange<br />
				c_values(x).value = temp(x).value<br />
			next<br />
	end property<br />
end class<br />
&#39;******************************************</p>
<p>Vemos a instanciação de uma matriz de objetos de valor a nossa classe. Observe sempre que adicionar um valor com o método putValue nossa matriz é automaticamente aumentado e instanciado. Há uma propriedade especial chamada de &quot;allvalues&quot; que cria um ponto de referência para a matriz que esta classe possui. Para todos os valores do GET propriedade retorna a referência para a matriz,  enquanto o imóvel locado nos permite definir um outro array de objetos da nossa classe de valor igual a outro. As propriedades allvalues tornam-se importantes em nossa camada superior chamada de Dynamic_Object_Array_Class &quot;.</p>
<p>&#39;******** classe superior *********************<br />
Class Dynamic_Object_Array_Class<br />
  &#39;************** Properties **************<br />
  Private aData()<br />
  Private c_size<br />
  &#39;****************************************</p>
<p>  &#39;*********** Event Handlers *************<br />
  Private Sub Class_Initialize()<br />
    Redim aData(0)<br />
    Set aData(0) = New item_class<br />
    c_size=0<br />
    c_numberlinks=1<br />
  End Sub<br />
 &#39; matar todos os objetos em Adata e livrar memória<br />
  Private Sub Class_Terminate()<br />
    Dim x<br />
		for x=0 to ubound(aData)<br />
			Set aData(0) = nothing<br />
		next<br />
    c_size=0<br />
    erase aData<br />
  End Sub<br />
  &#39;****************************************<br />
 	Public Property Get allitems()<br />
		allitems = aData<br />
	end property</p>
<p>	Public Property Get getsize()<br />
		getsize = c_size<br />
	end property</p>
<p>  Public Function push()<br />
		c_size = c_size+1<br />
		Redim preserve aData(c_size)<br />
		set aData(c_size)= New item_class<br />
		push=c_size<br />
  End Function</p>
<p>  Public Function pop(ipos)<br />
    Dim tempcount<br />
		pop=aData(ipos).item<br />
		if ipos &lt; c_size then<br />
		  for tempcount=ipos to (c_size &#8211; 1)<br />
			aData(tempcount).item = aData(tempcount+1).item<br />
			aData(tempcount).allvalues = aData(tempcount+1).allvalues<br />
		  next<br />
		end if<br />
		set aData(c_size)= nothing<br />
		c_size = c_size-1<br />
		Redim preserve aData(c_size)<br />
  End Function’<br />
End Class<br />
&#39;********** classe superior final ***************</p>
<p>A classe superior implementa um push-pop e um método para aumentar automaticamente ou diminuir o array de objetos da nossa classe de item que a classe superior detém. Observe que o método de classe anteriores allvalues é implementada no método pop na nossa class = mais alto. Agora que temos a nossa matriz dinâmica, devemos colocá-lo para uso. A maneira mais fácil de ver como ele funciona é a de armazenar alguns dados na matriz e em seguida, exibi-la novamente.</p>
<p>&#39;******** <strong>Exemplo de código usando Array Dinâmico</strong> *****</p>
<table>
<p> &lt;%<br />
	for y=0 to my_array.getsize<br />
		Response.Write &quot;<br />
<tr>
<td width='100'>Item: </td>
<td width='10'>&#8221; &amp; _<br />
					&#8220;</td>
<td width='200'>&#8221; &amp; _<br />
					my_array.allitems()(y).item &amp;  _<br />
 		&#8220;</td>
<td width='200'></td>
</tr>
<p> &#8221;<br />
		for x=0 to my_array.allitems()(y).numbervalues<br />
		   if my_array.allitems()(y).getValue(x)&#8221;" then<br />
			Response.Write &#8220;<br />
<tr>
<td width='100'></td>
<td width='10'>&#8221; &amp; _<br />
				&#8220;</td>
<td width='200'>Value:</td>
<td width='200'>&#8221; &amp; _<br />
				my_array.allitems()(y).getValue(x) &amp; &#8220;</td>
</tr>
<p>&#8221;<br />
		   end if<br />
	  	next<br />
	next<br />
 %&gt;<br />
 </table>
<p>&#8216;********************************************</p>
<p>Depois de executar o nosso código de exemplo, devemos ver o seguinte em nosso navegador da Web:</p>
<p>&#8216;******* Exemplo de Output *********************</p>
<p>Item:   Olá<br />
Item:   TRUE FALSE<br />
  Value: yes<br />
  Value: no<br />
Item:   Seu Nome<br />
Item:   Outro Item<br />
Item:   Lugar em Concurso<br />
  Value: Terceiro<br />
  Value: segundo<br />
  Value: Primeiro<br />
Item:   Escolha o Hotel<br />
  Value: Nacional Inn<br />
  Value: Ibis</p>
<p>&#8216;********* end example output ****************</p>
<p><strong>Resumo</strong></p>
<p>Arrays dinâmicos de objetos que contêm matrizes dinâmicas dos objetos nos permitem criar a estrutura que precisamos de uma forma simplificada e reutilizáveis. Nossas matrizes também serão auxiliadas na classificação, filtragem e manipulação de dados. Apesar de eu não ter incluído o código de exemplo para a classificação e filtragem, uma vez que você entender como funcionam as classes, gerando a classificação e os métodos de filtragem é bastante fácil.<br />
Podemos ainda, Redimensionar arrays<br />
Este tipo de arrays redimensionais se chama array dinâmico. Para criar este tipo de arrays podemos utilizar a sentença dim (como criávamos os anteriores) ou a sentença redim, com a particularidade que não lhe colocamos nenhum valor entre parênteses onde antes indicávamos o número de campos do array. </p>
<p>dim meu_array()<br />
redim meu_outro_array() </p>
<p>Quando usamos arrays dinâmicos podemos utilizar a sentença redim para indicar o número de dimensões e a quantidade de campos de cada dimensão. </p>
<p>Com esta sentença estamos indicando que meu_array deve ter o tamanho 10. Campos desde 0 até a 10.</p>
<p>redim meu_array(10) </p>
<p>Se indicamos a chave &#8220;preserve&#8221; estamos garantindo que o conteúdo dos campos que havia previamente no array se mantém. </p>
<p>redim preserve meu_array(20) </p>
<p>Por último, se em qualquer momento reduzimos o número de campos perderemos o que possa ter sido salvo nos campos que se eliminaram. </p>
<p>No seguinte exemplo criamos um array dinâmico e o redimensionamos inicialmente a tamanho 3. Preenchemos e mostramos seus distintos valores. Posteriormente o redimensionamos outra vez para que chegue até a posição 7, salvando os valores antigos. Para acabar preenchendo os campos que criamos novos e mostramos todos os valores do array. </p>
<p>dim frutas()<br />
redim frutas(3) </p>
<p>frutas(0) = &#8220;Pêra&#8221;<br />
frutas(1) = &#8220;Uva&#8221;<br />
frutas(2) = &#8220;Maçã&#8221;<br />
frutas(3) = &#8220;Melão&#8221; </p>
<p>for each fruta in frutas<br />
    document.write fruta &amp; &#8220;<br />&#8221;<br />
next </p>
<p>redim preserve frutas(7) </p>
<p>frutas(4) = &#8220;Melancia&#8221;<br />
frutas(5) = &#8220;Laranja&#8221;<br />
frutas(6) = &#8220;Banana&#8221;<br />
frutas(7) = &#8220;Tangerina&#8221; </p>
<p>for each fruta in frutas<br />
    document.write fruta &amp; &#8220;<br />&#8221;<br />
next </p>
<p><strong>Para saber o número de campos de um array </strong></p>
<p>Um dos dados típicos que necessitamos extrair de um array é seu número de posições, útil, por exemplo, para fazer um percorrido a um array, desde a primeira até o último campo. Para isso, utilizamos a função uBound() de VBScript. A função UBound permite descobrir o que o membro da matriz superior é definida. Isto torna mais fácil o loop para percorrer um array do início ao fim.</p>
<p>Digamos que você usa a função split para analisar uma string em um array. Então você:<br />
Dim ListaArray</p>
<p>SentStr = &#8221; Oitenta e sete anos atrás nossos pais trouxeram &#8221;<br />
ListaArray = split(SentStr, &#8221; &#8220;)</p>
<p>Agora você tem uma matriz listarray que pretende percorrer, mas você não sabe até onde ir. Como saber quando você tiver chegado ao final do array ?</p>
<p>A resposta é a função UBound. ubound dá-lhe o membro superior matriz de uma matriz. Neste caso, a matriz tem 10 palavras na mesma. O arrays começam sempre a numeração em zero, significa que essa matriz pontos de 0 a 9 são tomadas. Se você fizer<br />
ubound(ListArray)</p>
<p>O resultado é 9.</p>
<p>Você pode então fazer um loop através dos membros, que operam em cada um .</p>
<p>for loopctr = 0 to ubound(ListaArray)<br />
response.write ListaArray(loopctr)<br />
next</p>
<p><strong>Outro Exemplo: </strong></p>
<p>dim paises (4)<br />
response.write ubound (paises)<br />
Escreveria na página o número do campo mais alto do array paises, neste caso 4.<br />
Ademais, se por acaso algum dia necessitamos, também temos a nossa disposição a função lBound(), que devolve o número da posição com índice menor do array.<br />
response.write lbound (paises) </p>
<p>A última linha sobre nosso array de paises definido anteriormente escreveria um 0 na página web, visto que o array começa na posição zero. </p>
<p><strong>Arrays multidimensionais</strong></p>
<p>Podem-se construir matrizes multidimensionais, ou seja, que nos permitam criar matrizes de várias coordenadas. Para trabalhar com eles utiliza-se uma vírgula que separa os dois índices. Por exemplo, podemos definir uma matriz de 10&#215;10 desta maneira.</p>
<p>dim Array2Dimensoes (9,9)</p>
<p>Como o array é de 10 campos, utilizamos um 9 e suas posições serão as 10 que vão desde o 0 ao 9. Para escrever e ler do Array podemos utilizar a vírgula de maneira similar a como se declara. Por exemplo, para colocar dados na posição 0,4 faríamos o seguinte:</p>
<p>Array2Dimensoes (0,4) = &#8220;texto posicao 0,4&#8243; </p>
<p>Abaixo, temo um exemplo de como armazenar o conteúdo do vetor em uma session, muito usada pelo pessoal de e-commerce para carrinhos de compras.</p>
<p>&lt;%<br />
&quot;A função abaixo é generica e pode ser utilizada como um arquivo include<br />
Function VetorMonta(Acao,Valor)<br />
&quot;Usamos o case para manipular a ação da função<br />
Select Case Trim(Acao)<br />
&quot;Inclui nova posicao ao vetor<br />
Case &quot;Incluir&quot;<br />
&quot;Guarda na variavel Vetor o conteudo da Session<br />
Vetor = Session(&quot;GuardaVetor&quot;)<br />
&quot;Verifica se a Variavel Vetor é um Array, caso nao for entao definimos ela um Array<br />
If Not IsArray(Vetor) Then Vetor = Array() End if<br />
&quot;Verifica se o Valor que esta sendo inserido já esta no Vetor se estiver entao nao inseri para nao haver duplicidades do vetor<br />
If InStr(Join(Vetor), Valor) = 0 Then<br />
&quot;Este comando ira preservar o vetor e adciona + 1 valor<br />
ReDim preserve Vetor(UBound(Vetor)+1)<br />
&quot;Este é o valor que estamos adicionando no vetor<br />
Vetor(Ubound(Vetor )) = Valor<br />
&quot;Coloca o conteudo da variavel vetor dentro da Session<br />
Session(&quot;GuardaVetor&quot;) = Vetor<br />
End if<br />
&quot;Apaga uma determinada posicao do vetor<br />
Case &quot;Excluir&quot;<br />
&quot;Inicia a varivel vetor como vazia<br />
Vetor = Array()<br />
&quot;Criamos uma nova variavel Auxiliar e guardamos o valor da Session<br />
AuxVetor = Session(&quot;GuardaVetor&quot;)<br />
&quot;Definine a Session como um Array vazio<br />
Session(&quot;GuardaVetor&quot;) = Array()<br />
&quot;Faz um laço em todas as posições do vetor<br />
For i = 0 To Ubound(AuxVetor)<br />
&quot;Verifica se o valor passado para excluir do vetor é diferente do valor que esta dentro da variavel Auxiliar<br />
If AuxVetor(i)  (Valor) Then<br />
&#8220;Este comando ira preservar o vetor e adciona + 1 valor<br />
ReDim preserve Vetor (UBound(Vetor)+1)<br />
&#8220;Este é o valor que estamos adicionando no vetor<br />
Vetor (Ubound(Vetor)) = AuxVetor(i)<br />
&#8220;Coloca o conteudo da variavel vetor dentro da Session<br />
Session(&#8220;GuardaVetor&#8221;) = Vetor<br />
End If<br />
Next<br />
&#8220;Fim do Case<br />
End Select<br />
End Function<br />
Function Incluir_Vetor<br />
&#8220;Executa a função que ira criar uma posição do vetor, basta passar a acao e o valor<br />
Call VetorMonta(&#8220;Incluir&#8221;,Replace(Request(&#8220;Valor_Vetor&#8221;),&#8221;"&#8221;,&#8221;"))<br />
End Function<br />
Function Excluir_Vetor(Valor_Vetor)<br />
&#8220;Executa a função que ira deletar uma posição do vetor, basra passar a acao e o valor<br />
Call VetorMonta(&#8220;Excluir&#8221;,Valor_Vetor)<br />
End Function<br />
Function VisualizaValoresVetor<br />
&#8220;Veriofica se a Session é um array, caso nao for então atribuimos a Session como um Array<br />
IF Not IsArray(session(&#8220;GuardaVetor&#8221;)) Then session(&#8220;GuardaVetor&#8221;) = Array() End if<br />
&#8220;Faremos um laço entre todos os vetores criados<br />
For x = 0 To ubound(session(&#8220;GuardaVetor&#8221;)) &#8220;ira fazer um laço mostrando todos os vetores criados<br />
&#8220;Mostra os valores armazenados na Session e adiciona um link para apagar a posição do vetor caso queira<br />
Response.Write session(&#8220;GuardaVetor&#8221;)(x) &amp; &#8220;<a>(Apagar)</a>&#8221; &amp; &#8220;<br />&#8221;<br />
Next<br />
&#8220;Verifica se a Session tem alguma posição, se tiver mostra a opção de apagar todos os vetores<br />
If ubound(session(&#8220;GuardaVetor&#8221;)) &gt;= 0 Then<br />
Response.Write &#8220;<br />&#8221; &amp;&#8221;<a href="vetor.asp?action=LimpaVetor">Apagar Tudo</a>&#8221; &amp; &#8220;<br />&#8221; &#8220;Imprime o Vetor na tela<br />
End if<br />
End Function<br />
Function LimpaVetor<br />
&#8220;Limpa todas as posiçoes do vetor, apagando a Session<br />
session(&#8220;GuardaVetor&#8221;) = Empty<br />
End Function<br />
&#8220;USAMOS CASES PARA MANUPULARAS CHAMADAS DAS FUNÇÕES<br />
useraction=request(&#8220;action&#8221;)<br />
select case useraction<br />
Case &#8220;Incluir_Vetor&#8221;<br />
&#8220;Chama a function que ira incluir um valor para o vetor<br />
Call Incluir_Vetor<br />
Case &#8220;Excluir_Vetor&#8221;<br />
&#8220;Chama a function que ira excluir um valor para o vetor<br />
Call Excluir_Vetor(Request(&#8220;Valor_Vetor&#8221;))<br />
Case &#8220;LimpaVetor&#8221;<br />
&#8220;Chama a function que apagar todas as posições do vetor<br />
Call LimpaVetor<br />
End Select<br />
%&gt;</p>
<table width="100%">
<form name="form" method="post" action="?action=Incluir_Vetor">
<tr>
<td>
</td>
</tr>
</form>
</table>
<img src="http://feeds.feedburner.com/~r/mxstudio/~4/yWOgoDD9L7E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/marketingdigital/usabilidade/asp-arrays-dinamicos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mxstudio.com.br/marketingdigital/usabilidade/asp-arrays-dinamicos/</feedburner:origLink></item>
		<item>
		<title>Dicas de Produção Web</title>
		<link>http://feedproxy.google.com/~r/mxstudio/~3/t-C9pwIW5SA/</link>
		<comments>http://www.mxstudio.com.br/marketingdigital/web-marketing/dicas-de-producao-web/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 15:57:19 +0000</pubDate>
		<dc:creator>Priscylla</dc:creator>
				<category><![CDATA[Web Marketing]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=4559</guid>
		<description><![CDATA[   

A produção de um projeto digital
Produzir um projeto digital seja ele sites, portais ou sistemas em nuvem não é tarefa das mais fácies. É necessário conhecimento do produto do seu cliente, criatividade e principalmente ousadia para transpor as barreiras do básico. É muito comum alguns empresários pensar que o investimento em projetos [...]]]></description>
			<content:encoded><![CDATA[<p><a href="../wp-content/uploads/2010/07/alvo1.jpg"> </a><a href="../wp-content/uploads/2010/07/alvo1.jpg"> </a><a href="../wp-content/uploads/2010/07/alvo1.jpg"> </a></p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2010/07/alvo1.jpg"><img class="alignnone size-full wp-image-4562" title="alvo" src="http://www.mxstudio.com.br/wp-content/uploads/2010/07/alvo1.jpg" alt="" width="280" height="278" /></a></p>
<p><strong>A produção de um projeto digital</strong></p>
<p>Produzir um projeto digital seja ele sites, portais ou sistemas em nuvem não é tarefa das mais fácies. É necessário conhecimento do produto do seu cliente, criatividade e principalmente ousadia para transpor as barreiras do <em>básico</em>. É muito comum alguns empresários pensar que o investimento em projetos digitais é caro e que leva bastante tempo para concluí-lo, o que de fato assusta alguns clientes. Mas, é necessário esclarecer que o investimento não é caro, pelo contrário é bastante barato quando comparado a outras mídias como, por exemplo, a televisão, além de alcançar realmente o seu público-alvo e proporcionar ao cliente maior retorno, seja financeiro ou de presença marcante na Internet. Além disso, participar ativamente da rede com um WebSite agradável, interativo e expressivo garantem também ao investidor a possibilidade real de ampliar os seus negócios para além do Estado onde está situada a sede, para território nacional e internacional, aumentando tanto em vendas quanto em disseminação de sua marca. Pense nisso!</p>
<p><strong>Melhore a Presença online da sua empresa</strong></p>
<p>O ditado <em>“Sua empresa deve está onde os seus clientes estão”</em> nunca esteve tão na moda. Para que sua empresa alcance potenciais clientes e aumente as chances de vender é necessário que você esteja onde eles estão. Hoje em dia, seus clientes estão nas redes sociais, isso é fato.  Por isso é necessário que sua empresa também esteja. Mas, estar por estar de nada adianta se não tiver um objetivo traçado e um projeto em prática; a presença online de uma empresa se dá de diversas formas e uma delas é oferecendo ao público algo, não adianta bombardear a <em>Time Line </em>do seu cliente com promoções ou ofertas, se estas não forem pensadas exclusivamente para este fim.  Possuir uma equipe de profissionais ou terceirizar esse serviço com empresas e consultores especializados em elaborar projetos de marketing online é a saída para quem precisa estar online e não sabe como e por onde começar. Converse comigo @priscylladuarte.</p>
<p><strong> </strong></p>
<p><strong>Aceite o que o profissional tem a dizer</strong></p>
<p>Não é raro presenciarmos alguns clientes em <em>“quebra de braços”</em> com diversos profissionais da área de publicidade digital, pelo fato de não entender ao certo como se dá o processo de desenvolvimento do projeto, alguns clientes tendem a menosprezar a capacidade técnica de alguns profissionais, o que de fato é bastante comum. Frases do tipo: Ah! Isso é facinho de fazer, basta copiar e colar, não é? Ou Isso até meu sobrinho faz, entre outras que escuto por aí, realmente são desalentadoras para nós, profissionais da web. Observo muito isso com os designers que trabalham comigo em alguns projetos, eles são os principais alvos de opiniões desencontradas de alguns clientes e não adianta tentar explicar que: A arte tem que ser assim por que esta em 1024, padrão dos sites na web, ou Olha não dá para deixar o site do tamanho do seu monitor, etc e tal! O que complica é que alguns empresários não faz o site para o cliente, e sim para eles próprios, e infelizmente esse pensamento é bastante difícil de desfazer.</p>
<p>Priscylla Duarte &#8211; Jornalista</p>
<p>@priscylladuarte</p>
<img src="http://feeds.feedburner.com/~r/mxstudio/~4/t-C9pwIW5SA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/marketingdigital/web-marketing/dicas-de-producao-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mxstudio.com.br/marketingdigital/web-marketing/dicas-de-producao-web/</feedburner:origLink></item>
		<item>
		<title>Adsense, Analytics, Google Vídeo em apenas um módulo</title>
		<link>http://feedproxy.google.com/~r/mxstudio/~3/yPr-WQmZNBw/</link>
		<comments>http://www.mxstudio.com.br/tecnologia/joomla/adsense-analytics-google-video-em-apenas-um-modulo/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 14:47:48 +0000</pubDate>
		<dc:creator>Edmar Ferreira</dc:creator>
				<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=4550</guid>
		<description><![CDATA[Muitos templates novos para o Joomla! não incluem a possibilidade de adicionar o código do Google Analytics diretamente no index do site. O que fazer para incluir  o código se a tag html HEAD não está presente?
Você encontrará no site de extensões do Joomla! um módulo que é o tudo em um, o Easy [...]]]></description>
			<content:encoded><![CDATA[<p>Muitos templates novos para o Joomla! não incluem a possibilidade de adicionar o código do Google Analytics diretamente no index do site. O que fazer para incluir  o código se a tag html HEAD não está presente?</p>
<p>Você encontrará no site de extensões do Joomla! um módulo que é o tudo em um, o <a href="http://extensions.joomla.org/extensions/edition/custom-code-in-modules/4971?qh=YTozOntpOjA7czo5OiJhbmFsaXR5Y3MiO2k6MTtzOjY6Imdvb2dsZSI7aToyO3M6MTY6ImFuYWxpdHljcyBnb29nbGUiO30%3D">Easy Script</a>.</p>
<p>Você pode utilizá-lo principalmente para javascripts Google: Adsense, Analitycs , Google Videos.<br />
É possível também inserir código html.</p>
<p>Precisa inserir mais de um código?  Sem problemas, basta copiar o módulo e inserir.</p>
<p>Prático e fácil!<br />
Faça o download deste módulo, pois em um momento ou outro você vai precisar dele.</p>
<p>Até mais.<br />
Edmar Ferreira<br />
Diretor de Tecnologia da Agência Orbium<br />
<a href="http://www.agenciaorbium.com.br">Otimização de sites</a></p>
<img src="http://feeds.feedburner.com/~r/mxstudio/~4/yPr-WQmZNBw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/tecnologia/joomla/adsense-analytics-google-video-em-apenas-um-modulo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mxstudio.com.br/tecnologia/joomla/adsense-analytics-google-video-em-apenas-um-modulo/</feedburner:origLink></item>
		<item>
		<title>Criando um programa de cadastro em Java com banco de dados MySql</title>
		<link>http://feedproxy.google.com/~r/mxstudio/~3/Y1yZrYvyTxU/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/programacao/criando-um-programa-de-cadastro-em-java-com-banco-de-dados-mysql/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 03:18:15 +0000</pubDate>
		<dc:creator>Elzo</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Banco]]></category>
		<category><![CDATA[brito]]></category>
		<category><![CDATA[cadastro]]></category>
		<category><![CDATA[com]]></category>
		<category><![CDATA[Criando]]></category>
		<category><![CDATA[dados]]></category>
		<category><![CDATA[de]]></category>
		<category><![CDATA[elzo]]></category>
		<category><![CDATA[EM]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[MySql programaX um]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=4542</guid>
		<description><![CDATA[Bom vamos criar um programa simples de cadastro em Java utilizando um banco de dados MySql, antes de começarmos a programar nosso software precisamos fazer o download do conector MYSQL pois ele vai fazer toda a conexão com o banco de dados.
Abaixo está o link para você fazer o download pelo próprio site do MYSQL
http://www.mysql.com/downloads/connector/j/
vem [...]]]></description>
			<content:encoded><![CDATA[<p>Bom vamos criar um programa simples de cadastro em Java utilizando um banco de dados MySql, antes de começarmos a programar nosso software precisamos fazer o download do conector MYSQL pois ele vai fazer toda a conexão com o banco de dados.</p>
<p>Abaixo está o link para você fazer o download pelo próprio site do MYSQL</p>
<p><a href="http://www.mysql.com/downloads/connector/j/">http://www.mysql.com/downloads/connector/j/</a></p>
<p>vem um arquivo zipado com o jar que vamos usar dentro, se você quiser baixar o jar, coloquei ele para download, clique no link abaixo e baixe apenas o jar.</p>
<p><a href="http://elzobrito.com/arquivos/blog/postjava/mysql-connector-java-5.0.8-bin.jar">elzobrito.com/arquivos/blog/postjava/mysql-connector-java-5.0.8-bin.jar</a></p>
<p>Depois de fazer o download você precisa extrair o arquivo</p>
<p><a href="http://elzobrito.files.wordpress.com/2010/07/clip_image0024.gif"><img style="border-width: 0;" src="http://elzobrito.files.wordpress.com/2010/07/clip_image0024_thumb.gif" border="0" alt="clip_image002[4]" width="231" height="54" /></a></p>
<p>Caso tenha baixado o zip diretamente do site do MYSQL, depois de extrair o arquivo cole na pasta:</p>
<p>C:\Program Files\Java\jdk1.6.0_16\jre\lib\ext</p>
<p>Bem agora vamos criar nosso banco de dados, vamos criar uma tabela simples com:</p>
<p>Código, nome, data de nascimento, telefone, email.</p>
<p>Então o código SQL fica assim:</p>
<pre>CREATE TABLE `elzobrito1`.`cadastro` (
`cod` INT( 255 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nome` VARCHAR( 255 ) NOT NULL ,
`dt_nasc` VARCHAR( 255 ) NOT NULL ,
`telefone` VARCHAR( 255 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL
) ENGINE = MYISAM</pre>
<p>Pronto agora podemos nos preocupar com as classes Java : )</p>
<p>Vamos criar uma classe Amigo, com os mesmos campos que colocamos no banco de dados.</p>
<pre>cod</pre>
<p><span style="font-family: 'Courier New';"> </span></p>
<pre>public class Amigo {
    private int cod;
    private String nome;
    private String dt_nasc;
    private String telefone;
    private String email;

    public int getCod() {
        return cod;
    }

    public void setCod(int cod) {
        this.cod = cod;
    }

    public String getDt_nasc() {
        return dt_nasc;
    }

    public void setDt_nasc(String dt_nasc) {
        this.dt_nasc = dt_nasc;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

}</pre>
<p>Pronto a classe Amigo está criada, precisamos criar uma classe para conversar com nosso banco de dados. A classe que vamos criar agora faz busca e inserção no banco de dados.</p>
<pre>import java.util.*;
import java.sql.*;
import java.util.ArrayList;

public class ConectaBanco {

    private String url;
    private String login;
    private String senha;

    public ConectaBanco(String url, String login, String senha) {
        setUrl(url);
        setLogin(login);
        setSenha(senha);
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public void insere(String s, String msg) {
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            //System.out.println("\n Salvando URL: ...\n");
            try {
                Connection conn = DriverManager.getConnection(getUrl(),</pre>
<pre>getLogin(), getSenha());
                try {
                    String sql = s;
                    Statement stm = conn.createStatement();
                    try {
                        stm.executeUpdate(sql);
                        System.out.println(msg);
                    } catch (Exception ex) {
                        System.out.println("\nErro no resultset!\n" + ex);
                    }
                } catch (Exception ex) {
                    System.out.println("\nErro no statement!");
                }
            } catch (Exception ex) {
                System.out.println("\nErro no connection!");
            }
        } catch (Exception ex) {
            System.out.println("\nDriver nao pode ser carregado!");
        }

    }

    public ArrayList busca(String s) {
        ArrayList amigo = new ArrayList();
        Amigo a = new Amigo();
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            //System.out.println("\n Salvando URL: ...\n");
            try {
                Connection conn = DriverManager.getConnection(getUrl(),</pre>
<pre>getLogin(), getSenha());
                try {
                    String sql = s;
                    Statement stm = conn.createStatement();
                    try {
                        ResultSet rs = stm.executeQuery(sql);
                        while (rs.next()) {
                            a.setCod(rs.getInt(1));
                            a.setNome(rs.getString(2));
                            a.setDt_nasc(rs.getString(3));
                            a.setTelefone(rs.getString(4));
                            a.setEmail(rs.getString(5));
                            amigo.add(a);
                        }
                        //System.out.println(rs.getInt(1));
                    } catch (Exception ex) {
                        System.out.println(ex);
                    }
                } catch (Exception ex) {
                    System.out.println("\nErro no statement!");
                }
            } catch (Exception ex) {
                System.out.println("\nErro no connection! " + ex);
            }
        } catch (Exception ex) {
            System.out.println("\nDriver nao pode ser carregado!");
        }
        return amigo;
    }
}</pre>
<p>Agora vamos fazer o MAIN&#8230;</p>
<p>No MAIN vamos fazer um coisa bem simples apenas cadastrar e buscar um amigo no banco de dados.</p>
<pre>import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO code application loSgic here
        Scanner ler  = new Scanner(System.in);
        ConectaBanco cb = new ConectaBanco("jdbc:mysql://URL",</pre>
<pre> "LOGIN", "SENHA");

        int x=-1;
        while (x != 0) {
            System.out.println("Escolha uma opcao");
            System.out.println("1 - Cadastrar amigo");
            System.out.println("2 - Buscar Amigo");
            System.out.println("3 - Sair");
            x = Integer.parseInt(ler.nextLine());

            switch (x) {
                case 1: {
                    Amigo amigo = new Amigo();

                    System.out.println("Digite um nome:");
                    amigo.setNome(ler.nextLine());
                    System.out.println("Digite a data de nascimento:");
                    amigo.setDt_nasc(ler.nextLine());
                    System.out.println("Digite o Telefone:");
                    amigo.setTelefone(ler.nextLine());
                    System.out.println("Digite o E-mail:");
                    amigo.setEmail(ler.nextLine());

                    cb.insere("INSERT INTO</pre>
<pre>nome_do_banco_de_dados.nome_da_tabela VALUES</pre>
<pre>(NULL , '" + amigo.getNome() + "', '" + amigo.getDt_nasc() +</pre>
<pre> "', '" + amigo.getTelefone() + "', '" + amigo.getEmail() + "');</pre>
<pre>", "Amigo gravado corretamente...");
                    break;
                }
                case 2: {
                    ArrayList a = new ArrayList();
                    System.out.println("Digite o nome do seu amigo</pre>
<pre>para procura:");
                    String nome = ler.nextLine();
                    a =  cb.busca("SELECT * FROM</pre>
<pre>nome_do_banco_de_dados.nome_da_tabelao WHERE nome</pre>
<pre>LIKE '%" + nome + "%';");
                    if (a.size()&gt;0){
                        a.get(0).show(a);
                    }
                    else{
                        System.out.println("nao achamdos seu amigo <img src='http://www.mxstudio.com.br/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  ");
                    }

                    break;
                }
                case 3: {
                    x=0;
                }
            }

        }
    }

}</pre>
<p>Pronto nosso programa já esta funcionando</p>
<p>heheheh</p>
<img src="http://feeds.feedburner.com/~r/mxstudio/~4/Y1yZrYvyTxU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/programacao/criando-um-programa-de-cadastro-em-java-com-banco-de-dados-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.mxstudio.com.br/desenvolvimento/programacao/criando-um-programa-de-cadastro-em-java-com-banco-de-dados-mysql/</feedburner:origLink></item>
		<item>
		<title>Instalar um template Joomla utilizando um QuickStart</title>
		<link>http://feedproxy.google.com/~r/mxstudio/~3/ShDcZyaCV1s/</link>
		<comments>http://www.mxstudio.com.br/tecnologia/joomla/instalar-um-template-joomla-quickstart-2/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 00:56:32 +0000</pubDate>
		<dc:creator>Edmar Ferreira</dc:creator>
				<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=4529</guid>
		<description><![CDATA[Uma das grandes vantagens do CMS Joomla! é a possibilidade de instalar templates completos com todos os componentes, módulos e plugins que já fazem parte de um pacote.
São muitas as empresas que oferecem estes sites prontos; Yootheme, TemplatePlazza, IceTheme, Gavick, Bonus Theme, e muitos outros. Você pode instalar um site completo em cinco minutos!
O procedimento [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das grandes vantagens do CMS Joomla! é a possibilidade de instalar templates completos com todos os componentes, módulos e plugins que já fazem parte de um pacote.<br />
São muitas as empresas que oferecem estes sites prontos; <a href="http://www.yootheme.com">Yootheme</a>, <a href="http://www.templateplazza.com">TemplatePlazza</a>, IceTheme, <a href="http://www.gavick.com">Gavick</a>, Bonus Theme, e muitos outros. Você pode instalar um site completo em cinco minutos!<br />
O procedimento para instalação é muito simples:</p>
<p><strong>1 &#8211; Criar banco de dados</strong><br />
Acesse o painel de controle do seu domínio (Cpanel, Plesk) e crie um banco de dados MySQL. Crie também um usuário e associe este usuário ao banco de dados atribuindo todos privilégios.</p>
<p><strong>2 &#8211; Faça o Upload do template Joomla! para o servidor</strong><br />
Você pode utilizar um programa de FTP para enviar o arquivo ou até mesmo o Gerenciador de Arquivos existente no painel de controle do domínio. Assim que terminar o upload, descompacte o arquivo.<br />
Quando o arquivo é descompactado todos arquivos e diretórios aparecerão no local especificado (este local pode ser a pasta raíz como o public_html ou www ou até mesmo um diretório qualquer do seu domínio.</p>
<p><strong>3 &#8211; Acesse o seu dominio</strong><br />
No momento que você acessar o seu domínio o arquivo index.php é solicitado e a instalação se iniciará.<br />
Observação: Se por acaso você já possuir um arquivo index.html ou index.htm o index.php não será executado. Se for o caso renomei o index para outro nome qualquer ou digite o indes.php logo depois do seu domínio.</p>
<p><strong>4 &#8211; A instalação se inicia passo-a-passo.</strong><br />
No momento da configuração do servidor é onde você deverá digitar as informações do banco de dados, do usuário que você criou e a senha:<br />
DataBase: MySQL<br />
HostName: localhost<br />
username: usuario que você criou (no CPANEL o usuário esta associado ao usuário do proprio painel de controle, ou seja se seu usuário para acesso ao CPANEL é &#8220;agencia&#8221; o banco de dados e usuario que você criou ganham o prefixo &#8220;agencia_&#8221;<br />
É normalmente nesta fase que alguns iniciantes do Joomla! tem alguma dificuldade. Caso não forneça os dados corretos o instalador do Joomla indicará que não conseguiu acessar o banco de dados. Se este foi o seu caso então reveja passo-a-passo o procedimento de instalação.<br />
No momento que concluir a instalação o instalador informará que é necessário apagar a pasta &#8220;installations&#8221;. Faça isso utilizando algum programa de ftp ou através do Gerenciador de Arquivos do painel de controle.</p>
<p><strong>5 &#8211; Pronto! Atualize seu browser e seu site estará no ar.</strong></p>
<p>É importante personalizar o seu template, assim você evita de encontrar outro site por ai igual ao seu! Principalmente se estiver instalando um template para um cliente.</p>
<p>Por enquanto é só!<br />
Senhores foi um prazer!<br />
Até mais.<br />
Edmar Ferreira<br />
Diretor de Tecnologia<br />
<a href="http://www.agenciaorbium.com.br">Otimização de Sites</a></p>
<img src="http://feeds.feedburner.com/~r/mxstudio/~4/ShDcZyaCV1s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/tecnologia/joomla/instalar-um-template-joomla-quickstart-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mxstudio.com.br/tecnologia/joomla/instalar-um-template-joomla-quickstart-2/</feedburner:origLink></item>
	<!-- google_ad_section_end --></channel>
</rss>
