quinta-feira, 26 de maio de 2011

Validar CPF Adobe Flex 3

    public static function isCPFValido(ent : String):Boolean{
   
     if (ent.length == 0)
      return false;
   
     var i : int;
     var ok : Boolean = false;
     var aux : String = ent.charAt(0);
     for(i=0;i<ent.length;i++){
      if ( aux !== ent.charAt(i) ){
       ok = true;
       break;      
      }
     }
      
     if ( !ok )
      return false;
        
  //criamos arrays dos pesos
  var Peso1 : Array = [10, 9, 8, 7, 6, 5, 4, 3, 2];
  var Peso2 : Array = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2];
 
  var cpfVal:String = ent;
 
  var j : int;
  var digito1 : Number;
  var digito2 : Number;
  // criamos as variáveis que nos auxiliarão no cálculo dos dígitos verificadores
  var soma1:Number = new Number ();
  var resto1:Number = new Number ();
  var soma2:Number = new Number ();
  var resto2:Number = new Number ();
  // utilizamos o for com o incremento i ( i++ )
  for (i = 0; i < Peso1.length; i++)
   soma1 += new Number(cpfVal.charAt(i)) * Peso1[i];
 
  // o cálculo do resto é feito utilizando o operador % ( porcentagem )
  // que retorna o resto da divisão da soma por 11
  resto1 = soma1 % 11;
  // criamos a condicão para o caso do resultado ser menor ou igual a 1
  if (resto1 <= 1) {
  // se for o digito verificador é igual a 0 ( zero )
  digito1 = 0;
  } else {
  // senão é igual a 11 menos o resto
  digito1 = 11 - resto1;
  }
  // agora o cálculo do segundo dígito que segue o mesmo padrão anterior
  for (j = 0; j < Peso2.length; j++)
   soma2 += new Number(cpfVal.charAt (j)) * Peso2[j];
 
  resto2 = soma2 % 11;
  if (resto2 <= 1) {
  digito2 = 0;
  } else {
  digito2 = 11 - resto2;
  }
  // chegamos então a nossa condição final
  // se o décimo digito - cpfVal.charAt(9) - for igual ( o símbolo == )
  // ao dígito verificador calculado ou ...
  // se o décimo digito - cpfVal.charAt(10) - for igual ao dígito verificador calculado ou ...
  // o tamanho da número digitado for igual de onze algarismos
  // lembrando que o charAt(9) indica a décima "casa" ( posição )
  // porque a primeira "casa" é sempre 0 ( zero )
  if (new Number(cpfVal.charAt (9)) == digito1 && new Number(cpfVal.charAt (10)) == digito2 && cpfVal.length == 11) {
  // se todas as condições estiverem ok
  // você pode acrescentar aqui outras ações do tipo ir para algum frame
  // enviar as informações para o servidor
  // etc
  //trace ( "CPF Válido" );
   return true;
  } else {
  // senão ...
  //trace ( "CPF Inválido" );
   return false;
  }
 
    }


Vitor Yudi Hansen

Mascata de telefone Adobe Flex 3

Exemplo básico de mascaras no Flex 3

public class Telefone extends MaskedInput{
 
  public function Telefone():void{
   this.inputMask = "##-##-########";
   this.width = 110;
  }
 
 }


Vitor Yudi Hansen

quinta-feira, 19 de maio de 2011

Gerar Sring aleatoria PHP

<?
$vogais = array('a','e','i','o','u');
$consoantes = array('b','c','d','f','g','h','nh','lh','ch','j','k','l','m','n','p','qu','r','rr','s','ss','t','v','w','x','y','z',);

$palavra = '';
$tamanho_palavra = rand(2,5);
$contar_silabas = 0;
while($contar_silabas < $tamanho_palavra){
   $vogal = $vogais[rand(0,count($vogais)-1)];
   $consoante = $consoantes[rand(0,count($consoantes)-1)];
   $silaba = $consoante.$vogal;
   $palavra .=$silaba;
   $contar_silabas++;
   unset($vogal,$consoante,$silaba);
}
echo "<h3>A palavra aleatória gerado foi: $palavra</h3>";
unset($vogais,$consoantes,$palavra,$tamanho_palavra,$contar_silabas);
?>

Vitor Yudi Hansen

Split SQL Server

SET NOCOUNT ON

DECLARE @ARRAY VARCHAR(8000), @DELIMITADOR VARCHAR(100), @S VARCHAR(8000)

-- VALORES PASSADOS PARA A VARIAVEL @ARRAY
SELECT @ARRAY = "OLA ,TUDO BEM, MAIS OU MENOS, TRANQUILIS"
-- SETANDO O DELIMITADOR
SELECT @DELIMITADOR = ","

IF LEN(@ARRAY) > 0 SET @ARRAY = @ARRAY + @DELIMITADOR 
CREATE TABLE #ARRAY(ITEM_ARRAY VARCHAR(8000))

WHILE LEN(@ARRAY) > 0
BEGIN
   SELECT @S = LTRIM(SUBSTRING(@ARRAY, 1, CHARINDEX(@DELIMITADOR, @ARRAY) - 1))
   INSERT INTO #ARRAY (ITEM_ARRAY) VALUES (@S)
   SELECT @ARRAY = SUBSTRING(@ARRAY, CHARINDEX(@DELIMITADOR, @ARRAY) + 1, LEN(@ARRAY))
END

-- MOSTRANDO O RESULTADO JÁ POPULADO NA TABELA TEMPORÁRIA
SELECT * FROM #ARRAY
DROP TABLE #ARRAY

SET NOCOUNT OFF

Vitor Yudi Hansen

Ler Arquivo XML no SQL SERVER

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

CREATE PROCEDURE [dbo].[ARTIGO]

  @VALORES  AS XML

AS

DECLARE @NOME VARCHAR(MAX),
        @TELEFONE    VARCHAR(MAX)


/* CAPTURA DADOS XML */
SELECT @NOME = ParamValues.VALOR.value('.','VARCHAR(MAX)')
  FROM @VALORES.nodes('/xml/nome') as ParamValues(VALOR)

SELECT @TELEFONE = ParamValues.VALOR.value('.','VARCHAR(MAX)')
  FROM @VALORES.nodes('/xml/telefone') as ParamValues(VALOR)


/* RETORNA UMA TABELA COM OS VALORES */
SELECT @NOME AS 'NOME',
       @TELEFONE AS 'TELEFONE'     



Vitor Yudi Hansen

Gerar senha em Flex

Vou postar um metodo para gerar senha feita em flex!


function geraSenha(){//função para criar a senha


          var tamanho : int = 10;//QUANTOS DIGITOS TERÁ A SENHA

           var senha : String = "";//DECLARA A SENHA QUE SERÁ FORMADA

        var chars = "1234567890" + "abcdefghijklmnopqrstuvywxz" + "ABCDEFGHIJLMNOPQRSTUVYWXZ";//caracteres que formarão a senha

      for(var i=0;i<tamanho;i++){//verifica quantos caracteres foram utilizados + insere um caracterer
          senha += chars.substr((Math.floor(Math.random()*(chars.length-1))+1),1);
     }
         return senha;//retorna a senha
}


Vitor Yudi Hansen      

quarta-feira, 18 de maio de 2011

Agregador de leilões - Garfando Descontos - O Primeiro Agregador de Leilões

Com a febre dos leilões de 1 centavo.

Foi lançado recentemente o Primeiro site que agrega leilões de 1 centavo.
O Garfando Descontos.

Ele visa mostrar de forma clara e objetiva, os leilões que existem, e vão acontecer.

Sendo o primeiro Agregador de Leilões, podemos esperar, em breve um booom, e o surgimento de vários sites no mesmo estilo.

Segundo a consultoria do Garfando Descontos,  muitas surpresas serão lançadas pelo site.

Vale a pena esperar.




Vitor Yudi Hansen

Formatar CPF

Classe para Formatar CPF


public String formatarCPF(String cpf){
if (cpf.length() < 11){
String aux = "00000000000" + cpf;
cpf = aux.substring( aux.length()-11 );
}
cpf = cpf.substring(0,3) + "." + cpf.substring(3,6) + "." + cpf.substring(6,9) + "-" + cpf.substring( cpf.length()-2 );
return cpf;
}


Vitor Yudi Hansen

Converter Caracteres HTML - JAVA

Classe que converte caracteres.


public String convertTagsHTMLCaracteres(String htmlString){

try{

htmlString = htmlString.replace("&Agrave;", "À")

.replace( "&Aacute;", "Á")

.replace( "&Acirc;", "Â")

.replace( "&Atilde;", "Ã")

.replace( "&agrave;", "à")

.replace( "&aacute;", "á")

.replace( "&acirc;", "â")

.replace( "&atilde;", "ã")



.replace( "&Ograve;", "Ò")

.replace( "&Oacute;", "Ó")

.replace( "&Ocirc;", "Ô")

.replace( "&Otilde;", "Õ")

.replace( "&ograve;", "ò")

.replace( "&oacute;", "ó")

.replace( "&ocirc;", "ô")

.replace( "&otilde;", "õ")



.replace( "&Egrave;", "È")

.replace( "&Eacute;", "É")

.replace( "&Ecirc;", "Ê")

.replace( "&egrave;", "è")

.replace( "&eacute;", "é")

.replace( "&ecirc;", "ê")



.replace( "&Igrave;", "Ì")

.replace( "&Iacute;", "Í")

.replace( "&igrave;", "ì")

.replace( "&iacute;", "í")



.replace( "&Ugrave;", "Ù")

.replace( "&Uacute;", "Ú")

.replace( "&ugrave;", "ù")

.replace( "&uacute;", "ú")



.replace( "&Ccedil;", "Ç")

.replace( "&ccedil;", "ç")



.replace( "&circ;", "^")

.replace( "&tilde;", "~")

.replace( "&167;", "º")

.replace( "&166;", "ª");

}catch (Exception e) {

e.printStackTrace();

}



return htmlString;

}


Vitor Yudi Hansen

terça-feira, 17 de maio de 2011

Galeria de Imagens feita em JavaScript

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt">
<head>
<title>Galeria de fotos em Javascript</title>
<script type="text/javascript">
function exibir(imagens) {
//Informamos o ID da tag IMG que irá exibir a galeria
var imagem = document.getElementById("galeria");

//Informamos as imagens a serem exibidas pela galeria
switch(imagens) {
case "01":
imagem.src = "01.jpg";
break;

case "02":
imagem.src = "02.jpg";
break;

case "03":
imagem.src = "03.jpg";
break;
}
}
</script>
</head>
<body onload="exibir('01')">
Navegue na nossa galeria:
<a href="#" onclick="javascript: exibir('01');">01</a> -
<a href="#" onclick="javascript: exibir('02');">02</a> -
<a href="#" onclick="javascript: exibir('03');">03</a>
<hr />
<img id="galeria">
</body>
</html>




Vitor Yudi Hansen

Extrair texto pdf com JAVA

Segue um método para extrair o texto de um PDF, para utilizar este método vocês devem baixar a lib PDFBox e utilizá-la no projeto. Esta é uma das funcionalidades desta lib.

public static String getConteudo(String arquivo){

File f = new File("pdf.pdf");
FileInputStream is = null;
try{
   is = new FileInputStream(f);
}catch(IOException e){
   System.out.println("ERRO: " + e.getMessage());
   return null;
}

COSDocument pdfDocument = null;

try{

   PDFParser parser = new PDFParser(is);

   parser.parse();

   pdfDocument = parser.getDocument();

   PDFTextStripper stripper = new PDFTextStripper();

    //Aqui retorna o texto

   return stripper.getText(pdfDocument);

}catch (IOException e){
   return "ERRO: Can't open stream" + e;
}catch (Throwable e){
   return "ERRO: An error occurred while getting contents from PDF" + e;
}
  finally
{
   if (pdfDocument != null)
   {
    try
    {
     pdfDocument.close();
    }catch (IOException e){
     return "ERRO: Can't close pdf." + e;
    }
   }}}


Vitor Yudi Hansen

Lendo e Escrevendo XML, JAVA + JDOM

Uma maniera bem simples e intuitiva de manipular xml com Java. Baixe a API JDOM. vale lembrar que JDOM é uma API Java, e não um parser.

Criando XML:

package br.com.exemplo.xml;

import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

public class CriarXml {

public static void main(String[] args) {
//Declaração dos elementos que irão compor a estrutura do documento.
Element blog = new Element("blog");
Element post = new Element("post");
Element titulo = new Element("titulo");
Element data = new Element("data");
Element conteudo = new Element("conteudo");

//"Setando" os atributos e conteúdos
blog.setAttribute("id","1");
Attribute atributo = new Attribute("Autor","Vitor Yudi Hansen");
post.setAttribute(atributo);
blog.addContent(post);
post.addContent(titulo);
post.addContent(data);
post.addContent(conteudo);

//Criando Documento com JDOM

Document doc = new Document();
doc.setRootElement(blog);

titulo.setText("Lendo e escrevendo XML");
data.setText("18/05/2011");
conteudo.setText("JDOM + JAVA!");

try{
//escrevendo no Doc
XMLOutputter out = new XMLOutputter();
java.io.FileWriter writer = new java.io.FileWriter("exemplo.xml");
// Caminho físico do arquivo, outro ex: "C://exemplo.xml"

out.output(doc, writer);
writer.flush();
writer.close();

}catch(Exception e){
e.getMessage();
}
}
}
Lendo XMl:

package br.com.exemplo.xml;

import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

public class LendoXml {

public static void main(String[] args) {
try{
//Aqui você informa o nome do arquivo XML.
File f = new File("exemplo.xml");
//Criamos uma classe SAXBuilder que vai processar o XML
SAXBuilder sb = new SAXBuilder();
//Este documento agora possui toda a estrutura do arquivo.
Document d = sb.build(f);
//Recuperamos o elemento root
Element blog = d.getRootElement();
//Recuperamos os elementos filhos (children)
List elements = blog.getChildren();
Iterator i = elements.iterator();

while (i.hasNext()) {
Element element = (Element) i.next();
System.out.println("Post:"+ element.getAttributeValue("Autor"));
System.out.println("Titulo:"+ element.getChildText("titulo"));
System.out.println("Data:"+ element.getChildText("data"));
System.out.println("Conteudo:"+ element.getChildText("conteudo"));
}
}catch (Exception e) {
}
}
}



Vitor Yudi Hansen

segunda-feira, 16 de maio de 2011

Restringir o acesso a uma página somente a pessoas logadas

<?php
// Inicia a SESSAO
@session_start();
// Verifica se todas as sessões estão setadas (Estas seções são setadas na hora do login)
if(isset($_SESSION['nome']) && isset($_SESSION['login']) && isset($_SESSION['senha']))

{  // Recebe os valores das seções e coloca em variaveis
   $nome        = $_SESSION['nome'];
   $login       = base64_decode($_SESSION['login']);
   $senha       = base64_decode($_SESSION['senha']);
   //exit;
}
else 
{  // Caso as seções não estejam setadas, mandamos o cliente para a pagina de login
   header("Location: login.php");
   exit();
}
?>

Vitor Yudi Hansen

Executando mais de um thread ao mesmo tempo

//file VariasThreads.java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

class Escrita implements Runnable {
 private int i;
 private static int cont=0;
 private int identificacao;
 static JTextArea textArea = new JTextArea(20,60);
 static JScrollPane scroller = new JScrollPane(textArea);
 
 public void run() {
  while(true) {
   String result = ("Thread Número (" + identificacao + ") " + i ++ + "\n");
   VariasThreads2.escreveResultado(result);
   try {
    Thread.sleep(500); 
   }
   catch(InterruptedException e) { }
  }
 } 
 
 public Escrita() {
  cont++;
  identificacao = cont; 
 }
}

public class VariasThreads2 {
 static JTextArea textArea = new JTextArea(10,20);
 static JScrollPane scroller = new JScrollPane(textArea);
 
 public static void main(String[] args) {
  new Thread(new Escrita()).start();
  new Thread(new Escrita()).start();
  JOptionPane.showMessageDialog(null, scroller, "Várias Threads 2", JOptionPane.PLAIN_MESSAGE); 
 }
 
 public static void escreveResultado(String result) {
  textArea.append(result);
 }
}


Vitor Yudi Hansen

Validar CPF PHP

<?php

// Função que valida o CPF
function validaCPF($cpf)
{ // Verifiva se o número digitado contém todos os digitos
    $cpf = str_pad(ereg_replace('[^0-9]', '', $cpf), 11, '0', STR_PAD_LEFT);

// Verifica se nenhuma das sequências abaixo foi digitada, caso seja, retorna falso
    if (strlen($cpf) != 11 || $cpf == '00000000000' || $cpf == '11111111111' || $cpf == '22222222222' || $cpf == '33333333333' || $cpf == '44444444444' || $cpf == '55555555555' || $cpf == '66666666666' || $cpf == '77777777777' || $cpf == '88888888888' || $cpf == '99999999999')
{
return false;
    }
else
{   // Calcula os números para verificar se o CPF é verdadeiro
        for ($t = 9; $t < 11; $t++) {
            for ($d = 0, $c = 0; $c < $t; $c++) {
                $d += $cpf{$c} * (($t + 1) - $c);
            }

            $d = ((10 * $d) % 11) % 10;

            if ($cpf{$c} != $d) {
                return false;
            }
        }

        return true;
    }
}
// Verifica se o botão de validação foi acionado
if(isset($_POST['btvalidar']))
{// Adiciona o numero enviado na variavel $cpf_enviado, poderia ser outro nome, e executa a função acima
$cpf_enviado = validaCPF($_POST['cpf']);
// Verifica a resposta da função e exibe na tela
if($cpf_enviado == true)
echo "CPF VERDADEIRO";
elseif($cpf_enviado == false)
echo "CPF FALSO";
}
?>
<html>
<head>
</head>
<body>
<form action="valida_cpf.php" method="post" name="cpf" id="cpf">
  CPF:
  <label>
  <input name="cpf" type="text" id="cpf" size="11" maxlength="11">
  </label>
  <label>
  <input name="btvalidar" type="submit" id="btvalidar" value="  Validar  ">
  </label>
</form>
</body>
</html>



Vitor Yudi Hansen

Transformar XML em um Array

<?php

/*
Este código pega conteúdo de qualquer arquivo xml e transforma em um array multidimensional.
Para utilizar, passe a URL ou caminho para o arquivo XML. Exemplo:
$array = xml2array('http://seusite.com.br/arquivo.xml',array());
*/

function xml2array($source,$arr){
    $xml = simplexml_load_string(file_get_contents($source));
    $iter = 0;
        foreach($xml->children() as $b){
                $a = $b->getName();
                if(!$b->children()){
                        $arr[$a] = trim($b[0]);
                }
                else{
                        $arr[$a][$iter] = array();
                        $arr[$a][$iter] = xml2phpArray($b,$arr[$a][$iter]);
                }
        $iter++;
        }
        return $arr;
}
?>


Vitor Yudi Hansen

Transformar XML em um Array

<?php

/*
Este código pega conteúdo de qualquer arquivo xml e transforma em um array multidimensional.
Para utilizar, passe a URL ou caminho para o arquivo XML. Exemplo:
$array = xml2array('http://seusite.com.br/arquivo.xml',array());
*/

function xml2array($source,$arr){
    $xml = simplexml_load_string(file_get_contents($source));
    $iter = 0;
        foreach($xml->children() as $b){
                $a = $b->getName();
                if(!$b->children()){
                        $arr[$a] = trim($b[0]);
                }
                else{
                        $arr[$a][$iter] = array();
                        $arr[$a][$iter] = xml2phpArray($b,$arr[$a][$iter]);
                }
        $iter++;
        }
        return $arr;
}
?>


Vitor Yudi Hansen

Validar Cpf e CNPJ

public class CNP {
private static final int[] pesoCPF = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2};
private static final int[] pesoCNPJ = {6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2};

private static int calcularDigito(String str, int[] peso) {
int soma = 0;
for (int indice=str.length()-1, digito; indice >= 0; indice-- ) {
digito = Integer.parseInt(str.substring(indice,indice+1));
soma += digito*peso[peso.length-str.length()+indice];
}
soma = 11 - soma % 11;
return soma > 9 ? 0 : soma;
}

public static boolean isValidCPF(String cpf) {
if ((cpf==null) || (cpf.length()!=11)) return false;

Integer digito1 = calcularDigito(cpf.substring(0,9), pesoCPF);
Integer digito2 = calcularDigito(cpf.substring(0,9) + digito1, pesoCPF);
return cpf.equals(cpf.substring(0,9) + digito1.toString() + digito2.toString());
}

public static boolean isValidCNPJ(String cnpj) {
if ((cnpj==null)||(cnpj.length()!=14)) return false;

Integer digito1 = calcularDigito(cnpj.substring(0,12), pesoCNPJ);
Integer digito2 = calcularDigito(cnpj.substring(0,12) + digito1, pesoCNPJ);
return cnpj.equals(cnpj.substring(0,12) + digito1.toString() + digito2.toString());
}

public static void main(String[] args) {
System.out.printf("CPF Valido:%s \n", CNP.isValidCPF("01115375502"));
System.out.printf("CNPJ Valido:%s \n", CNP.isValidCNPJ("13642634756318"));
}
}


Vitor Yudi Hansen

Válidar CPF JAVASCRIPT

function valida_cpf(cpf){
      var numeros, digitos, soma, i, resultado, digitos_iguais;
      digitos_iguais = 1;
      if (cpf.length < 11)
            return false;
      for (i = 0; i < cpf.length - 1; i++)
            if (cpf.charAt(i) != cpf.charAt(i + 1))
                  {
                  digitos_iguais = 0;
                  break;
                  }
      if (!digitos_iguais)
            {
            numeros = cpf.substring(0,9);
            digitos = cpf.substring(9);
            soma = 0;
            for (i = 10; i > 1; i--)
                  soma += numeros.charAt(10 - i) * i;
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0))
                  return false;
            numeros = cpf.substring(0,10);
            soma = 0;
            for (i = 11; i > 1; i--)
                  soma += numeros.charAt(11 - i) * i;
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1))
                  return false;
            return true;
            }
      else
            return false;
}


Vitor Yudi Hansen

quarta-feira, 11 de maio de 2011

Importar e Exportar arquivo .txt

Código para Ler arquivo .txt
ou gravar!



import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;
public class ManipularArquivo {
    public static  void arquivoSalvar(String endereco, String nome, String conteudo) throws IOException{
        File diretorio = new File("endereco");
        diretorio.mkdir();
       
        if (diretorio.isDirectory()){
        FileWriter arquivo = new FileWriter(endereco+Nome+".txt", false);
        arquivo.write(conteudo);
        arquivo.close();
       
        }
    }
    public static String arquivoAbrir() throws IOException{
        FileReader arquivo = new FileReader("ArquivoSalvo");
        String conteudo = "";
        int i;
        while ((i = arquivo.read())!=-1) {
            conteudo += (char)(i);
        }
       
        arquivo.close();
        return conteudo;
    }
}



Vitor Yudi Hansen

terça-feira, 10 de maio de 2011

Pioneer lança GPS com realidade aumentada

A Pioneer do Japão lançou uma série de aparelhos de GPS com realidade aumentada. Os modelos AVIC-VH09CS, AVIC-VH09, AVIC-ZH09CS e AVIC-ZH09 serão os primeiros do mundo a ter esse recurso, de acordo com a fabricante.
Os navegadores funcionarão em conjunto com uma câmera instalada na parte externa do para-brisa do carro. O sistema fará capturas que são exibidas em tempo real no GPS. A tela do aparelho combina as imagens com instruções, como setas, e marcadores de tempo e velocidade.
Além da realidade aumentada, os aparelhos terão tela Wide VGA, receptor de TV digital e Bluetooth, leitor de CD e DVD, interface para cartão de memória e conexão USB. Serão, enfim, centros de mídia para os carros.
Os quatro aparelhos de GPS estarão disponíveis no Japão até o fim de maio, diz a Pioneer. A empresa ainda não divulgou os preços.

Fonte: http://info.abril.com.br/noticias/blogs/gadgets/gps/pioneer-lanca-gps-com-realidade-aumentada/


Vitor Yudi Hansen

segunda-feira, 9 de maio de 2011

Busque recursos para sua startup

SÃO PAULO - Empreendedores com uma grande ideia na cabeça e um projeto bem desenhado podem recorrer a diversos fundos de investimento para conseguir o capital necessário para colocar seu plano em prática.

Na edição de maio da INFO, uma reportagem conta como recursos de empresas de venture capital, investidores-anjo e até do governo têm impulsionado negócios digitais inovadores.
A matéria mostra que estamos num momento tão bom para as startups que chega a sobrar dinheiro no mercado, à espera de iniciativas diferenciadas.

No site da INFO, publicamos uma relação de sites que podem ajudar empreendedores a conseguir apoio para seu projeto tornar-se realidade.

Uma dica preciosa dos especialistas é ter um plano de negócios consistente para conseguir convencer os investidores.

 - Investidores-anjo


 

Aceleradora
São Paulo Anjos
Gávea Angels
Floripa Angels


 - Fundos de capital semente
Criatec

Inovar Semente

 - Investimento público e incubadoras
Prime, da Finep  
Pipe, da Fapesp 
Cietec 
Inova Unicamp

 - Fundos de Venture Capital
Astella Investimentos
Benchmark Capital 
FIR Capital 
Confrapar 
Intel Capital
Monashees Capital

- Notícias sobre empreendedorismo
ReadWriteWeb
Startupi

- Dicas e aconselhamento
Manual da Startup 
Brazil Innovators 
Endeavor Brasil 
Anprotec 
Microsoft BizSpark 
BR New Tech

- Competições
Desafio Brasil
Startup Weekend
Campuseiros Empreendem


http://info.abril.com.br/noticias/mercado/busque-recursos-para-sua-startup-09052011-44.shl

Vitor Yudi Hansen

Inverter Link PHP

Código para inverter links em php

<?php


if ($link = $_POST["link"]) {
    $tamanho = strlen($link) - 1;
    $aux = $link;


    for ($i=0; $i <= $tamanho; $i++) {
   
        $aux[$i] = $link[$tamanho - $i];
    
    }

    $link = $aux;

    $aux = "";

    if (substr_count($link,"http://"))
        echo "<a href='$link'>$link</a><br>";
    else
        echo "<a href='http://$link'>$link</a><br>";
}
else
  echo "Escolha Um Link.<br>";

echo "</center>";

?>

Vitor Yudi Hansen

Detectando dispositivos móveis

 Um script simples para detectar dispositivos moveis!

<script language="JavaScript">
function isMob(){
 var a = navigator.userAgent||navigator.vendor||window.opera;
 if(/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|mobile|o2|opera m(ob|in)i|palm( os)?|p(ixi|re)\/|plucker|pocket|psp|smartphone|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce; (iemobile|ppc)|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(a))
  return true;
 else
  return false;
}

/* Exemplo Função */
alert("Celular : " + isMob());
</script>


Vitor Yudi Hansen

Código para leitura dados de um RSS externo com PHP

Nesse Post faremos um código para ler dados rss

bem simples e bem fácil de alterar!!


<?php

ini_set('http://rss.noticias.uol.com.br/ultnot/index.xml', 0);

$max = 3; // $max e o numero de noticias q vc quer exibir 
$cont = 0; // limita a noticias

// caminho da fonte  RSS
$FonteRSS = 'http://rss.noticias.uol.com.br/ultnot/index.xml';

// Converte um arquivo XML em um objeto
$XML = simplexml_load_file( $FonteRSS );

// lista o conteúdo do arquivo RSS

foreach ( $XML->channel->item as $item )
{

if($cont < $max){
print 
        '<div id="not"><a class="link" href="' .
        utf8_decode($item->link) . '"target="_blank">' .
        utf8_decode($item->title)."</div>";
}
$cont++;
}        

?>
 

Vitor Yudi Hansen

Golpe do iPad faz vítimas no Facebook

SÃO PAULO - Usuários do Facebook estão recebendo ofertas de um iPad grátis para testes. Mas o tablet é apenas uma isca para levar as pessoas a revelar seus dados pessoais, como endereço residencial e e-mail.

O ataque foi relatado pela BitDefender, empresa especializada em segurança. Ele emprega um caminho tortuoso, com duas iscas para enganar o usuário. Primeiro, a pessoa recebe uma notificação em sua página do Facebook e um e-mail informando que ela foi nomeada administradora de uma determinada conta na rede social. A ideia é levar a vítima a visitar a página onde estariam os detalhes sobre essa mudança de conta.

A página aparenta ser do Facebook, mas foi criada pelos cibercriminosos. O usuário é, então, redirecionado a outra página maligna, onde recebe a oferta de experimentar um iPad 2, da Apple. O site informa que a Apple estaria oferecendo 10 mil tablets para os usuários fazerem um test drive. Para receber o seu, a pessoa deve preencher um formulário com vários dados pessoais, incluindo seu endereço residencial, para onde seria enviado o iPad.

A nova ameaça vem se juntar a outros tipos de ataques que já vêm acontecendo no Facebook, como os aplicativos malignos que enganam o usuário. "Esse golpe é muito agressivo e eficiente porque usa dois mecanismos de divulgação específicos do Facebook que dão boa visibilidade: notificações e e-mail direto", avalia Catalin Cosoi, chefe do Laboratório da BitDefender de ameaças online.

O ataque também tem a peculiaridade de empregar duas iscas: a curiosidade sobre a página que a pessoa teria passado a administrar e o iPad. Para evitar a armadilha, a primeira – e óbvia – recomendação é não preencher o tal formulário. Em segundo lugar, a pessoa deve remover seu nome da lista de administradores da página maligna. As instruções para isso estão disponíveis no próprio Facebook.

http://info.abril.com.br/noticias/seguranca/golpe-do-ipad-faz-vitimas-no-facebook-08052011-6.shl

Vitor Yudi Hansen

sábado, 7 de maio de 2011

Android domina mercado de smartphones

HELSINQUE - A plataforma Google Android subiu à posição dominante no mercado de celulares inteligentes no primeiro trimestre, informou ontem o grupo de pesquisa Canalys, ampliando sua vantagem sobre a Nokia.
A notícia destaca a velocidade com que o Google, que oferece seu software gratuitamente aos fabricantes de celulares, chegou à liderança no mercado de celulares inteligentes, deixando para trás também a Apple.
Google e Apple revolucionaram o mercado de celulares inteligentes em poucos anos, causando sérios problemas para a antiga líder de mercado Nokia.
HTC, Samsung Electronics, Sony Ericsson, Motorola Mobility e LG Electronics estão todas apostando no Google Android para construir posição forte no mercado de celulares inteligentes, que cresce rapidamente.
A Canalys informou que o mercado de celulares inteligentes avançados cresceu em 83 por cento no primeiro trimestre, ante o mesmo período em 2010, atingindo os 101 milhões de unidades vendidas.
Enquanto a plataforma de software do Google ampliava sua participação a 35 por cento, ante menos de 10 por cento um ano antes, a plataforma Nokia Symbian registrava queda de 45 por cento para 26 por cento do mercado.
O levantamento da Canalys indicava que o Android já havia conquistado a liderança do mercado no quarto trimestre, mas a distância era pequena e outros analistas ainda consideravam que a Symbian detivesse a liderança do mercado.
Para tentar reparar sua posição debilitada nos celulares inteligentes, a Nokia anunciou em fevereiro um acordo para usar o software Microsoft Windows Phone em seus aparelhos, em lugar do Symbian.
A Canalys avalia que esse anúncio tenha enfraquecido ainda mais a posição da Nokia nos mercados em que as operadoras distribuem celulares aos clientes.
As vendas de celulares inteligentes da Nokia no primeiro trimestre caíram em 20 por cento em seu mercado de origem, a Europa Ocidental, com relação ao primeiro trimestre de 2010.
http://info.abril.com.br/noticias/mercado/android-domina-mercado-de-smartphones-05052011-2.shl

Vitor Yudi Hansen

Livre-se do SQL

Introdução
Hibernate é um mecanismo bem simples e poderoso que permite a persistência de objetos em banco de dados relacionais de maneira transparente e para qualquer tipo de aplicação Java (seja ela web-based ou desktop-based). Ou seja, ao invés de perder tempo escrevendo SQL, misturando estas consultas no meio do seu código Java e ficar mapeando o resultado de suas consultas para objetos, com o Hibernate você vai precisar se preocupar somente com seus objetos. Além disso, o processo de desenvolvimento usando Hibernate é muito mais simples do que usar JDBC puro. Com Hibernate, você só tem estes 5 passos:
  • criar a tabela no seu banco de dados onde os objetos vão persistir;

  • criar o objeto cujo estado vai ser persistido;

  • criar um XML, que relaciona as propriedades do objeto aos campos na tabela

  • criar um arquivo contendo as propriedades para que o Hibernate se conecte ao bando de dados

  • criar a classe DAO que vai persistir seu objeto; Simples? Muito. Então vamos por nossos dedos para trabalhar um pouco. Para o exemplo deste tutorial, estarei usando o como banco de dados o MySQL, mas pode ser substituído por qualquer um da sua preferência. O Hibernate pode ser encontrado no endereço http://hibernate.sf.net; A versão usada neste exemplo é a 1.2.4

  • Criando a tabela e a classe
    Vamos começar definindo uma tabela simples no banco de dados.
    CREATE TABLE 'amigos'(
    'nome' varchar(40) NOT NULL DEFAULT '',
    'endereco' varchar(60) NOT NULL DEFAULT '',
    'fone' varchar(11) DEFAULT NULL,
    'cel' varchar(11) DEFAULT NULL,
    'email' varchar(70) DEFAULT NULL,
    'nascimento' datetime DEFAULT NULL,
    PRIMARY KEY  (`nome`)
    );
    nota: esse passo pode ser pulado, se você utilizar as ferramentas que acompanham o Hibernate, que já geram o código de criação das tabelas (SchemaExport). Pronto. Uma tabela para que eu possa guardar os dados dos meus amigos, como se fosse uma agenda. Agora vamos para o próximo passo, que é a reprensentação disso em forma de objeto em Java. Como o Hibernate trabalha através de reflexão para fazer o mapeamento, temos que "beanificar" nosso objeto. Assim:
    public class Amigo {
    private String nome;
    private String endereco;
    private String telefone;
    private String celular;
    private String email;
    private java.util.Date nascimento;
     
    public Amigo() {
    }
     
    public String getNome(){
    return nome;
    }
     
    public void setNome(String nome){
    this.nome = nome;
    }
     
    // os outros métodos get/set vão aqui...
     
    public java.util.Date getNascimento(){
    return nascimento;
    }
     
    public void setNascimento(java.util.Date nascimento){
    this.nascimento = nascimento;
    }
     
    }
    Nada muito complicado até aqui, certo? Criamos uma tabela e um bean que "representa" o esquema desta nossa tabela. Então nos falta informar ao Hibernate como juntar os dois. Para fazermos isso, é preciso criar um arquivo de mapeamento, cujo nome deve ser sempre "NomeDoObjeto.hbm.xml" (no nosso caso, "Amigo.hbm.xml"); cada objeto a ser persistido tem seu próprio arquivo de mapeamento.
    O XML que faz o mapeamento
    O modelo para o nosso Amigo.hbm.xml segue abaixo:
    Coisas para as quais deve se ter atenção:
  • o atributo "name", da tag "class" - o valor de "name" inclui o nome completo do objeto, incluindo seu package (ou seja, x.y.z.MeuObjeto). É nesta tag que dizemos qual tabela se relaciona com qual objeto (através do atributo "table");

  • a tag "property" - o atributo "name" se refere à propriedade no nosso Bean, enquanto o atributo "column" se refere à coluna no nosso banco de dados (este última é opcional: se você deixá-la em branco, o Hibernate vai procurar por uma coluna cujo nome seja igual ao da propriedade do seu bean). O atributo "type" também é opcional e se refere ao tipo de dado da propriedade do seu bean;

  • a tag ID - sim, tem a ver com o mapeamento da chave primária da sua tabela. E o mapeamento é semelhante ao feito nas tags "property"; Agora, vamos criar o arquivo de configuração para que o Hibernate possa se conectar ao banco de dados. Este arquivo é um arquivo .properties bem comum, com os seguintes campos:

  • hibernate.connection.driver_class = org.gjt.mm.mysql.Driver # o driver
    hibernate.connection.url = jdbc:mysql://localhost:3306/agenda # a url
    hibernate.connection.username = daniel # o username
    hibernate.connection.password = senha # a senha
    Dê a ele o nome que você quiser (agenda.properties, por exemplo). Porém, se você der a este arquivo o nome de hibernate.properties e colocá-lo no seu classpath, o Hibernate irá carregá-lo automaticamente durante a início do programa. Até aqui temos:
  • uma tabela no banco de dados chamada Amigos;

  • um simples objeto que queremos persistir, chamado Amigo;

  • um arquivo para relacionar nosso objeto Amigo com a tabela Amigos;

  • as propriedades para que o Hibernate possa se conectar ao banco de dados;

  • Manipulando os dados

    Agora vamos brincar de persistir, criando nosso DAO!!!
    import cirrus.hibernate.*;
    import java.util.Date;
     
    public class AmigoDAO{
     
     private SessionFactory factory;
     
     public AmigoDAO() throws Exception{
      Datastore datastore = Hibernate.createDatastore();
      datastore.storeClass(Amigo.class);
      factory = datastore.buildSessionFactory();
     }
     
     public void insert(Amigo amigo) throws Exception{
      Session session = factory.openSession();
      session.save(amigo);
      session.flush();
      session.close();
     }
     
     public java.util.List getList(String condicao) throws Exception{
      Session session = factory.openSession();
      List amigos = session.find(condicao);
      session.flush();
      session.close();
      return amigos;
     }
     
     public Amigo retrieve(String pk) throws Exception{
      Session session = factory.openSession();
      Amigo amigo = (Amigo)session.load(Amigo.class, pk);
      session.flush();
      session.close();
      return amigo;
     }
     
     public void delete(Amigo amigo) throws Exception{
      Session session = factory.openSession();
      session.delete(amigo);
      session.flush();
      session.close();
     }
    }
    Bom, algumas coisas acima tem que ser ressaltadas:
  • em datastore.storeClass(Amigo.class);, o Hibernate assume que o arquivo de mapeamento está no mesmo diretório e possui o mesmo nome da classe Amigo. Caso algum destes requisitos não for atendido, use "datastore.storeClass();";

  • factory = datastore.buildSessionFactory();, aqui o Hibernate novamente assume que há um arquivo hibernate.properties no seu classpath. Senão for o caso, forneça um objeto do tipo java.util.Properties como parâmetro, contendo os dados necessários para que o Hibernate possa montar sua conexão;

  • session.find(condicao);: a condição é uma String que possui uma estrutura muito semelhante ao SQL e serve para que o Hibernate consiga identificar uma lista de objetos que cumpram suas exigências. A estrutura é esta:

  • from  in class  where
    O Hibernate possui uma query language própria, orientada a objetos. Bom, este é quase um "hello world" para se trabalhar com o Hibernate. Algumas coisas, como controle de transação e foreign keys, não foram abordadas e vão ficar para um próximo tutorial. A finalidade deste aqui é só a de mostrar uma alternativa ao "JDBC puro" na construção de sistemas que precisem de banco de dados como meio de persistência. Dúvidas, críticas, erros, usem o nosso fórum. p.s.: Devido ao fato de muitos estarem usando a versão 2 do Hibernate, é preciso se atentar às mudanças entre as duas versões, como a alteração do nome dos pacotes (de cirrus.hibernate.* para net.sf.hibernate), entre outras coisas. Para maiores informações sobre como portar suas aplicações da versão 1.x.x do Hibernate para a versão 2.x.x, visite: http://hibernate.org/68.html.
    Fonte: http://guj.com.br/

    Vitor Yudi Hansen