segunda-feira, 17 de novembro de 2008

Site oficial Adobe MAX 2008 USA by 2Advanced

max2008_site_2advanced

O site que a 2Advanced desenvolveu para o MAX 2008 está sensacional. Fiquem atentos aos cenários interativos que são carregados como background (não possui um aviso de carregamento. simplesmente aguarde). Na imagem acima um screenshot do background com um game no estilo “Genius”. Há ainda outros 2 cenários com outros tipos de interatividade. Espero que vocês também consigam ver os FlexBots, os FlashChimps e o AIR-dirigível! Eu ainda só não consegui sacar a mensagem do “BigSpaceship”. O que será? ;)
DICA: Reparem que essa interatividade é também informativa! ;)

Adobe MAX 2008

(Imagem e origem do conteúdo: FlashMagazine.com)

Essa semana começa o evento mais importante do ano (para mim). O MAX 2008, desssa vez realizado em San Francisco/CA promete vir com novidades bombásticas, como sempre.

As primeiras já começaram a rolar em várias fontes, e eu vou tentar o máximo possível transcrevê-las aqui.

Thermo é Flash Catalyst – Detalhes a respeito dele surgirão ao longo da semana.

Flash Media Server 3.5 – Com novidades significativas que definitivamente o colocará muito à frente de soluções alternativas existentes no mercado.

Adobe AIR 1.5 – Já está disponível para download, contendo basicamente suporte à criptografia de dados usando o SQLite, suporte aos recursos do FlashPLayer10 e uma atualização ao byte-code do WebKit par aum aumento significativo de performance de aplições AIR escritas em HTML/Javascript.

Aceleração por Hardware ao renderizamento de conteúdo no FlashPlayer10. Inicialmente suportado por chips baseados na plataforma ARM - que incluem os Chips da nVidia -  mas que possui interesse de outros fabricantes que também virão a oferecer ta recurso.

Um detalhamento dessas notícias pode ser verificado através de um release oficial disponível no site da Adobe.

terça-feira, 11 de novembro de 2008

POG ColdFusion para identificar registros que nao podem ser excluidos de uma tabela

Odeio POGs. Em primeiro lugar porque a exigência comigo mesmo faz com que eu não descanse até encontrar uma solução verdadeiramente elegante.

A situação desta vez foi a seguinte: Se vocês repararem, todos os sistemas que a gente encontra por ai, no CRUD apresentam a possibilidade de excluir qualquer registro, verificando no momento da transação (server-side) se aquela ação é realmente possível ou não. Se possível, simplesmente efetiva, senão retorna uma mensagem para o usuário. A minha intenção é já desabilitar a opção de excluir na interface, prevendo tal condição. Para isso, preciso que no momento de mandar os registros de uma tabela para serem apresentados na interface, eu verifique se estes não são referenciados de alguma forma.

Conversando com meu amigo Jefferson Petilo, primeiro definimos o que era óbvio. Precisaríamos no banco de dados que fosse, utilizar as restrições de operação entre registros das tabelas através de chaves estrangeiras. Considere:

Tabela1 (TiposDeImagens):

Campo Tipo Função
id (uuid, int, etc) Chave Primaria
label (varchar) Descrição do tipo

Tabela2 (Imagens):

Campo Tipo Função
id (uuid, int, etc) Chave Primaria
label (var char) Descrição da imagem
tipo (uuid, int, etc) Chave Estrangeira
OnDelete = restrito


Logo depois, por não encontrar nada universal no SQL ou que pudessemos facilmente replicar para vários banco de dados, decidimos que a melhor maneira de verificar registro por registro (no exemplo, da Tabela1, TiposDeImagens) quanto a possibilidade do mesmo ser excluído, seria:

POG_cf_img0_11nov08_17h53m

Porém isso, claro, na ocasião de ser disparado contra um registro que não possui ligações, ocasionaria na exclusão do registro em sí.

Ai entra o POG:

POG_cf_img1_11nov08_17h54m

O <cftransaction> com o ROLLBACK logo após o teste de deleção do registro, garante que o mesmo não seja efetivamente excluído.

Continuando a conversa com o Jefferson verificamos ainda a implementação desta solução via “trigger/actions” no banco de dados. Qual não foi a nossa surpresa ao reparar que o “POG” acabou sendo uma solução bem mais simples de se implementar.

Outra coisa em relação ao uso de “triggers/actions” é o fato de tornar a solução dependente de banco de dados e implicar em se ter várias versões de um código relativo a um mesmo e único recurso. Mas essa é definitivamente outra discussão de prós e contras.

O que fica para mim agora, é o desejo de estudar alguma solução, que seja ao mesmo tempo “elegante” (antônimo de POG, embora eu e o Jefferson tenhamos considerado este POG como “elegante”) e simples de ser implementada.

sexta-feira, 17 de outubro de 2008

Musica Eletronica Festa Jump Up batidas quebradas

jumpup

Eu adoro música eletrônica e raramente tomo conhecimento destas festas sendo organizadas aqui em Salvador/BA onde moro atualmente.

Abaixo, detalhes sobre a festa!

TE VEJO LÁ! “tum-tisdum-tisdum….”

A cena eletrônica soteropolitana vem ganhando novos adeptos constantemente. Prova disso é a JUMP UP – Batidas quebradas, festa mensal que há mais de um ano “faz a cabeça” do público da capital baiana. O evento reúne artistas nacionais e internacionais com o objetivo de divulgar as batidas quebradas – com destaque para o Drum´n´Bass – nesse crescente cenário. A sua 16ª edição contará com a participação dos DJs Wes(SP), grande nome do liquidfunk brasileiro, Byron(PI), maior nome do drum and bass de Teresina, e os baianos Bassick e Lordbreu, e será realizada no dia 18 de outubro, às 23h na boate Boomerangue. Os ingressos custam 12 reais (até meia-noite) e 15 reais, e são vendidos no local da festa.

Festa JUMP UP – Batidas Quebradas
Atrações: DJs Wes (SP), Byron (PI), Bassick, LordBreu
Data e horário: 18 de Outubro, sábado, às 23h.
Local: Boate Boomerangue (Rua da Paciência, 307, Rio Vermelho. Salvador-BA)
Ingressos: R$12,00 (até meia-noite) e R$15,00
Informações: 71 3334-6640/5577

INDICADO POR: Eduardo Pelosi

quinta-feira, 25 de setembro de 2008

Técnicas de lingüísticas para a produção de conteúdo de qualidade na internet

blogsbalogo

A equipe BlogsBA vai promover, no dia 18 de outubro, uma apresentação sobre Técnicas de lingüísticas para a produção de conteúdo de qualidade na internet e gostaria de contar com a participação de todos vocês.

Clique aqui para mais detalhes

quarta-feira, 24 de setembro de 2008

Vaga para programador Delphi

Por pedido da consultora Suênnia, da Colabore, segue o anúncio da vaga para programador Delphi.

PRÉ-REQUISITOS:
Superior Completo
Experiência de programação em Delphi para Win 32
Conhecimentos de base de dados Postgresql, Sql Server 2000/2005
Conhecimentos de Windows Server, Freebsd, Linux e PHP
Disponibilidade para residir no interior da Bahia

FUNÇÃO:
Gestão da Infra-estrutura de rede da empresa e do ERP (Startsoft)
Desenvolvimento de aplicações complementares ao ERP

Interessados enviar curriculum para:
colabore@colaboreconsultoria.com.br

sexta-feira, 19 de setembro de 2008

Produtividade Flex e Cairngorm com o Factory IDE

riaptblog Recebi essa dica do @vedovelli (Fábio Vedovelli) no Twitter, fui conferir no blog do RiaPT e achei simplesmente sensacional! Eu já tinha procurado por algo assim e não tinha encontrado.

Além de aumentar a produtividade, aumenta também a qualidade do código que produzimos, e nos incentiva a produzir uma boa documentação.

Veja post original no RiaPT

terça-feira, 16 de setembro de 2008

Chrome - FireFox - Ubiquity

chrome_ubiquity_firefox Iniciou-se a partir deste twitt reencaminhado pelo FelipeMX, com um comentário sobre o Ubiquity/Firefox/Chrome, e outro twitt do Germano Bona sobre o mesmo, uma série de comentários a respeito que acabaram virando um post do Germano no blog CTRL+F5 sobre o tema, no qual eu estou interagindo colocando meus pareceres sobre o assunto, onde surgiram inclusive os tópicos relacionados com o Google Gears, o V8 e o Tamarin (Adobe/Mozzila).

Fica aqui então a referência:
http://www.controlf5.com.br/2008/09/15/ubiquity-nova-forma-de-interagir-com-o-conteudo/

quarta-feira, 3 de setembro de 2008

Google Chrome. OK! Adobe browser. Por que nao?

Adobe CS3_thumb Analisando os comentários que surgiram após o anúncio do Google Chrome, um pensamento que na verdade já tenho há tempos voltou a "passear" na minha mente: Por que não um navegador da Adobe?

Se você analisar as principais características do Chrome, fica ainda mais evidente que a Adobe tem total condições de colocar uma opção de navegador à disposição, que teria excelentes condições de se tornar o melhor dentre todos.

Relaciono aqui alguns dos principais recursos técnicos presentes no Chrome, e como a Adobe pode correspondê-los:

Recurso Google Chrome Adobe
Javascript Engine V8 Tamarim (doado ao Mozilla.org)
Runtime (?) Google Gears AIR
Browser engine WebKit / Safari engine WebKit / Safari engine (??)
? - Ainda não sei se é correto especificar o recurso como Runtime Virtual Machine
?? - O WebKit não é da Adobe, mas é o engine implementado no AIR para renderizar XHTML/Javascript atualmente no controle mx.controls.HTML (Flex SDK). Portanto, já existe domínio em como implementá-lo

segunda-feira, 18 de agosto de 2008

Nirvana em orçamento de projetos

Stock Photos Eu particularmente não gosto de usar (nem ler) as palavras sem esclarecer seu real significado. Portanto, significado de Nirvana no Wikipédia.

Com anos fazendo orçamento para projetos de desenvolvimento, aprendi que muito mais do que as questões técnicas e científicas (matemáticamente) desta tarefa, bem como teorias para se alcançar o melhor resultado possível para ambas as partes, acaba prevalecendo, pelo menos sempre foi assim com a maioria dos clientes que eu já tive até hoje, o fator: "o quanto o cliente quer pagar". Raramente podemos chamar esse fator de: "quanto o cliente pode pagar", embora isso seja contraditório em relação às alegações que ele faz.

Bom, mas isso não importa. Se o seu pensamento for o de arrancar o máximo que ele pode pagar, além disso ser um desvio de comportamento e uma indicação clara de amadorismo (na minha opinião e por mais capitalista que eu seja/tenha que ser), o que vou escrever aqui não lhe serve de nada, pois você só objetiva o seu resultado e não o do seu cliente.

Princípio: Bom resultado como objetivo sempre!

Já tive muitas vezes a sensação não ter cobrado um preço justo. Porém jamais saí com a sensação de não ter atendido as expectativas do cliente. Essa sensação sim seria extremamente frustrante para mim. Portanto, o que tenho praticado e quero relatar aqui, tem como princípio básico a satisfação de resultados. Parece óbvio, mas tentando sempre aplicar algo para atingir esse objetivo, até hoje eu ainda não tinha feito nada que atendesse em todos os sentidos: facilidade, praticidade, conveniência, transparência, objetividade e rapidez quanto ao processo de se desenvolver um orçamento e negociá-lo.

A matéria-prima da fórmula.

budget01Na grande maioria das vezes o seu cliente solicita um orçamento, mas por mais que ele não tenha a menor condição e critérios para tal avaliação (se ele as tivesse ele mesmo faria o projeto), ele já sabe o quanto ele quer (ou pode) investir.

Por outro lado, você como profissional absolutamente bem informado e capacitado quanto as possibilidades de resolver a questão para a qual o seu cliente necessita de solução, tende a oferecer justamente o que há de melhor e com base na sua visão de solução, definir o custo do projeto.

Na grande maioria das vezes, e falo por experiência própria, devido aos custos, após apresentar a sua proposta de solução, junto com o orçamento, o cliente vai solicitar a revisão, não por uma crítica, mas sim por ajustes orçamentários.

O que acaba sendo aprovado é justamente a solução reformulada que o orçamento atende. Ou em outras palavras, o melhor que você pode fazer, pelo melhor que o cliente pode pagar.

A fórmula: inverter a matéria-prima.

Isso mesmo! Simplesmente hoje eu pergunto ao cliente qual o orçamento que ele disponibiliza para aquele projeto e desenvolvo a proposta com a melhor mão-de-obra, técnica e tecnologia que aquele orçamento pode cobrir.

O impressionante desta forma de tratar o orçamento de um projeto, é que se você procura selecionar bem as tecnologias com as quais vai trabalhar, busca o melhor domínio possível sobre as mesmas, bem como as melhores e mais atualizadas técnicas de desenvolvimento com estas tecnologias, você apresentará ao seu cliente algo que atende e até mesmo supera as expectativas dele. E para isso, você não precisa se tornar minimalista. Pode manter a análise sobre o que você consideraria ideal (aquela primeira proposta que normalmente seria rejeitada), mas apresenta ao cliente um projeto escalonável, onde o resultado do primeiro investimento/fase do mesmo oferece o resultado que ele necessita no prazo requisitado. Ao mesmo tempo, ele terá em mãos suas sugestões de implementação que podem servir de base para investimentos futuros no mesmo projeto sob o qual você já tem domínio. Há aí uma grande possibilidade de demanda para você, sem contar que com isso você já apresentou comprometimento com os resultados esperados pelo seu cliente.

Requisitos

Claro, é importante ressaltar que, se você ainda não pensou: "Vicente, isso não é uma descoberta!", deve então tomar essa frase como uma afirmação minha. Embora eu não tenha pesquisado absolutamente nada a respeito para ter funcionado como base de raciocício e tendo usado somente minha experiência particular de 12 anos atuando com treinamento, consultoria e desenvolvimento de soluções web-based, é muito provável que exista algum estudo que analise e explique melhor esse tipo de forma de encarar o processo de orçamento e negociação de projetos.

Outro fator, talvez mais importante , que cabe a mim deixar claro, é que existem alguns princípios que tornaram para mim possível aplicar essa forma de tratar o assunto junto ao cliente:

  • Os clientes com os quais tenho aplicado essa forma de negociar o orçamento de um projeto, são clientes que já tiveram a oportunidade de avaliar o meu trabalho de alguma forma anteriormente.
  • O processo de análise (levantamento de requisitos, casos de uso e outros diagramas e documentações) é exatamente o mesmo. Extingue-se apenas o processo de reavaliar o projeto posteriormente. Portanto não encare o que estou colocando aqui como forma de otimizar o seu trabalho de formalização de um orçamento técnico.
  • Deve-se tomar o cuidado de não penalizar o cliente para favorecer a si mesmo. Ou seja, para tornar um projeto escalonável, acaba-se consumindo um esforço e consequentemente tempo, ligeiramente maior do que se considerar aquela etapa como única. Quero dizer, em favorecimento a sua previsão de melhorias futuras ao sistema, pode-se consumir um tempo/esforço de desenvolvimento a mais, para permitir certas implementações futuras, que acabará refletindo num custo para o cliente, na etapa para a qual ele está investindo em uma solução que o atenda já. Deixe isso claro na apresentação da sua proposta de projeto. Ele pode preferir, ao custo de tornar futuras implementações mais caras, melhorar o resultado da primeira etapa. Seja com custos relacionados a treinamento, implantação/homologação, etc. que poderíam ser extendidos, melhorados em recursos, caso eliminado algumas tarefas inerentes a recursos futuros imaginados para o produto em questão.