logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Out 30

M****! Deletei!

Escrito por Gabriela T. Perry em Design cases, HCI @ 10 30th, 2009 | via http://www.gabriela.trindade.nom.br | Sem comentários
Gabriela T. Perry
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

flags F***! I deleted it! Download the english version.

Hehe, e agora, o que você vai fazer? Como você deve ter notado, o post é sobre deletar itens inadvertidamente. Meu argumento é que este pode ser um erro que o usuário irá cometer (mesmoq ue a gente siga a lei de Fitt). Como nós, desenvolvedores (e designers) cuidadosos podemos evitar isso? Nós os “alertamos” :0)

Nós jogamos um Alert (o control) que diz algo do tipo: “ei, tem certeza que quer deletar isso?”

E o que o usuário faz? Ele não lê e clica ok. – “M****!”. Você diz: – “eu avisei”.

Bem, e se – e se e se – tentássemos algo diferente? E se ao invés de “alertar” o usuário, mudássemos o estado de um item e colocássemos um botão de undo?

deletedIt

Se o usuário inadvertidamente deleta o “Item F”, ele vê que o estado do item mudou. Se ele realmente quer deletar, ok, então quando ele sair* o tiem será deletado. Mas, se ele comete um erro, ele pode desfaze-lo logo que percebe.

* É claro, temos o problema de saber quando o usuário sai…

Out 30

Gentle ItemEditor: sugestão de design

Escrito por Gabriela T. Perry em Design cases, Flex, HCI @ 10 30th, 2009 | via http://www.gabriela.trindade.nom.br | Sem comentários
Gabriela T. Perry
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

flags Gentle ItemEditor: design suggestion. Download the english version.

Agora é hora de ItemEditors.  Para os que não estão familizarizados com eles, veja este exemplo (Flex docs: http://livedocs.adobe.com/flex/3/html/movies/DropInNumStepper.swf)

ItemEditors são um tipo de ItemRenderer, como o nome diz: são uma view para um item. Pense num Tree, num List, num DataGrid… Normalmente, itens são mostrados como texto, mas, às vezes, queremos usar imagens e até mesmo outros controls. E se você precisa editar itens no local, você usa um ItemEditor :0)

Bem simples, hein? Mas e quanto à usabilidade deles? Pense que você não é um desenvolvedor, ok? Você não está familizarizado com eles. Entao, como você muda o conteúdo de um item? Você vai esperar que seu usuário explore a interface? Eu não :0)

Então estou sugerindo o uso de ItemEditors como este da imagem abaixo:

Ie

O usuário vê, ao laod de cada item, dois botões: um para deletar e um para editar. Quando ele pressiona o botão de editar, o ItemRenderer muda, e agora ele mostra um TextInput com um botão de “tick”, ok. Qual a diferença? O usuário sabe o que esperar (e se ele for muito novato, pelo menos vai ter uma pista que precisa clicar em alguma coisa), e se ele clica no botão de editar, ele vê a interface mudar. “Ah… então é aqui que eu mudo o conteúdo… Ok” :0)

PS: Se você for um desenvolvedor, me diga uma estimativa de tempo para fazer este ItemEditor e um como o do site da documentação do Flex (quantas horas você levaria para implementar cada um deles). Se eu tiver retorno, vou publicar a estimativa (anonimamente, claro).

Out 30

Flash Remoting + ColdFusion + AMFPHP

Escrito por Lucas Marçal em Actionscript 3.0, amfphp, ColdFusion 8, Destaque, Flash Remoting, Tutoriais @ 10 30th, 2009 | via http://www.lucasmarcal.com.br/blog/ | Sem comentários
Lucas Marçal
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Salve pessoal
Historicamente eu sempre trabalhei com ColdFusion isso já tem alguns anos, porém nos últimos 2 anos e venho trabalhando bastante com PHP por motivos óbvios, a falta de programador ColdFusion visto que eu não faça mais todo o processo de desenvolvimento de um site.

Porém essa semana eu tive uma demanda de um site feito em flash que deveria consumir métodos de um CFC (ColdFusion Componente), como eu não fazia isso desde a época que eu trabalhava com AS2 decidi escrever uma nova classe para conexão em AS3 e foi exatamente ai que meus problemas começaram.

Primeiramente eu teria que instalar o ColdFusion 8 na minha maquina e de preferência ele deveria rodar em cima do Apache, para isso eu usei o Tutorial do meu brother Marcio Nakano:
Instalando servidor Apache com Mysql e as linguagens ColdFusion e PHP.

Feito isso (e depois desfeito, pois achei que isso poderia ser a causa do erro que eu descrevo a seguir) agora era a hora de escrever a classe, mas por onde começar, Google é a solução? Não foi bem assim.

O material que fala sobre Flash Remoting + ColdFusion na web é bem fraco e muito confuso sem falar que a grande maioria é em inglês o que dificultou um pouco mais o entendimento já que não sou um expert na língua do “Tio Sam”, abaixo estão listados alguns dos melhores que encontrei:
Delicious Flash Remoting

Foi então que tive a feliz idéia de Twittar essa minha raiva e logo depois recebi uma mensagem do Neto Leal e de Bruno Ribeiro me oferecendo ajuda, na parte do Neto Leal ele me indicou esse link:
Ativando Flash Remoting

Mesmo fazendo o que o link indica o erro ainda persistia foi então que comecei a trocar idéia com o Bruno Ribeiro, depois de algumas dicas e do envio da classe que ele mesmo usa para fazer isso eu consegui conectar e consumir um método do ColdFusion.

Eu sempre digo isso, mas é bom reforçar, na vida uma das melhores coisas é ter amigos e eu agradeço ao Neto Leal e ao Bruno Ribeiro pela ajuda, então nada mais lógico do que eu postar aqui a classe que eu fiz baseada nesse longo caminho percorrido para conseguir conectar o Flash ao ColdFusion e ao AMFPHP, lembrando que essa classe foi baseada na classe do Bruno Ribeiro e não tenho a pretensão de achar que ela é a melhor do mundo, mas pelo menos ela funciona com ColdFusion e AMFPHP, segue o código:

RemotingConexao.as

package lmcosta.remoto.cf
{
	import flash.display.MovieClip;

	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.NetStatusEvent;

	import flash.net.NetConnection;
	import flash.net.ObjectEncoding;
	import flash.net.Responder;
	import nl.demonsters.debugger.MonsterDebugger
	/**
	 * ...
	 * @author lmcosta
	 * @link www.lucasmarcal.com.br/blog - www.brunoribeiro.net
	 * @return
	 * @version 1.0
	 */

	public class RemotingConexao extends MovieClip
	{
		public var _servico    :        NetConnection;
		public var _responder  :        Responder;
		public var _fcnRetorno :        Function;
		public var _cfc        :        String;
		public var _metodo     :        String;
		public var _resultado  :        Object;
		public var debug       :        MonsterDebugger;

		public function RemotingConexao()
		{
			this._responder =                new Responder(resultado, falha);
			this._servico   =                new NetConnection();
			this._servico.objectEncoding =   ObjectEncoding.AMF0;
			this.debug = new MonsterDebugger(this);
			this._servico.connect("http://www.seudominio.com.br/flashservices/gateway");
			MonsterDebugger.trace(this, "Chamou a classe de conexão:");
		}
		/**
		 *
		 * @param	$cfc = String que contém o caminho do CFC
		 * @param	$metodo = String com o nome do método do CFC
		 * @param	$fcnRetorno = Metodo de retorno na referencia dessa classe
		 * @param	$args = Argumentos
		 */
		public function consome($cfc:String = "" , $metodo:String="" , $fcnRetorno:Function = null , $args:Object = null ):void
		{
			MonsterDebugger.trace(this, "Consumindo metodo:");
			var refCFCMetodo:String = $cfc + "." + $metodo;

			this._fcnRetorno = $fcnRetorno;
			this._cfc = $cfc;
			this._metodo = $metodo;

			if ($args == null)
			{
				MonsterDebugger.trace(this, "Chamou sem parametros:");
				this._servico.call.apply(null, [refCFCMetodo, this._responder]);
			}
			else
			{
				MonsterDebugger.trace(this, "Chamou com parametros: " + $args);
				this._servico.call.apply(null, [refCFCMetodo, this._responder].concat($args));
			}

		}
		/**
		 *
		 * @param	f = Objeto que retorna Erros
		 */
		private function falha(f:Object):void
		{
			trace("fault"+f.details);
			trace("fault"+f.description);
		}
		/**
		 *
		 * @param	re = Objeto que retorna os resultados
		 * @return  Retorna o valor que veio do CFC na referencia da classe
		 */
		private function resultado(re:Object):Object
		{
			this._resultado = re;
			return this._fcnRetorno(this._resultado);
		}

	}

}

Consumindo a classe
Para utilizar essa classe você deve criar um novo arquivo no Flash do tipo Actionscript 3.0, depois crie uma classe que no meu caso eu chamei de “Teste.as” e escreva o seguinte:

Teste.as


package
{
	import flash.display.MovieClip;
	import lmcosta.remoto.cf.RemotingConexao;
	/**
	 * ...
	 * @author lmcosta
	 */
	public class Teste extends MovieClip
	{
		public var re:RemotingConexao

		public function Teste()
		{
			trace("Conetando.......")
			this.re =  new RemotingConexao();
			this.re.consome("remotoAS3.componente", "ola", this.resultadoItem, {msg:"Seja Bem vindo"});
		}

		public function resultadoItem(obj:Object):void
		{
			trace("Tudo certo hora de trampar  " + obj)
		}

	}

}

Arquivos do Tutorial

Para utilizar a mesma classe para conectar ao AMFPHP basta você trocar o caminho do Gateway na classe RemotingConexao.as e indicar a classe e o método na classe Teste.as
Gostaria mais uma vez de agradecer ao Bruno Ribeiro e ao Neto Leal pela ajuda e espero que essa classe possa ajudar a todos.
Até a próxima pessoal e sigam-me pelo Twitter

Out 29

Introdução ao RestfulX

Escrito por Elvis Fernandes em couchdb, Desenvolvimento, Flex, framework, gae, Projetos, rails, restfulx, ruby, ruby on rails, SQLite @ 10 29th, 2009 | via http://www.elvis.eti.br | Sem comentários
Elvis Fernandes
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Apesar de já ter escrito dois artigos sobre o assunto (um screencast e um tutorial), este artigo é o primeiro de uma série que pretendo escrever sobre o RestfulX, um framework incrível para quem quer integrar o Flex (ou AIR) ao RubyOnRails, Google App Engine, CouchDB, SQLite ou até mesmo integrar com o Juggernaut (plugin para o Rails para envio de mensagens do servidor para o cliente – server-push). Nos primeiros artigos eu vou focar a integração do Flex com o Rails. Assim como toda aula introdutória, este artigo vai ser um pouco “conceitual”, mas não por isso será menos importante que os artigos onde eu mostro algum código.

A idéia principal do RestfulX é trazer para o Flex os princípios de desenvolvimento do Rails, seguindo o conceito REST de comunicação entre cliente e servidor. Por exemplo, se definirmos no Rails que um projeto tem muitas tarefas, podemos fazer o seguinte no Rails:

@projeto = Projeto.new
@tarefa = Tarefa.new
@tarefa.projeto = @projeto
@projeto.tarefas.size          # O resultado é 1

O que o RestfulX faz é trazer toda essa facilidade para o Flex (através do ActionScript):

var proj:Projeto = new Projeto;
var tarefa:Tarefa = new Tarefa;
tarefa.projeto = proj;
proj.tarefas.length;       // O resultado é 1

(…)
Leia o restante do artigo Introdução ao RestfulX (385 palavras)


© Elvis for Elvis Fernandes, 2009. |
Permalink |
Nenhum comentário |
Adicione ao
del.icio.us


Tags: couchdb, Flex, framework, gae, Rails, restfulx, ruby, ruby on rails, sqlite

Out 29

Problemas no site!!!

Escrito por Flavia Moreira em 1 @ 10 29th, 2009 | via http://flamoreira.wordpress.com | Sem comentários
Flavia Moreira
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

AVISO

Olá amigos.

Informo que o site DOWHILE está fora do AR, por motivos técnicos.

Peço desculpas por este incômodo, em breve estará no ar novamente.

Abraços,

Flávia Moreira

Out 29

Livro Flex 3 + Flash Media Server 3.5

Escrito por Edgard Davidson em Flex @ 10 29th, 2009 | via http://edgarddavidson.com | Sem comentários
Edgard Davidson
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Minha mais nova aquisição!!!!

164258

Out 29

Livro: Flex 3 + Flash Media Server 3.5

Escrito por Ved em Flex @ 10 29th, 2009 | via http://www.vedovelli.com.br | Sem comentários
Ved
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Eu já garanti a minha cópia. E vc???
Clique aqui para comprar o livro

Out 29

True or false? Cuidado com os rótulos dos seus controls

Escrito por Gabriela T. Perry em Design cases, HCI @ 10 29th, 2009 | via http://www.gabriela.trindade.nom.br | Sem comentários
Gabriela T. Perry
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

flags True or false? Beware of the wording of your controls. Download the english version.

Eu sempre tenho essa sensação quando estou escrevendo os rótuolos dos meus controls (no caso, checkbox). Sempre chega um momento em que eu “travo”. Se não deu pra entender meu problema, veja a imagem abaixo:

concordo

Considere a checkbox no topo: o que ela diz? Você concorda?

E a de baixo: você concorda?

Pois é isso que me trava. Não é uma tarefa fácil, o próprio Shneiderman*falou. Eu acho que tem muito a ver com o rótulo: se é positivo, normalmente é mais fácil marcar o estado desejado (concordo / não concordo).

Mas desta vez a coisa era um pouco mais complicada…..

Eu tenho uma checkbox que deve habilitar / desabilitar a edição de uma propriedade. Se esta propriedade “não se aplica”, então não tem sentido editá-la. Como a figura abaixo mostra:

able

Se “Coeficiente de atrito” se aplica, então você pode atribuir um valor a ela. Mas considere as opções na imagem acima: o que elas significam?

aplica

O que eu quero que o usuário entenda? “Se a propriedade NÃO SE APLICA, então NÃO EDITE”.

Então, embora tenha parecido esquisito no início, vou usar a sentença negativa. Eu achei que poderia ser confuso, porque se a propriedade for aplicável, então você teria que desmarcar o checkbox, o que é equivalente a uma dupla negação: “Não não se aplica, i.e. se aplica”. Mas eu também acho que ter o control selecionado no início é importante, para que o usuário veja que ele está desabilitado porque “não se aplica”.

Então a coisa ficou assim:

balanca

* Se ele disse, deve ser verdade ;0) Leia, é um clássico: Software Psychology: Human Factors in Computer and Information Systems;

Out 29

Eduardo Kraus no AperteCast 42

Escrito por Eduardo Kraus em Air, Flex @ 10 29th, 2009 | via http://blog.mxml.com.br | Sem comentários
Eduardo Kraus
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Eu fui convidado a participar do 42° AperteCast promovido pelo apertef5.com.br.
Então para escutar e conferir acesse http://apertef5.com.br/podcast/podcast-apertecast-42-flex-e-r-i-a/.
Neste podcats foi abordados os seguintes assuntos:

O que é R.I.A.
Porque Flash e não Flex para criação de sites
Qual a diferença entre Flex e Flash
Aplicativos feito em adobe air
Aplicativos feito em R.I.A
Mercado de trabalho
Vantagens de usar R.I.A e muito [...]

Out 29

Ruby para automatização diária

Escrito por Daniel Lopes em bash, ruby, Ruby e Rails, shell @ 10 29th, 2009 | via http://blog.areacriacoes.com.br/ | Sem comentários
Daniel Lopes
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Para nós que utilizamos sistemas Unix temos várias formas de automatizar tarefas repetitivas, principalmente que os que utilizam Mac Os. Integrado ao OsX temos ferramentas como o Automator que permitem a criação de fluxos de trabalho e que são bem simples de serem criados, também é possível customizar e criar várias novas tarefas e fluxos para o OsX através de AppleScript.

Para nós que utilizamos sistemas Unix temos várias formas de automatizar tarefas repetitivas, principalmente que os que utilizam Mac Os. Integrado ao OsX temos ferramentas como o Automator que permitem a criação de fluxos de trabalho e que são bem simples de serem criados, também é possível customizar e criar várias novas tarefas e fluxos para o OsX através de AppleScript.

Para quem utiliza muito terminal, ou precisa executar tarefas administrativas também é possivel utilizar ShellScript para criar automatizações.

Todas estas ferramentas são muito interessantes, mas tem um pequeno porém. As vezes fluxos mais complexos no Automator são bem chatos de serem criados e considero Apple Script e Shell Script linguagens bem feias, grandes e improdutivas. Então nada melhor do que usar Ruby para estas situações.

O que eu normalmente faço é criar uma pasta bin dentro da pasta do meu usuário. Dentro desta pasta bin eu coloco todos os arquivos de configuração do terminal bash ( não vou entra em detalhes sobre como dividir os arquivos de configuração pois já foi bem explicado no Peepcode aqui) e também uma série de arquivos ruby que serão executáveis. Basta adicionar esta pasta bin ao seu path do terminal e você terá seus mini-aplicativos ruby acessiveis independente de qual diretório estiver.

Crie uma pasta bin e dentro do seu arquivo .bashrc acrescente ao final a pasta bin (normalmente como abaixo):

export PATH=/opt/local/bin:/opt/local/sbin:${PATH}:/usr/local/mysql/bin:~/bin

Agora basta você criar o seus scripts ruby sempre se lembrando de não colocar a extensão .rb e de acrescentar o comentário com bang para tornar o arquivo executável (normalmente assim #!/usr/bin/env ruby no OsX).

Seguem abaixo alguns do scripts que utilizo mais no meu dia a dia:

  • Cria um arquivo .gitignore com entradas comuns
  • Redimensiona imagens e cria thumbnails
  • Renomeia arquivos em série
  • Instala a chave pública em máquinas remotas
  • Abre o resultado do grep no textmate
  • Pull de diversos diretórios diferentes
  • Apaga e cria repositórios locais ou remótos de uma vez no Git
  • Mostra alterações que você ainda não fez push para um repo Git
  • Reorganiza a identação de um arquivo ruby

Também possuo alguns que não em Ruby, mas fica um pouco fora do escopo deste post. Se você possui algum script por favor compartilhe também :D (não coloquei tudo no github pois eu tenho uma série de coisas particulares dentro da pasta bin também).

« Entradas anteriores |

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2750 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com