Mostrando postagens com marcador tecnologia. Mostrar todas as postagens
Mostrando postagens com marcador tecnologia. Mostrar todas as postagens

quinta-feira, 17 de novembro de 2011

My Questions about Adobe Changes on FlashPlayer and Roadmaps

Learning from the mistakes Adobe?

CONTEXT:
I'm on Flash related business since 1996, when I downloaded a software called FutureSplash from a company called FutureWare and found a definitive solution for what I used to develop using Java Applets. Since that that, I just became so dedicated to the platform (and ColdFusion as well), that it even leaded myself to be part of the brazilian Macromedia team as a consultant and evangelist until 2003. After that, I kept my own business as an independent consultant.

Now, a lot of years after, I find myself very disappointed (as I believe a lot of people is as well) with the decisions made by Adobe recently.
Flash was always for me the only technology able to deliver what other technologies, like HTML specifically couldn't, that is ubiquity between platforms. I mean: That ubiquity was always the key feature on to adopt Actionscript/MXML and for everyone this was understood. Even Apple agreed, and it was clear when they took a step back and allowed cross-compiling on its 4.1 developer agreement regarding this issue.

The problem to the market was ALWAYS on Flash Player itself. Adobe seems to be not able to find a way to have FlashPlayer working as it would be for the market to accept it. Now Adobe just throw the towel leaving an entire community developers who sustained the platform growing, with the following message (in other soft words, of course):

Hey, there's no problem, FlashPlayer will still be there for desktop browsers and AIR will still be capable to allow you to cross-compile your AS3/MXML code for you to deliver proper HTML5/CSS/JS instead of SWF (in the future). And better, Flex SDK will be opened via Apache Foundation, as well as interested third party companies will also get the FlashPlayer sources and keep their on versions (Just like RIM announced it will do right now). 

QUESTIONS: 

  1. Do you Adobe really believe the market will still keep developing anything to run on FlashPlayer after that? As what justified and was keeping people thrusting on SWF was the ability to have this content viewable on any kind of devices - you mentioned that for years! Killing it, don't you just started the process to make FlashPlayer useless anywhere it is today?
  2. As it's only justifiable to have a cross-compiling when you can output multiple different formats from a single source (what maintained the so called and believed "develop onde, run everywhere" that we was requested to spread the word about), do you really believe someone will rely on AS3/MXML to output HTML5/CSS3/JS when we can do it directly using a lot of already mature softwares to do so available on the market, that in addiction allow us to cross-compile it to native executables for multiple platforms (Windows, MacOS, iOS, Android, etc)? 
  3. Don't you think the better decision was only to open source FlashPlayer and let the so called "public development efforts, together with Adobe Team resources made available now", to be able to take FlashPlayer to the level it would be on the multiple platforms including banned Linux and Mobile browser versions?
  4. Don't you know you lost a lot of thrust from people who most defended and worked together for and with you, even privately and at no charge (just for we can call "love", at most), waiting nothing from you then keep the things going on and NEVER even imagining you could someday do such a terrible move?
  5. Why didn't you focused all of that effort you are spending now to, together with the community, keep FlashPlayer as ubiquitous as it ever was, and on the move announce efforts to ADD the proper and necessary capabilities to your development tools and technologies to integrate them more and more with the HTML5 transition to come, in the format of a).new features on softwares like Dreamweaver, Catalyst, Edge, etc. b). Additional cross-compiling capability to the Flex SDK to output HTML5/CSS3/JS, as announced Falcon is intended to do? This would AVOIDED all that NEGATIVE BUZZ on the Community we are having to support together (remeber that most of us have business running on top of what we defended and spread from Adobe decisions, just to help Adobe to be stronger, even when it seems to have no value anymore) because of your tremendous and erroneous way to announce things and decisions. 
  6. Don't you think you need better marketing and press office to support you on such kind of announcements?"

sexta-feira, 16 de janeiro de 2009

RIA-BA Grupo de Desenvolvedores RIA na Bahia

mini_banner

Essa é uma grande notícia!
Recebemos o “sinal verde” por parte da Adobe para iniciarmos uma comunidade oficial Adobe destinada a desenvolvedores e interessados no desenvolvimento de soluções RIA baseadas e suas tecnologias.
Surge assim o RIA-BA. Acesse o link no site de comunidades da Adobe, que será o site principal do grupo, inscreva-se e conheça mais detalhes sobre como será a nossa atuação.

As tecnologias que abordaremos, são basicamente as que são voltadas diretamente ao desenvolvimento de soluções RIA, que hoje são o Flash, o Flex/FlexBuilder, AIR, ColdFusion (e frameworks), Flash Media Server, BlazeDS, Cairngorm (e outros frameworks) e diretamente ligadas ao Flash Platform, assim como o Flash Catalyst (Thermo) e outras ferramentas que forem anunciadas.

À frente do grupo estaremos eu (Vicente Maciel Jr) e o meu amigo Jefferson Petilo.

Como alguns sabem, atuamos na Bahia (independentemente, por hora) com consultoria, treinamento e principalmente o desenvolvimento de soluções RIA. Nossa intenção com o grupo é concentrarmos esforços, para cada vez mais aumentar o potencial e resposta de demanda de mercado na região, através da distribuição de informação e acesso às novidades que surgirem no setor, de maneira mais rápida e eficiente possível. Para isso, estaremos abertos e firmando boas parcerias que possibilitem alcançar tal objetivo, bem como atender a outras necessidades dos usuários do grupo em relação a outras tecnologias Adobe que não sejam exatamente o foco do nosso grupo abordar, tais como Fireworks, Illustrator, Photoshop, Premiere, etc.

Enfim, interessados, mantenham-se ligados no site, que será nossa principal ferramenta de abordagem, efetivação e comunicação com a comunidade.

Sugestões e criticas construtivas serão sempre muito bem-vindas!

sábado, 29 de novembro de 2008

RIP Rich Internet Presentation

thesecret_for_ria

Foi simplesmente a melhor apresentação a respeito de RIA que já tive a oportunidade de assistir, não só no tocante ao conteúdo, que foi de uma riqueza impressionante e muito bem elaborado, mas também pela performance do apresentator, Beck Novaes (DClick), que conseguiu de uma maneira extremamente clara, objetiva e didática, abordar temas “obscuros” (e às vezes até pouco conhecidos/ignorados) da produção de um RIA.

Fico extremamente orgulhoso de saber que um material dessa qualidade tenha sido desenvolvido por um brasileiro e gostaria muito de ve-lo publicado no Adobe Developer Connection como uma referência importante, tanto para quem vai iniciar-se no desenvolvimento de RIAs, quanto para quem quer atingir um nivel superior na realização e redesenho de seus trabalhos atuais.

Por isso, digo que o Beck consegiu inaugurar o termo RIP (Rich Internet Presentation)

Isso porque ele conseguiu colocar na execução da sua apresentação, exatamente tudo o que ele abordou como importante no desenvolvimento de um RIA. Quer saber o quê foi? Como foi? Só assistindo.

http://blog.dclick.com.br/2008/11/29/60-pessoas-ja-sabem-o-segredo/trackback/pt/

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.

quinta-feira, 15 de maio de 2008

Grupo de estudos Flex AIR AS3 em Salvador, Bahia

grupo_estudos_banner01 

O Osmundo (vide blog), instrutor e consultor da iTraining, anunciou hoje o grupo de estudos a iniciar-se dia 22 de maio, as 17h, na sala de treinamentos da iTraining em Salvador/BA. Este grupo, terá como tema de estudo, as tecnologias Flash, Flex, Flex Builder, Actionscript, FlashPlayer e AIR. É previsível que a partir deste, outros grupos sejam formados.

Fui convidado para abrir o grupo de estudos. Convite este que me deixa muito feliz e orgulhoso. Será muito bom estar estudando, evoluindo e tentando colaborar em algo com algum conhecimento que já tenho nessas tecnologias. Sei que vou aprender muito, pois não há motivação maior do que ter pessoas precisando das mesmas respostas que você.

Sobre como será minha pequena contribuição:

Não quero usar da oportunidade só para fazer uma apresentação. Então quem estiver presente, pode aproveitar para tirar qualquer dúvida (sobre os primeiros passos, nessa primeira oportunidade, só para ter foco nivelado) que o meu pouco conhecimento puder esclarecer.

Como se trata de um grupo de estudos, então vou aplicar uma linha de introdução aos estudos dessas tecnologias (AS3/MXML/Flex/AIR), orientando sobre os primeiros passos, questões quanto a configuração e sugestões nesse aspecto, como buscar ser auto-suficiente para esclarecer dúvidas usando a documentação e etc.
Quero dar dicas também quanto a performance no desenvolvimento de aplicações.
Adicionalmente devo apresentar alguns recursos que complementam o meu ambiente de trabalho e que creio eu, podem vir a serem úteis para quem for aplicar profissionalmente esses tecnologias no seu dia-a-dia.

Não esperem que eu vá preparar slides e etc. O que eu estarei mostrando aos presentes, é o que eu faço no meu dia-a-dia como desenvolvedor com foco nessas tecnologias.

E lembrem-se, não quero fazer uma palestra. Quero iniciar um grupo de estudos, colocando em foco as questões práticas. Também não será uma aula pois o tempo não permitiria e eu não a faria sem um bom preparo estutural da sala, de equipamentos, softwares, material e etc.

A intenção é que quem participar, saia doido(a) para chegar em casa e começar a praticar!

quarta-feira, 14 de maio de 2008

Utilidades do Subversion SVN

subversion O Subversion, também conhecido simplesmente como SVN, é um recurso que se tornou indispensável no meu trabalho de consultoria e desenvolvimento, assim como na verdade é para qualquer profissional desta área.

O Subversion foi a proposta da Tigris em substituição ao CVS, implementando muitas diferenças que estão bem documentadas com o produto.

Aos que iniciam ou procuram mais informações a respeito, resolvi colocar aqui um pequeno texto relatando a utilidade prática de uso do Subversion:

Introdução:

Numa apresentação mais breve e superficial possível, o Subversion é um sistema de gerenciamento e controle de versão de artefatos dispostos em um repositório. Este repositório compreende uma estrutura gerenciada pelo sistema servidor da solução. Através de ferramentas clientes, o usuário irá interagir com essa estrutura.

O sistema servidor permite designar usuários, para fins de identificar o autor de modificações no repositório e atribuir aos mesmos níveis de acesso.

O workflow de uso do SVN geralmente é o seguinte:

  1. O repositório é criado
  2. Os usuários e seus devidos níveis de acesso são determinados
  3. Algum conteúdo inicial é colocado no repositório para ser gerenciado (initial commit)
  4. Os usuários fazem uma cópia local dos arquivos para fins de consumo ou colaboração no desenvolvimento (checkout)
  5. Os usuário com permissão para modificar o conteúdo efetivam suas alterações locais no repositório (commit). Esse passo pode envolver ainda diversas outras situações como verificar conflito entre o codigo enviado neste momento e alguma modificação realizada no repositório feita por outro usuário, entre o "checkout" e essa tentativa de "commit" das alterações locais.
  6. Os demais usuários verificam modificações no repositório (synchronization) e atualizam suas versões locais (update). Se o usuário modificou algum arquivo, as situações de conflito entre modificações do conteúdo no repositório e conteúdo local do passo anterior podem ocorrer e o usuário terá como resolver as mesmas com instrumentos simples.

Estabelecido o servidor, suas utilidades podem ser apresentadas em basicamente 2 perfis, conforme relato adiante.

Para o desenvolvedor de conteúdo:

É um sistema que permite controlar a versão dos artefatos que fazem parte do repositório (geralmente códigos-fonte). Ao mesmo tempo, permite, de maneira imperativa (forçada) ou passiva (facultativa) documentar as modificações em cada artefato. Essa documentação se dá no momento de enviar para o repositório (commit) um artefato que foi alterado.

Para o consumidor

Ter uma maneira "atômica" de atualizar e acompanhar as modificações no mesmo. "Atômico" refere-se ao fato de que o sistema é capaz de atualizar somente a parte alterada de um arquivo modificado na fonte. Por exemplo, imagine um arquivo de 8MB no repositório. No primeiro momento (checkout) vc baixa os 8MB para estar em sincronismo com o repositório. Nas atualizações / modificações (updates), você vai baixar somente os "bytes" que diferem a sua versão local do arquivo. Se você for uma das pessoas autorizadas a modificar a fonte (repositório) o mesmo acontece na hora de "enviar" as modificações (commits). Você não precisará fazer o upload de 8MB e sim, apenas dos "bytes" que alteraram a versão no repositório.

Links:

  • TortoiseSVN
    Client para interagir com um servidor/repositório SVN, que integra-se ao sistema operacional.
  • VisualSVN
    Ferramenta de administração (criação de repositorios/controle de usuários).
  • Subclipse
    Plugin de integração com Eclipse IDE. Como o FlexBuilder da Adobe baseia-se no Eclipse, o plugin também é funcional nele.

domingo, 24 de fevereiro de 2008

Teclado Optimus Maximus

optimusmaximuskeyboard Definitivamente eu queria ter US$500 pra gastar com um teclado!

Não seria apenas um "brinquedo" interessante, mas é definitivament produtivo!

sábado, 23 de fevereiro de 2008

Silverlight 2.0 anunciado

silverlight_logo O gerente geral da divisão de desenvolvimento da Microsoft, Scott Guthrie, anunciou em seu blog o Silverlight 2.0, suas "novidades" e também um tutorial.

Dentre as informações que mais chamam a atenção está a de que nessa nova ação a Microsoft incluí o plano de um release da plataforma para Linux adicionalmente.

 

Uma outra fonte da mesma informação, o site da ComputerWorld, cita que este release do Silverlight tem como objetivo direto atacar a tecnologia Flash da Adobe que o mesmo site cita como "popular" no universo RIA.

segunda-feira, 12 de novembro de 2007

Evolução: disquetes > CDs > Browsers > Virtual Machines

O tópico é mais especificamente para falar de uma coisa interessante que tenho visto acompanhando alguns blogs.

Há muito se diz, e até deram um nome totalmente fantasioso de "Web 2.0" para essa evolução natural da internet, prevista há muito tempo por nós desenvolvedores porque era realmente óbvio que em algum momento isso acontecesse. Precisava-se apenas que tecnologias se aprimorassem, o ambiente amadurecesse (usuários, seus conhecimentos e seus equipamentos) e um modelo de negócio fosse bem viabilizado.

As aplicações finalmente estão deixando de serem coisas que instalamos em nossos computadores, para se tornarem recursos disponibilizados por seus respectivos desenvolvedores em diversos formatos mais acessíveis, mais abrangentes e por que não dizer justa e liberal. E isso está crescendo de forma muito rápida pois as aplicabilidades não tem limites.

Dá para se definir uma linha de tempo de evolução, com exemplos:

mais ou menos em 2000

Os WebServices ou a definição do SOAP sobre o XML nos trouxe uma nova possibilidade. Não precisaríamos mais investir para reinventar a roda. Bastava utilizá-la dos bondosos que permitissem acesso às sua invenções ou alugá-las, o que mesmo tendo um custo, era muito menor do que você produzir sua própria roda.

Nas palestras que eu fazia na época (quando funcionário da Macromedia), abordando WebServices com o ColdFusion (criação e consumo de webservices), um exemplo ilustrava bem a situação:

(Vou apresentar um breve resumo. Se alguém quiser detalhes do exemplo, basta me consultar.)

Imagine uma agência de viagens que pretende disponibilizar um sistema de personalização de um pacote de viagens. A partir do seu próprio site, usando suas determinações de comunicação visual e etc, ela pode apresentar ao usuário horários de vôo de várias companhias aéreas e já permitir que o mesmo a selecionar para efetivar o pacote e no final do processo proceder com o pagamento. O que muitas agências fazem ainda hoje (porque desconhecem a possibilidade ou porque não podem investir) é simplesmente listar os vôos previamente cadastrados no sistema, o que pode gerar problemas porque no momento da efetivação pode ser que a companhia aérea não possui mais aquele vôo disponível. Fora que isso pode ocasionar a perda do cliente infringindo um outro problema sério: a incapacidade de retenção do cliente.

A solução para conseguir anexar ao site da agência as informações de vôo da companhia aérea? WebServices!

Com este recurso a companhia aérea disponibiliza as informações de vôo que qualquer agência poderá anexar ao seu site sem importar qual tecnologia a companhia aérea utilizou para desenvolver seu sistema e qual tecnologia a agência escolheu para desenvolver o seu. Neste caso, dizemos que a agência estará "consumindo" o WebService disponibilizado pela companhia aérea.

Essa foi uma grande evolução! O SOAP funciona então como um protocolo para a comunicação entre recursos de sistemas disponibilizados em diferentes plataformas e diferentes tecnologias.

Um repositório de WebServices famoso é o Xmethods:

xmethods

Tem também o Afterzed:

afterzed

Ambos com WebServices definidos em várias tecnologias e consumíveis por qualquer tecnologia que implemente esse recurso.

mais ou menos 2004

Embora baseado em uma metodologia antiga - o uso de javascript para controlar o comportamento de elementos de interface - que chamávamos de DHTML, o AJAX veio com ar e fama de "nova tecnologia" pois determinava uma padrão interessante de comunicação entre browser e servidor utilizando XML (serialização/deserialização de dados). Unindo isso aos WebServices, ganhamos os Mashups.

Junto com termo AJAX, passou a finalmente estabelecer-se os RIAs (Rich Internet Applications) que resume-se em nada mais nada menos, do que novos poderes de controle da interface por parte dos desenvolvedores de sites e aplicações (leia-se também, Sites/Aplicações que são os Web Applications).

Os Mashups então acabam constituindo-se de aplicações completas, ao invés de recursos básicos para serem implementados em outras aplicações, como é o caso mais comum do WebService, que da mesma forma podem ser consumidos por outras aplicações.

Um exemplo prático e muito comum hoje de recursos que compõem um Mashup na Web é o GoogleMaps e o YouTube. E pra não me criticarem de só falar do Google (Google! Google! Google!), cito também o YahooMaps, LiveMaps (Microsoft), Flickr (Yahoo), etc.

Um bom repositório de Mashups na web:

programmableweb

já há algum tempo e ganhando cada vez mas força dos dias de hoje

Com toda a evolução, tanto conceitual quanto comercial que havía acontecido até então, grandes investidores e empresas de TI passaram a dedicar-se a espe "pedaço de negócio" que evoluía de forma cada vez mais forte.

Veio então a definição do SOA (Service Oriented Architecture) que determinou um modelo de orientação, suporte e estrutura para os negócios nessa área.

Como evolução ainda maior veio o SaaS (Software as a Service) que é um modelo que tras não apenas uma excelente nova geração de aplicabilidade da conectividade de nossos equipamentos à internet, mas uma ótima revolução no ambiente tecnológico que tende a provocar muitas outras revoluções.

Trata-se "simplesmente" (na visão do usuário) em fazer com que o seu software não seja mais distribuído em CDs, DVDs e seus installers, mas sim através do seu navegador.

Já existem muitos negócios / empresas hoje que se valem deste tipo de solução para compor a sua arquitetura de recursos tecnológicos.

zoho Veja por exemplo, o zoho.com que oferece uma gama completa de soluções office. Você tem editor de texto, planilha, editor de apresentações e até mesmo banco de dados, e tudo padronizado para trabalhar com a importação e exportação para os formatos padrões do mercado.

Além disso, o serviço é oferecido também na forma de uma API para que você implemente os recursos da maneira que desejar em suas próprias aplicações.

Ainda não estudei o impacto em custos, mas acredito que eles venham a ser muito mais vantajosos do que os modelos de licença que temos hoje de grandes produtos comerciais desta linhagem.

microsoft_logo A própria Microsoft já parte para esta iniciativa e é infalível que ela se dê muito bem. Aliás, isso pode inclusive significar uma estratégica abertura de mercado conforme consta no post que originou essa minha matéria. Com esta possibilidade de distribuição de produtos Microsoft, pode-se ter por exemplo uma infra-estrutura de TI que optou por Sistemas Operacionais open-source para uma drástica redução de custo de propriedade em suas estações, mas por questões de produtividade e economia com treinamentos, manteve o Microsoft Office como solução de ferramentas Office.

buzzword É impossível nesse contecto não comentar sobre o Buzzword que a Adobe já colocou em fase beta-público. Trata-se de um editor de texto fantástico implementado com o FlashPlatform (Flex basicamente). E olha que não será a única investida da Adobe, pois espera-se um já anunciado Photoshop Express nas mesmas condições.

...daqui por diante... what's next?

E não podemos achar que mais um passo nesse contexto ainda está por vir. Já veio! Essas aplicações estão, na maioria dos casos (dependendo do "meio" utilizado, pois com o Adobe AIR é assim) serem transformadas em aplicações que roram em "Browsers" personalizados.

Adobe com o AIR, Microsoft com o Silverlight, Sun com o JavaFX, Google com o GoogleGears são os destinos dessas aplicações.

Enfim

O que vejo é que daqui há pouco não teremos mais os navegadores na forma como os vemos hoje. Sinceramente eu não sei ainda como isso vai ser nem como irá acontecer de forma clara para arriscar uma previsão aqui pois um acontecimento desse influi em muita coisa. Mas baseando-se no princípio de que os recursos que surgem agora começam a destacar-se dos navegadores, essa é uma transição pré-anunciada com benefícios e deficiências (também).

Mas agora já é conteúdo para um outro post. ;)

Blogging simplificado: Microsoft Live Writter

livewritter_splashscreen

Primeiro eu testei para depois poder falar. Então já começo esclarecedo:
O Microsoft Live Writter é uma ferramenta gratuíta RECOMENDADÍSSIMO para qualquer "Bloggeiro".

Simplesmente você seleciona o seu tipo de Blog (claro que se você utilizar o Live Spaces a funcionalidade é extendida), conforme a tela 1 de configuração que você vê logo após o procedimento de instalação:

livewritter_screen0

Depois, na tela 2, você fornece os detalhes de acesso ao tipo de blog selecionado:

livewritter_screen1

Ele vai "pegar" as configurações de template (css, etc) do seu blog e vai fornecer uma janela de edição tipo WYSIWYG, ou seja, com o "look n' feel" do seu blog e você o editará exatamente da forma como ele será visualizado.

Você pode visualizar a edição de 4 formas diferentes:

livewritter_screen2

  • Normal: Como texto comum, sem aplicação das configurações visuais.
    livewritter_screen3
  • Web Layout (mais recomendado): com aplicação das configurações visuais.
    livewritter_screen4
  • Web Preview: Simulando o post já efetivado no layout do blog:
    livewritter_screen5
  • HTML Code: Edição direta do código HTML
    livewritter_screen6 

O mais interessante pra mim, ainda, foi a possibilidade de você inserir as imagens livremente, como num editor de texto comum, e deixar que ele se encarregue dos procedimentos de Upload, bastando configurar o tipo de publicação de iamgens que você vai utilizar:

livewritter_screen7

Além disso, são facilitadas também a inserção de outros tipos de elementos comuns num blog como tabelas, vídeo e outros recursos através do modo "Plug-in" que eu ainda não pude testar, mas é muito promissor e é baseado em uma API disponível para desenvolvedores implementarem tais recursos ao Live Writter. Nesse último caso, o software ganha recursos que não se pode prever:

livewritter_screen8

Um outro recurso que gostei muito, foi que no momento da configuração ele automaticamente carregou todas as tags que eu já usei, então posso selecioná-las de uma forma muito prática e rápida, além de poder inserir novas tags. Claro, essas novas tags passam a contar na lista de tags online do blog também:

livewritter_screen9

Enfim, o Microsoft Live Writer, que é gratuíto passou a fazer parte da minha lista de softwares úteis e indispensáveis. Reduziu meu tempo de publicação de um post como esse para menos de 1/3 do tempo que isso me tomaría anteriormente.

OBS: Não tenho vínculo nenhum com a Microsoft e nem estou recebendo nada para promover este software.

segunda-feira, 28 de maio de 2007

Resenha: Palesta Apollo na UNIFACS

Em primeiro lugar, muito obrigado à todos que compareceram à minha palestra, realizada no último dia 26 de maio na UNIFACS (Imbuí/Salvador/Bahia). Mesmo em um dia de chuva, muita gente acordou cedo para ouvir o que eu tinha a dizer e pude perceber a atenção com a qual o conteúdo foi recebido. Meus sinceros agradecimentos!

Segue aqui, conforme prometido, uma resenha sobre o conteúdo abordado.

1 - Recapitulando o que foi discutido na palestra anterior (21/abr/07).

Na oportunidade anterior, apresentamos o Apollo e seus principais conceitos apresentando-os através dos seguintes tópicos:

  • O que é o Apollo?
  • Qual o objetivo do Apollo?
  • O que se pode fazer com o Apollo?
  • A nova realidade para designers e developers
Foi realizado uma revisão desses itens, aproveitando para nos comunicarmos em uma lingaugem mais direta e desta vez com a utilização de diagramas para explicar o que é o Apollo e como o mesmo apresenta sua funcionalidade em comparação ao FlashPlayer instalado na forma de um controle ActiveX ou Plugin sobre o Sistema Operacional. Desta forma pudemos explicar a diferença das aplicações desenvolvidas utilizando-se a tecnologia Flash-Platform para o modelo anterior ao Apollo e após a sua introdução. Isso ajudou a deixar claro para os participantes, qual o objetivo do Apollo.

Diversos exemplos de aplicações foram apresentados para os participantes presentes, demonstrando o poder do Apollo e principalmente os recursos diferenciais que este disponibiliza aos desenvolvedores. Para uma fácil referência, utilizei os exemplos citados pela própria equipe da Adobe no site http://labs.adobe.com . Dentre os principais:

- Finetune. Discutindo inclusive sobre a importância do Apollo em uma análise particular do modelo de comércio possibilitado a partir de sua introdução.
- Fresh. Demonstrando a riqueza de interação já conhecida possibilitada pelo Flash/Actionscript em Rich Internet Applications, e adicionalmente um uso importante do recurso de renderização de HTML/CSS/Javascript possibilitado pelo controle HTML presente para esta finalidade.
- DryerFox. Demonstrando um uso divertido do controle HTML.
entre outros...
- Tweetr. Mais uma implementação de integração com o site Twitter.com. Para quem ainda não sabe, trata-se de um site estilo Blog Instantâneo onde as pessoas publicam simplesmente o que estão fazendo a cada momento. Curiosamente, aconselho conhecer o projeto TwitterVision 3D que não foi apresentado na palestra. Trata-se de mais uma interessante aplicação de integração com o Twitter, desta vez desenvolvido em Flex, integrando uma API 3D.

Finalizando esta primeira parte da agenda, discutimos sobre um novo cenário de oportunidades para designers e developers, debatendo principalmente sobre o baixo impacto de investimento intelectual (portanto, consequentemente financeiro) para aproveitamento destas oportunidades, uma vez que todo o conhecimento necessário por parte dos desenvolvedores de soluções web, são simplesmente reutilizados para a abordagem de soluções desktop adicionais, complementares ou isoladas de conteúdos e/ou soluções já desenvolvidas utilizando as tradicionais ferramentas Adobe para este propósito (Flash, Actionscript, Flex, Dreamweaver, Fireworks e uma linguagem server-side semelhante em funcionalidade ao Coldfusion).

2 - Últimos acontecimentos:

Nesta segunda parte, apresentei aos participantes do evento, notícias a respeito dos principais acontecimentos que influenciaram o meio relacionado ao Apollo. Os principais temas foram:
Apresentamos a notícia do Flex open-source abordando inclusive assuntos relacionados à mudança de estratégia e importância da aquisição da Macromedia por parte da Adobe no que diz respeito principalmente à influência deste acontecimento na estratégia de comercialização e abordagem comercial sobre os produtos herdados desta aquisição. Foi possível avaliar as boas consequencias disto para a comunidade desenvolvedora e tentar arriscar inclusive apostas em notícias semelhantes quanto à outros produtos da Adobe, inclusive o Apollo, consequencia que parece ser até mesmo óbvia.

Anunciei aos que ainda não sabiam da notícia, a API disponibilizada publicamente por Matt MacLean em seu site, ainda sem um modelo de licença definido por tratar-se de um experimento, que permite o acesso direto (sem o uso de um middleware) ao banco de dados mySQL.
Para exemplificar o seu uso de maneira rápida, apresentei o seguinte código fonte, disponível aqui de forma completa (com comentários inclusive) pois nos slides ele encontrava-se particionado por razões claras aos presentes (resolução de vídeo, melhor apresentação, etc.):

<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="400" height="320" resizable="false">
<mx:Script>
<![CDATA[
//importação das classes referentes à API disponibilizada em http://maclema.com/asql
//desenvolvida por Matt MacLean
import pl.mooska.asql.*;
import pl.mooska.asql.events.*;

//declaração da variável que irá manter os dados recebidos.
//a metatag [Bindable] permite que a mesma seja utilizada como valor de
//parametro em tags MXML que necessitem ter acesso à mesma.
//no exemplo atual, vamos defini-la como a fonte de dados do data-grid
//de nome de instância "grid", através do parâmetro "dataProvider" que
//o controle do tipo grid disponibiliza
[Bindable]
public var recordset:Array;

//instancia da conexão com o banco de dados mySQL
private var connector:Asql;

//uma variável para manter as mensagens à serem apresentadas no
//controle tipo label que temos na interface
//o "bind" desta variável será utilizado no parametro "text" do
//controle "label" instanciado como "lblMessage" na porção MXML
//deste código
[Bindable]
public var connectorStatus:String;

public function startApp():void{

connector = new Asql();

connector.addEventListener(SQLEvent.CONNECT, onConnect);
connector.addEventListener(SQLEvent.SQL_OK, onProcessed);
connector.addEventListener(SQLEvent.SQL_DATA, onData);
connector.addEventListener(SQLError.SQL_ERROR, onError);

connector.connect("ip_ou_dominio", "usuario", "s3nh4", "nome_do_banco");
connectorStatus = "Tentando conectar...";

}

private function onConnect(e:SQLEvent):void{
connector.query("SELECT * FROM tabela");
connectorStatus = "Conexão OK! Solicitando dados...";
}

private function onProcessed(e:SQLEvent):void{
//actions for an ok update or insert action result
connectorStatus = "Dados processados!";
}

private function onData(e:SQLEvent):void{
recordset = e.data;
connectorStatus = "Dados recebidos!";
}

private function onError(e:SQLError):void{
connectorStatus = "Erro na conexão!";
}

]]>
</mx:Script>
<mx:Label text="Apollo x MySQL access sample" fontFamily="Verdana" fontWeight="bold" fontSize="16"/>
<mx:DataGrid id="grid" dataProvider="{recordset}" width="298"/>
<mx:Button label="Connect and get data" width="159" id="btn" click="startApp()"/>
<mx:Label text="{connectorStatus}" width="301" textAlign="center" fontWeight="bold" color="#ff0000" id="lblMessage"/>
</mx:ApolloApplication>




ATENÇÃO:
No código acima onde temos:

connector.connect("ip_ou_dominio", "usuario", "s3nh4", "nome_do_banco");


Deve-se alterar o seguinte:
ip_ou_dominio: o IP do servidor onde encontra-se a instância do seu banco de dados mySQL ou o seu nome de domínio. Exemplo: 192.168.0.1 ou localhost
usuario: o usuário no servidor mySQL que possui acesso ao banco de dados que irá ser consultado.
s3nh4: a senha respectiva ao usuário especificado.
nome_do_banco: nome do banco de dados no servidor mySQL contra o qual será feita a consulta.

O seguinte esquema pode ser utilizado para criar a tabela de exemplo no seu servidor mySQL caso você queira testar o código acima:

CREATE TABLE `users` (
`username` varchar(15) default NULL,
`id` int(10) unsigned NOT NULL auto_increment,
`fullname` varchar(45) default NULL,
PRIMARY KEY (`id`)
) TYPE=InnoDB;

INSERT INTO `users` (`username`, `id`, `fullname`) VALUES
('vpmjr', 1, 'Vicente Junior'),
('commander', 2, 'Neil Armstrong'),
('moonPilot', 3, 'Edwin Aldrin'),
('commandPilot', 4, 'Michael Collins');

Você deverá ter instalado e configurado devidamente os seguintes softwares para proceder com o teste e saiba operá-los:
Caso você ainda não tenha instalado e configurado os softwares acima, aguarde pois estarei publicando tutoriais a respeito destes procedimentos em breve.

Adiante, discutimos a respeito dos seguintes temas:

Sería o Silverlight finalmente o tal do FlashKiller? Uma ameaça? (sub-tema: Já não ouvimos esta história antes?) Definitivamente não existe esta comparação e isso ficou muito claro ao final da discussão. O posicionamento de ambos é totalmente diferente. Farei mais posts a respeito deste assunto aqui no Blog.

Após isso, introduzí à questão apenas por intenção de adicionar informação aos presentes, o JavaFX e também discutimos quanto ao seu posicionamento. Ficou evidente que o Silverlight e o JavaFX são concorrentes diretos mas que o Apollo possui algusn diferenciais importantes a começar por seus fundamentos e objetivos que são divergentes a estes dois. Como no tópico do Silverlight, mais posts serão colocados aqui abordando o tema mais profundamente.

Finalizando

Tratamos a respeito de conhecimentos necessários para começar a desenvolver com o framework do Apollo, treinamentos que estou ministrado para implementar ou complementar tais pré-conhecimentos, bem como os treinamentos voltados exclusivamente para o Apollo que já estou ministrando (extra-oficialmente) para os usuários interessados.

Caso você esteja interessado em algum treinamento, leia os detalhes disponíveis neste post e entre em contato a partir do meu email.

Os treinamentos são ministrados individual e particularmente, bem como para grupos/empresas.

Até a próxima! Mais posts a respeito dos assuntos aqui abordados estarão disponíveis nos próximos dias.

quinta-feira, 24 de maio de 2007

Desktop de verdade!

É incrivel o resultado de um trabalho proveniente da união Design e Tecnologia.

Observando o Blog da Andrea Soares, minha amiga e parceira de trabalho, vi um post magnífico a respeito do BumpTop 3D. Trata-se de uma solução interessantíssima de modelo de Desktop para sistemas operacionais. Leia o post dela, e depois visite o site oficial do projeto para mais detalhes.

Houveram muitas criticas nos comentários do YouTube, mas particularmente digo que se isso estivesse disponível eu instalava agora. Veja abaixo o vídeo de demonstração deste protótipo que espero que esteja disponível o mais breve possível.



Ah! Pude ver no YouTube que existem diversos projetos parecidos em andamento e até mesmo alguns já disponíveis...