Mais um blog inútil.

Useless

Maio 16, 2010

Mais três arvorezinhas

Arquivado em: arvorezinha, coding, useless — falco @ 11:19

Em Bash:

#!/bin/bash

ramo="*";
tam="7";
i="1";

while [ $i -lt $tam ]; do
j="1";
while [ $j -lt $i ]; do
printf "$ramo"
j=$[$j+1]
done
printf "\n"
i=$[$i+1]
done

printf "\n\n"

Em Tea:

#!/home/diogo/Tea/tea-3.2.5/bin/tsh

#   Esta é uma arvorezinha escrita em Tea,
#   de acordo com o rfc da arvorezinha praticado
#   em http://www.blol.org/

#   version 0.1

#   This script can never fail!

define arvorezinha ""
define estrelinha "*"
define fiter 1

while { < $fiter 6 } {
define siter 0
while { < $siter $fiter } {
set! arvorezinha [str-cat $arvorezinha $estrelinha]
set! siter [+ $siter 1]
}
set! arvorezinha [str-cat $arvorezinha "\n"]
set! fiter [+ $fiter 1]
}

echo $arvorezinha

Em Tea, com POO

#!/home/diogo/Tea/tea-3.2.5/bin/tsh


#   Esta é uma arvorezinha escrita em Tea,
#   de acordo com o rfc da arvorezinha praticado
#   em http://www.blol.org/

#   version 0.2
#   Changes:
#	* now with an OOP paradigm



#   This script can never fail!



class LitleTree (
    _max_size
    _branch
)

method LitleTree constructor () {
    #Blol.org Arvorezinha RFC COMPLIANT
    set! _max_size 5
    set! _branch "*"
}

method LitleTree PleaseSaveSortelha () {
    echo "Por favor, salva a Sortelha!!!"
    echo "http://vamossalvarsortelha.blogspot.com/"
}

method LitleTree PlantLitleTree () {
    define small_tree
    set! small_tree ""
    define i 0

    while { < $i $_max_size  } {
	set! i [ + $i 1 ]
	define f 0
    	while { < $f $i } {
	    set! f [+ $f 1]
	    set! small_tree [str-cat $small_tree $_branch]
	}
	set! small_tree [str-cat $small_tree "\n"]
    }

    echo $small_tree
}




#serious business:
define litle_tree [ new LitleTree ]
$litle_tree PleaseSaveSortelha
echo "\n"
$litle_tree PlantLitleTree

Historia resumida das Arvorezinhas

Arquivado em: arvorezinha, useless — falco @ 11:00

A primeira arvorezinha de que há registo blolado (01:00 do dia 11 de Janeiro do
ano de 2008 da graça do senhor) foi feita pelo falso em Assembly. Esta
arvorezinha foi inspirada num trabalho de escola do _itensdown_ e estabeleceu o
standard para as arvorezinhas (compostas por asteriscos (n = n + 1 asteriscos,
em que n é o número de asteriscos por linha e n <= 5 na base da arvorezinha). No
mesmo dia o _itensdown_ publicou a sua arvorezinha em vb. E ainda antes do dia
terminar tinhamos a terceira arvorezinha feita com um one liner de Perl.

Durante muito tempo, as arvorezinhas foram esquecidas. Mas o falso a 4 de Abril
de 2009 (no dia em que o meu cavalo fez 5 anos), voltou a reflorestar os nossos
sistemas com uma arvorezinha feita em MIPS Assembly em IRIX e outra feita num
simulador de MIPS para window$ (PCSpim). No resto do mês de Abril seguiram-se
muitas outras arvorezinhas (mais de 30). No resto de 2009 foram criada mais seis
arvorezinhas, mas no ultimo trimestre já não houveram novas arvorezinhas.

Nem tudo na saga das arvorezinhas tem sido maravilhoso, também têm havido
dramas. Já houve um “ripanço” de uma arvorezinha em Assembly “enquanto a namorada
do ‘ripador’ tomava banho” e há várias arvorezinhas que não cumprem o RFC.
Para além disso a tradição das arvorezinhas está claramente em perigo de
extinção, por não haverem novas arvorezinhas desde aproximadamente o meio de
1.

No momento da publicação deste Post, há cinquenta e uma arvorezinhas e o mês
em que foram publicadas mais foi o mês de Abril de 2009, no qual foram
publicadas 37 arvorezinhas.

AutorLinguagem
falsoX86 Assembly
_itens_down_vb6
devnullPerl (one liner)
mirageAsus OLED (GNU/Linux)
falsoMIPS Assembly (IRIX)
falsoMIPS Assembly (PCSpim)
falsoZ80 Assembly (Spectrum)
falsoBrainfuck
_madinfo_Haskell
falsoZ80 Assembly (TI86)
falsoT-SQL (M$ SQL Server)
João SaramagoJava Bytecode
_madinfo_Ook
JuvenalTcl
João SaramagoProlog
dcoderMagma
dcoderAMD64 Assembly
falsoPowerPC Assembly
dcoderPDP-11 Assembly
g0shFortran
g0shFortran (com Fibonaci)
g0shLogo
trodriguesSmalltalk
falso6502 Assembly (NES)
g0shLogo (com desenhos)
dcoderx86 Assembly (como boot sector)
miragedBase IV
druneLOLCode (LOLPython)
falsoMalbolge
spicoPaint.net
dcoderBrainfuck (com loops)
trodriguesPython (one liner)
devnullPerl (one liner optimizado)
drunePython (one liner optimizado)
kuvalskiPaint.net (optimizada)
kuvalskiAda
kuvalskiRuby
nifanPov-Ray
spicoMOOsaico
brackhatCMD.exe (batch)
brackhatCMD.exe (cli)
devnullPascal
dcoderC Preprocessor
_Lone_Wolf_Lisp
gatunoLua
falsoARM Assembly
João SaramagoCOBOL (OpenCOBOL)
ardoRicML
João SaramagoOpenGL (com Java)
_Lone_Wolf_Lisp

Março 9, 2010

Mais um ano, mais um ataque.

Arquivado em: fail, serious-business, useless — dcoder @ 16:45

As notícias sobre tecnologia cada vez mais se aproximam às notícias sobre terrorismo ou epidemias. Há dias, foi apresentado um artigo sobre um novo ataque ao RSA [PDF], baseado em falhas, que pôs a blogosfera em polvorosa. Existe alguma razão para isto? Absolutamente não.

É bem sabido que existem imensas classes de ataques que podem afectar implementações perfeitamente correctas do RSA (e não só).  Em particular, este novo ataque usa falhas geradas por flutuações de voltagem exteriores à máquina para derivar bits da chave privada. Nada de novo. Este ataque já tinha sido proposto em pelo menos 2006. Ataques baseados em outros tipos de falhas são mais do que conhecidos, alguns deles tendo sido usados para quebrar os smartcards da TV Cabo (glitching).

Como é comum para qualquer ataque bem conhecido, existem maneiras de proteger implementações contra o mesmo. Isto é uma completa não-notícia, e só mostra como blogs e bloggers são absolutamente lixo no que toca a apresentar notícias com algum tipo de rigor e isenção.

Março 2, 2010

Multiplicação de polinómios - part ii

Arquivado em: coding, serious-business, useless — dcoder @ 23:42

Viva. Após a maré de degredo que afectou este estimado blog, venho tentar retomar a dignidade e qualidade do mesmo, uma tarefa deveras hercúlea.

Consideremos a multiplicação de polinómios em

$$\mathbb{F}_2[x]$$

. O algoritmo considerado no post anterior é conhecido há milénios e tem uma complexidade quadrática, i.e.,

$$O(n^2)$$

operações para multiplicar dois polinómios de grau n. Este algoritmo será óptimo? Não.

Nos anos 60, foi descoberto o algoritmo de Karatsuba para multiplicar números inteiros em assimptoticamente menos operações. Resumidamente, este algoritmo divide os números a multiplicar na sua parte superior e inferior, e efectua a multiplicação em 3, não 4, multiplicações menores. Por exemplo, para multiplicar 123456 e 789012, dividimos ambos os números a meio: 123, 456, 789 e 012. Obtemos a parte menos significativa do resultado por multiplicar 456*012 = 5472. A parte mais significativa é obtida por 789*123 = 98154. O resto do nosso produto é obtido por efectuar a operação: (123+456)(789+012) - 5472 - 98154 = 360153. O resultado final é 5472 + 10^3*360153 + 10^6*98154 = 97408265472. Podem facilmente verificar que o resultado está correcto.

Este método pode ser aplicado recursivamente aos produtos mais pequenos resultantes de cada passo (divide and conquer). Isto significa que esta recorrência vai precisar de

$$O(n^{\log_2 3})$$

operações para multiplicar dois números. Isto pode parecer irrelevante, mas faz toda a diferença com números grandes (e.g., com mais de 1024 bits.)

O método de Karatsuba não se limita aos inteiros; aplica-se a qualquer anel comutativo. Isto significa que podemos facilmente adaptar este método para multiplicar polinómios. Os truques algébricos para acelerar a multiplicação são uma área extremamente interessante: duas referências relevantes e recomendadas são ‘Multidigit multiplication for mathematicians’ e ‘Faster multiplication in GF(2)[ x ]’.

No caso dos polinómios com coeficientes em {0,1}, i.e.,

$$\mathbb{F}_2[x]$$

, a tarefa é ainda mais simples: a adição é equivalente à subtracção, ambas sendo efectuadas com um simples xor. Implementar este algoritmo em C++ sem operações condicionais é ainda mais simples, dada a natureza recursiva do mesmo:

template<unsigned N>
inline word kmul(word a, word b)
{
	word a0, a1, b0, b1;
	word z0, z1, z2;

	a0 = a&(const word)((1<<(N/2))-1);
	b0 = b&(const word)((1<<(N/2))-1);
	a1 = a>>(const word)(N/2);
	b1 = b>>(const word)(N/2);

	z0 = kmul<N/2>(a0,b0);
	z2 = kmul<N/2>(a1, b1);
	z1 = kmul<N/2>(a0^a1, b0^b1) ^ z0 ^ z2;
	return z0 ^ (z2<<N) ^ (z1<<(N/2));
}

template<>
inline word kmul<1>(word a, word b)
{
	return a&b;
}

Apesar da menor complexidade deste algoritmo, esta implementação não vai ser mais rápida (para todos os tamanhos úteis) do que a do post anterior. Alguém me sabe dizer porquê?

Fevereiro 7, 2010

COMIC STRIP OFICIAL DO BLOL, LOL (UPDATED)

Arquivado em: fail, lulz, useless — sadik @ 23:45

Fevereiro 1, 2010

Falando em vampiros...

Arquivado em: drama, fail, useless — madinfo @ 23:20

Pois bem amigalhaços já que o tema dos vampiros veio ah baila também eu tenho que blogar sobre o assunto…

Eis que surge na TVI uma coisa inédita… uma novela sobre vampiros (coisa nunca vista) cujo nome é: “Destino Imortal” passada na Serra de Sintra, com um amor impossível entre um rapaz e uma rapariga (querem saber mais vejam a novela…).

A SIC sem mais demoras (não copiando nada) faz o seguinte: Filma na Serra de Sintra, e junta a historia de um amor impossível entre uma rapariga e um rapaz e chama-lhe “Lua Vermelha”.

E pronto esta é a escolha dos senhores telespectadores em horário nobre… agora só falta nos “Morangos com Açúcar” surgir uma season vampiresca para o circulo ficar completo.

Ois migos! Estou a escrever um poste!

Arquivado em: drama, fail, lulz, useless — sadik @ 19:44

Olá amigos! Estou de volta após um período de hiatus (como diz a malta jovem americana). Vocês devem lembrar-se de mim de tais posts clássicos, como a criação dos memes, “Todo Fit” ou “Dia do Projecto”. Desta vez venho aqui falar de algo que realmente é importante e que é o seguinte: vampiros. Aparentemente o que está na moda hoje em dia é gostar de tudo o que esteja relacionado com vampiros. E se por acaso, esses vampiros gostarem de chupar o sangue de outros homens através da veia grossa da piça, então ainda melhor!

Vejamos:

Isto é que é um vampiro? O Nosferatu deve estar a dar voltas no caixão a esta hora (sim, porque ainda é de dia e ele provavelmente está a dormir).

Janeiro 26, 2010

WP_Birds

Arquivado em: coding, serious-business, useless — falso @ 23:44

Ora viva!

Hoje como estava aborrecido e não me apetecia ir para a rua porque está um barbeiro do caralho decidi meter o blol a validar no w3c validator, primeiro estava com alta drama por causa do penisbird no source do site, mas depois lá aprendi que em HTML também existe o CDATA, e que se o usar por exemplo dentro dum paragrafo posso meter lixo para la à vontade.
E com isto lá pus o blol a validar, mas fiquei com um bichinho atrás da orelha, porque só um penisbird quando podemos ter um molho deles, então tentei seguir as passadas do grande Mario Gamito e decidi também eu fazer um plugin para o WordPress que adiciona penisbirds aleatórios no fim do blog mesmo antes do fechar do BODY.
Sei que é a coisa mais inútil de sempre, mas, é para isso que cá estou eu!
Download: wp_birds_0.1.zip

Janeiro 25, 2010

Gripe A

Arquivado em: drama, fail, serious-business, useless — devnull @ 12:15

Pois é, está um belo dia soalheiro de inverno e este importante facto faz-me relembrar a “pandemia” que, supostamente, iria acontecer caso nao tomássemos as providências de mandar com um gel malcheiroso para as mãos cada vez que fossemos tocar em alguma coisa sem ser o nosso orgão sexual (isso era só depois de tocar).

Após ter tomado o conhecimento que o terramoto do Haiti curou a gripe A e que com esse facto provado, a OMS vem confirmar que o virus H1N1 está a perder a força, tive logo que vir aqui blogar sobre o facto de nenhum dos meus amigos/conhecidos/familiares ter apanhado este virus, sem ser a GRIPE SAZONAL QUE ACONTECE TODOS OS ANOS, SIM É UM FACTO PROVADO QUE TODOS OS ANOS O VIRUS DA GRIPE SOFRE MUTAÇÕES E QUE O NOSSO CORPO TEM QUE ARRANJAR DEFESAS PARA SE PROTEGER!!!
De qualquer das maneiras, as grandes farmacêuticas têm a agradecer a vossa ingenuidade ao porem um gel malcheiroso nas mãos, que vos faz perder os germes todos das mãos… e com eles grande parte das defesas naturais que as mãos têm contra a tal gripe sazonal entre outras maleitas.
As grandes farmaceuticas também agradecem o facto de termos comprado 6 MILHÕES de vacinas “não vá o diabo tecê-las” mais tamiflus, constipal, antigripine e o raio que os parta a todos.

Qual será o próximo animal a pegar-nos a gripe ? Espero é que ao menos seja um animal exótico, já foram as aves, os porcos, faltam as vacas que ainda só nos passaram a maluqueira delas… Ao menos que apanhasse uma gripe de um animal “como deve de ser”, de lagosta ou de macacos do madagáscar…

Enfim, venha o sol!

Janeiro 11, 2010

HD na TV Nacional

Arquivado em: drama, fail, lulz, serious-business, useless — madinfo @ 23:37

Como já todos repararam o HD está na moda…. ate o sr falso fez um post sobre HD nas consolas há dias, como tal agora resolvi dedicar um post ao HD na TV Nacional.

Sou +/- assinante da TVcabo e dos senhores Meo ambos via satélite, tanto um como o outro, e há boa moda portuguesa pintam que tem o melhor serviço HD do mundo e arredores.

Ora vejamos como funciona um novo canal HD exemplificando a FOX:

Todos se lembram da  FOX SD tinha uma boa qualidade (pronto razoável vá) já era 16:9…. até que um dia ligo tv meto na FOX e pra meu espanto era novamente 4:3, tinha qualidade manhosa cheia de pixeis em todo o lado…

Nesse mesmo dia eis que a TVcabo anuncia uma coisa INÉDITA em todo o mundo FOX  HD brevemente disponível… bem la esperei uns dias e a dita apareceu e basicamente era o canal antigo a 16:9 (de notar que só alguns programas emitem assim) qualidade +/- decente e já era o chamado HD 1080i.

E assim senhoras e senhores se enganam os tolos… devem pensar que temos memoria de peixinho dourado que daqui a 2 segundos já não lembramos o que vimos…

Quem conhece e apanha as emissões da BBC certamente conhece  a magnifica qualidade que tem estes canais tem… conseguem ser melhores que o nosso “HD”.

Em Portugal que é enfiar o máximo de canais possível no mesmo transponder e meter a bit-rate no mínimo.

Até penso que a TVcabo qualquer dia nem precisa de qualquer sistema  de codificação já que a compressão é tanta que qualquer dia ninguém vai ver mesmo nada…

Depois temos a TVI… quem não se lembra de ver uns reclames antigamente  a dizer que na novela xpto era captada em HD ?? adorei isto ja que meio mundo andou a dizer que via a novela em HD… via tv analógica…. para eles aqui fica um: LOL

Agora voltando atrás aos 1080 i que falei há pouco… o roto leitor certamente se perguntou: então mas não é 1080 p? Ao qual eu respondo: Não, pelo menos no DVB-S… actualmente não ah tecnologia para mais… nem a ultima dreambox 8000 reproduz mais que os 1080i… quanto aos restantes DVB’s sinceramente não sei nunca li acerca da coisa mas penso que devem andar na mesma camioneta…..

espero que tenham gostado… se não gostaram cheirem e ponham de parte…

PS ia para ler isto novamente para ver se fazia sentido mas como ta bué grande e não me apetece leio qualquer dia…