Mais um blog inútil.

Janeiro 31, 2008

Sidazinha no VB!

Arquivar em: Drama, Useless — amg @ 11:39

Olá meus queridinhos.

Há pouco fiz um teste de programação (VB). E o VB em si estava com um bugzinho mesmo cheio de cancro… Não é que fiz um ciclo for em que ele lia os dados e guardava em cada posição de uma array, imprimindo o valor inserido numa picturebox. Até ali tudo funcionava.

Comecei a desenvolver um outro código mais complexo para fazer umas verificações, mas como não deu certo e não era obrigatório isto desisti, voltando a colocar o código antigo (comentado). Corri o programinha e agora ele já não imprimia os dados na picturebox. Fiquei 15min cheio de doenças na cabeça com aquilo, mas o código estava correcto.

Grande sidazinha.

Janeiro 30, 2008

Hoje não

Arquivar em: Uncategorized — C-16 @ 23:56

Ois. Hoje não vou blogar, por isso vim blogar sobre isso. Adeus.

Mortiis

Arquivar em: Useless, lulz — amg @ 19:25

O Mortiis, que é esse gajo que está aqui

(clicar para tamanho real)

Mas como dizia, o Mortiis, que é aquele gajo da foto já não usa aquela máscara de bruxa, agora apenas pinta a cara, que é o gajo que está nesta foto:
81_photo.jpg

E pronto, era só para saberem.
Mas o Mortiis, que é o gajo da foto era mesmo feio, não acham?

Season 4 Ep 1 - LOST

Arquivar em: LOST — amg @ 8:48

Olá amiguinhos, agora que vai começar a temporada 4 de LOST, criei uma categoria e irei escrever sobre a mesma.

lost_1.jpg

O episódio 1 da temporada 4 irá estrear no dia 31 de Janeiro na TV americana, mas só estará nas interwebs no dia 1 de Fevereiro.

Aqui abaixo segue-se um recap da série toda (até agora) legendado em português:
http://youtube.com/watch?v=oDblU989lD8

E o trailer da season 4:
http://youtube.com/watch?v=CbY_dWObLho

Adeus.

Janeiro 29, 2008

Java drama (part 2)

Arquivar em: Drama, Java, Useless — C-16 @ 22:16

Ois.  Os dramas não me largam…ou se calhar não são dramas, eu é que ando particularmente melodramático com esta história toda porque, tal como o disse,  estou fartinho do Java. Deveras…!! Chego a pensar em estupidezes só para desanuviar… Hoje uma simples frase dita por alguém no departamento despertou em mim uma súbita vontade de aprofundar o meu interesse pela filosofia…porque estava farto do Java. “Faz o que quiseres!!” . Hmmmm…é interessante porque, se fizermos o que nos apetece estamos a fazer a vontade à outra pessoa…No entanto, se não fizermos o que queremos, estamos a tomar a liberdade de a contrariar, fazendo o que nos dá na gana…portanto mais uma vez estamos a ceder à vontade dessa pessoa. Confesso que a reflexão sobre este tema me deu uma enorme cólica. Mas não era sobre isto que eu queria blogar. Hoje resolvi mais um Java drama…inútil. O objectivo era fazer com que a aplicação (que está a correr no JBoss, que por sua vez usa o Tomcat como webserver) suportasse NTLM Authentication. Basicamente, caso um user (logado num determinado NT Domain) fizesse um http request à aplicação, não seriam pedidas quaisquer credenciais. Ora, isto é tudo muito bonito quando se usa o IIS + m$ technologies (ASP, ou whatever…). Em Java começou por se revelar uma PITA até ter descoberto o jCIFS. O jCIFS não é mais do que uma biblioteca que suporta o protocolo SMB/CIFS e é 100% Java. Lindo, ahm? Poderão estar a perguntar-se “Mas porque é que esta besta não se limita a ver o resultado retornado ao invocarmos o método getRemoteUser() ao objecto request (HttpServletRequest) ? “. Pois…porque sem esta treta, será sempre null. Então, a solução passa por ir ao ficheiro web.xml da nossa aplicação, adicionar lá um pequeno filtro, adicionar o jcifs-versiongoeshere.jar à classpath do nosso projecto e voilá! O filtro é algo deste género:

<filter>
    <filter-name>NtlmHttpFilter</filter-name>
    <filter-class>jcifs.http.NtlmHttpFilter</filter-class>

    <init-param>
        <param-name>jcifs.netbios.wins</param-name>
        <param-value>10.169.10.77,10.169.10.66</param-value>
    </init-param>
    <init-param>
        <param-name>jcifs.smb.client.domain</param-name>
        <param-value>NYC-USERS</param-value>
    </init-param>
    <init-param>
        <param-name>jcifs.smb.client.username</param-name>
        <param-value>somenycuser</param-value>
    </init-param>
    <init-param>
        <param-name>jcifs.smb.client.password</param-name>
        <param-value>AReallyLoooongRandomPassword</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>NtlmHttpFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Podem omitir os parametros “username” e”password”. Ora, caso o request venha de uma máquina que esteja logada no domínio que consta no filtro, o HttpServletRequest já contém informação necessária para ser processada, mais precisamente informação correspondente à nossa continha do Windows. Lindo!! Adeus.

Gerador de Galeria de imagens HTML (Python)

Arquivar em: Work, coding — amg @ 18:28

É um script que fiz em Python para gerar uma galeria de fotos em html a partir de um directório com fotos, pois precisava de o fazer porque tinha um directório com várias fotos e “colocar” uma foto de cada vez em código html é trabalhoso, por isso aproveitei uma biblioteca de Python e pus mãos à obra.

A minha primeira dificuldade foi certamente criar uma thumbnail da imagem em questão, por isso dei uma visita ao Google (http://www.google.pt) e rapidamente encontrei o que queria: Python Imaging Library (http://www.pythonware.com/products/pil/). É óbvio que não sabia como trabalhar com este, então disse a mim mesmo: RTFM, fi-lo e em questão de minutos já sabia minimamente o que queria.

Primeiro de tudo tive que indicar que imagem abrir, para isto atribuí a uma variável o resultado de

Image.open(imagem)

Em que imagem será uma variável com o caminho da foto/ficheiro.

Também declarei outra variável: THUMBSIZE, em que atribuí a esta a largura e altura da thumbnail (230×153), mais propriamente o valor 230,153. Após isto utilizei a função

Thumbnail

da biblioteca PIL (Python Imaging Library) para a criar, que tem a seguinte sintaxe:

Img (esta foi uma variável criada por mim em que terá como valor o resultado de image.open(imagem) –

img.thumbnail(THUMBSIZE)

OK. Já tenho a thumbnail da imagem, agora tenho que a salvar… mas há um problema: Imaginemos que o utilizador do script já o correu anteriormente, mas agora acrescentou mais imagens, só que as thumbnails das imagens já existentes encontram-se no directório… como fazer para não criar uma thumbnail de uma thumbnail?

É simples, basta utilizar um if para verificar se as primeiras 5 letras da variável imagem são constituídas pela palavra thumb

If imagem[0:5] != “thumb”:

Após esta verificação, caso o resultado seja Verdadeiro e não Falso, o script vai executar o que vem a seguir a esta condição:

Img.save(’thumb.’ + str(imagem), “JPEG”)

Ou seja, o ficheiro ficará: thumb.Foto1.JPG note-se aqui o uso da função str() para converter o valor de imagem para uma string (cadeia de caracteres alfanuméricos). Basicamente a função save do PIL é para salvar num ficheiro as alterações feitas à imagem.

E pronto, temos o problema de criar as thumbnails resolvido.

Aqui abaixo segue-se o código completo do script.

galeria.txt

Tive que o colocar num ficheiro porque não sei mandar o wordpress ignorar tags html.

Nota: As tags html do código não estão terminadas porque fiz isto um pouco à pressa.

Java drama

Arquivar em: Java, Useless — C-16 @ 1:06

Ois miçadinhas. As partidas que a vida me tem pregado não me permitem mais que uns meros suspiros e desabafos de vez em quando no IRC para me queixar dos meus dramas com Java. Sim, eu era o maior defensor de Java à face da Terra…até ter de trabalhar com Java no meu dia a dia e deparar-me que maior merda só mesmo aquela que está a percorrer o meu intestino grosso de momento e me vai fazer acelerar o processo de escrita deste post. Não obstante, resolvi partilhar convosco alguns dos dramas que me têm apoquentado ao longo destes intermináveis dias de experiência laboral. Preparem-se, pois segue-se uma série de posts, todos eles repletos de Java dramas e com enorme propensão para provocarem vómitos aos estômagos mais sensiveis. Amo-vos.

Como aceder à JMX…em Java. Pois bem…foi-me apresentado um desafio no trabalho (não propriamente um desafio…foi mais uma tarefa que TINHA de fazer desse por onde desse) que consistia em disponibilizar estatísticas e para tal precisava de aceder a variáveis da JMX do JBoss. Segue-se um pequeno excerto de código que o permite fazer sem grandes stresses. Não espero que algum de vocês algum dia venha a precisar disto (não por ser difícil, mas por ser chato e useless), mas em caso afirmativo, aqui fica a tip:

public class AhETalJMX
{
	public static void main( String[] args )
	{
		InitialContext ic = new InitialContext();
		RMIAdaptor server = ( RMIAdaptor ) ic.lookup( “jmx/invoker/RMIAdaptor” );
		ObjectName name = new ObjectName( “slee:service=AlarmMBean” );
		MBeanInfo info = server.getMBeanInfo( name );
		MBeanOperationInfo[] opInfo = info.getOperations();
		for( MBeanOperationInfo o: opInfo ) {
			System.out.println( ” + ” + o.getReturnType() + ” ” + o.getName() );
		}
	}
}

Lindo, não é…? Adeus.

Janeiro 27, 2008

FIPS-186

Arquivar em: Uncategorized — dcoder @ 1:26

Ora estava aqui eu a navegar pelas Internetes quando me deparo com um documento recente relativo à geração de primos aleatórios para quer RSA quer DSS. Ei-lo aqui.

Rapidamente se reparam nos ataques óbvios relativos especialmente ao RSA: factorização por P-1 ou P+1 (Pollard e Williams, respectivamente), o expoente público tem de estar compreendido entre 2^16 e 2^256 (evitam-se assim os imensos ataques relativos a expoentes baixos, e.g. E=3 ou E=7, etc e também os ataques que permitem obter D quando E é demasiado grande (Weger)).

Uma coisa que achei interessante e que nunca tinha visto aplicada é a distinção clara feita entre os parâmetros dos primos prováveis e os provados. Talvez alguém se pergunte porque não simplesmente aumentar a probabilidade dos testes M-R (Miller-Rabin) e pronto?

A resposta reside no facto de o teste de M-R ser baseado no teorema de Fermat (sim, o mesmo utilizado na base do RSA). Existe uma classe de inteiros, chamados números de Carmichael, que passam sempre nos testes baseados no teorema de Fermat. Assim, no pior cenário temos de contar com p1,p2,q1,q2 terem factores trivialmente factorizáveis indetectáveis por M-R. Daí os parâmetros serem maiores.

É também interessante notar que os módulos de 1024 bits já não podem ser gerados aleatoriamente (tabela B.2). Isto talvez indique qualquer coisa em relação à segurança (ou os medos de quem define os standards) do problema da factorização de inteiros.

Janeiro 26, 2008

Tou na Holanda.

Arquivar em: Uncategorized — devnull @ 22:46

E tive logo que vir blogar sobre isto.

Fazer reverse a um ip-mask na PTnet

Arquivar em: Useless, lulz — amg @ 21:38

Bem, o Bop estava no #linuxhelp a falar que um gajo tinha um algoritmo que fazia reverse a uma ip-mask na PTnet e resolvia para o ip real… but he LIES (o gajo):
<Bop> sabem como é q ele fez o hack ?
<MrGeneral> nao o fez
<MrGeneral> -.-
<Bop> MrGeneral, viste eu no canal ao lado estar a falar do r00t ?
<MrGeneral> sim
<Bop> ele estava no canal
<Bop> era o OverDox

Mas EU tenho o verdadeiro algoritmo, vou o postar aqui e o código também!

Proof:
<_intensdown_> 127.110.240.111
<_intensdown_> eu vou fazer alto hack a essa mask
<_intensdown_> e descobrir o teu ip
<_intensdown_> 87.196.6.221
<_intensdown_> é esse?
* software has quit (Quit: +q)
<daedric> uhhh… nao :D
<_intensdown_> eu é q sei mesmo fazer isso
<_intensdown_> fiz o algoritmo na aula de filosofia
<_intensdown_> e depois programei a cena em pascal
<Bop> pelos vistos ficou a funcionar
<Bop> :)

Segue-se o algoritmo e o código.

Algoritmo: Ser op no canal que o utilizador está, adquirir op e ver o ip.
Código: /chanserv op #canal meunick
/whois utilizador

E ficamos com o IP dele.

Digam lá se não sou um
trve elite h4×0r

« Older Entries

Made on a Mac Powered by OpenBSD