Dev. Software/ Dicas e truques/ Open-source

Finalmente Oceanair tem milhagens

Depois de tanto tempo viajando pela Oceanair, finalmente agora eles tem plano de milhagem “Amigo OceanAir“. Fico imaginando quantas vezes poderia ter ganho passagens para visitar a família no Nordeste já que é a única que tem passagem na faixa quando é festa junina e final de ano.

Já que outras como Gol, TAM viraram artigo de luxo em minha lista, muito cara as passagens em relação Oceanair e a mais nova Webjet.

Para se ter uma idéia de comparação de preço tem trechos que chegam até R$250,00 de diferença. Fora quando você perde o vôo e tem que re-agendar.

Technorati Tags: , ,

Alternativa ao Flex Builder/ Flex 2 Open-source/ Open-source

Existe ferramenta alternativa ao Flex Builder?

Tem muita gente que envia e-mails me perguntando se tem ou não ferramentas alternativas ao Flex Builder para criar aplicações ricas com mxml e actionscript.

Não sei se isso pode passar despercebido pelos leitores mais novos ou não ter a facilidade de pesquesar nos arquevos desse blog sobre a ferramenta em questão, tanto que já fiz um widget que lhe dava a possibilidade de programar em um notepad + flex 2 sdk.

O nome da ferramenta é o Flash Develop, já é conhecido de muitos carnavais da era Flash MX 2004, só que ele foi se aperfeiçoando e já tá umas 10x melhor que sua versão original e suportando muito mais linguagens que anteriormente.

Flash Develop na versão 3.0.0 ajuda e muito que a que tenho atual 2.0.2 que tinha que configurar muita coisa para criar novas aplicações era um verdadeiro muda e remuda “arretado”.

Bom por sorte o projeto é (FREE, Grátis, Não paga, Gratuito), e Open-source esse bem bolado ferramenta de criação.
Lógico que o FlashDevelop não tem todas as funções que o Flex Builder pode oferecer como design view, que você arrasta e solta objetos e é gerado o código mxml. Mais quem tem saco para ficar fazendo isso o dia todo?
Falando como desenvolvedor eu não tenho saco, prefiro ficar no modo code até terminar tudo e depois dá uma olhadinha e ver como está ficando o projeto.

Porém nada está perdido, o Flashdevelop tem algumas funções que te ajudam, eu uso-o quando quero fazer algum exemplo para ajudar alguns sem ter que iniciar todo o flex builder.

  • Auto complete
  • – similar ao auto complete do Flex Builder e o chamado intelisense do Visual Studio.

  • Output Panel
  • – ótimo para fazer traces

  • Syntax Check
  • – Te ajuda na syntax do as3 e mxml.

  • Same SWF Preview
  • – te ajuda a ver o .swf final e compilar arquevos .mxml do tipo application separados.

  • Result Panel
  • – É o mesmo que o painel de problems do Flex Builder. te dá output antes de gerar o .swf mostrando erros.

  • Layouts
  • – Como em qualquer outra application, layouts podem ser gerados conhecidos como templates de arquevos .mxml assim automatiza algumas tarefas.

veja alguns screenshots


Auto Complete.


Result Panel com erros.

Notícias

Salvador-BA aqui vou eu

Adoro as terras bahianas, sempre que posso dou um pulinho na cidade, nesse próximo sábado estarei em Salvador-BA, para visitar um alguns clientes locais e também lógico escapar desse frio horrível que está fazendo aqui pelas bandas do sul, 1C grau para 25C é uma maravilha.

Espero poder encontrar toda a turma empolgada sobre o Flex/Apollo.

Pessoal

Rio de Janeiro é bonito

Nos últimos dias 18 a 21 desse mês estive no Rio de Janeiro para visitar um cliente e tirar uma folga, e uma das cidades que gostei do Rio foi Petropolis, bonito o local pena que foi tudo tão rápido não deu para visitar todos os pontos turísticos.
Tentei conhecer os desenvolvedores local do Rio de Janeiro capital e admito que o mercado por lá está esquintando, mais não consegui encontrar com nenhum deles. Tentei até com a Carla Maduro que está super empolgada com o Flex.

Algumas fotos do local panorâmico que passei, lá embaixo desse vale é a sede oficial do INMETRO.

Outra coisa bem legal que visitei no rio foi o projeto social de inclusão social feito por uma ONG francesa na Cidade de Deus, o projeto fiquei encantado como a tecnologia está mudando o futuro daquilas crianças que são rodeadas de tanta injustiça social.

O Pan do Brasil vai ser lá e olha sendo Brasileiro e pagando impostos todo mês sinto lesado pelo tanto de investimento mal feito R$2 Bilhões, o mais Hilário disso tudo é que a vila do Pan fica pouquíssimos KM da Cidade de Deus, próximo do aeroporto Galeão, será que só fizeram isso para mostrar o lado bom do Rio? O Rio é bonito mais acho que tanta grana assim investida em um único local é extra gastos. Isso é quase o mesmo montante que gastaram para criar a cidade de Palmas no Tocantis.

Actionscript/ AS 3.0/ Dicas/ Flex

Estendendo o mx:Panel adicionando botões Fechar, Maximizar e Minimizar

Uma das coisas que deixam qualquer desenvolvedor contente é a possibilidade de estender e costumizar os componentes já padrões do framework de trabalho.
Flex é bem transparente quanto a isso, e dá a possibilidade de se estender com 2 maneiras diferentes, pelo layoutchrome e pelo createChildren.

A parte onde é adicionada conteúdo é a área em branco e para fazer isso Flex deixa muitas possibilidades, porém para criar na borda é outra história, você precisa fazer um override de alguns e estender, todos os componentes no Flex são compatíveis com override mais apenas algumas funções que podem ser re-escritas que faz parte do layoutchrome do Flex.

Veja o exemplo abaixo estendendo o o Panel, onde é adicionado 3 botões, maximizar, minimizar e fechar, ambos funcionais. Como?

Copie o código abaixo e experimente em seu projeto Flex, coloque-o dentro de um package (diretório referente ao que está escrito no package igorcosta.controles), os botões podem ser substituidos por imagens.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
 
package igorcosta.controles
{
	import mx.containers.Panel;
	import mx.controls.Button;
	import flash.events.MouseEvent;
	import mx.core.Application;
	import mx.effects.Move;
	import mx.core.IFlexDisplayObject;
	import mx.managers.PopUpManager;
 
	public class PopUpWindow extends Panel
	{
		private var fechar:Button;
		private var maximizar:Button;
		private var minimizar:Button;
		private var isPopWindow:IFlexDisplayObject;
 
		public function PopUpWindow():void
		{
			super();
			super.width = 250;
			super.height = 200;
			super.isPopUp = true;
 
 
		}
		 protected override function createChildren(): void
		{
		   super.createChildren();
		   minimizar = new Button();
		   minimizar.label= "_";
		   minimizar.width = 20;
		   minimizar.height = 20;
		   //minimizar.x = this.width-65;
		   minimizar.move(this.width-65,2);
		   minimizar.addEventListener(MouseEvent.CLICK,diminue);
		   maximizar = new Button();
		   maximizar.label= "-";
		   maximizar.width = 20;
		   maximizar.height = 20;
		   //maximizar.x = ;
		   maximizar.move(this.width-43,2);
		   maximizar.addEventListener(MouseEvent.CLICK,aumenta);
 
		   fechar = new Button();
		   fechar.label = "x";
		   fechar.width= 20;
		   fechar.height = 20;
		   //fechar.x= this.width-20;
		   fechar.move(this.width-21,2);
		   fechar.visible=true
		   rawChildren.addChild(minimizar);
		   rawChildren.addChild(maximizar);
		   rawChildren.addChild(fechar);
		  //rawChildren.setChildIndex(btStateDown,numChildren+1);
		   //rawChildren.addChild(btStateDown);
		}
		public var setNovo:Boolean = true;
		public function aumenta(event:MouseEvent):void
		{
			setNovo = false;
			var effectAumenta:Move = new Move(this);
			effectAumenta.duration = 500;
			effectAumenta.xTo = 0;
			effectAumenta.yTo = 0;
			effectAumenta.play();
			this.x = 0;
			this.y = 0;
			this.width = mx.core.Application.application.width;
			this.height = mx.core.Application.application.height;
 
		}
		public function diminue(event:MouseEvent):void
		{
 
			var x_:Number = mx.core.Application.application.width -this.width;
			var y_:Number = mx.core.Application.application.height -this.height;
 
			if(setNovo == false)
			{
			this.width = 250;
			this.height = 70;
			this.move (mx.core.Application.application.width - this.width,mx.core.Application.application.height - this.height);
			}else {
				this.height = 70;
				this.width = mx.core.Application.application.width;
			}
		}
		private function layoutBotoes():void{
			if(minimizar != null){
				minimizar.move(titleBar.width - 20 * 3  - 6 - 6 - 6, (titleBar.height - 10) / 2);
			}
			if(maximizar != null){
				maximizar.move(titleBar.width - 20 * 2  - 6 - 6, (titleBar.height - 10) / 2);
			}
			if(fechar != null){
				fechar.move(titleBar.width - 20 - 6, (titleBar.height - 10) / 2);
			}
		}
 
		override protected function layoutChrome(unscaledWidth:Number, unscaledHeight:Number):void{
			super.layoutChrome(unscaledWidth, unscaledHeight);
			layoutBotoes();
		}
 
	}
}

Espero que gostem

Flex

Aprendendo com exemplos: Exibindo e escondendo colunas do Datagrid

Muita gente pergunta isso tanto na Flex-Brasil quanto via e-mail, e é bem fácil de fazer isso.
Fiz um exemplo abaixo com código fonte liberado para que vocês possam entender um pouco dessas funcionabilidades.
O bem legal é que você pode ver que a medida que seleciono ou não novas colunas para serem exibidas meu TitleWindow vai crescendo a sua largura.

Experimente a aplicação
Código fonte só clicar com o Botão direito do Mouse.
NOTA: Essa pequena aplicação serve apenas para mostrar como pode ser usual, existem alguns bugs, use-o apenas para estudos.

Pessoal

Preciso de um Designer

Estou precisando de um designer que tenha noção de criação de interfaces ricas, domínio de photoshop é indispensável.

Por favor entrar em contato pelo igorcosta@igorcosta.com com o titulo do e-mail : DESIGNER

Mais detalhes falem comigo.

Notícias

Quer patentear algo? Pesquise primeiro

[PRESTE ATENÇÃO] Não poste aqui suas dúvidas antes de ler o conteúdo, apenas dei a dica do Google, como você pode ver tem gente que vive me perguntando como patentear coisas. Não trabalho com isso. Procure no Google por “escritórios de patentes no Brasil” Você achará empresas capacitadas para tal.

Google acaba de lançar o Patent Search, que é um diretório contendo mais de 7 milhões de patentes registradas mundialmente e apenas nos EUA.

Umas patentes que achei interessante foi essa: Lentes de contato.

Alguém tem dúvida se o google vai dominar o mundo? Eu fico lembrando toda vez quando isso acontece do filme Residente Evil, no inicio do filme ele fala “em casa 10 produtos 9 são da Kimera”, google nova Kimera?