<?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>TechTips &#187; JavaScript</title>
	<atom:link href="http://www.techtips.com.br/category/programacao/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.techtips.com.br</link>
	<description>Dicas de Tecnologia</description>
	<lastBuildDate>Wed, 24 Jun 2009 19:06:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Jash &#8211; JavaScript Shell &#8211; Um Prompt Interativo Dentro do Browser</title>
		<link>http://www.techtips.com.br/desenvolvimento-web/jash-javascript-shell-um-prompt-interativo-dentro-do-browser/</link>
		<comments>http://www.techtips.com.br/desenvolvimento-web/jash-javascript-shell-um-prompt-interativo-dentro-do-browser/#comments</comments>
		<pubDate>Sun, 20 May 2007 18:52:57 +0000</pubDate>
		<dc:creator>Leonel Togniolli</dc:creator>
				<category><![CDATA[Desenvolvimento Web]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.techtips.com.br/desenvolvimento-web/jash-javascript-shell-um-prompt-interativo-dentro-do-browser/</guid>
		<description><![CDATA[Seguindo no assunto de desenvolvimento de aplicações Web com JavaScript, vou apresentar uma ferramenta interessante para trabalhar com JavaScript: o Jash, ou JavaScript shell, um prompt interativo que permite você executar comandos e testar código JavaScript diretamente dentro do browser. Ele funciona abrindo uma janela DHTML dentro de qualquer página que você estiver navegando, permitindo [...]]]></description>
			<content:encoded><![CDATA[<p>Seguindo no assunto de desenvolvimento de aplicações Web com JavaScript, vou apresentar uma ferramenta interessante para trabalhar com JavaScript: o <a href="http://www.billyreisinger.com/jash/">Jash</a>, ou JavaScript shell, um prompt interativo que permite você executar comandos e testar código JavaScript diretamente dentro do browser.</p>
<p>Ele funciona abrindo uma janela DHTML dentro de qualquer página que você estiver navegando, permitindo você interagir com o código JavaScript existente nessa página, com a própria página, ou digitar comandos independentes.</p>
<p>Você pode fazer o <a href="http://www.billyreisinger.com/jash/download.html">download</a> diretamente do site oficial da ferramenta. Para usar, basta atualizar os caminhos dentro do arquivo .js para o local que ele foi salvo, adicionar uma referência na página que você está desenvolvendo, ou mais fácil ainda, criar um <a href="javascript:(function(){document.body.appendChild(document.createElement('script')).src='http://www.billyreisinger.com/jash/source/latest/Jash.js';})();">bookmarklet</a> apontando para ele.</p>
<p>Vá em frente, clique no link acima e veja o Jash funcionando diretamente aqui. Ele completa nomes de objetos, propriedades e funções com a tecla Tab, além de ter vários recursos interessantes para ajudar a desenvolver sua aplicação web. Bem útil.</p>
<p><center>&copy; <a href="http://www.techtips.com.br">TechTips</a></center></p>]]></content:encoded>
			<wfw:commentRss>http://www.techtips.com.br/desenvolvimento-web/jash-javascript-shell-um-prompt-interativo-dentro-do-browser/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaScript &#8211; Nem Java, nem Script &#8211; Uma Interessante Linguagem Orientada a Objetos (sem classes)</title>
		<link>http://www.techtips.com.br/programacao/orientacao-a-objetos/javascript-nem-java-nem-script-uma-interessante-linguagem-orientada-a-objetos-sem-classes/</link>
		<comments>http://www.techtips.com.br/programacao/orientacao-a-objetos/javascript-nem-java-nem-script-uma-interessante-linguagem-orientada-a-objetos-sem-classes/#comments</comments>
		<pubDate>Sat, 19 May 2007 21:12:02 +0000</pubDate>
		<dc:creator>Leonel Togniolli</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>

		<guid isPermaLink="false">http://www.techtips.com.br/semcategoria/javascript-nem-java-nem-script-uma-interessante-linguagem-orientada-a-objetos-sem-classes/</guid>
		<description><![CDATA[Já escrevi sobre o Qooxdoo, uma biblioteca GUI para a web feita em JavaScript. Quem não quem conhece JavaScript, pode ficar impressionado com as capacidades desse framework orientado a objeto. E vai também, sem dúvida, ficar com as mãos amarradas no momento que tentar escrever alguma coisa com ele. Antes de nos aprofundarmos em Qooxdoo, [...]]]></description>
			<content:encoded><![CDATA[<p>Já escrevi sobre o <a href="http://www.techtips.com.br/desenvolvimento-web/ajax/clientes-ricos-ajax-na-web-com-qooxdoo/">Qooxdoo</a>, uma biblioteca GUI para a web feita em JavaScript. Quem não quem conhece JavaScript, pode ficar impressionado com as capacidades desse framework orientado a objeto. E vai também, sem dúvida, ficar com as mãos amarradas no momento que tentar escrever alguma coisa com ele. Antes de nos aprofundarmos em Qooxdoo, temos que conhecer um pouco de JavaScript.</p>
<p>Este artigo é uma introdução de JavaScript, para você deixar de vê-la como uma forma de fazer pequenos scripts em browser e passar a reconhecer o potencial que ela tem, como uma linguagem orientada a objetos, com recursos únicos muito bons.</p>
<p>Primeiramente, é necessário se desligar do nome bastante enganador: JavaScript não tem herança alguma de Java &#8211; chamava LiveScript quando foi implementada pela primeira vez pela Netscape (e Mocha, antes disso). Ganhou o prefixo Java em uma jogada de marketing da Netscape aliada com a Sun, sem ter ganhado nada que a tornasse mais perto dessa outra linguagem da Sun, que estava começando a entrar na moda em 1995.</p>
<p>O&nbsp;sufixo Script do nome também dá uma impressão errada. Ela não tem mais de &#8220;script&#8221; do que outra linguagens interpretadas por aí. Apesar do host mais comum que estamos acostumados a ver JavaScript executando são os browsers, não existe nada na definição da linguagem que a limite nesse sentido.</p>
<p>Tendo isso esclarecido, podemos partir para JavaScript. É uma linguagem dinâmica, fracamente tipada, com orientação a objetos baseada em prototipos. O que isso quer dizer?</p>
<p>A primeira parte, linguagem dinâmica, é algo que está na moda ultimamente. Uma linguagem dinâmica é uma que é capaz de alterar sua estrutura durante a execução, algo que em linguagens tradicionais, acontece durante a compilação. Isso quer dizer que JavaScript pode criar novos tipos, adicionar métodos em objetos existentes. </p>
<p>Ser fracamente tipada é uma faca de dois gumes &#8211; variáveis não possuem tipos estritamente definidos, funções não obrigam tipos de parâmetros pré-determinados (nem a quantidade deles). Permite uma programação muito mais flexível do que seria possível em uma linguagem fortemente tipada, dando um poder muito grande para JavaScript, mas requer uma atenção maior do programador.</p>
<p>Finalmente, é orientada a objetos. Não tem, porém, classes ou tipos, como a orientação a objetos tradicional. Como pode ser orientada a objetos sem classes? JavaScript segue o modelo de orientação a objetos Prototipal. Nesse modelo, objetos são construídos, funções e campos são adicionados neles, e eles servem de protótipo, como uma forma, para outros objetos descendentes, sendo clonados e permitindo que funcionalidade seja adicionada na instância descendente. É uma modelo de difícil compreensão para quem está acostumado com a forma clássica, mas que, como os outros recursos que vimos até agora, dá para JavaScript um potencial enorme de solução de problemas de uma forma diferente da qual estamos acostumados.</p>
<p>Em JavaScript, tudo é um objeto. Inclusive funções são objetos, podendo ter membros, e métodos (outras funções). Outra característica interessante é que todos os objetos não são nada mais que Hashes &#8211; estruturas nome=valor contendo todos os campos e métodos da classe, que podem ser enumerados e alterados em qualquer momento que for necessário.&nbsp;</p>
<p>Na próxima parte, vamos criar alguns objetos em JavaScript para aprender o básico da sintaxe, e descobrir o que é lambda e closures, recursos que tornam a implementações&nbsp;de funções um tanto mais fácil.</p>
<p><center>&copy; <a href="http://www.techtips.com.br">TechTips</a></center></p>]]></content:encoded>
			<wfw:commentRss>http://www.techtips.com.br/programacao/orientacao-a-objetos/javascript-nem-java-nem-script-uma-interessante-linguagem-orientada-a-objetos-sem-classes/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tutorial: Instalando o SDK do Qooxdoo para criar aplica&#231;&#245;es AJAX</title>
		<link>http://www.techtips.com.br/desenvolvimento-web/tutorial-instalando-o-sdk-do-qooxdoo-para-criar-aplicaes-ajax/</link>
		<comments>http://www.techtips.com.br/desenvolvimento-web/tutorial-instalando-o-sdk-do-qooxdoo-para-criar-aplicaes-ajax/#comments</comments>
		<pubDate>Wed, 16 May 2007 19:00:53 +0000</pubDate>
		<dc:creator>Leonel Togniolli</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Desenvolvimento Web]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.techtips.com.br/desenvolvimento-web/tutorial-instalando-o-sdk-do-qooxdoo-para-criar-aplicaes-ajax/</guid>
		<description><![CDATA[Já apresentei o Qooxdoo, uma biblioteca de interface visual escrita em JavaScript, com a finalidade de criar interfaces web ricas em aplicações AJAX. Se trabalhar com o Qooxdoo te interessou, aqui seguem os passos necessários para a instalação do SDK em plataforma windows, para poder desenvolver e depurar suas aplicações AJAX utilizando todos os recursos [...]]]></description>
			<content:encoded><![CDATA[<p>Já <a href="http://www.techtips.com.br/desenvolvimento-web/ajax/clientes-ricos-ajax-na-web-com-qooxdoo/">apresentei o Qooxdoo</a>, uma biblioteca de interface visual escrita em JavaScript, com a finalidade de criar interfaces web ricas em aplicações AJAX. Se trabalhar com o Qooxdoo te interessou, aqui seguem os passos necessários para a instalação do SDK em plataforma windows, para poder desenvolver e depurar suas aplicações AJAX utilizando todos os recursos do Qooxdoo.</p>
<h2>Pré-requisitos</h2>
<p>O Qooxdoo utiliza uma espécie de compilação para gerar os arquivos de JavaScript para desenvolvimento e depuração ou para o deployment final (com otimizações extras). Isso é feito utilizando o make da GNU, disponível no windows através do <a href="http://www.cygwin.com/">cygwin</a>. Baixe então <a href="http://www.cygwin.com/setup.exe">o instalador web do cygwin</a>. Rode a instalação e prossiga escolhendo um mirror qualquer, uma pasta de instalação qualquer, até chegar na seleção de pacotes. Não aceite os valores padrão &#8211; para desenvolver aplicações Qooxdoo, além dos pacotes padrão,&nbsp;você vai precisar selecionar os seguintes pacotes:</p>
<ul>
<li>Archive
<ul>
<li>zip
<li>unzip</li>
</ul>
<li>Devel
<ul>
<li>make
<li>gettext
<li>gettext-devel</li>
</ul>
<li>Interpreters
<ul>
<li>python</li>
</ul>
<li>Net
<ul>
<li>rsync</li>
</ul>
<li>Web
<ul>
<li>wget</li>
</ul>
</li>
</ul>
<p>&nbsp;Para selecionar um pacote, clique sobre o texto &#8220;skip&#8221; ao lado dele para instalar a versão mais recente disponível.</p>
<h2>Qooxdoo SDK</h2>
<p>Após concluir a instalação do cygwin com sucesso, baixe o <a href="http://qooxdoo.org/download#sdk">SDK do Qooxdoo</a>. A versão mais recente, enquanto escrevo isto, é a <a href="http://downloads.sourceforge.net/qooxdoo/qooxdoo-0.6.6-sdk.tar.gz">0.6.6</a>. Basta descompactar o arquivo em alguma pasta.</p>
<p>Abrindo um prompt do cygwin (um shell bash, para quem está acostumado com ele no Linux), vá até a pasta que você descompactou o SDK. Geralmente, no cygwin, suas partições de dados do windows vão estar em /cydrive/unidade. No prompt do Cygwin, digite algo parecido com isso, portanto:</p>
<pre>$ cd /cygdrive/c/projetos/qooxdoo-0.6.6-sdk/frontend/
$ make</pre>
<p>&nbsp;Se tudo correu bem com a instalação até aqui, ele deve fazer a geração dos arquivos JavaScript contendo o código fonte do Qooxdoo. Para testar, você já pode abrir o arquivo frontend/application/index.html em um browser e testar os exemplos que vem com ele.</p>
<h2>A primeira aplicação</h2>
<p>Se você gerou os arquivos com sucesso, o próximo passo é criar a sua primeira aplicação com o Qooxdoo (ou a segunda, se você acompanhou <a href="http://www.techtips.com.br/desenvolvimento-web/ajax/clientes-ricos-ajax-na-web-com-qooxdoo/">o primeiro artigo</a> e já usou a versão quickstart).</p>
<p>A maneira mais fácil de iniciar uma nova aplicação vazia com o Qooxdoo é usando o esqueleto de uma aplicação vazia que vem com ele. Você vai encontrar esse esqueleto na pasta frontend/application da SDK, compactado em um arquivo .tar.gz. Descompacte esse arquivo para uma pasta qualquer (no meu caso, vou descompactar na mesma pasta onde descompactei a SDK, c:\projetos- você vai ter que arrumar os caminhos relativos nas configurações abaixo se colocar em uma pasta diferente). Renomeie a pasta para ter o nome do seu projeto.</p>
<p>O próximo passo é configurar o makefile, que vai estar dentro dessa pasta. Abra o makefile em um editor de texto e preencha os valores das variáveis QOOXDOO_PATH e QOOXDOO_URI. No meu caso, ficou assim:</p>
<pre>QOOXDOO_PATH = ../qooxdoo-0.6.6-sdk
QOOXDOO_URI = ../../qooxdoo-0.6.6-sdk</pre>
<p>&nbsp;Neste ponto já podemos gerar nossa aplicação &#8211; basta navegar até essa pasta pelo prompt do cygwin e rodar o make.&nbsp; Se tudo correu bem, você pode abrir o arquivo source/index.html no seu browser e ver (novamente) o hello world.</p>
<p>Agora basta editar o arquivo source/class/custom/Application.js colocando o código que você quiser. A partir desse ponto, não precisa mais rodar o make a cada alteração &#8211; basta salvar e recarregar a página no seu browser.</p>
<p>Espero que tenha conseguido instalar o Qooxdoo &#8211; nos próximos artigos, como depurar o JavaScript (seu e do Qooxdoo), e como gerar e distribuir sua aplicação AJAX.</p>
<p><center>&copy; <a href="http://www.techtips.com.br">TechTips</a></center></p>]]></content:encoded>
			<wfw:commentRss>http://www.techtips.com.br/desenvolvimento-web/tutorial-instalando-o-sdk-do-qooxdoo-para-criar-aplicaes-ajax/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Clientes Ricos Ajax na Web com Qooxdoo</title>
		<link>http://www.techtips.com.br/desenvolvimento-web/ajax/clientes-ricos-ajax-na-web-com-qooxdoo/</link>
		<comments>http://www.techtips.com.br/desenvolvimento-web/ajax/clientes-ricos-ajax-na-web-com-qooxdoo/#comments</comments>
		<pubDate>Fri, 11 May 2007 15:56:12 +0000</pubDate>
		<dc:creator>Leonel Togniolli</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Qooxdoo]]></category>

		<guid isPermaLink="false">http://www.techtips.com.br/semcategoria/clientes-ricos-ajax-na-web-com-qooxdoo/</guid>
		<description><![CDATA[Qooxdoo é&#160;uma biblioteca de interface visual escrita em JavaScript que provê um grande conjunto de controles permitindo a criação de clientes ricos no browser, tendo compatibilidade com vários browsers em várias plataformas, geralmente em aplicações AJAX. Ele tira proveito dos recursos de orientação a objeto de JavaScript (sabia que JavaScript é orientado a objeto?), tendo [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.qooxdoo.org/">Qooxdoo</a> é&nbsp;uma biblioteca de interface visual escrita em JavaScript que provê um grande conjunto de controles permitindo a criação de clientes ricos no browser, tendo compatibilidade com vários browsers em várias plataformas, geralmente em aplicações AJAX.</p>
<p>Ele tira proveito dos recursos de orientação a objeto de JavaScript (sabia que JavaScript é orientado a objeto?), tendo <a href="http://demo.qooxdoo.org/current/apiviewer/">uma hierarquia poderosa de classes</a>. O <a href="http://www.codegear.com/br/products/delphi/php">Delphi para PHP</a> utiliza essa biblioteca para prover alguns recursos de forma bem automática, mas é possível utilizar o qooxdoo diretamente.</p>
<p>Para começar direto com a mão na massa, <a href="http://qooxdoo.org/download#quickstart">baixe a versão quickstart</a> do qooxdoo, descompacte em uma pasta, e abra&nbsp;o index.html em um browser qualquer. Já é possível clicar no botão e ver a clássica mensagem &#8220;Hello World&#8221;. Deste ponto, você pode abrir o Application.js e fazer algumas alteracões para brincar um pouco com os recursos que ele tem. Uma sugestão:</p>
<pre>qx.Proto.main = function(e)
{
        var docRoot=qx.ui.core.ClientDocument.getInstance();

        docRoot.setBackgroundColor("lightGray");

        var t1 = new qx.ui.form.TextField("Hello World");
        t1.setTop(25);
        t1.setLeft(10);

        var l1 = new qx.ui.basic.Label("Titulo");
        l1.setTop(10);
        l1.setLeft(10);

        var l2 = new qx.ui.basic.Label("&lt;a href='http://www.techtips.com.br'&gt;http://www.techtips.com.br&lt;/a&gt;");
        l2.setTop(50);
        l2.setLeft(10);

        var btnAbreJanela = new qx.ui.form.Button("Abre Janela");
        btnAbreJanela.setTop(22);
        btnAbreJanela.setLeft(95);
        btnAbreJanela.addEventListener("execute", function() {
            var w1=new qx.ui.window.Window(t1.getValue());
            w1.setSpace(20,180,48,80);
            docRoot.add(w1);

            var btnFechaJanela = new qx.ui.form.Button("Fecha Janela");
            btnFechaJanela.setTop(13);
            btnFechaJanela.setLeft(50);
            btnFechaJanela.addEventListener("execute", function() {
                w1.close();
            });

            w1.add(btnFechaJanela);

            w1.open();
        });

        docRoot.add(l1);
        docRoot.add(l2);
        docRoot.add(t1);
        docRoot.add(btnAbreJanela);
};</pre>
<p>Depois de copiar isso no seu arquivo .js, atualize o browser e crie várias janelas dentro do seu browser. Deixei disponível <a href="http://www.techtips.com.br/wp-content/uploads/Qooxdoo/HelloWorld/">um demo online</a> se você quiser ver o resultado diretamente. Ou ainda, veja o resultado rodando dentro do meu Firefox:</p>
<p><img height="243" src="http://www.techtips.com.br/wp-content/uploads/ClientesRicosAjaxnaWebcomQooxdoo_9A9B/QooxdooHelloWorld3.png" width="226" border="0"> </p>
<p>Para descobrir as classes que existem e suas propriedades, acompanhe a documentação do Qooxdoo pelo seu <a href="http://demo.qooxdoo.org/current/apiviewer/">API Viewer</a> (feito em Qooxdoo, aliás).</p>
<p>Depois disso, se você quiser utilizar o qooxdoo para um desenvolvimento maior, você deve instalar a versão completa, baixando o pacote do SDK. Vou escrever mais artigos detalhando a instalação dessa versão completa, a depuração de programas JavaScript dentro do browser, e algumas dicas da linguagem JavaScript (ela é bem mais poderosa do que muitos imaginam!). Fique ligado!</p>
<p><center>&copy; <a href="http://www.techtips.com.br">TechTips</a></center></p>]]></content:encoded>
			<wfw:commentRss>http://www.techtips.com.br/desenvolvimento-web/ajax/clientes-ricos-ajax-na-web-com-qooxdoo/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.577 seconds -->
