sexta-feira, 16 de novembro de 2007

Última novidade deste blog...

olá pessoal, bom este é oficialmente o meu último post neste blog...

mas calma, não vou apagar este blog, nem parar de publicar, a linha de assuntos que vinham sendo publicados aqui...

estou mudando para uma "casa nova", agora em um dominio meu mesmo, depois de muito tempo enrolando, finalmente resolvi comprar um dominio e migrar para o Wordpress...

minha nova "casa" agora pode ser acessada no respectivo endereço:

http://erkobridee.com


comentários habilitados lá, agora com um filtro anti-spam vai ficar melhor =D
já que aqui devido a alguns problemas que eu tive, acabei suspendendo os comentários...

ps.: todos os post´s anteriores a este, foram migrados e estão acessíveis no novo endereço ;)

aguardo vocês por lá =]

quinta-feira, 15 de novembro de 2007

Oracle escolheu o Adobe Flex

e aqui estou eu, como de costume lendo alguns blog, no caso do James Ward e eis que vi 3 posts muito interessantes, posts dos dias 12 a 14 de Novembro de 2007, onde ele estava participando do evento: Oracle OpenWorld

primeiro post, foi uma foto da apresentação do MetaLink da Oracle com interface em Adobe Flex:


[link post]


Agora sobre o Oracle BI Publisher, outra solução da Oracle que utilizou o Flex


[link post]


Mais uma solução Oracle Enterprise Manager


[link post]


ps.: no dia 14, o tema foi a solução Siebel CRM, onde nesse dia a palestra foi apresentada por James Ward em conjunto com Dipock Das sobre Siebel CRM e RIA. A apresentação abortou o foco de como as aplicações RIA transformaram as experiências dos usuários de software Enterprise. [link post]

agora para aqueles que perguntavam: "- Mas quem usa o Adobe Flex?" ou a outra pergunta: "- O Adobe Flex aguenta/comporta/pode ser utilizado para aplicações de grande porte?"

bom acho que essas referências acima respondem a estas perguntas e libertam do medo de utilizar o Adobe Flex para desenvolver soluções de alto nível em aplicações web... vai esperar mais o que para utilizar a tecnologia FlexPower da Adobe?!

quarta-feira, 14 de novembro de 2007

CPMF : de duas uma, ou somos palhaços, ou só os políticos acham isso


CPMF o verdadeiro roubo a mão armada do governo, hoje acessando minha conta, ao ver um débito de CPMF de quase R$ 20, sinceramente eu escalei todos os nomes possíveis aos nossos amados políticos...

e as notícias de que estão aprovando a CPMF aqui, ali, mudando um ou outro político contrário, que iria votar contra, por um outro que votou a favor da CPMF...

o pior de tudo é ver o excelentíssimo Sr. Pinguço, falando sobre a CPMF e defendendo e nosso martírio...

se a CMPF, realmente fosse utilizado para a saúde, para a qual foi criada teríamos uma saúda pública digamos que bem melhor que a nossa atual, mas a CPMF ser apenas de mamadeira para os nossos políticos...

sinceramente, político para mim é ladrão, corrupto, assaltante, só busca benefício próprio, tem prazer em piorar a vida do povo brasileiro, o pior de tudo é que nas eleições ouvimos promessas e mais promessas, tudo mentira! e agora o exemplo claro, prorroguem a CPMF, DANE-SE O POVO...

estado emocional quanto ao tema CPMF = FURIOSO!

terça-feira, 13 de novembro de 2007

Tutorial : Monte um Hackintosh Mac, usando um PC normal


comentário: atualmente com a facilidade de trocar idéias e informações ando vendo cada uma... bom para nós =D

o pessoal do LifeHacker disponibilizou nada menos que um tutorial de como utilizar/montar um PC normal e usar o Mac OS Leopard nele...

segundo o inicio do post, nos EUA um Mac Mini custa em torno de U$ 600, nas lojas, mas por U$ 200 a mais você compra um PC : processador 2.2GHz, com 4GB RAM, um HD de 500GB, além de ser totalmente atualizável, muito mais que um Mac Mini hehe =]

o tutorial pode ser visto nesse [link] (em inglês), no mais é só seguir o passo a passo descrito...

Fonte : Gizmodo

Google : Nelson Mattos : brasileiro no alto escalão da empresa

por isso que ainda acredito que no Brasil ainda há alguma esperança no povo que daqui sai... (nossos problemas tem um nome : "política", bom mas não vem ao caso agora)

hoje foi publicado um artigo, aqueles de dar orgulho de ser brasileiro, onde foi realizado uma entrevista, com o vice-presidente de engenharia do buscador para Europa, Oriente Médio e África, o Nelson Mattos e ele é brasileiro (gaúcho)

leia a entrevista: IDG Now!

Wii mote? não!! é o Nokia N95, Nokmote


dado uma passad no blog do Leonardo França, eis que vi um post muito interessante sobre o Nokia N95, onde você usa ele assim como o controle do Nitendo Wii...

o projeto é Frances e é chamado de Nokmote, site do projeto [link], ainda está em fase alfa (em desenvolvimento)


eu ainda quero um desses... =D

Fonte : Leonardo França

Acredite se quizer, um jogo web implementado com JavaScript

parece muito estranho, mas é exatamente isto, com a evolução do JavaScript, tem aparecido uns loucos que andam implementando algumas coisas um tanto, digamos que não esperadas com o JavaScript como é o caso de games...

até que ficou legal o resultado final, veja no [link], o objetivo desse jogo é tentar elimitar todos os blocos...

Fonte : Digg

Gibson desenvolveu uma guitarra que se auto afina, porém não irá lhe tornar um bom guitarrista se você não for um...

a vida dos preguiçosos vão ficar melhor daqui para frente... conheço muitas pessoas que não sabem afinar de ouvido um violão, uma guitarra... bom caso for uma guitarra a Gibson desenvolveu uma que se auto afina... bom isso não? embora eu saiba afinar sem precisar de um afinador, gostei da ideia =]


Fonte : TechEBlog

Google no mundo dos celulares : Android

para quem pensava que a Google iria lançar apenas um celular super poderoso, que iria bater o iPhone da Apple, inicialmente foi uma decepção ao saber de que não iriam fazer isso, mas espero um pouco, a Google aprontou uma maior ainda está lançando o Android...


Mas o que é esse Android, que tanto estão falando nos últimos dias?
Nada mais é que um sistema operacional/plataforma de desenvolvimento de software para aparelhos celulares... de certa forma a Google com isso foi além que lançar um simples celular, mas sim está disponibilizando algo para desenvolver aplicações para celulares de nível ++ quem sabe até mais que o sdk utilizado para desenvolver o iPhone, com isso ao invés de lançar um simples celular a Google lançou é mesmo uma plataforma para celulares, ao invés de 1 aparelho, porque não vários, desenvolvido por vários, ao redor do mundo?

Alguem ainda dúvida da genialidade do pessoal da Google?


Um detalhe: o SDK da plataforma Android já está disponível para download e como já comentei, é gratuita e OpenSource...

Outro detalhe: a Google está oferecendo um prêmio de U$ 10 milhôes, para quem desenvolver aplicações usando a plataforma Android, que foi noticiado no G1 [link], mais informações [link] [download sdk]

Fonte : TechEBlog #1 #2 : Gizmodo imagens

Mudando o layout do teclado : Optimus Maximus

um da série: queria um desses... pena que é caro... nada com um teclado que você pode livremente definir como será o layout... além das teclas de funções e atalhos rápido...


Fonte : TechEBlog

Tecnologia : a nova barreira das estradas

agora quero ver o pessoal fugir dessa, uma "rede" que "abraça" as rodas do carro, com isso acaba freiando o mesmo... tecnologia chamada de "X-Net"


Fonte : TechEBlog

Comparando os gráficos : Need for Speed ProStreet - PS3 vs. Xbox 360

agora o bicho vai pegar...


uia o gráfico do XBox 360 é bom... mas como já era de se imaginar o PS3 é melhor... por que será? (a resposta é Cell) hauhauhauhauha

Fonte : TechEBlog

segunda-feira, 12 de novembro de 2007

Granite DS + Adobe Flex Builder

eis a grande questão... comecei semana passada a estudar o uso do Granite DS que me possibilita o uso do protocolo AMF3 para comunicação entre Client & Server...

* a problemática: legal, peguei os exemplos do Granite DS, os .war neles contidos, coloquei no Tomcat e funcionou... dai me veio a questão... como faço para usar isso em um projeto usando o Flex Builder?

* o que usei? segue o que usei nesse meu teste:
- Java 1.5
- Eclipse 3.2 + WTP 2.0 + Adobe Flex Builder Plugin
- Tomcat 5.5.20
- OC4J 10.1.3.20 (servidor de app da Oracle usado como servidor de teste de deploy do projeto)
- graniteds-pojo-0.4.0 (como base para o projeto server side)

* criando projeto para o server side da aplicação
- criar um projeto no Eclipse Dynamic Web Project
- criei um diretório para o projeto com o nome GranitePojoFlex
- após criado o projeto no diretório de nome definido
- copiar os arquivos do graniteds-pojo-0.4.0 para o projeto
> web.xml, códigos, diretórios do WEB-INF
- criei um diretório no /WebContent para o projeto Client Side - Adobe Flex, com nome de flex
- defini nas propriedades do projeto, no item: Web Project Settings, o Context Root para: granitepojoflex

* criando o projeto client side
- criei o projeto no diretório flex citado anteriormente
- o mxml do graniteds-pojo-0.4.0, copiei o conteúdo desse para o arquivo main.xml
- copiei o arquivo /WEB-INF/flex/services-config.xml, para o raíz do projeto
- editei esse arquivo services-config.xml

de:

    <channels>
        <channel-definition id="my-graniteamf" class="mx.messaging.channels.AMFChannel">
            <endpoint
                uri="http://{server.name}:{server.port}/{context.root}/graniteamf/amf"
                class="flex.messaging.endpoints.AMFEndpoint"/>
        </channel-definition>
    </channels>


para:

    <channels>
        <channel-definition id="my-graniteamf" class="mx.messaging.channels.AMFChannel">
            <endpoint
                uri="http://{server.name}:{server.port}/granitepojoflex/graniteamf/amf"
                class="flex.messaging.endpoints.AMFEndpoint"/>
        </channel-definition>
    </channels>


- feito isso é hora de adicionar esse arquivo nos parametros de compilação do projeto, indo nas propriedades, em Flex Compiler, onde adicionei o seguinte: -services "services-config.xml", com isto ira dizer onde está nossos dados...
- ainda é necessário configurar um outro detalhe nas propriedades do projeto, no item Flex Build Path, o item: Output folder URL, para dizer onde executar a aplicação em Flex... e como nesse caso estamos utilizando o tomcat o valor para esse item será: http://localhost:8080/granitepojoflex/flex/bin, o como esse projeto do Flex está dentro do /WebConten/Flex do projeto Server Side, justifica o porque dessa URL

* hora de executar
- primeiro colocar o projeto server side para executar, como não tem nenhum JSP, não irá aparecer nada quando o servidor e a aplicação estiver rodando
- agora hora de executar o projeto Flex, só mandar executar nosso main.mxml...
- lembrando que foi configurado a URL, você irá observar que estará executando em um endereço URL no seu browser

e eis um projeto em Flex Builder + Granite

* fazendo um deploy em um servidor para testar
no caso usei o OC4J, mas antes...
- no projeto Server Side, clique com o botão direito e vá em exportar WAR...
- para facilitar exporte para o Desktop por exemplo
- no OC4J, na parte de administração eu selecionei esse .war gerado e realizei o deploy...
- após iniciado a aplicação eu usei a seguinte URL para acessar e testar: http://localhost:8888/granitepojoflex/flex/bin/main.html, a porta é 8888, pois essa é a padrão do OC4J

segue o projeto Zipado: [link]

Obs.: esse projeto usa a versão modificada do Granite DS, falado nesse [post]

Granite DS, mapeamento flexível

hoje estudando o Granite Data Services, que é uma alternativa OpenSource e gratuita ao LiveCycles da Adobe, acabei encontrando uma informação que julgo eu ser muito útil...

estava vendo o funcionamento do AMFPHP, onde verifiquei que o mapeamento das classes são flexíveis, onde posso ter múltiplas classes mapeadas, enquanto no granite, eu tinha que mapear apenas uma única classe de cada vez... mas segundo a sugestão repassada, tem como deixar o Granite funcionando de forma similar ao AMFPHP, que em tese é mais fácil de reutilizar o mapeamento...

a dica está nesse [link flex-brasil]

onde é sugerido a alteração da classe: org.granite.messaging.service.SimpleServiceFactory.java

para que o Granite possa ser utilizado de forma flexível:

classe original:
package org.granite.messaging.service;

import flex.messaging.messages.RemotingMessage;

import org.granite.config.flex.Destination;
import org.granite.context.GraniteContext;

import java.util.Collections;
import java.util.Map;

/**
 @author Franck WOLFF
 */
public class SimpleServiceFactory extends ServiceFactory {

    @Override
    public ServiceInvoker<?> getServiceInstance(RemotingMessage requestthrows ServiceException {
        String messageType = request.getClass().getName();
        String destinationId = request.getDestination();
        
        GraniteContext context = GraniteContext.getCurrentInstance();
        Destination destination = context.getServicesConfig().findDestinationById(messageType, destinationId);
        if (destination == null)
            throw new ServiceException("No matching destination: " + destinationId);
        String scope = (String)destination.getProperties().get("scope");
        
        Map<String, Object> cache = null;
        if (scope == null || "request".equals(scope))
            cache = context.getRequestMap();
        else if ("session".equals(scope))
            cache = context.getSessionMap();
        else if ("application".equals(scope))
            cache = Collections.synchronizedMap(context.getApplicationMap());
        else
            throw new ServiceException("Illegal scope in destination: " + destination);
        
        String key = SimpleServiceInvoker.class.getName() '.' + destination.getId();
        SimpleServiceInvoker service = (SimpleServiceInvoker)cache.get(key);
        if (service == null) {
            service = new SimpleServiceInvoker(destination, this);
            cache.put(key, service);
        }
        return service;
    }
}

classe alterada:
package org.granite.messaging.service;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import org.granite.config.flex.Destination;
import org.granite.context.GraniteContext;

import flex.messaging.messages.RemotingMessage;

/**
 @author Franck WOLFF
 @author Erko Bridee de Almeida Cabrera
 
 * Alterações da classe para possibilitar um mapeamento
 * flexivel para qualquer classe do projeto
 
 * * dica do link:
 * http://br.groups.yahoo.com/group/flex-brasil/message/7933
 * - Graniteds com unico mapeamento de Classe
 
 */
public class SimpleServiceFactory extends ServiceFactory {

    @Override
    public ServiceInvoker<?> getServiceInstance(RemotingMessage requestthrows ServiceException {
        String messageType = request.getClass().getName();
        String destinationId = request.getDestination();
        
        GraniteContext context = GraniteContext.getCurrentInstance();
        Destination destination = context.getServicesConfig().findDestinationById(messageType, destinationId);
        if (destination == null)
            throw new ServiceException("No matching destination: " + destinationId);
        String scope = (String)destination.getProperties().get("scope");
        
        Map<String, Object> cache = null;
        if (scope == null || "request".equals(scope))
            cache = context.getRequestMap();
        else if ("session".equals(scope))
            cache = context.getSessionMap();
        else if ("application".equals(scope))
            cache = Collections.synchronizedMap(context.getApplicationMap());
        else
            throw new ServiceException("Illegal scope in destination: " + destination);
        
        /*************/
        Destination d = destination;
        ifdestination.getProperties().get("source").equals("*") ){
          Map<String, Object> propertiesMap = new HashMap<String, Object>();
          propertiesMap.put("source", request.getSource());
          d = new Destination(destination.getId(),
          destination.getChannelRefs
          (), propertiesMap, destination.getRoles());
        }
        /**************/
        
        /* String key = SimpleServiceInvoker.class.getName() + '.' + destination.getId();
        SimpleServiceInvoker service = (SimpleServiceInvoker)cache.get(key);
        if (service == null) {
            service = new SimpleServiceInvoker(destination, this);
            cache.put(key, service);
        } ALTERADO */
        
        String key = SimpleServiceInvoker.class.getName() '.' +
        d.getProperties().get("source")//<--Muda Aqui
        SimpleServiceInvoker service = (SimpleServiceInvoker)cache.get(key);
        ifservice == null ) {
          service = new SimpleServiceInvokerd, this )//<--Muda Aqui
          cache.put(key, service);
        }
        
        return service;
    }
}

com isto no projeto do código fonte do GraniteDS, basta usar o build.xml para regerar o .jar do Granite e utilizar este novo jar gerado...

com isto no exemplo do Granite-Pojo, o services-config.xml fica de outra forma:

    <services>
        <service
            id="granite-service"
            class="flex.messaging.services.RemotingService"
            messageTypes="flex.messaging.messages.RemotingMessage">
            <destination id="pojo">
                <channels>
                    <channel ref="my-graniteamf"/>
                </channels>
                <properties>
                    <scope>session</scope>
                    <source>*</source>
                </properties>
            </destination>
        </service>
    </services>



e no código mxml, no mx:RemoteObject, você deverá indicar o atributo source, como mostrado abaixo:

    <mx:RemoteObject
        id="srv"
        showBusyCursor="true"
        destination="pojo"
        source="test.pojo.PojoService"/>



feito isto, com um único mapeamento, você poderá acessar n-classes do seu projeto...
melhor, o que achou?

Traduzindo componentes do Adobe Flex

algo muito útil para o pessoal que anda utilizando o Adobe Flex, naturalmente que os componentes do SDK do Flex estão em inglês, mas não tem como traduzir eles não?

bom tem sim e foi isso que o Fábio Vedovelli mostrou em um screencast muito interessante, onde pode ser visto no respectivo [link]

Fonte : Fábio Vedovelli

domingo, 11 de novembro de 2007

Isso sim que é dominó...


Fonte : TechEBlog

Liberado o trailer de lançamendo : Assassin Creed


Fonte : TechEBlog

Capacete do F35


alem de tudo mais diferente nesse projeto, o capacete para o piloto também será diferente dos demais, projetado para auxiliar ao piloto dando uma visão mais detalhada dos dados de voo do caça, além das informações dos alvos...

sem dizer no formato extranho do capacete... me faz lembrar os capacetes em geral da série Gundam....

Fonte : TechEBlog

sexta-feira, 9 de novembro de 2007

30+ razões, de porque os programadores são esquizofrênicos

um artigo excelente e ao mesmo tempo ilário demais =]

A esquizofrenia é uma doença mental grave que se carateriza classicamente por uma colecção de sintomas, entre os quais avultam alterações do pensamento, alucinações (sobretudo auditivas), delírios e embotamento emocional com perda de contacto com a realidade, podendo causar um disfuncionamento social crónico. Wikipedia


alguns itens:

- Deteriorização da higiêne pessoal
Checado

- Depressão
Não eu não tenho isso, mas se encontrar um conjunto de itens da lista que comprovem que tenho esquizofrênia, vou começar a ter depressão.

- Comportamento bizarro
Ficar sentado na frente do computador por mais de 15 horas em um dia, conta como um comportamento bizarro? SIM!

- Declarações irracionais
"Controle ActiveX do IE 'XMLHTTP' e XMLHTTPRequest do padrão da W3C podem ser utilizados para programar AJAX".
Eu não acho que isto seja irracional, mas esquizofrênicos raramente pensam que suas declarações são irracionais...

- Sono excessivo ou inabilidade para dormir
Checado

- Isolamento social, reclusão
Traços básicos de um programador

- Hostilidade inesperada
Tente ficar entre um programador e o computador dele - você irá aprender o verdadeiro significado da palavra hostilidade.

- Deteriorização dos relacionamentos sociais
Qual parte de "programador" você não entendeu?

- Hiperatividade, inatividade, ou alternação entre ambos
Codificar como doido / esperar a compilação. Preciso dizer mais alguma coisa?

- Preocupação extrema com religião ou ocultismo
Antes de pensar nesse tema, lembre-se... Emacs "é" uma religião... vai discutir com um Apple Fanboy para você ver o que lhe acontece...

- Escrever excessivamente coisas sem sentido
O que você pensa que programação é?

- Indiferença
Uma vez que estou no computador, eu realmente não me preocupo, nem ligo para qualquer outra coisa...

- Esquecer as coisas
Uma das principais razões que eu amo meu computador é que posso utiliza-lo para armazenar informações, então eu não preciso guardar na minha cabeça...

- Reações extremas a críticas
Por um acaso você já viu uma revisão de código feito por outra pessoa, principalmente quando esta vai falar o resultado para o programador?
"Como você pode chamar meu código de deselegante?! Morra idiota!"

- Inabilidade de expressar alegria
Inabilidade para expressar alegria é quando os testes falham... ou quando você está trabalhando com o IE (Internet Explorer)...

- Inabilidade de chorar ou excesso de choro
Excesso de choro é um outro sintoma, quando se trabalha com o IE...

- Abuso de drogas ou alcool
Café conta?

- Ficar sem piscar, ou piscar incessantemente
Sério? isso é tão facil...

- Olhar como de um réptil
Isto também... Tente começar a ficar no monitor por mais de 15 horas/dia...

- Rígida teimosia
"VI é o melhor editor e nada do que você falar vai mudar minha opinião"

- Peculiaridade no uso das palavras, ou da estrutura da linguagem
Por um acaso você já viu a conversa de 2 programadores? Esta é a razão por trás do ditado: "Isto é tudo geek para mim". Você já deve ter ouvido "Isto é grego para mim", mas agora este ditado foi atualizado...

Leia o artigo completo : [link] (inglês)

Fonte : DZone

Comédia : Jack Bauer em 1994, era discada...

pensa na situação do Jack Bauer sem toda a tecnologia do seriado, perdido na era das trevas 1994... só vendo hauhauhauhauhau


Fonte : TechEBlog