Mais um blog inútil.

Useless

Janeiro 29, 2008

Java drama (part 2)

Arquivado 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.

Java drama

Arquivado em: java, useless — C-16 @ 01: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 26, 2008

Tou na Holanda.

Arquivado em: useless — devnull @ 22:46

E tive logo que vir blogar sobre isto.

Fazer reverse a um ip-mask na PTnet

Arquivado em: lulz, useless — 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):
sabem como é q ele fez o hack ?
nao o fez
-.-
MrGeneral, viste eu no canal ao lado estar a falar do r00t ?
sim
ele estava no canal
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)
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
pelos vistos ficou a funcionar
:)

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 h4x0r

Janeiro 20, 2008

Conversor de Binário para Decimal

Arquivado em: coding, useless — amg @ 21:34

O sadik pediu-me para não postar mais, mas vou postar…

Este é um programinha que fiz o ano passado em Programação (Pascal), era para se utilizar operações com strings mas utilizei o método (010 = 0 * 2 ^ 0 + 1 * 2 ^ 1 + 0 * 2 ^ 2 = 2)
O código é estranho, até usei uns ifs que não sei porquê, mas resolveram os problemas que tinha (caso o último número fosse 0 acrescentava um valor: 010 ficava 3, 0100 ficava 5, mas já 011 ficava 3 e 0101 ficava 5):

Program bin_dec;

    function expoente(x,y:longint):longint;
        var
            z,n:longint;
    begin
        n := x;
        for z := 2 to y do
            n := n * x;
        expoente := n;
    end;

    var
        num, aux, multi, digito, valor, soma:longint;
        exp:integer;
    begin
        write('Num (bin): ');
        readln(num);
        multi := 10;
        aux := num;
        exp := 0;
        soma := 0;
        while (aux <> 0) do
        begin
            digito := aux mod 10;
            aux := aux div 10;
            multi := multi * 10;
            if (exp = 0) and (digito = 1) then
            begin
                soma := 1;
                exp := 1;
            end
            else
            begin
                valor := expoente(2,exp);
                exp := exp + 1;
                soma := soma + digito * valor;
            end;
        end;
        writeln(num,'(bin) = ',soma,'(dec)');
        readln;
    end.

Podem testar com o FPC.

EDIT: Coloquei blocos de identação para o código ficar mais bonito.

Janeiro 14, 2008

Yaourt 0.8.8-1

Arquivado em: linux, useless — amg @ 23:26

Só para dizer que o Yaourt (A Pacman frontend with more features like AUR support) 0.8.8 foi lançado com fix para o Pacman 3.1, que por terem alterado a estrutura de configuração, o yaourt ficou cheio de doenças. Mas agora já não tem doenças.

O meu primeiro post

Arquivado em: useless — C-16 @ 17:57

Camaradinhas, ois. É a primeira vez que escrevo um post num blog por isso achei que devia blogar sobre isso. Ok ? Adeus.

Janeiro 13, 2008

GIMP

Arquivado em: useless — amg @ 21:05

Ontem estava cheio de tédio, mas em vez de ir cortar os pulsos (porque não sou emo) abri o gimp e comecei a editar umas fotos com brushes sacadas do google, eis o resultado:

foto.jpgfoto2.jpgfoto2.jpgfog.jpg

Eu gosto mais da última porque fico a parecer Thor, senhor do trovão.

Janeiro 11, 2008

Arvorezinha em Asus OLED

Arquivado em: coding, linux, useless — mirage @ 14:42

Não queria deixar de participar na saga das arvorezinhas (pena já não ser natal e fazermos pinheirozinhos). Aqui fica uma arvorezinha desenhada no OLED do Asus G1S, um lcd de 128x32 pixels e programável em Linux.

asusoled_arvorezinha.jpg

Arvorezinha em perl

Arquivado em: coding, useless — devnull @ 12:51

Já que tamos numa de fazer arvorezinhas, aqui vai o meu one liner em perl
$i=1;while($i <=5 ) {print ‘*’ x $i++ . “\n”;}