Evento MongoDB em São Paulo

No dia 13 de julho (sexta-feira) vai acontecer uma conferência sobre MongoDB em São Paulo.

A conferência está sendo organizada pela 10gen.

Será realizada no Hotel Braston São Paulo, na Rua Martins Fontes, 330 – Consolação.

Mais informações e valores aqui: http://www.10gen.com/events/mongodb-sao-paulo

Posted in Eventos, MongoDB at maio 31st, 2012. No Comments.

The Awesome Foundation Rio Chapter

O pessoal investe R$ 1.000,00 (Hum mil reais) na sua ideia.

Como eles falam no site deles:

Primeira rodada de projetos no Rio Começou!

O prazo para envio de projetos vai de hoje, dia 10 de Maio até dia 10 de Julho. Inicialmente, o prêmio sairá a cada dois meses para o projeto que os dez trustees acharam mais irado. Vale qualquer coisa. Só tem que ser massa mesmo! Lembrando que ele tem que estar no Rio de alguma maneira. Na dúvida, manda igual. A gente sempre pode ajudar.

Os projetos que, por algum motivo, não receberem o prêmio principal, mas que a gente aprendeu a amar, também terão uma chance de receber fundos. Como? Então, teremos uma página especial no Catarse.me para o pessoal tentar conseguir essa grana através da rede de contatos, divulgação e all that jazz. Ajudaremos na estruturação do projeto, recompensas, roteiros de vídeo e afins, e vamos cruzar os dedos juntos.”

Fonte e mais informações: http://www.awesomerio.org/

Posted in Inovação, Investimento at maio 28th, 2012. No Comments.

Como lidar com certificados SSL inválidos no Java

As vezes trabalhando com SOAP, talvez você tenha o caso de https, SSL, com certificado inválido.

Nesses casos é possível configurar a aplicação para aceitar qualquer certificado.

Por exemplo, um erro comum quando a aplicação não aceita um certificado inválido:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
run:
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
 faultActor: 
 faultNode: 
 faultDetail: 
	{http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1611)
	at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:187)
	at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:181)
	at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1035)
	at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:124)
	at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516)
	at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)
	at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
	at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
	at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
	at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
	at org.apache.axis.client.Call.invoke(Call.java:2767)
	at org.apache.axis.client.Call.invoke(Call.java:2443)
	at org.apache.axis.client.Call.invoke(Call.java:2366)
	at org.apache.axis.client.Call.invoke(Call.java:1812)
	at com.siemens.hipath.hipath8000.assistant.api.v310.soap.HiPath8000AssistantAPISoapBindingStub.getApiServerVersion(HiPath8000AssistantAPISoapBindingStub.java:1977)
	at complexclient.ComplexClient.main(ComplexClient.java:20)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:294)
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:200)
	at sun.security.validator.Validator.validate(Validator.java:218)
	at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
	at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)
	at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)
	at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1014)
	... 22 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)
	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:289)
	... 28 more
 
	{http://xml.apache.org/axis/}hostname:patrick-c318421

Para contornar isso você pode aceitar qualquer certificado na sua aplicação, da seguinte forma:

package complexclient;
 
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.security.SecureRandom;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import javax.xml.rpc.ServiceException;
 
public class ComplexClient {
 
    public static void main(String[] args) throws Exception {
        // Configure the SSLContext with a TrustManager
        SSLContext ctx = SSLContext.getInstance("TLS");
        ctx.init(new KeyManager[0], new TrustManager[] {new DefaultTrustManager()}, new SecureRandom());
        SSLContext.setDefault(ctx);
 
        ... código da sua aplicação aqui ...
    }
 
    private static class DefaultTrustManager implements X509TrustManager {
 
        @Override
        public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException {
        }
 
        @Override
        public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException {
        }
 
        @Override
        public X509Certificate[] getAcceptedIssuers() {
            return null;
        }
 
    }
}
Posted in Java at maio 28th, 2012. 4 Comments.

Ruby on Rails mensagens de erro: {{attribute}} {{message}}

Você provavelmente vê essas mensagens de erro quando roda Rails 2.3.8 ou mais antigo no mesmo servidor com o novo Rails 3 para cima.

Para arrumar isso existe 2 possíveis soluções:

Solução 1:

  1. Crie o arquivo: config/preinitializer.rb
  2. Com o conteúdo abaixo:
    require 'rubygems'
    begin
      gem 'i18n', "~> 0.4.0"
    rescue LoadError
      # no biggie, optional anyway
    end
  3. Reinicie o servidor web

Solução 2:

No terminal:

gem uninstall i18n
gem install i18n -v 0.4.0

Por favor recomende-me se esse post ajudou você: Recommend Me

Posted in Ruby on Rails at maio 24th, 2012. No Comments.

GIT voltando versão de repositório

Muito simples, mas gera muitas dúvidas.

Como voltar uma versão de um repositório GIT?

No terminal:

git reset --hard HEAD^1
Posted in GIT at maio 24th, 2012. No Comments.

Analytics para o Varejo

Posted in Inovação at maio 17th, 2012. No Comments.

Facebook um fenômeno curioso

Facebook mudou o comportamento humano, com a personificação do eu, é uma situação muito ambivalente e, consequentemente, um fenômeno curioso dessa pessoa solitária numa multidão de solitários. Estamos todos numa solidão e numa multidão ao mesmo tempo. De que há dois valores essenciais que são absolutamente indispensáveis para uma vida satisfatória, recompensadora e relativamente feliz. Um é segurança e o outro é liberdade. Você não consegue ser feliz, você não consegue ter uma vida digna na ausência de um deles, certo? Segurança sem liberdade é escravidão. Liberdade sem segurança é um completo caos, incapacidade de fazer nada, planejar nada, nem mesmo sonhar com isso. Então, você precisa dos dois. Entretanto, o problema, é que ninguém ainda, na história e no planeta, encontrou a fórmula de ouro, a mistura perfeita de segurança e liberdade. Cada vez que você tem mais segurança, você entrega um pouco da sua liberdade. Não há outra maneira. Cada vez que você tem mais liberdade, você entrega parte da sua segurança. Então, você ganha algo e você perde algo.

Zygmunt Bauman.

Posted in Reflexões at maio 17th, 2012. No Comments.

 Assinar RSS Feed