terça-feira, 21 de setembro de 2010

Como retirar barra de anúncios do Grooveshark.

Grooveshark é um site de streaming de músicas para que você possa escutá-las em qualquer computador. Porém, existe uma barra de anúncios na direita que pode ser meio irritante.
Para resolver este problema criei um script que remove essa barra e aumenta o tamanho da tela do Grooveshark.

Para utilizar o script você precisa instalar a extensão do Firefox Greasemonkey.

O script pode ser baixado aqui.

quarta-feira, 3 de outubro de 2007

Mais um pouco de .NET

É, já faz tempo que não posto nada. Trabalho, faculdade, não é fácil. Parece que o dia fica cada vez mais curto. Mas, é a vida! :)

Que tal mais um pouco de VB.NET???

Então vamos lá!!

Criptografia de senhas

Eu ainda não tenho muita intimidade com .NET, mesmo porque mexo com ele há muito pouco tempo. Mesmo assim, posso mostrar um pouco do que estou aprendendo.

Estava em uma aula da faculdade fazendo parte de um trabalho. Comecei a tentar, através de algumas dicas pela internet, a fazer criptografia com MD5 em Java.

Funcionou que é uma beleza, só preciso passar pra uma classe, etc, etc...

Chegando em casa no mesmo dia, resolvi tentar fazer a mesma coisa e VB.NET, pra minha decepção, não consegui fazer logo de primeira. Também segui algumas dicas pela internet, mas nem assim me ajudaram...

Vamos ao código.

Primeiro vou mostrar o código da função para encriptar a senha:

Shared Function encriptaSenha(ByVal senhaPlana As String) _
As String

'Declaração da variável que possui os algoritmos _
'de criptografia

Dim md5 As New _
Security.Cryptography.MD5CryptoServiceProvider

'Declaração da variável para acesso aos bytes do _
'texto digitado

Dim A2 As New _
System.Text.ASCIIEncoding

'A função getBytes transforma as letras para a sua _
'representação em bytes

Dim bytes() As Byte = _
A2.GetBytes(senhaPlana)

'ComputeHash finalmente faz a criptografia e retorna _
'um array de bytes criptografados. Então, precisamos _
'de uma função para deixar isso mais "legível", _
'a toHex.

Return toHex(md5.ComputeHash(bytes))

End Function



A função toHex tem como entrada os bytes computados pelo ComputeHash do MD5. Então precisamos converter para hexadecimal, para que o armazenamento seja mais trivial.
Shared Function toHex(ByVal bytes() As Byte) As String
'String com todos os dígitos da base hexadecimal
Dim hexDigits As String = "0123456789abcdef"

Dim retorno As String = ""
'Para cada byte no vetor de bytes o looping abaixo _
'realiza a seguinte tarefa:
'Concatena com a string retorno o caractere que se _
'encontra na posição X e Y da string hexDigits, _
'onde X é a parte inteira da divisão de cada byte _
'por 16 (base hexadecimal) e Y é o resto da divisão _
'inteira entre cada byte por 16.

For Each bt As Byte In bytes
retorno &= hexDigits.ToCharArray.GetValue _
(CInt(Int(bt / 16))).ToString()
retorno &= hexDigits.ToCharArray.GetValue _
(CInt(Int(bt Mod 16))).ToString()
Next

Return retorno

End Function


Resumindo:

Devemos declarar uma variável como Security.Cryptography.MD5CryptoServiceProvider para calcular o hash (sequência de 16 bytes) que representa a string original criptografada.

Depois utilizamos a função toHex para converter o hash para a base hexadecimal.

Simples, rápido, fácil e ótimo para criptografar senhas!

Por enquanto é só, até a próxima!

segunda-feira, 17 de setembro de 2007

Começando em .NET

Essa é a primeria de uma série de dicas que irei postar. Sempre que me deparar com algo interessante em programação, ou qualquer outro assunto irei compartilhar minhas experiências.

Como programador VB6 sempre que precisava de algum dado simples de configuração para meus aplicativos utilizava os arquivos INI com acesso através das API's do Windows.

Entrando agora em .NET, queria a mesma funcionalidade. Mas já que estamos em outro nível de programação, nada mais justo do que procurar um modo mais estruturado de guardar essas informações. Foi aí que surgiu a idéia de buscar essas informações em um XML.

Pesquisei bastante no Google e encontrei diversos modos de acessar esse tipo de arquivo, porém só um deles me chamou a atenção. Pois, pelo que li, ele é o único que permite o acesso de escrita em XML também.

Bom, chega de papo, e mãos à obra.

O processo é extremamente simples.

Vamos supor que temos um arquivo "meuarquivo.xml" no "C:\", com a seguinte estrutura:

meuarquivo.xml
<raiz>
<rotulo>teste</rotulo>
</raiz>


Em VB.NET para carregar o arquivo você simplesmente tem que declarar uma variável como System.Xml.XmlDocument, depois utilizar a função Load para indicar qual arquivo deseja carregar. Ficando assim:

VB.NET
Dim arqXml As New System.Xml.XmlDocument
arqXml.Load("C:\meuarquivo.xml")
C#
System.Xml.XmlDocument arqXml = new System.Xml.XmlDocument();
arqXml.Load("C:\meuarquivo.xml");


Após isso, através da função SelectSingleNode, conseguimos encontrar a informação que queremos.

VB.NET
Dim texto as string
texto = arqXml.SelectSingleNode("//raiz/rotulo").InnerText()
C#
String texto;
texto arqXml.SelectSingleNode("//raiz/rotulo").InnerText();


Deste modo colocaremos o valor 'teste' na variável texto.

Muito simples, não?? Até a próxima!

sábado, 15 de setembro de 2007

Programação OpenGL

Estou no quinto semestre de ciências da computação no mackenzie.

Este semestre estou fazendo uma matéria que chama Introdução a Computação Gráfica. Tivemos um primeiro trabalho para mexer com fractais, e agora um segundo para criar uma aplicação em C++ que mostre um objeto 3D utilizando OpenGL.

Este aplicativo simplesmente lê as informações de um arquivo txt, onde dentro deste arquivo temos as coordenadas dos vértices do objeto e os vértices que fazem parte de uma face (triângulo).

Se quiser entender um pouco mais, brinque com as coordenadas do arquivo obj.txt, é simples. Caso queira, tente até criar algum objeto e utilizar o programa para mostrá-lo em 3D.

Os arquivos estão disponíveis no SkyDrive (drive virtual da Microsoft).

GLUT.exe
obj.txt

Até a próxima.

domingo, 2 de setembro de 2007

1º post de verdade

Esta é uma matéria que escrevi na época que trabalhava para o site Superdownloads. Ela foi escolhida por um representante de uma revista de TI do Paraguai, e publicada.

O link original pode ser acessado por aqui.


Diferenças das nomenclaturas de CD's e DVD's

Devido a grande popularização de drives de CD e DVD nos últimos anos, surgiram novas tecnologias de acesso a dados e muitas pessoas ficam em dúvida ou às vezes nem sabem do que se trata.

Essa matéria irá mostrar algumas diferenças entre as nomenclaturas das mídias de CD e DVD à venda hoje no mercado. Veja as diferenças e compatibilidades na tabela abaixo.


As denominações "-" e "+" nos DVD-R, DVD+R, DVD-RW e DVD+ significam o padrão do DVD. O DVD-R segue os padrões do DVD Fórum (http://www.dvdforum.com/forum.shtml), já o DVD+R segue os padrões do DVD+RW Alliance (http://www.dvdrw.com).

Para o usuário final, essas diferenças de padrão não têm tanta infl uência, mas acredita-se que um DVD no formato "+" tenha uma arquitetura melhor. A única diferença que afeta o usuário final é que existem drives de DVD que lêem discos no formato "-" mas não o formato "+". Os drives de DVD atuais geralmente possuem suporte aos dois formatos, mas ainda existem drives que apenas lêem o formato "-".

Single e Dual Layer


Normalmente os DVDs possuem apenas uma camada reflexiva, esse tipo de disco é chamado de Single Layer ou DVD-5 (imagem abaixo).


1: Rótulo do CD
2: Camada de policarbonato, um termoplástico usado para moldar CDs e DVDs. Ele é usado por possuir as propriedades óticas e mecânicas necessárias.
3: Camada de união entre duas faces.
4: Camada refl exiva onde os dados são armazenados.




Tanto o DVD-R(W), +R(W) e -RAM possuem outras versões chamadas de Dual Layer (DL). O Dual Layer é um outro modo de produção de DVDs onde o disco possui mais de uma camada refl exiva (ou gravável), isso aumenta bastante o tamanho de armazenamento de um DVD.

Tipos de Dual Layer

Existem também diferentes tipos de Dual Layer que são chamados de DVD-9, DVD-10, DVD-14 e DVD-18 (imagem da esquerda).










DVD-9: Possui duas camadas e um lado, o outro lado é a impressão do fabricante. Sua capacidade é de 8.5 GB.

1: Rótulo do CD.
2: Camada de policarbonato, um termoplástico usado para moldar CDs e DVDs.Ele é usado por possuir as propriedades óticas e mecânicas necessárias.
3: Camada reflexiva onde os dados são armazenados.
4: Camada de união entre duas faces.
5: Camada semi-reflexiva onde os dados são armazenados.

DVD-10: Possui uma face de gravação para cada lado e uma camada por face, ou seja, o DVD não possui nenhuma imagem impressa em sua superfície. Sua capacidade é de 9.4 GB.

1: Camada de policarbonato, um termoplástico usado para moldar CDs e DVDs. Ele é usado por possuir as propriedades óticas e mecânicas necessárias.
2: Camada reflexiva onde os dados são armazenados.
3: Camada de união entre duas faces.
4: Camada semi-reflexiva onde os dados são armazenados.

Outros tipos (menos conhecidos) de DVD Dual Layer

DVD-14: Possui duas faces, uma com duas camadas e a outra com apenas uma. Este DVD também não possui nenhuma imagem impressa na superfície. Sua capacidade é de 13.2 GB.

DVD-18: Possui duas faces e duas camadas. Sua capacidade é de 17.1 GB.

E assim, termino esta matéria esperando que tenha ajudado a entender (pelo menos um pouco) as diferenças entre as nomenclaturas dos tipos e formatos de CD e DVD existentes.


Abraços e até a próxima!

1º post

Esse é meu primeiro post, só para anunciar o que está por vir.

Neste blog você vai encontrar alguns de meus trabalhos e pensamentos particulares.

Espero que gostem! :)