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.
InfoBytes
Informação em pequenos pedaços.
terça-feira, 21 de setembro de 2010
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:
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.
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!
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
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
'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:
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:
Após isso, através da função SelectSingleNode, conseguimos encontrar a informação que queremos.
Deste modo colocaremos o valor 'teste' na variável texto.
Muito simples, não?? Até a próxima!
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>
<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")
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");
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()
Dim texto as string
texto = arqXml.SelectSingleNode("//raiz/rotulo").InnerText()
C#
String texto;
texto arqXml.SelectSingleNode("//raiz/rotulo").InnerText();
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.
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).
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.
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!
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! :)
Neste blog você vai encontrar alguns de meus trabalhos e pensamentos particulares.
Espero que gostem! :)
Assinar:
Postagens (Atom)