Archive for fevereiro de 2009
[TECH] Interface 3D para celulares
Não pude deixar de postar sobre essa nova tecnologia de Interface 3D para celulares. Interessante, não?
Veja o vídeo abaixo:
3D Eyetracking UI (ramalhoblog.com) from Ramalho Blog on Vimeo.
Fonte: Ramalho Blog
[ORACLE] Sugestão de softwares
Gostaria de apresentar três softwares que utilizo muito para manipulação de dados e administração do banco Oracle. Todos são bem completos e trabalham perfeitamente. Possuem suas versões free e não deixam nada a desejar. Podemos conferir pelas screenshots. Somente o PL/SQL Developer possui seu tempo de uso antes que solicitem que adquira o software.
Benthic Golden
download aqui
Toad for Oracle
download aqui
PL/SQL Developes
download aqui
[PYTHON] Conexão com Oracle
Um pequeno exemplo de como se conectar ao banco Oracle utilizando a biblioteca cx_Oracle para Python. Antes de mais nada, utilizei para este exemplo a versão 2.5 do Python e o Oracle 10g. Para fazer download da biblioteca cx_Oracle, o link está no final do post.
Abaixo as linhas de código em Python. Repare na linha 12 a instrução comentada cursor.execute(“commit”), como você já deve ter imaginado, serve para comitar uma alteração na tabela. Nesse caso a linha está comentada pois nosso exemplo faz apenas uma consulta ao banco. O exemplo é auto explicativo, basta ver as linhas, mas em especial a linha 10, fiz com que imprimisse no console o registro 1, coluna 0. Se a consulta retornasse mais de um registro, poderíamos buscar do cursor linha[1][0], que seria: registro 2, coluna 0. E assim por diante. Veja:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # -*- coding: cp1252 -*- import cx_Oracle db = cx_Oracle.connect('LOGIN','SENHA', 'BANCO') cursor = db.cursor() comando = 'CONSULTA SQL. EX.: SELECT * FROM CONSUMIDORES' cursor.execute(comando) linha = cursor.fetchall() print linha[0][0] #cursor.execute("commit") cursor.close() db.close() |
[JAVA] Trabalhando com Classes Abstratas
É muito simples trabalhar com clases abstratas. Uma classe abstrata nada mais é do que uma especificação conceitual para outras classes. O que isso que dizer? Que nunca iremos instanciá-la. Ela apenas fornece um modelo para geração de outras classes. Esta nunca está completa, ou seja, servirá apenas para criação de funcionalidades genéricas de casses filhas. Podemos também chamar as classes abstratas de super classe.
Sem complicações, o basico é isso! Disponibilizei no final do post um link para download das classes exemplificadas aqui.
Agora a parte prática. Todos os arquivos poderão ficar no mesmo nível de diretório.
A hierarquia das classes deste exemplo estão da seguite forma (somente estrutura, e não definição de atributos e métodos):

[JAVA] Definindo uma package
Se você ainda não sabe como trabalhar packages em Java, aqui demonstro um exemplo bem fácil em como fazer essa estrutura. Logo no final disponibilizo os fontes para download.
A estrutura dos arquivos demonstrados estão da seguinte forma:
|Pasta1
|-ClasseSub.java
|Principal.java
O que isso quer dizer? Que na pasta principal está o arquivo Principal.java e o diretório Pasta1 (que será nossa package). Dentro de Pasta1 contém a classe ClasseSub.java. Uma package não passa de uma pasta física em seu HD, vamos dizer assim.
Salvo o código abaixo como Principal.java dentro de uma pasta qualquer:
1 2 3 4 5 6 7 8 9 10 | import Pasta1.*; public class Principal{ public static void main(String args[]){ ClasseSub char1 = new ClasseSub("Daniel"); String resNome = char1.getNome(); System.out.println ("Nome: " + resNome); } } |
O mais importante aqui é você reparar na linha 1, importamos todo o conteúdo (*) da package Pasta1 para nosso projeto. Agora podemos utilizar qualquer classe que esteja lá dentro.
Agora, o código da classe interna, ClasseSub.java, salve dentro da package Pasta1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package Pasta1; public class ClasseSub { private String charNome; // CONSTRUTORES public ClasseSub(){ charNome = "Sem Nome"; } public ClasseSub(String nome){ charNome = nome; } // FIM CONSTRUTORES public String getNome(){ return charNome; } } |
A única regra diferente de uma classe normal é a definição de package na linha 1. A classe ClasseSub precisa conhecer onde ela está localizada, por isso da definição. Compile tudo e arquivos .class serão gerados. Agora é só testar seu funcionamento. Simples e rápido, não?
Tecnologia e desenvolvimento
Just another WordPress blog? Hehe sempre achei essa frase utilizada para os blogs em início um tanto desrespeitoso. Não quero que seja apenas mais um blogs, concorda? Ninguém que está iniciando um blog deseja que seja apenas mais um.
Bom, mas sem linguiça. Meu nome é Daniel Accorsi, mantenedor também do blog Alvo Conhecimento. Formado em Tecnologis em Processamento de Dados na UniFil / Londrina e louco por compartilhar conhecimento.
Criei mais esse blog, como sub-dmínio de ciin.com.br para compartilhar um pouco sobre tecnologia e principalmente desenvolvimento, tanto web como desktop nas mais variadas linguagens. Essa necessidae surgiu com meu dia-a-dia desvendando soluções para os problemas mais cabeludos, mensagens de colegas com dicas para a área e estudos particulares de outras linguagens que não fazem parte de meu trabalho (oficial). Aproveite e participe com comentários e sugestões.
Afinal, o que é ciin.com.br? CiiN é a empresa na qual sou proprietário junto com minha noiva (formada em jornalismo com pós em marketing) e conseguimos unir surpreendentemente as duas áreas. Infelizmente o site está fora por enquanto, estamos fazendo uma reformulação geral, aviso aqui quando estiver pronto.
Espero que gostem! Indico de início um post que escrevi sobre a cultura colaborativa no Brasil, veja.


