Gregui Shigunov


Função para criptografar com MD5 (Java)

Enviado em Informação, JAVA, Programação, Técnologia, dicas, internet por Gregui Shigunov no 17 17UTC Dezembro 17UTC 2007
Tags: , , , ,

    /**
* criptografa usando MD5
*
* @param valor
* @return
* @throws NoSuchAlgorithmException
*/

    public static String md5 (String valor) throws Exception {
MessageDigest md = MessageDigest.getInstance(“MD5″);
BigInteger hash = new BigInteger(1, md.digest(valor.getBytes()));
String s = hash.toString(16);
if (s.length() %2 != 0)
s = “0″ + s;
return s;
}

Executando programa externo e recuperando a saída (Java)

Enviado em Informação, JAVA, Programação, Técnologia, internet por Gregui Shigunov no 17 17UTC Dezembro 17UTC 2007
Tags: , , , , , , ,

import java.io.*;
public class Executar {

public static void main(String argv[]) {
try {
String line;
Process p = Runtime.getRuntime().exec (“dir c:“);
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
}
catch (Exception err) {
err.printStackTrace();
}
}
}

Exemplo de envio de e-email com Java

Enviado em JAVA, Programação, Técnologia, dicas, internet por Gregui Shigunov no 17 17UTC Dezembro 17UTC 2007
Tags: , , , , , ,

import java.io.IOException;
import java.io.PrintStream;

import sun.net.smtp.SmtpClient;

/**
* Classe para envio de email
*/

/**
* @author gregui
*
*/

public class Email {

   /**
* Construtora
*
*/

public Email() {

}

public boolean enviar() {

String to = “maurivanluiz@gmail.com,” +
kleber.martins@gmail.com“;

String from = “gregui@gmail.com“;

try {
SmtpClient client = new SmtpClient(“mail.xxxxx.com.br“);  //servidor smtp
client.from(from);
client.to(to);
PrintStream msg = client.startMessage();
msg.println(“to:” + to);
msg.println(“from:” + from);
msg.println (“Subject:Exemplo de Envio de e-mail”);
msg.print(“\r\n”);
msg.println(“Testando de email  http://gregui.wordpress.com”);

client.closeServer();
} catch (IOException e) {
System.out.println(e.getMessage());
return false;
}
return true;
}

    /**
* Exemplo de uso
* @param args
*/

public static void main(String args[]) {
Email mail = new Email();

mail.enviar();
}
}

Duvida! Qual distribuição do Linux devo instalar!?

Enviado em Informação, Linux, Técnologia, internet por Gregui Shigunov no 17 17UTC Outubro 17UTC 2007
Tags: , , , , , , ,

Pessoal! andei meio desatualizado com os lançamentos do linux! A última distribuição do linux em que trabalhei era o Conectiva 8. Dei uma pesquisada e vi que tem uma porrada de versões e distribuições!

Agora gostaria da opinião dos leitores do blog, para decidir em que versão partir.

Comentem e dêem opiniões sobre vantagens e desvantagens.

Não só para mim, mas para os leitores do blog.

Ahhh e obrigado pelo comentário!

Programação orientada a Objetos – Boas práticas de programação (1)

Tenho participações em fóruns como JavaFree e PortalJava. E notei que muitos programadores se “batem” com orientação a objetos, mesmo utilizando uma linguagem Orientada a Objetos como Java, Flex, Php.

Tentarei trazer dicas de orientação a objeto e boas práticas de programação, utilizando exemplos simples para o fácil entendimento. No momento estou bem ocupado, então posso demorar para postar coisas novas! ;)

Então…

Notem este código:
public class Motor {

}

public class Carro {
private Motor motor = new Motor();

     //construtora
public Carro(Motor motor) {
this.motor = motor;
}
}

Um exemplo muito simples, com dois objeto (Carro e Motor);

Agora, notem…
- A contrutora da classe “Carro”, informa (obriga) que um “Carro” tenha um “Motor”.
- Então antes de instanciar um carro, eu preciso instanciar um motor (motor pode ser “null”, nulo).
- Quando eu contruir um carro, eu incluo o motor no carro, mas notem a linha 2:
private Motor motor = new Motor();
- Se a construtora de “Carro” me obriga ter um “Motor”, por que diabo ela já tem um motor construído?

É mais ou menos como: “Vou contruir um carro 2.0, mas o carro já possuí um motor 1.0, então terei que tirar o motor 1.0, e substituir pelo 2.0″
(No mundo real isso é bom, já que eu teria um motor sobrando, mas … na programação há disperdício de processamento e memória para criar o motor 1.0, já que foi contruído e não foi utilizado)

- Agora você deve se perguntar, grande coisa… Não vai fazer muita diferença.
- Para um exemplo simples como esse sim, mas imagine um sistema complexo, com classe gigantes e complexas

Agora olhem a classe abaixo:

public class Carro {
private Motor motor = null;

    //construtora
public Carro(Motor motor) {
this.motor = motor;
}
}

No carro eu “declarei” mas não “instanciei” o Motor.
É mais ou menos como: “tenho um carro, agora só falta o motor (reservei espaço para o Motor)”

Uma outra Boa Prática de Programação (BPP) é, sempre informar o valor da variável ao declará-la.
Como no exemplo abaixo

Exemplo de utilização:

Motor motor_1; //não recomendado
Motor motor_2 = null; //OK
Motor motor_3 = new Motor(); //OK

motor_1 = new Motor();
motor_2 = new Motor();

Carro corsa = new Carro(motor_1);
Carro corsa_sedan = new Carro(motor_2);

Até a próxima ;)

java.io.IOException: No serializer found for class pacote.Classe in registry org.apache.axis.encoding. TypeMappingDelegate@

Eai pessoal!!!!

Então! hoje eu estvaa criando um WebServer.
E me debati com o sequinte erro ao testar.

AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.io.IOException: No serializer found for class gregui.ValorBean in registry org.apache.axis.encoding.TypeMappingDelegate@17574b9
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.io.IOException: No serializer found for class gregui.ValorBean in registry org.apache.axis.encoding.TypeMappingDelegate@17574b9
at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1507)
at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)
at org.apache.axis.encoding.SerializationContext.outputMultiRefs(SerializationContext.java:1055)
at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:145)

(mais…)

HTTP Error: no data present after HTTP headers (SOAP + PHP)

Opa!

estava eu acessando um web service e precisei passar um objeto por webService.

E perdi algumas hora pra resolter um problema! Eu não consiguia enviar (em PHP, usando NuSoap) um objeto para o webServices!

Tentei de várias formas até que consegui!

então lá vai:

aqui um exemplo que Request que deveria ser feito para se inserir o objeto


POST /SafeVenue/WebInterface.asmx HTTP/1.1
Host: servidor.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://192.1.2.3/SafeVenue/InsertRedListEntry"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xmlns:xsd="http://www.w3.org/2001/XMLSchema"
		xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <InsertRedListEntry xmlns="http://192.1.2.3/SafeVenue/">
      <redListEntry>
        <TicketID>long</TicketID>
        <FailureReasonID>int</FailureReasonID>
      </redListEntry>
    </InsertRedListEntry>
  </soap:Body>
</soap:Envelope>

Para chamar enviar o objeto, no PHP, fiz assim:

 <?php
/**
 * Enviando Objeto via WebService com NuSoap
 *
 * @author Gregui Shigunov
 * @since 03/10/2007
 */

require_once('nusoap/nusoap.php');

$wsdl = "http://servidor/SafeVenue/WebInterface.asmx?WSDL";

$client = new soapclient($wsdl, true);

$client->soap_defencoding = 'UTF-8';
$client->useHTTPPersistentConnection();

$err = $client->getError();
if ($err) {
	echo '<pre>PROBLEMAS AO ACESSAR O WEBSERVICE ' . $err . '</pre><br>';
}

$objeto = '<InsertRedListEntry xmlns="http://192.1.2.3/SafeVenue/">
      <redListEntry>
        <TicketID>12345</TicketID>
        <FailureReasonID>1</FailureReasonID>
      </redListEntry>
    </InsertRedListEntry>';




//detalhe em vermelho, sem isso não funciona

$result = $client->call('InsertRedListEntry', $objeto, "http://192.1.2.3/SafeVenue/");

echo "Resultado------------------------<br>";
print_r($result);
echo "------------------------";

if ($client->fault) {
	echo '<h2>Fault</h2><pre>'; print_r($result);
	echo '</pre>';
} else {
	$err = $client->getError();
	if ($err) {
		echo '<h2>(Autenticacao)</h2><pre>' . $err . '</pre>';
	}
}

echo '<br><br><h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';

?>
 

 Qualquer coisa é só dar um toque pessoal!


Governo brasileiro compra dois supercomputadores …

Enviado em Informação, Linux, Técnologia, internet por Gregui Shigunov no 27 27UTC Setembro 27UTC 2007
Tags: , , , , , , , ,

Também quero um desse pra trabalhar em casa…

Governo compra dois supercomputadores da Bull, fornecedora francesa de infra-estrutura de TI.

As duas máquinas farão parte do Sinapad (Sistema Nacional de Processamento de Alto Desempenho), que terá um total de oito supercomputadores espalhados no Brasil interligados em rede.

Os computadores ficarão na Universidade Federal de Pernambuco e na Universidade Federal do Ceará e entrarão em funcionamento até o final do ano.

Ambos terão capacidade de processamento de 6,1 teraflops – ou trilhões de operações por segundo. Cada um deles é um cluster de 72 servidores Bull NovaScale com dois processadores Xeon quad-core, num total de 576 núcleos de processamento. Cada supercomputador terá 45 terabytes de armazenamento e 1 TB de memória RAM. E o sistema operacional, será o Linux, é claro.

“São os maiores computadores que teremos fora da França”, afirma Didier Lamouche, presidente mundial da Bull, que está em visita no Brasil esta semana. O supercomputador de maior desempenho da empresa francesa é uma máquina de 100 teraflops que fica num centro de pesquisa científica no sul de Paris.

Recentemente, a Bull trocou os processadores de sua linha de supercomputadores. De acordo com Alberto Araújo, presidente da Bull no Brasil, a opção pelo Xeon em vez do Itanium, série em que a empresa participa do desenvolvimento junto à Intel, deu-se pela maior capacidade de processamento do Xeon.

“O custo de operações de cálculo no Itanium é maior que no Xeon. Optamos por oferecer servidores com Itanium apenas para banco de dados”, afirma Araújo.

Além da UFPE e da UFC, o Sinapad conta com mais seis computadores na UFRGS, UFRJ, UFMG, Unicamp, INPE e Laboratório Nacional de Computação Científica, ligado ao Ministério da Ciência e Técnologia.

http://www.bull.com

Atriz "Xu Jinglei" tem blog mais lido do mundo

Enviado em Informação, Técnologia, internet por Gregui Shigunov no 27 27UTC Setembro 27UTC 2007
Tags: , , , , , , , , ,

Quando eu crescer! Eu quero ser igual a ela :P

A atriz e diretora chinesa Xu Jinglei, é a responsável pelo blog mais acessado da Internet (média de 100 visitas por segundo). Em menos de dois anos já teve mais de 100 milhões de páginas vistas.

O blog, iniciado em outubro de 2005 no site sina.com.cn, começou a ganhar popularidade no ano passado. A visitação é tanta que a atriz publicou, em março do ano passado, um livro baseado em seus artigos virtuais.

Xu Jinglei ficou conhecida em 2004, quando ganhou o prêmio como melhor nova diretora no Festival Internacional de Cinema de San Sebastian, na Espanha, com o filme Letter From An Unknown Woman, baseado na obra de Stefan Zweig.

A mídia chinesa afirma ainda que o sucesso de Jinglei, tida como uma mulher íntegra e de alta reputação, foi conseguido falando sobre sexo ou contando histórias indiscretas, mas apenas focando seu cotidiano e trabalho. Para comemorar a marca dos 100 milhões de visitas, Jinglei convidou 20 fãs entre os que assinam seu blog, para festejar com ela.

De acordo com o site The Guardian, o site Technorati, que cataloga blogs e mede a popularidade de cada um deles, afirmou que em 2006 o blog de Jinglei foi o mais referenciado por outros sites na Internet.

O escritor Han Han, em segundo lugar no Sina.com.cn, em breve ultrapassará 100 milhões de visitas também.

Xu Jinglei

Ah! o endereço do site dela é http://blog.sina.com.cn/m/xujinglei , tentei entender algo, mas está em chinês.

PicoTux 100, o menor pc do mundo!

Enviado em Linux, Técnologia por Gregui Shigunov no 25 25UTC Setembro 25UTC 2007
Tags: , , , , , , , ,

O PicoTux 100, como diz o próprio site oficial do produto, trata-se do menor computador do mundo (35mm×19mm×19mm), pouco maior que um conector RJ45.

Technical Data picotux 100 module
   
Processor: 32-bit ARM 7 Netsilicon NS7520
Processor Clock: 55 MHz
Flash Memory: 2 MB
RAM: 8 MB SDRAM
Ethernet: 10/100 Mbit, HD and FD, auto sensing
Serial (TTL): Up to 230.400 bps
General Input/Output Pins(TTL) 5, can be used as Handshake
LED for Ethernet 2; green (programmable) and yellow (Carrier)
   
Supply Voltage: 3,3 Volt +- 5%
Supply Current: 250 mA
   
Operating System: uClinux 2.4.27 Big Endian (native)
Shell: Busybox 1.0 and others
File Systems: CRAMFS, JFFS2, NFS
Applications: Webserver, Telnet
Size of the Linux Systems in Flash: 720 KB and more
Protected Bootloader for Update over Network: 64 KB Code
   
Development System: GNU Tool chain
Compiler GCC 3.4.4 for C/C++ and Fortran
Binutils 2.15
Library: uClibc 0.9.26
   
Dimensions:  
Height: 19 mm
Width: 19 mm
Deep: 36 mm
Package: Shielded by metal
Weight: ca.18 g
Ambient Temperature: -40°C to 85°C
   
   
Preliminary Technical Data. May be changed without notice.
  18.05.2005
Próxima Página »