Arquivar

Arquivo de Autor

Flash CS4 e pontos de fuga?

Eu, sempre preocupado com o mundo Apple, acabo nunca postando nada no TI Developer, mas ontem fiz umas pesquisas interessantes com Flash e resolvi compartilhar com os nobres leitores deste nobre blog.

Esse é um exemplo de um workflow de duas horas de trabalho com Flash CS4. Não funciona em CS3, nem pense nisso!

Ontem me deparei com uma situação interessante: a empresa onde trabalho está fazendo um layout mais arrojado para um desses sites cheios de flash e um dos recursos do layout envolve um quadrado que gira em torno do próprio eixo. Um lado do quadrado mostra um conteúdo, e outro lado mostra outro conteúdo. Simples, não? Não.
Um programador que trabalha comigo resolveu usar o Papervision 3D. A princípio ele fez 18 cubos com lateral 0. Os cubos eram idênticos a quadrados. A face da frente e a de trás possuiam um movieclip diferente cada. O efeito funcionou. Mas… (sempre tem um “mas”) o flash precisa renderizar quadro-a-quadro 18 cubos girando. Isso significa que o SWF ficou deveras pesadíssimo.

Como contornar isso? A primeira resolução foi acabar com essa folia de cubos. Cada “quadrado” tinha 4 faces inúteis e duas faces com movieclips quando poderíamos usar só uma. Acabar com esse POG deixou o negócio mais leve, mas ainda estava pesado demais para a web.

Então eu entrei na jogada. Por que usar Papervision? O flash CS4 já dá suporte a 3 dimensões. E girar uma droga dum quadradinho não deveria ser tão difícil! Girar 18 quadradinhos deveria dar no mesmo.
Eu sou um programador de ActionScript 2. Embora saiba programar em AS3, não gosto muito porque acho o AS3 muito enrolado com coisas óbvias. Mas enfim, resolvi fuçar os arquivos de ajuda atrás de uma solução mais simples.

Eis minha idéia:
Pegamos o conteúdo de cada face.
Criamos um MovieClip.
O MovieClip terá 2 quadros. Cada um vai comportar um dos dois conteúdos.
Quadrados são bidimensionais. Então sempre que girarmos o quadrado, poderemos nos deparar com 2 situações:
ou haverá um quadro em que ele ficará invisível ou, de um quadro para outro veremos uma e outra face, sem intermédios.
Justamente nessa mudança mudaremos do quadro 1 para o 2, dando a impressão que estamos vendo o verso do quadro, quando na verdade só vemos outro quadro. Entendeu? =D

Ok.. Você leu até aqui e não entendeu picas? Então vamos pôr a mão na massa e irás entender.

Estou usando Windows XP aqui no trabalho, então os atalhos de teclado aqui não valem para quem usa Mac, beleza?

Na maioria das vezes, quem usa mac só precisa trocar o [Ctrl] por [Command] e [Enter] por [Return]. Mas vá, se vc que lê isso tem flash, saberá se virar sozinho, certo?

1. Criando o MovieClip

Abri meu flash e criei um novo documento em AS3. Apertei [Ctrl+F8]. Dei o name de “bola”, type “MovieClip”. [Enter].
Apertei a tecla [R] do meu teclado para fazer um quadrado. No painel procurei o “fill and stroke” e deixei sem linhas, só preenchimento. Criei um retângulo. Cliquei depois nesse retângulo e deixei com H em -100, Y em -100 também, W em 200 e H em 200 também. Pronto. Um quadrado. Um quadrado chamado “bola”. “Quadrado” tem 8 letras. “Bola” tem 4 letras. Muito mais econômico.
Deixei meu quadrado vermelho “#FF0000″.
Então apertei [F6]. Meu quadro na linha do tempo foi duplicado. No quadro 2 deixei esse quadrado verde “#006600″.
Criei um novo layer na linha do tempo. Cliquei no quadro 1 desse novo layer, apertei [F9] e escrevi isso:

stop();

Pronto. Simples.

2. Posicionando o MovieClip

Voltei para o “Scene 1″. Apertei [Ctrl+L] para ver minha biblioteca e arrastei o MovieClip “bola” para o palco. Segurei [Ctrl+K]. Deixei a opção “To stage” acionada. Cliquei no MovieClip, apertei [Ctrl+Alt+2] e depois [Ctrl+Alt+5]. Agora meu quadrado está centralizado. Na janela properties eu instanciei ele como “bola”.
Criei um novo layer na linha do tempo. Cliquei no frame em branco desse layer. Apertei [F9] de novo. Agora… ActionScript!

3. Criando a animação

Primeiro vamos fuçar o método “Tween”.

Copiei e colei um código de animação e troquei o nome do MovieClip ali. Ficou assim:

import fl.transitions.*;
import fl.transitions.easing.*;

var t1:Tween=new Tween(bola,”x”,Regular.easeIn,0,100,2,true);

Vamos por partes então. Linhas 1 e 2 importam bibliotecas que vou usar no tween.
A linha 4 cria um objeto Tween. Ele vai incrementar a coordenada x do MovieClip chamado “bola”, de 0 a 100, em 2 segundos, usando uma suavização conhecida como “easeIn”. Ou seja, vai começar lento e terminar rápido.
Não quero esse ritmo, então trocarei por “None.easeNone”. Se eu der [Ctrl+Enter] eu verei meu quadrado percorrendo um certo espaço. Parece uma lesma.
Enfim… sei que posso usar qualquer propriedade do meu MovieClip na classe Tween. Vou substituir o “x” por “rotationY”, porque quero girá-lo. A propriedade “rotationY” usa o princípio de graus. Quero que meu quadrado vire ao contrário. Isso serão 180 graus. Então meu código ficou assim:

import fl.transitions.*;
import fl.transitions.easing.*;

var t1:Tween=new Tween(bola,”rotationY”,None.easeNone,0,180,2,true);

Girou! Aêê! Quem precisa de PaperVision pra fazer isso?
Continuemos. Eu preciso mudar a face do bagulho quando chegar a 90 graus. Para isso vou construir um listener. Não quero usar “onEnterFrame” porque fica lerdo e ocupa memória. Então vou fazer o listener sobre o Tween.

t1.addEventListener(TweenEvent.MOTION_CHANGE, teste);

Simples né? Não funciona, pois não existe a função “teste” ainda. Então criei uma função “teste”:

function teste(e:Event):void {
trace(1);
}

Pronto. Agora quando o quadrado girar receberei o valor “1″ no output. Isso serve para eu ver se o listener funciona direitinho.
Vamos fazer isso ficar mais útil e me informar a posição do quadrado.
Ao invés de:

trace(1);

vou usar

trace(e.target.obj.rotationY);

Veja que interessante: e.target aponta para meu Tween. “obj” é o objeto que o Tween está alterando, no caso, “bola”; e “rotationY” é propriedade de “bola”.
Agora posso mudar o quadro quando chegar em 90 graus. Meu código ficou assim:

import fl.transitions.*;
import fl.transitions.easing.*;

var t1:Tween=new Tween(bola,”rotationY”,None.easeNone,0,180,2,true);

t1.addEventListener(TweenEvent.MOTION_CHANGE, teste);

function teste(e:Event):void {
if (e.target.obj.rotationY>90) {
e.target.obj.gotoAndStop(2);
}
}

4. Corrigindo o ponto de fuga

Maravilha! Parece que mudou mesmo. Tudo certo? Então pronto.
Pronto nada. Tem um porém nessa coisa toda. Vamos mudar a posição desse MovieClip.
Ponho meu X em 434 e meu Y em 284. Agora vejamos. Percebe o que aconteceu? Não? Então vamos deixar mais lento.
Mude a linha 4 para ficar assim (olha o 5 ali):

var t1:Tween=new Tween(bola,”rotationY”,None.easeNone,0,180,5,true);

Agora execute de novo. Viu agora? O quadrado ficou verde antes dos 90 graus! Mas como isso!?
Muita calma nessa hora.
Em primeiro lugar o flash não mudou o quadro nem antes nem depois da hora que foi definida. Passou de 90 graus, é instantâneo. A pergunta não é “porque ele mudou antes dos 90 graus”, mas “por que os 90 graus não estão perpendiculares à ‘câmera’?”.
Simples: o Flash possui um ponto de fuga. Quando o MovieClip estava centralizado, o ponto de fuga ficava exatamente no meio do quadrado e ele mudava de cor exatamente no momento em que as face fica visível do lado oposto. Quando deslocamos o MovieClip para outro ponto no palco, o ponto de fuga mudou em relação a ele e a visão dos 90 graus mudou. Se você não entendeu isso, pegue uma carta de baralho e deixe-a na perpendicular até que ela pareça uma linha. Agora desloque o seu braço para a direita ou esquerda sem mudar a posição da carta em relação ao braço. Vê que uma face ficou mais visível né? Pois é. O flash simula perspectivas.

Meu POG falhou. Mas não desisto!
Pensando com meus botões concluí: deve existir um meio de mudar o ponto de fuga do movieclip!
E tem. Vamos lá:

Podemos declarar um objeto do tipo “PerspectiveProjection” (com p maiúsculo) e mudar o valor de seu “projectionCenter”.
O MovieClip ainda tem uma propriedade chamada “perspectiveProjection” (com p minúsculo). Se atribuirmos essa nova variável a seu resultado final, conseguimos mudar o ponto de fuga. Os novos valores serão o centro do objeto: as coordenadas x e y. Meu código ficou assim:

import fl.transitions.*;
import fl.transitions.easing.*;

var t1:Tween=new Tween(bola,”rotationY”,None.easeNone,0,180,5,true);

t1.addEventListener(TweenEvent.MOTION_CHANGE, teste);
var pp:PerspectiveProjection = new PerspectiveProjection();

function teste(e:Event):void {
pp.projectionCenter=new Point(e.target.obj.x,e.target.obj.y);
e.target.obj.transform.perspectiveProjection=pp;
if (e.target.obj.rotationY>90) {
e.target.obj.gotoAndStop(2);
}
}

Simples, apesar de tudo. Declarei uma variável, atribuí um valor e troquei uma propriedade. Só isso. Não se assuste com o tamanho do negócio, na verdade é só variáveis de nome grande, nada mais.

5. Corrigindo a inversão do MovieClip

Mas ainda não terminei. Preciso saber se meu MovieClip exibe o conteúdo corretamente.
Abrindo o MC “bola”, vou ao quadro 1 e ponho uma grande letra “R” no meio do quadrado. No quadro 2 eu ponho uma letra “K”.

Executando… Mas que diabos! A letra “K” inverteu!
É claro, eu girei o MC inteiro. Se houvesse só um quadro para ver, eu veria ele invertido, espelhado.
Eu pensei a princípio em fazer uma verificação do ângulo do quadrado e quando ele chegasse em 90 graus eu mudaria para -90 graus e terminaria em 0. Isso exigiria dois tweens diferentes. Mas tem uma solução muito mais simples. Vamos a ela:

No quadro 2, vou selecionar tudo. Quadrado e texto. Dou um [F8] para salvar como MovieClip. Ok. Voltano ao quadro 2… vamos dar um nome menos idiota a esse MC. Vou instanciá-lo como “mc”. Simples!
Agora dou um [F7] no quadro 2 do “Layer 2″. E agora [F9].
Escrevo assim ali:

this.mc.rotationY = 180;

Epa.. o quadrado verde foi pro outro lado. A solução também é simples. O “hotpoint” do MC está no topo, à esquerda. É só entrar no MC e alinhá-lo no meio.

Voilá.. um quadrado que gira e não ocupa muita memória e ainda funciona em todas as regiões do palco. =D

Divirtam-se com moderação.

A ciência dos proxys.

10/05/2009 Tuor 2 comentários

Proxy é o nome que damos a um servidor que envia requisições a outro servidor, servindo de intermediário entre este outro servidor e o cliente.

O proxy de segurança da empresa intercepta todas as conexões da rede local p/ internet, filtra os conteúdos e gera bloqueios.

Mas podemos driblar isso. Como? Com outro proxy! Fazemos uma conexão denominada “tunelamento” (tunneling). Esse tipo de conexão funciona com dois computadores e um servidor intermediário, ou seja, um proxy. A estratégia é usar uma porta livre da conexão e enviar pacotes de dados encriptados para o proxy. O proxy decodifica esses dados e os traduz para o segundo computador executar as tarefas de acesso. Por exemplo: se o proxy do Bom Jesus bloquear a porta 110, de pop3, podemos usar a porta 443, de http, para fazer uma requisição pop3 ao proxy externo. Esse proxy vai encaminhar o pedido ao outro computador, que vai fazer o acesso na porta 110, vai recuperar a informação necessária, vai devolver ao proxy e o proxy vai devolver a informação encriptada ao usuário. Essa estratégia é o tunelamento com anonimato, pois o proxy da empresa não consegue absolutamente nenhuma informação do que está sendo transferido pelo túnel.

Até agora, consegui uns 4 programas que podem auxiliar no tunelamento.

O UltraSurf é o mais conhecido e o mais rápido. Ele recupera uma lista de proxys da internet, avalia qual possui a conexão mais desafogada e se conecta automaticamente, mudando todas as configurações de proxy do windows automaticamente e redirecionando tudo pra porta 9666 do computador local. Ele faz conexões http e https. Com o UltraSurf podemos usar MSN e qualquer outro navegador para acessar qualquer conteúdo.

O problema do UltraSurf é que ele muda de proxy com muita rapidez e sem aviso. Isso pode interromper determinadas requisições e pode corromper downloads, impedir algumas páginas de carregar completamente, etc… Para downloads, podemos usar outro recurso.

 

Vidalia Bundle é um conjunto de programinhas para acessar os navegadores de uma rede de proxys chamada de “The Onion Router” (Roteadores da Cebola), ou TOR. O vidalia conta com um programinha chamado Privoxy, que encontra proxys que usam encriptação de dados, um programinha de acesso à rede TOR e para controlar o fluxo dos dados.

A vantagem do vidalia é manter a mesma conexão por tempo indeterminado. O vidalia permite configurarmos portas e ips que devem ser ignorados, permite localizarmos o servidor geograficamente mais próximo e com a banda menos movimentada, conectar via-SOCKS4 e 5. É excelente para usar gerenciadores de downloads em sites restritos, mas para navegar é muito mais lento que o UltraSurf e não é eficiente para rodar MSN.

Outra alternativa é o JonDo. JonDo é um programinha similar ao vidalia/TOR, mas mais fácil de usar. Ele permite selecionar entre um grupo seleto de servidores proxy, alguns pagos e outros gratuitos. Possui um controlezinho de velocidade e permite escolher entre navegação por tunelamento (anônima) ou por “proxy transparente”, o que não libera acesso a nada, mas atribui um outro IP ao usuário. O JonDo é menos popular que os outros dois, e por isso tem poucos servidores. Para quem paga é excelente, naturalmente. Para quem não paga, os outros dois são a melhor alternativa.

 

Alguns programas não permitem configurarmos proxy e muitas vezes ignoram solenemente as configurações do próprio windows. Um bom exemplo é o aplicativo de conexão remota do windows (mstsc). Para desviar esse empecilho, encontrei um programinha chamado “ProxyFirewall“. Ele funciona como um firewall: intercepta todos os programas que tentam se conectar pela rede. Quando ele identifica um programa tentando fazer um acesso externo, ele te pergunta se quer que esse programa seja tapeado pra usar um proxy. Podemos usar proxys privados (com senha) ou públicos (sem senha), através de SOCKS ou HTTP. Há ainda a opção de randomizar os proxys em um eterminado intervalo de tempo ou permanecer só com um ou ainda ignorar todos os proxys.

 Ficam as dicas…

 

UltraSurf (Versão 9.3):

Em options, proxy settings: deixem em auto-detect proxys. Isso basta.

O UltraSurf começa a funcionar no endereço 127.0.0.1, porta 9666.

 

Vidalia Bundle:

Execute o Privoxy. Pode fechar a janela, ele fica na bandeja da barra do iniciar.

Execute o Vidalia. Em settings, habilite a caixa “I use a proxy to access the internet”. Em http proxy coloque “172.16.16.153″, porta 3128.

Habilite a caixa “Use this proxy for HTTPS also”.

Habilite a caixa “My firewall blablabla…” e deixe na caixa assim: “80,443″, sem as aspas.

Em sharing, deixe a opção “Run as client only”. Salve tudo e feche.

Na tela principal do vidalia, dê um “Stop TOR” e inicie de novo. No botão “view the network” dá pra escolher um servidor geograficamente mais próximo. Os com 3 tijolinhos são os melhores. Dê dois clique pro TOR tentar conectar neles. Quando a cebola estiver amarela, é pq ele não conseguiu conectar a nenhum, mas está procurando. Se a cebola ficar verde, é pq tá funcionando. Nas primeiras vezes pode demorar porque ele fica localizando servidores.

 O Vidalia funciona no endereço 127.0.0.1, porta 8118 para protocolo HTTP e na porta 9051 pra SOCKs.

 MSN com UltraSurf & Vidalia Bundle: O MSN busca as configurações do IExplore. Isso significa que o UltraSurf já resolve metade dos problemas.

Pra garantir que funcione 100%, basta ir em ferramentas, opções, conexão, config. avançadas.

Com o vidalia rodando, deixe o campo SOCKS 127.0.0.1, porta 9051.

Se o UltraSurf estiver ativo, deve aparecer embaixo, em HTTP, 127.0.0.1, porta 9666. Se não estiver assim, reinicie o MSN.

A Força!

10/03/2009 Tuor 1 comentário

Essa é para os nerdões de plantão que curtem um StarWars… (se for usar o texto, cite a fonte!)

O lado negro

Microsoft, ou “lado negro”: é um nome dado à força, quando canalizada com um propósito vil e ameaçador.

DOS, ou “Darth OS”: foi o primeiro jedi a rebelar-se e declarar-se abertamente contra a lógica e razoabilidade. Darth OS foi em tempos um dos protótipos de sistemas operacionais mais bem sucedidos, mas a inveja cegou-o e ele se vendeu para a microsoft. Desde então tentou desmoralizar os mestres jedi Unics e Lisa, mas foi vencido pelo pupilo de Lisa, Mac Classic.

Windows 95, 98, ME, ou “Darth Millenium”: Foi um mestre sith que descobriu o caminho da imortalidade através do controle do mercado galático. Foi assassinado durante o sono pelo seu pupilo, Darth Ruindows.

Windows XP, ou “Darth Ruindows”: um antigo mestre sith que aprendeu com seu mestre como viver além do aceitável usando um poder oculto da Microsoft denominado “monopólio”. É o maior de sua ordem e acredita-se que está vivo e atuante na galáxia informática sob o pseudônimo de Windows XP SP3. Conta-se que seu antigo nome era Windows NT. Embora tenha sido muito parecido em tempos com Windows 95, na verdade eles não eram a mesma pessoa. Lord Ruindows, após matar Darth Millenium, seguiu os passos de Darth OS, e reuniu um exército de usuários que quase acabou com a ordem jedi da galáxia informática. Lord Ruindows é famoso por ter matado o jedi Amiga, do planeta Commodore, e por ter feito inúmeras tentativas de matar o mestre jedi Linux Óésse. Darth Ruindows é um grande duelista e engajou em alguns embates com Mac Óésse Dez, mas conseguiu fugir em todos os encontros, pois Mac Óésse Dez é um dos poucos capaz de enfrentar a habilidade do lorde negro.

Windows Vista, ou “Darth Vistas”: expulso da ordem jedi como sistema fracassado, Lord Vistas atentou contra a vida de seu mestre, Darth Ruindows, mas foi rechaçado e exilado da ordem dos sith. Seu paradeiro atual é desconhecido.

Office 2007, ou “Lord Office”: o lorde negro da loucura e da confusão. Lord Office é um cavaleiro sith que usa o lado negro para confundir os usuários, trocando seus botões e menus de lugares, salvando arquivos em formatos incompreensíveis e levando seus inimigos de mente fraca à total loucura. Lord Office matou seu mestre, Office 2003, como é comum entre os sith. Após a morte de 2003, Office 2007 aboliu as extensões do mestre e criou suas próprias regras de estruturar os dados, mais terríveis e perigosas que nunca. Embora não seja aceito na categoria de mestre dos sith e não receba o título de Darth, Lord Office é eventualmente convocado para a presença de Darth Ruindows, de quem parece obter grande prestígio.

Internet Explorer 6, ou “Darth Exploder, the VI”: Darth Exploder VI é um lorde negro misterioso e sombrio. Exploder era a princípio o nome de um planeta, totalmente corrompido pelo poder negro e destruído na guerra dos navegadores. O líder das seitas sith deste planeta recebia o mesmo nome. Sabe-se que Exploder VI subjugou o dark jedi Messenger e matou seu mestre Exploder V e a sede de poder o deixou cego, e por isso não compreende o CSS das web standards. Darth Exploder exterminou os jedis da ordem de Netscape, cujos dedicados sucessores, da ordem Firefox, hoje tentam desesperadamente abalar as estruturas de seu poder. Exploder possui um pupilo, Exploder, the VII; mas não sabe que Exploder VII aliou-se a Lord Vistas no seu curto período de ascensão ao poder e conseguiu a confiança de Lord Ruindows após a fuga de Vistas. Exploder VII ainda tem um pupilo, Darth Eightploder (cujo nome original era Explorer 8), que permanece oculto de quaisquer registros oficiais. Sabe-se apenas que Eightploder tentou alguns atentados infrutíferos contra os jedis da ordem de Firefox, sem muito sucesso.

A luz

Apple, ou “lado da luz”: é o nome dado à força quando canalizada com bons propósitos, altruísta e benéfica.

Unix ou Unics: Unics foi um dos jedis da primeira ordem galática. Ele postulou como a força deveria ser usada para suportar multitarefas e multiusuários. Essa habilidade difícil de dominar, no entanto, se perdeu por algum tempo, sobrevivendo com os seus pupilos que adotaram o nome do mestre como título da ordem jedi dos Unix. Um jedi dissidente (Linux) criou a ordem dos Linux; mas depois de alguns anos a ordem desses seguidores de Linux foi recebida novamente pela ordem jedi; pois seus propósitos nunca se desviaram da luz.

Xerox Alto: foi um renomado mestre jedi que descobriu como usar a força para criar uma interface gráfica. Alto deixou seu conhecimento como o maior legado dos jedis que vieram depois de seu tempo, reformando completamente a ordem jedi.

Lisa Office System ou Lisa: Lisa foi um mestre jedi que seguiu os ensinamentos de Alto num monitor horizontal. Mas Lisa sofreu um choque comercial e é lembrado como um dos poucos que abandonou expontâneamente a ordem jedi.

Mac OS, Macintosh Óésse Classic ou apenas Mac Classic: Mac Classic foi pupilo de Lisa. A retirada de Lisa da ordem jedi afetou Mac Classic, mas a ameaça de Darth OS o forçou a reagir e combatê-lo. Mac Classic conseguiu engajar com Darth OS em combate e vencê-lo, mas ficou muito tempo exilado quando Darth Ruindows quase exterminou a ordem jedi. Mac Classic morreu muito velho, mas completamente lúcido. E passou todos os seus conhecimentos para Mac Óésse Dez, seu pupilo e antigo padawan da ordem Unix.

Mac OS X, ou “Mac Óésse Dez”: Mac Óésse Dez, o Leopardo, é o mestre jedi mais atuante atualmente. Herdou de seu mestre, Mac Classic, o look & feel da Apple e estudou afundo o legado do Mestre Unics. Seu sabre-de-luz é de um kernel derivado do mach da antiga raça dos OpenStep chamado darwin e sua interface é o quartz. Já engajou em vários duelos com Darth Ruindows, mas nunca o conseguiu derrotar completamente. Foi apelidado de Leopardo após ter demonstrado que pode sobreviver em qualquer processador com robustez, velocidade e eficácia. O Leopardo retirou-se em meados de 2008 em busca de conhecimento. Dizem que em breve regressará com aplicativos muito mais rápidos e leves, e poderá duelar com a tecnologia 64k; os mais esperançosos crêem que esse será o fim do império de Darth Ruindows, que por mais que desapareça da galáxia, deixou marcas muito profundas na força.

Amiga: Amiga era um cavaleiro jedi do planeta Commodore, que foi destruído na guerra das interfaces. Amiga morreu em combate com o exército da federação IBM, por influência de Darth Ruindows; pois o povo de Commodore havia alcançado tecnologia para o primeiro disquete de 3 polegadas e meia e uma guerra nasceu das disputas comerciais da época. Sua coragem foi recordada por muitos anos por Mac Classic.

Linux OS, ou Linux Óésse: foi um jedi dissidente da ordem de Unix e montou a própria ordem dos Linux, seguindo o princípio do sistema gratuito. Reingressou na ordem jedi e foi muito perseguido por Darth Ruindows, mas hoje é mestre do conselho jedi e membro atuante da ordem.

Cavaleiros jedi da ordem de Netscape: Foram os pupilos do mestre Mozilla, exterminados em uma emboscada feita por Darth Exploder, the VI. Diz-se que o último mestre netscape quase caiu para o lado negro da força ao interpretar a semântica da web com o lado negro da força, mas conseguiu salvar-se tempo suficiente para refugiar-se entre os membros da ordem de Firefox, onde tinha um irmão. Antes de morrer, transmitiu sua missão de parar Exploder para os membros de Firefox.

Cavaleiros jedi da ordem de Firefox: São um segundo grupo de pupilos de Mozilla. Unificaram o conhecimento dos netscapes sobre o CSS e adotam uma política de semântica de código muito precisa e complexa. Sua missão é imobilizar Exploder VI e rastrear seus pupilos antes que mais desgraças aconteçam aos web standards.

Giancarlo Mariot (mariot.metal#gmail.com)

DOS e arquivos BAT – Parte 1

18/10/2008 Tuor 2 comentários

Vamos falar sobre uma coisa que existe desde os primórdios dos SOs: Arquivos em lotes!
Vou falar, mais especificamente, sobre arquivos em lotes feitos no prompt do DOS.
Aqui no trabalho tenho como computador de testes um pc com windows xp professional. Meu prompt do DOS diz que é versão 5.1.2600, seilá se isso é bom ou não.

Acontece que, eventualmente, preciso automatizar alguma coisa no windows e esse SO não me dá recursos para fazer isso. No meu mac existe o Automator, que me ajuda a executar ações variadas em praticamente qualquer aspecto que eu necessite. Mas o windows não ajuda, então sou forçado a usar o DOS.

Mas esse post é um negócio prático; vamos começar fazendo testes no prompt!

Segure a tecla windows + r. Na janela que abrirá, digitemos assim:

cmd

Vai abrir a simpática janela preta do DOS. Ele te leva direto para o diretório de usuário. Eu acho isso aborrecido, então vamos limpar a tela:

cd\
cls

Pronto. Podemos começar.
Sabia que é possível escrever resultados dos comandos do DOS em arquivos com apenas um operador e um parâmetro? Vamos ver isso na prática.
Abra o seu explorer em c:, ou o drive que vc achar melhor. Eu usarei c: aqui.
Aliás, podemos fazer isso pelo prompt:

explorer c:

Maravilha. Continuemos:

echo teste

Você deve ter percebido que o comando echo escreve tudo o que vier depois na janela do prompt, certo? Então façamos isso:

echo amendoin > c:\teste.txt

Agora dê uma olhada na janela do explorer. “Que diabos é aquilo!?“, você me pergunta.. e eu respondo: “É o arquivo teste que você criou!” Se abri-lo verá escrito “amendoin” no corpo do texto. Tentemos escrever mais. Feche o arquivo e volte para a telinha do prompt:

echo repolho > c:\teste.txt

Se você abrir o arquivo agora, verá que “amendoin” foi sobrescrito por “repolho”.
E se quisermos amendoins e repolhos no mesmo arquivo? Então vamos fazer assim:

echo amendoin > c:\teste.txt
echo repolho >> c:\teste.txt

O operador “>>”, como você percebe, implementa o que já existe. Isso é, ele não vai substituir uma coisa por outra, mas vai só acrescentar!
Façamos alguns testes novos:

cls
dir > c:\teste.txt

Olhe o arquivo. Ali está o resultado do comando “dir”. Podemos fazer isso:

cls
echo Conteudo do meu c:!!!! > c:\teste.txt
echo. >> c:\teste.txt
dir >> c:\teste.txt

Percebe que “echo” seguido de ponto imprime uma linha em branco? Legal né?
Agora que tal nos aprofundarmos mais “programáticamente”? Vamos começar com algo simples: arquivos em lote simples que façam coisas simples. Depois arquivos em lotes que leiam variáveis.
Arquivos em lote, em inglês, são chamados de arquivos “batch”. No DOS, um arquivo em lote recebe a extensão “bat”. Assim, podemos salvar uma série de comandos usados com freqüência em um único lugar.
Já que estamos no DOS, façamos tudo em DOS. Digite o seguinte:

edit c:\mostradata.bat

Observe no explorer que o arquivo ainda não existe.
Você viu que abriu um editor com fundo azul. Este é o conteúdo de mostradata.bat.

Vamos fazer alguma coisa aqui. Digite o seguinte:

cls
echo.
echo Data atual:
echo %date%
echo.
echo.
pause

Agora pressione Alt+A e escolha S para salvar. Agora você vê o iconezinho em bat no explorer, ou seja, ele existe.
Dê um Alt+A e escolha R para sair daí.
Agora que você está novamente na telinha escura do DOS, dê um cls para limpar a tela e digite:

mostradata

Bom, o que aconteceu aqui é uma sucessão de bizarrices, certo?
Deve ter aparecido algo assim:

C:\>echo.

C:\>echo Data atual:
Data atual:
C:\>echo 17/10/2008
17/10/2008
C:\>echo.

C:\>echo.

C:\>pause
Pressione qualquer tecla para continuar. . .

Percebe como os comandos escritos no bat foram executados como se tivessem sido escritos no prompt?
Algo precisa ser feito! Digite…

edit c:\mostradata.bat

…ou apenas use a seta para cima para achar esse comando no histórico.

Na primeira linha do BAT, antes do primeiro echo, digite o seguinte:

@echo off

Salve, saia do editor e execute de novo.

Agora sim! Os comandos desapareceram e a data foi escrita corretamente! Parabéns, você escreveu um arquivo BAT!

@echo off é um comando usado para esconder os demais comandos. Você talvez tenha percebido que esse comando, no entanto, também não aparece. Isso não é uma coincidência, pois o que aconteceu foi que o arroba antes do comando esconde esse comando no DOS. Isso quer dizer que, se você quiser, pode escrever todo o arquivo bat com arrobas na frente. Claro que é muito pouco prático, para não dizer idiota.

%date% é uma variável do DOS que retorna o valor da data de acordo com os parâmetros do sistema. Nesse caso, meu sistema, que está em português, me deu o valor da data na formatação dd/mm/aaaa. Dependendo da distribuição do windows, essa formatação pode mudar. Mas não vamos nos aprofundar em datas por hoje, vamos continuar. Queremos agora passar um parâmetro. O que é isso, você se pergunta?
Leia e verás…
Vamos começar um novo bat. Agora ele vai te saudar de acordo com seu nome. Siga o modelo:

edit ola.bat

@echo off
cls
set nome=%1
echo.
echo Ola’%nome%!
echo Hoje e’%date%
echo.
pause

Salve e saia do editor.
Agora, se seu nome for, por exemplo, Gorgulho, digite o seguinte comando:

ola Gorgulho

Então. “Gorgulho” aqui nada mais é do que um parâmetro.
Dentro do bat o parâmetro passado é reconhecido pela ordem em que foi escrito.

Depois do nome do arquivo BAT (“ola”), foi escrito o nome, que é o parâmetro 1 do código. Os parâmtros são identificados dentro do bat através do símbolo de porcentagem, assim: %1, %2, %3, etc.
Nós fomos mais além e declaramos uma variável com o comando set. O nome da variável é nome. Note que era perfeitamente possível escrever o conteúdo do parâmetro 1 sem usar a variável nome, mas dar um nome para a variável é sempre válido, pois fica muito mais fácil entender o código.

Por hoje vamos parar aqui.
Semana que vem continuamos em um estágio mais avançado.

Portanto, na sua telinha do DOS, digite: exit.

Neste post você aprendeu:

1 – Executar o prompt;
2 – Editar arquivos no DOS;
3 – Limpar a tela do DOS;
4 – Criar um arquivo em lotes simples;
5 – Retornar uma variável com data;
6 – Imprimir textos através de BATs;
7 – Esconder comandos escritos em um arquivo BAT;
8 – Passar um parâmetro para um arquivo BAT;
9 – Declarar uma variável no DOS;
10 – Escrever, através de um BAT, o valor de uma variável.

iPhone no Brasil: Loucura ou falta de criatividade?

Saudações!

Começo com uma espécie de divagação crítica. Prometo que vou seguir um padrão menos revoltado mais adiante. =D

Hoje li uma notícia no mínimo bizarra:

Quanto custa o iPhone no Brasil?

Os preços no Brasil vão de R$ 900 a R$ 2,6 mil, dependendo da operadora, do plano e da capacidade de armazenamento do aparelho.

Nos modelos pré-pagos, eles custam R$ 1,9 mil (Vivo; 8 GB), R$ 2,2 mil (Vivo; 16 GB), R$ 2,3 mil (Claro; 8 GB) e R$ 2,6 mil (Claro; 16 GB).

Já nos planos pós-pagos, o iPhone mais barato da Vivo (R$ 900) é o de 8 GB dentro do pacote iPhone Completo (R$ 585 mensais, com 1.400 minutos para celulares e telefones fixos, acesso ilimitado à internet e 150 torpedos). Na Claro, o aparelho subsidiado mais barato (R$ 1.240) é o de 8 GB associado ao plano iPhone 400 (R$ 152 mensais, com 360 minutos de ligações para Claro, 40 minutos para telefones fixos, 200 MB de dados e 200 torpedos).”

Fonte: G1

Ora francamente! Eu me pergunto qual mente insana pagaria mais de R$ 500,00 por mês por um celular através da vivo!

Eu sou um defensor dos produtos da Apple e já tive a oportunidade de brincar com um iPhone. Usaria um desses com a maior boa vontade, não fosse esse modismo retardado que impõe preços astronômicos para serviços mal-feitos.

Vamos ser realistas: o iPhone é… um telefone! Uma cruza de telefone e BIP. Temos telefones até nas ruas. Qualquer celular manda SMS e faz ligações. Se queremos ouvir música, compremos iPods, são muito mais baratos, não têm mensalidades. O iPhone nada mais é do que um iPod Touch que manda SMS e faz ligações.

E o acesso à internet? Eu acho que não vale R$ 500,00 mensais nem aqui e nem no Kongo. Uma pessoa com um laptop pode muito bem utilizar Wi-Fi para acessar a net gratuitamente em um shopping center. Uma redatora que trabalha comigo tem um iPhone que conecta a net via Wi-Fi. Se o iPod Touch tem Wi-Fi, por que cargas d’água eu pagaria mais de R$ 500,00 reais mensais? Pra enviar SMS??

Acho que esses serviços de telefonia estão completamente insanos e os consumidores que caem nessa loucura sofrem de falta de neurônios. Podemos tranqüilamente aproveitar os recursos inovadores da Apple sem pagar tão caro. Podemos, por exemplo, comprar um iPod Touch para executar programas, jogos e ouvir música, ver vídeos, acessar a internet, etc.. e um celular qualquer só para mandar sms e falar ao telefone.

No Mercado Livre podemos encontrar o Touch pela bagatela de R$ 600,00, e um celular sem viadagens, que faz o que se supõe que um celular faça, pode custar entre R$ 0,00 e R$ 90,00, se tanto.

Um plano pós-pago da TIM ou da Claro é barato e viável, já que essas empresas são pioneiras na tecnologia GSM. Não vejo porque uma pessoa “normal” usaria mais de R$ 100,00 em ligações de celular todos os meses, a não ser que o trabalho exija isso.

Enfim, com tudo isso, podemos ter todos os recursos do iPhone por.. vamos chutar alto.. uma “entrada” de R$ 700,00 e uma mensalidade de R$ 100,00; basta ser criativo e esperto. Para quem insiste em usar o iPhone, por que então não esperar um ano ou dois? Os iPhone continuarão evoluindo e esses planos com ceretza vão ficar mais baratos, sem falar no aparelho. O V3, por exemplo, começou no preço de 2 mil reais e hoje podemos conseguir um por 90 reais. Isso significa 95% menos! É uma pu%a diferença. Não vejo porque o iPhone não poderia chegar nesse patamar daqui a algum tempo.

Eu, pelo menos, prefiro esperar.

CategoriasApple, iPhone, iPod Tags:, ,