Blog do GirinoVey
De GirinoWiki
Ver (anteriores 10) (próximos 10) (20 | 50 | 100 | 250 | 500).
implementação da transformada discreta de cosseno em javaMais uma busca que caia no meu site. Provavelmente por causa do artigo Transformada discreta de cosseno, e dos diversos artigos com código java. Para não deixar o público na mão, resolvi implementar :) Quem quiser mais detalhes sobre o que é isso e pra que serve leiam o artigo: public class dct { /** * Calcula a DCT (Transformada Discreta de Cosseno) de uma matriz * quadrada NxN. * Este código não é otimizado, para possíveis otimizações, * definições e detalhes, veja * http://www.girino.org/mediawiki/index.php/Transformada_discreta_de_cosseno * * @param img a matriz (imagem) a ser codificada. * @param size o tamanho da matriz. * @return a matriz transformada. **/ public static double[][] dct(double[][] img, int size) { double[][] ret = new double[size][size]; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { ret[i][j] = 0; for (int x = 0; x < size; x++) { for (int y = 0; y < size; y++) { double tmp = img[x][y]; tmp *= Math.cos((2*y + 1) * j * Math.PI/(2*size)); tmp *= Math.cos((2*x + 1) * i * Math.PI/(2*size)); ret[i][j] += tmp; } } ret[i][j] *= 1.0/Math.sqrt(2*size); ret[i][j] *= i==0?1.0/Math.sqrt(2):1.0; ret[i][j] *= j==0?1.0/Math.sqrt(2):1.0; } } return ret; } /** Matriz de exemplo usada no método main() **/ public static double[][] test = { {1. , 19. , 37. , 55. , 73. , 91. , 109. , 127.}, {19. , 37. , 55. , 73. , 91. , 109. , 127. , 145.}, {37. , 55. , 73. , 91. , 109. , 127. , 145. , 163.}, {55. , 73. , 91. , 109. , 127. , 145. , 163. , 181.}, {73. , 91. , 109. , 127. , 145. , 163. , 181. , 199.}, {91. , 109. , 127. , 145. , 163. , 181. , 199. , 217.}, {109. , 127. , 145. , 163. , 181. , 199. , 217. , 235.}, {127. , 145. , 163. , 181. , 199. , 217. , 235. , 253.} }; /** Exemplo. Executa o DCT na matriz de exemplo e imprime o resultado **/ public static void main(String[] args) { double[][] tmp = dct(test, 8); for (int i = 0; i < 8; i ++) { for (int j = 0; j < 8; j++) { System.out.print(tmp[i][j]); System.out.print(", "); } System.out.print("\n"); } } }
|
Tarefa de hoje
Vou tentar baseado nesse carinha aqui: http://xubuntublog.wordpress.com/2007/06/17/ubuntu-feisty-on-your-usb-drive-finally/ Claro que não vou seguir a risca, tenho de colocar meus desafios:
Vamos ver se dou conta. --GirinoVey 00:03, 5 Agosto 2007 (BRT)
Não consegui rodar no vmware, vou tentar rodar no micro "normal" GirinoVey 02:20, 5 Agosto 2007 (BRT)
aah, eu gosto do Kurumin, é bunitinho! :D --Lady--201.62.217.246 01:05, 5 Agosto 2007 (BRT) |
Arquivos grandes, DVD e linuxResolvi aposentar meu antigo "servidor" aqui de casa. Era meu micrinho velho que ficava ligado 24h por dia rodando meu site, baixando meus torrents etc. Só que agora eu tenho um site só meu (esse, duh) e não preciso mais de um servidor em casa. Resultado? Aposentei ele. Só que pra aposentar eu tinha de backupear as porcarias todas! Não tive a menor dúvida, gerei uma imagem do HD (era de 10Gb só) e compactei ela. Deu menos de 4Gb compactado!!! É só gravar em DVD. Aí é que o bicho pegou! No meu bom e velho Ubuntu, fui em "Places"->"CD/DVD Creator", arrastei os arquivos pra lá, coloquei o DVD virgem no drive, cliquei em "Burn", e em menos de 30 segundos o bichinho me avisa que tava gravado!
Fui conferir, e o DVD tava vazio! ARGH! perdi um DVD atoa! E nem mensagem de erro nem nada! Foda!!!! Fiz dúzias de testes, tentando gerar ISO, olhando o resultado... Sempre vazio. Baixei outro gravador de DVD, um tal de GnomeBaker, e esse pelo menos tinha a decência de não me deixar incluir o arquivo que eu queria. Gerei ISOs com arquivos menores e ia tudo numa boa, com o meu arquivão, nada! Aí bateu uma luz: será que tem limite de tamanho de arquivo no DVD? Por isso que os filmes vem sempre quebradinhos em arquivos menores, um por "capítulo"? Não tive dúvidas:
Agora com meus 8 arquivinhos de 500 mega, gerei o ISO, e ... tcharam!!! Tudinho dentro do iso! Foi só clicar com o botão direito, "open with CD/DVD Creator..." e sair pro abraço!!! --GirinoVey 11:14, 15 Julho 2007 (BRT) |
Dicas de JavascriptAcabei de escrever o artigo O que aprendi em javascript, com as dicas do que eu tive de aprender para implementar os fractais que eu queria em javascript. Basicamente são 4 dicas:
Resolvi deixar registrado só porque mais alguém no universo pode precisar. Aí o são google indexa e cacheia, e no final alguém que precisa acaba achando! --GirinoVey 16:36, 12 Julho 2007 (BRT)
glub glub (acho que deve ser por isso que eu fiz/faço humanas...) --Lady --200.150.49.9 05:07, 13 Julho 2007 (BRT) |
Mais fractaisDessa vez eu resolvi brincar com javascript! Fiz em javascript um "programinha" para desenhar fractais do tipo IFS. Fica um pouco lento no IE[1], mas nos outros browsers todos funciona as mil maravilhas! Deu um trabalhinho pra fazer, mas o resultado ficou muito bacana, além deu ter aprendido um monte de coisas de javascript (depois faço um post de dicas de javascript).
Notas
--GirinoVey 00:46, 11 Julho 2007 (BRT)
glub --Lady--200.150.49.9 16:53, 11 Julho 2007 (BRT)
|
Um tutorial sobre fractaisVendo as estatísticas de acesso do meu site vi que várias das buscas no google que vinham parar aqui eram relacionadas com fractais. Resolvi então escrever esse pequeno tutorial, simples, mas fácil de entender, pra quem entender um pouco mais e se iniciar no maravilhoso mundo dos fractais. Enjoy! --GirinoVey 17:07, 4 Julho 2007 (BRT)
frac who? --Lady --201.62.216.230 20:31, 4 Julho 2007 (BRT) Bloody hell, já vi que é matemática! Nunca entendi e nunca fiz questão também. Só serviu pra passar nos vestibulares. Talvez nem isso :P --Lady--201.62.216.230 20:34, 4 Julho 2007 (BRT) |
Mais uma nerdice de propagandas aleatóriasDessa vez a idéia é não poluir demais o site com propagandas. Pra isso, eu escolho aleatóriamente (ia dizer que sorteio aleatóriamente, mas achei a redundância redondamente redundante) um dos patrocinadores e exibo as propagandas só daquele. O submarino eu deixei de fora porque já tem os links de texto e o botão lá embaixo, e não paga por clique, mas sim por compra. Os outros todos tinham propagandas mais ou menos do tamanho certo por isso inclui eles aqui. Aqui vai o (ridículo) código fonte que eu uso. Dos arquivos usados nos "includes" vou exibir apenas um como exemplo, os outros são a mesma coisa, mudando só o que é fornecido pelo próprio anunciante. Código que sorteia as propagandas<?PHP $files = array( 'buscape_vert.php', 'adsense_vert.php', 'amazon_vert.php', 'bidvertizer_vert.php' ); #echo $files; srand((double)microtime()*1000000); $pos = rand(0,count($files)-1); #echo $files[$pos]; echo "<!-- $pos - ".$files[$pos]." -->"; include($files[$pos]); ?> Código de um exemplo de include<div id="p-advertisement" class="portlet"> <h5>Espaço comercial</h5> <div align="center"> <!-- incluir o código da propaganda aqui --> </div> </div> --GirinoVey 13:37, 28 Junho 2007 (BRT) |
Nerdice de hoje (ontem, na verdade)Hoje a nerdice foi submarino. Fiz um phpzinho pra sortear os links que vão aparecer alio em cima ó <?PHP $lines = file('bd.txt'); $links = array(); foreach ($lines as $line_num => $line) { $links[] = $line; } srand((double)microtime()*1000000); $pos = rand(0,count($links)); echo utf8_decode($links[$pos]); ?> Bem ridículo né? mas funciona... :) Obs.: Acho que esse --GirinoVey 09:17, 26 Junho 2007 (BRT) |
Todos os blogs...E não satisfeito com ter segmentado meus blogs, dei um jeito de juntá-los de novo, mesmo estando separados. Alterei (mais uma vez) a My Blog extension da mediawiki pra mostrar todos os blogs quando a url não tiver nenhuma informação de path. Confiram em Especial:ListSubBlogs. --GirinoVey 20:18, 23 Junho 2007 (BRT) |
|
Ver (anteriores 10) (próximos 10) (20 | 50 | 100 | 250 | 500).


. Basicamente é assim: um arquivo texto com todos os links (copio e colo da página do submarino num arquivo texto, preciso automatizar isso), e rodo o seguinte script neles:

rodando no servidor! :)






ah, cruz credo!
--Lady--201.62.217.246 13:34, 9 Agosto 2007 (BRT)