<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Mais um blog inútil.</title><link>https://blol.org/</link><description>Recent content on Mais um blog inútil.</description><generator>Hugo</generator><language>pt-PT</language><lastBuildDate>Mon, 16 Dec 2024 11:13:46 +0000</lastBuildDate><atom:link href="https://blol.org/feed.xml" rel="self" type="application/rss+xml"/><item><title>Oi!</title><link>https://blol.org/2470-oi/</link><pubDate>Mon, 16 Dec 2024 11:13:46 +0000</pubDate><guid isPermaLink="false">https://blol.org/?p=2470</guid><description/></item><item><title>Arvorezinha em Progress 4GL</title><link>https://blol.org/2372-arvorezinha-em-progress-4gl/</link><pubDate>Fri, 03 Aug 2018 16:35:48 +0000</pubDate><guid isPermaLink="false">https://blol.org/?p=2372</guid><description>&lt;p&gt;Boa tarde,&lt;/p&gt;
&lt;p&gt;Já não blolava á anos&amp;hellip; resolvi blolar sobre uma linguagem que se chama Progress 4GL ou OpenEdge Advanced Business Language (OpenEdge ABL).&lt;br&gt;
É uma linguagem linda que mais se devia chamar REGRESS em vez de Progress.&lt;/p&gt;
&lt;p&gt;Aqui fica o código:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DEFINE VARIABLE i AS INTEGER NO-UNDO.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;SCOPED-DEFINE NumLoops 5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DEFINE VARIABLE charz AS CHARACTER NO-UNDO INITIAL &amp;#34;*&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; REPEAT i = 1 TO {&amp;amp;NumLoops}:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; DISPLAY charz.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; charz = charz + &amp;#34;*&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;END.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;MESSAGE &amp;#34;Fim!!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; VIEW-AS ALERT-BOX INFO BUTTONS OK.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Digam lá que não é a melhor coisa do mundo ?&lt;/p&gt;</description></item><item><title>Novo Speedtester da NOS</title><link>https://blol.org/2300-novo-speedtester-da-nos/</link><pubDate>Fri, 13 Oct 2017 21:49:01 +0000</pubDate><guid isPermaLink="false">https://blol.org/?p=2300</guid><description>&lt;p&gt;Ora viva,&lt;/p&gt;
&lt;p&gt;Eu recentemente tenho tido vários problemas com as internets da NOS à noite, e isso tem me feito andar a fazer diversos telefonemas a reclamar e a ser sempre obrigado a correr o speedtester deles.&lt;/p&gt;
&lt;p&gt;Até há poucos dias era uma cena normal.js que funcionava na maioria dos browsers, e uma applet JEWVA para o IE com extra faggotry. Mas agora decidiram INOVAR, e quando se inicia o teste, força o download de um .exe que supostamente tens que correr para fazer o speedtest, se não tiveres Windoze, azarito, não tens direito a te queixares com problemas de internets.&lt;/p&gt;</description></item><item><title>uSched</title><link>https://blol.org/2169-usched/</link><pubDate>Sun, 22 Mar 2015 01:26:29 +0000</pubDate><guid isPermaLink="false">https://blol.org/?p=2169</guid><description>&lt;p&gt;Caros blolistas,&lt;/p&gt;
&lt;p&gt;Venho aqui apresentar uma inutilidade que recentemente saiu da pasta Lixo/ para o GitHub e que tem sofrido desde então alguns commits que tentam tornar a coisa um pouco mais útil, dentro dos limites da inutilidade.&lt;/p&gt;
&lt;p&gt;Falo-vos do uSched: &lt;a href="http://www.usched.org" title="http://www.usched.org"&gt;http://www.usched.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Para quem não tem acompanhado o #C da PTnet e se deparar com tal coisa, a tendencia será fazer scroll de cima abaixo no site e fechar assim que o footer é atingido&amp;hellip; No entanto, venho chamar a vossa atenção para algumas coisas em que isto &amp;ldquo;até pode dar jeito&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Arvorezinha em R</title><link>https://blol.org/2154-arvorezinha-em-r/</link><pubDate>Fri, 13 Feb 2015 12:03:11 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=2154</guid><description>&lt;p&gt;Viva,&lt;/p&gt;
&lt;p&gt;Para celebrarem o Carnaval em força, e também porque me deram acesso ;) resolvi trazer-vos uma implementação da arvorezinha em R.&lt;br&gt;
Para quem não sabe, e deixando de lado pormenores técnicos que não interessam nem ao menino jesus, R foi criado por um Cavalheiro no cu do mundo. Sim, na Nova Zelândia!&lt;/p&gt;
&lt;p&gt;Apraz-me dizer que R é aprovada pelo RMS, pelo que o seu uso não interfere com a liberdade das pessoas.&lt;/p&gt;
&lt;p&gt;Sem mais delonga deixem-me brindar-vos com a minha implementação.&lt;/p&gt;</description></item><item><title>Arvorezinha 2.0 em JavaScript</title><link>https://blol.org/2136-arvorezinha-2-0-em-javascript/</link><pubDate>Tue, 20 Jan 2015 18:06:28 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=2136</guid><description>&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; _..._
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Tired of using .-&amp;#39; &amp;#39;-. Are you still using
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; different cli / _ _\ that incoherent, bug
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ent and serv /&amp;#39;:. (o) /__) ridden, insecure mess
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; er languages /&amp;#39;:. .,_ | | that is PHP?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; on all your |&amp;#39;: ; / \ /_/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; web / ; `&amp;#34;`&amp;#34; } Would you like to use a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; projects? ; &amp;#39;:., { modern, general-purpose,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; / ; } web-scale, optimized,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; +-----------------------+ { object-oriented, scalable,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | TESTEMONIALS |`\ dependency-free, modular,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | &amp;#34;I installed nodeJS. | ; agnostic, baked-in, light-
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | Five seconds of tink- | | weight, component framework,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | ering later I solved | ; responsive, event-driven,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | world hunger, effectu | | non-blocking i/o, efficent,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | ated peace in the mid | | perfect for data-intensive
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | dle east and started | / an,--.........,-time appli-
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | the first manned miss | ; .&amp;#39; -=&amp;#39;.sy building
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | ion to jupiter while |/ .\ &amp;#39;eautiful
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | holding a cigar in one| \ .&amp;#39;pplications
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | hand and a death-ray |\~&amp;#34;`_ \ .&amp;#39;gram like its
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | in the other.&amp;#34; || ` \ ..&amp;#39;rock out with
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; +-----------------------+| ==&amp;#34;&amp;#39;&amp;#39;\.==&amp;#39;&amp;#39;your cock out
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ~ /; ;/=&amp;#34;&amp;#34; |`| |`| `
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ~..==` \\ |`| / /==&amp;#34;` Now You Can With Node.JS!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ~` ~ /,\ / /= )&amp;#34;) The Cancer of Javascript
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ~ ~~ _&amp;#39;)&amp;#34;) has just spread to servers!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ~ ~ _,=~&amp;#34;;`
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ~ =~&amp;#34;|; ;| Node.JSbird
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ~ ~ | ; | ===========
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ~ ~ |;|\ | Available via NPM
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |/ \|
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Não consigo deixar de nadar contra a corrente do blol/#c, que por norma odeia JavaScript e derivados. Trago-vos uma Arvorezinha 2.0 feita em JavaScript, que à boa moda deste blog, não acrescenta rigorosamente nada de interessante ou novo em relação às implementações anteriores. Podem corre-la na consola de qualquer browser, ou se quiserem crescer alguns centimetros de barba hipster, em node.js.&lt;/p&gt;</description></item><item><title>Arvorezinha v1 e v2 - Lisp</title><link>https://blol.org/2077-arvorezinha-v1-e-v2-lisp/</link><pubDate>Mon, 11 Nov 2013 10:55:15 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=2077</guid><description>&lt;p&gt;Ora viva amigos!&lt;/p&gt;
&lt;p&gt;Tive uma submissão de arvorezinhas de um comparsa dos mirques, o _Lone_Wolf_ , ele presenteou-nos com as duas versões em Lisp.&lt;/p&gt;
&lt;p&gt;v1&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(defun arvorezinha (count) (loop for i from 1 to count do (princ(concatenate &amp;#39;string (make-string i :initial-element #\*) (format t &amp;#34;~%&amp;#34; #\linefeed)))))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;v2&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(defun arvorezinha2 (height) (loop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (loop for i from 1 to height do (princ(concatenate &amp;#39;string (make-string (- height i -1) :initial-element #\ ) (make-string (- (* 2 i) 1) :initial-element #\*) (format t &amp;#34;~%&amp;#34; #\linefeed))))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (setf trunk (floor (/ (- (* height 2) 1) 2)))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (loop for i from 1 to (/ height 2) do
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (if (/= (mod height 2) 0)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (princ(concatenate &amp;#39;string (make-string (+ (/ trunk 2) 1) :initial-element #\ ) (make-string (+ trunk 1) :initial-element #\#) (format t &amp;#34;~%&amp;#34; #\linefeed)))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (princ(concatenate &amp;#39;string (make-string (+ (ceiling (/ trunk 2)) 1) :initial-element #\ ) (make-string trunk :initial-element #\#) (format t &amp;#34;~%&amp;#34; #\linefeed)))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (return &amp;#39;*****)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pode-se experimentar o codigo aqui: &lt;a href="http://www.compileonline.com/execute_lisp_online.php"&gt;http://www.compileonline.com/execute_lisp_online.php&lt;/a&gt;&lt;br&gt;
Já agora, o que está aí são só funções pelo que estive a ver. Então para experimentar corre-se o seguinte:&lt;/p&gt;</description></item><item><title>Arvorezinha 2.0 em Oracle SQL</title><link>https://blol.org/2051-arvorezinha-2-0-em-oracle-sql/</link><pubDate>Wed, 02 Oct 2013 15:54:29 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=2051</guid><description>&lt;p&gt;Ora viva amiguinhos! Antes de mais gostava de vos saudar e agradecer por me acolherem no melhor blog inútil do mundo. Sinto-me como um ilustre convidado com as maiores honrarias, e planeio contribuir com mais postas de programação inútil (logo que seja natural e espontânea).&lt;/p&gt;
&lt;p&gt;A minha primeira contribuição é para o projecto árvorezinha. Tenho para vós uma árvorezinha que respeita o RFC 2.0 (já existia uma 1.0) feita em Oracle SQL.&lt;/p&gt;</description></item><item><title>De onde tudo começou...</title><link>https://blol.org/2001-de-onde-tudo-comecou/</link><pubDate>Sun, 02 Jun 2013 20:12:05 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=2001</guid><description>&lt;p&gt;Ora viva!&lt;/p&gt;
&lt;p&gt;Ultimamente tenho andado a fazer reverse engineering ao classico do Spectrum o &lt;strong&gt;&lt;a href="https://github.com/falsovsky/REParadiseCafe"&gt;Paradise Café&lt;/a&gt;&lt;/strong&gt;, mas essa historia fica para mais para a frente, entretanto ontem andava ali de volta das minhas cassetes do Spectrum a ver o que tinha para la guardado, e lá no meio achei uma cassete que dizia &amp;ldquo;SUPER MEGA TAPE&amp;rdquo;, e claro decidi investigar ;-)&lt;/p&gt;
&lt;p&gt;Liguei a aparelhagem old school ao line in, e pus me a gravar a cena, ate conseguir uma qualidade fiável. E fiquei maravilhado com o que achei!&lt;/p&gt;</description></item><item><title>Refeitórios da UNL no Google Calendar</title><link>https://blol.org/1962-refeitorios-da-unl-no-google-calendar/</link><pubDate>Sun, 27 Jan 2013 04:07:48 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1962</guid><description>&lt;p&gt;Ora viva!&lt;br&gt;
Após pedidos de muitas famílias venho desta vez blogar sobre algo útil!&lt;/p&gt;
&lt;p&gt;Desde que fiz o post sobre a &lt;a href="//blol.org/1155-cantina-fct-unl-no-google-calendar" title="Cantina da FCT UNL no Google Calendar (com SMS)"&gt;Cantina da FCT/UNL no Google Calendar&lt;/a&gt; já tive alguns pedidos para fazer o mesmo para outras escolas da UNL, então hoje decidi por mãos à obra e aqui vai o resultado.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Local&lt;/th&gt;
&lt;th&gt;Almoço&lt;/th&gt;
&lt;th&gt;Jantar&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Faculdade de Ciências e Tecnologia | Refeitório&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.google.com/calendar/render?cid=http://www.google.com/calendar/feeds/er6h5gkood2sc0gevd7va86r28@group.calendar.google.com/public/basic"&gt;Adicionar&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.google.com/calendar/render?cid=http://www.google.com/calendar/feeds/ictaf1676cu3eus9p48lk41660@group.calendar.google.com/public/basic"&gt;Adicionar&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Faculdade de Ciências Médicas | Cafetaria&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.google.com/calendar/render?cid=http://www.google.com/calendar/feeds/js1lsf0m696gj5mj1as4qeecfo@group.calendar.google.com/public/basic"&gt;Adicionar&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.google.com/calendar/render?cid=http://www.google.com/calendar/feeds/6n20he5cl58d30pp9sm1jvfr1c@group.calendar.google.com/public/basic"&gt;Adicionar&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Faculdade de Ciências Sociais e Humanas | Refeitório&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.google.com/calendar/render?cid=http://www.google.com/calendar/feeds/n8td54q87pk2nd3j7ni39c0vt8@group.calendar.google.com/public/basic"&gt;Adicionar&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.google.com/calendar/render?cid=http://www.google.com/calendar/feeds/g6ad2u783ufvv5tju2m0bfg1nc@group.calendar.google.com/public/basic"&gt;Adicionar&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Faculdade de Ciências Sociais e Humanas | Snack&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.google.com/calendar/render?cid=http://www.google.com/calendar/feeds/55o8ucrunnisgqtml91gmjtn3c@group.calendar.google.com/public/basic"&gt;Adicionar&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.google.com/calendar/render?cid=http://www.google.com/calendar/feeds/7opdh9oq2cl0e1h25q4fnqdc8s@group.calendar.google.com/public/basic"&gt;Adicionar&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Residência Alfredo de Sousa | Refeitório&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.google.com/calendar/render?cid=http://www.google.com/calendar/feeds/qpqj6uh37ptqbtdjli6ndtl2sc@group.calendar.google.com/public/basic"&gt;Adicionar&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.google.com/calendar/render?cid=http://www.google.com/calendar/feeds/34japs5mdsqhufrgl10o6r88do@group.calendar.google.com/public/basic"&gt;Adicionar&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Os eventos nos calendários são inseridos todos os dias úteis às 4:30.&lt;br&gt;
Já agora para quem não sabe, a grande utilidade destes calendários é que no Google Calendar existe uma opção para nos alertar de eventos através de uma SMS, então com essa funcionalidade pode-se meter a enviar uma SMS todos os dias a avisar o que é a comida na cantina.&lt;/p&gt;</description></item><item><title>A Água</title><link>https://blol.org/1941-a-agua/</link><pubDate>Thu, 08 Nov 2012 22:58:01 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1941</guid><description>&lt;p&gt;Boas noites caros amigos das internets.&lt;/p&gt;
&lt;p&gt;Venho por este meio, usar este lindo blol para publicar o seguinte poema do grande Bocage.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;A Água&amp;rdquo;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Meus senhores eu sou a água&lt;br&gt;
que lava a cara, que lava os olhos&lt;br&gt;
que lava a rata e os entrefolhos&lt;br&gt;
que lava a nabiça e os agriões&lt;br&gt;
que lava a piça e os colhões&lt;br&gt;
que lava as damas e o que está vago&lt;br&gt;
pois lava as mamas e por onde cago.&lt;/p&gt;</description></item><item><title>Blocos de endereçamento IP por país</title><link>https://blol.org/1890-blocos-de-enderecamento-ip-por-pais/</link><pubDate>Wed, 20 Jun 2012 05:46:06 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1890</guid><description>&lt;p&gt;Bom dia malta das inutilidades.&lt;/p&gt;
&lt;p&gt;Venho aqui partilhar mais uma das minhas muitas inutilidades&amp;hellip; um escripe em pitão inútil que faz a consulta online de ip address blocks atribuidos a um determinado pais e devolve uma lista dos mesmos.&lt;br&gt;
No site onde faço o request, têm a versão csv disponivel também&amp;hellip; mas isso não tem piada e não é inútil pois não poderia usar um html parser e a coisa ia ficar assim meia deslavada e desenquadrada no blol.&lt;/p&gt;</description></item><item><title>Arvorezinha 2.0 - No explicit loops nor conditions, C99 &amp; POSIX Compliant</title><link>https://blol.org/1870-arvorezinha-2-0-no-explicit-loops-nor-conditions-c99-posix-compliant/</link><pubDate>Wed, 30 May 2012 12:52:56 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1870</guid><description>&lt;p&gt;Cá vai uma arvorezinha 2.0 totalmente inútil em C, sem loops nem condições (pelo menos, explicitamente)&amp;hellip; um verdadeiro apedrejamento aos rins dos recursos. No entanto, está compliant com C99 e POSIX. Não está à prova de numeros demasiado grandes para o seu tamanho&amp;hellip; receberão um exit status 1 caso se exceda o temporary size max e uma arvorezinha bem destruida.&lt;/p&gt;
&lt;p&gt;Deixando-me de lengalengas&amp;hellip; aqui vai:&lt;/p&gt;
&lt;p&gt;-- EDIT: Nova versão do code. Não valia a pena criar outro post com mais do mesmo, portanto editei aqui mesmo.&lt;/p&gt;</description></item><item><title>Arvorezinha 2.0 - C++11 Templates</title><link>https://blol.org/1858-arvorezinha-2-0-c11-templates/</link><pubDate>Mon, 28 May 2012 17:02:01 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1858</guid><description>&lt;p&gt;Ora viva!&lt;/p&gt;
&lt;p&gt;Desde a &lt;a href="//blol.org/1669-arvorezinha-c-templates-2"&gt;minha última submissão&lt;/a&gt;, tem havido vasto progresso no estado da arte da Arvorezinha. Foi lançado um &lt;a href="//blol.org/1715-arvorezinha-2-0"&gt;novo standard&lt;/a&gt;, e tem havido um renovado interesse em criar arvorezinhas cada vez mais obscuras e intricadas.&lt;/p&gt;
&lt;p&gt;Isto traz-nos a este post. Um dos problemas fundamentais com as arvorezinhas anteriores em templates de C++ era que cada caracter era impresso de cada vez. Era muito mais interessante se pudéssemos gerar a string completa da arvorezinha durante a compilação, após o qual imprimir seria apenas uma questão de enviar a string para a função adequada (printf, cout, etc). Uma das novidades no novo standard de C++, oficializado o ano passado, são os &lt;em&gt;&lt;a href="http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html#documentation"&gt;variadic templates&lt;/a&gt;&lt;/em&gt;. Estes são uma versão em templates das funções com número de argumentos variável, como já existiam em C(++) e no pré-processador de C, que nos permite &amp;ldquo;construir&amp;rdquo; uma string caracter a caracter, e despejá-la numa initializer list quando acabamos.&lt;/p&gt;</description></item><item><title>Arvorezinha 2.0 Python</title><link>https://blol.org/1840-arvorezinha-2-0-python/</link><pubDate>Mon, 14 May 2012 02:00:47 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1840</guid><description>&lt;p&gt;Ora cá vai mais uma Arvorezinha 2.0 em Python:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#!/usr/bin/python
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import sys
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;print (&amp;#34;&amp;#34;.join(map(lambda top: ((&amp;#39; &amp;#39; * ((int(sys.argv[1])) - top / 2 - 1)) + (&amp;#39;*&amp;#39; * top)) + &amp;#34;\n&amp;#34;, range(1, int(sys.argv[1]) * 2 + 1, 2))) + ((&amp;#39; &amp;#39; * (int(sys.argv[1]) / 2)) + (&amp;#39;#&amp;#39; * (int(sys.argv[1]) - ((int(sys.argv[1]) + 1) % 2)) + &amp;#34;\n&amp;#34;)) * (int(sys.argv[1]) / 2)).strip(&amp;#39;\n&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Arvorezinha em perl</title><link>https://blol.org/1834-arvorezinha-em-perl-2/</link><pubDate>Wed, 04 Jan 2012 16:54:15 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1834</guid><description>&lt;p&gt;Como a ultima arvorezinha era muito grande, vai aqui uma versão reduzida da v2!&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-perl" data-lang="perl"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/usr/bin/perl&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$i&lt;span style="color:#f92672"&gt;=&lt;/span&gt;$ARGV[&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;];map{$a&lt;span style="color:#f92672"&gt;.=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34; &amp;#34;&lt;/span&gt;x($i&lt;span style="color:#f92672"&gt;-&lt;/span&gt;$_&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;)&lt;span style="color:#f92672"&gt;.&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;x($_&lt;span style="color:#f92672"&gt;*&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;&lt;span style="color:#f92672"&gt;+&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;)&lt;span style="color:#f92672"&gt;.&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;;$b&lt;span style="color:#f92672"&gt;.=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34; &amp;#34;&lt;/span&gt;x($i&lt;span style="color:#f92672"&gt;/&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;)&lt;span style="color:#f92672"&gt;.&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;#&amp;#34;&lt;/span&gt;x($i%2?$i:$i&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;)&lt;span style="color:#f92672"&gt;.&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt;($i&lt;span style="color:#f92672"&gt;-&lt;/span&gt;$_&lt;span style="color:#f92672"&gt;+&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;)%2}(&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;..&lt;/span&gt;$i&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;);&lt;span style="color:#66d9ef"&gt;print&lt;/span&gt;$a&lt;span style="color:#f92672"&gt;.&lt;/span&gt;$b;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Como não ganhar um iPad 2</title><link>https://blol.org/1804-como-nao-ganhar-um-ipad-2/</link><pubDate>Mon, 26 Dec 2011 03:09:09 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1804</guid><description>&lt;p&gt;Boas noites,&lt;/p&gt;
&lt;p&gt;Venho hoje aqui blogar a minha tristeza ao saber que a password do &lt;a href="http://pplware.sapo.pt/pessoal/passatempos/ganha-um-ipad-2-com-o-pplware-e-a-officelan/"&gt;concurso para ganhar um iPad 2 no Pplware&lt;/a&gt; é alta string manhosa.&lt;/p&gt;
&lt;p&gt;Vou começar então a falar da minha jornada para tentar ganhar isto&amp;hellip;&lt;/p&gt;
&lt;p&gt;Comecei por andar a procurar qual era o software que usava a extensão &amp;ldquo;xcon&amp;rdquo;, um amigo meu descobriu entretanto que era o &lt;a href="http://www.dataconceal.com/"&gt;Conceal&lt;/a&gt;, um software todo manhoso em .NET.&lt;br&gt;
Experimentei umas passwords básicas no programa só para ver se advinhava antes de fazer alguma coisa mais complexa, mas o programa era tão manhoso que se usasse uma password invalida ele crashava, então desisti dessa aproximação.&lt;/p&gt;</description></item><item><title>Ano do Linux no Desktop</title><link>https://blol.org/1796-ano-do-linux-no-desktop/</link><pubDate>Thu, 22 Dec 2011 15:33:54 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1796</guid><description>&lt;p&gt;Faltam apenas 10 dias!!!&lt;/p&gt;</description></item><item><title>Quake 1</title><link>https://blol.org/1793-quake-1/</link><pubDate>Wed, 30 Nov 2011 14:17:41 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1793</guid><description>&lt;p&gt;Tenho que blolar sobre isto&amp;hellip; Encontra-se um server de Quake 1 Shareware a correr com CRMOD (bons velhos tempos do quake.telepac.pt em que tínhamos que fazer reconnect 50 mil vezes pois o server só tinha 16 slots), para quem quiser jogar pode sacar 17 magnificas megas de jogo em cadaval.net/quake e entrar no quake.cadaval.net para jogar&amp;hellip;&lt;/p&gt;</description></item><item><title>Novas arvorezinhas (1.0 e 2.0) em Perl</title><link>https://blol.org/1782-nova-arvorezinhas-1-0-e-2-0-em-perl/</link><pubDate>Thu, 20 Oct 2011 15:05:30 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1782</guid><description>&lt;p&gt;A arvorezinha em Perl que existe, não desenha a arvorezinha toda, com código escrito por quem faz o código da arvorezinha. Na minha opinião isso não respeitava o standard. Como tal achei que devia fazer uma arvorezinha como deve ser em Perl:&lt;/p&gt;
&lt;p&gt;A versão 1.0:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;print &amp;#34;*&amp;#34;x$_,&amp;#34;\n&amp;#34; for(1 .. 5);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para este não ser um post demasiado parvo. Resolvi fazer uma arvorezinha em versão 2.0. em Perl. Inspirei-me no código do falso, mas não consegui resolver o bug do tronco (também não tentei muito):&lt;/p&gt;</description></item><item><title>Ementalicious</title><link>https://blol.org/1766-ementalicious/</link><pubDate>Wed, 06 Jul 2011 21:22:11 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1766</guid><description>&lt;p&gt;Quando revi o post do falso sobre as &lt;a href="//blol.org/1155-cantina-fct-unl-no-google-calendar"&gt;ementas das cantinas da UNL&lt;/a&gt;, fiquei aborrecido com o entusiasmo do falso em relação ao &lt;a href="http://www.crummy.com/software/BeautifulSoup/"&gt;BeautifulSoup&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;É um facto que o Python é &lt;strong&gt;gay&lt;/strong&gt;. E por isso resolvi mostrar ao falso, como é que se programa com linguagens de homem. Mas entretanto, resolvi que em vez de fazer o mesmo que o falso, iria antes criar um saite, que para além de disponibilizar as ementas em HTML, também iria disponibilizar em RSS e JSON.&lt;/p&gt;</description></item><item><title>BrainFucker</title><link>https://blol.org/1742-brainfucker/</link><pubDate>Mon, 04 Jul 2011 22:54:45 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1742</guid><description>&lt;p&gt;Ora viva!!!&lt;/p&gt;
&lt;p&gt;Há uns tempos atrás vi nas internets um projecto verdadeiramente inutil, do calibre das coisas que vão aparecendo por aqui, chamado &lt;a href="http://4mhz.de/bfdev.html"&gt;Brainfuck Developer&lt;/a&gt;, que é um IDE para programar e debugar &lt;a href="http://en.wikipedia.org/wiki/Brainfuck"&gt;Brainfuck&lt;/a&gt;.&lt;br&gt;
Senti-me um pouco cabisbaixo ao ver que alguém tinha tentado chegar aos meus calcanhares em nível de inutilidade, portanto decidi por mãos à obra para me redimir. E então à boa maneira dos projectos open sores, decidi ripar a ideia, e comecei a desenvolver o BrainFucker, um IDE de Brainfuck para OSX!&lt;br&gt;
Claro que isto não foi assim feito do pé-pra-mão, até porque não sabia nada de Objective-C nem de Cocoa, mas com o tempo, e pachorra aos fins de semana e tal, finalmente está disponível a versão 0.1.&lt;/p&gt;</description></item><item><title>Adeus AquaPC, olá PCDiga</title><link>https://blol.org/1729-adeus-aquapc-ola-pcdiga/</link><pubDate>Tue, 22 Feb 2011 19:07:36 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1729</guid><description>&lt;p&gt;&lt;strong&gt;Carta aberta à AquaPC&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Resumindo a história, encomendei uma placa gráfica em Novembro, que ficou em espera sem darem qualquer acompanhamento, e foi cancelada a 31 de Janeiro por alegada falta de stock. Dias depois, o stock apareceu, 40 euros mais caro do que o valor quando fiz a encomenda. Pedi para reabrirem a encomenda. Não obtive resposta durante uma semana e eis que a placa deixou de estar em stock.&lt;/p&gt;</description></item><item><title>Árvorezinha 2.0</title><link>https://blol.org/1715-arvorezinha-2-0/</link><pubDate>Tue, 14 Dec 2010 01:07:15 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1715</guid><description>&lt;p&gt;Ora viva amigos!&lt;/p&gt;
&lt;p&gt;Há uns tempos no trabalho um colega meu começou a fazer pouco das minhas árvorezinhas, a dizer que só eram meia árvore, e que eu devia era de fazer uma árvore completa. Eu fiquei SENTIDO com tal AFRONTA, e fiquei a MATUTAR sobre isso, até que decidi por mãos à obra, e criar a Árvorezinha 2.0.&lt;/p&gt;
&lt;p&gt;Primeiro decidi faze-la em C porque é a linguagem STANDARD!&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[sourcecode language&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;c&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; argc, &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt;argv[])
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; altura;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; i,x;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; lul;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (argc &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt;(&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; altura &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;atoi&lt;/span&gt;(argv[&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;]);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/* Ciclo da altura da Arvore */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt;(i &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;; i &lt;span style="color:#f92672"&gt;&amp;lt;=&lt;/span&gt; altura; i&lt;span style="color:#f92672"&gt;++&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Numero de Espaços
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Começa em 0 porque existem linhas com 0 espaços
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Algoritmo: altura - linha
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt;(x &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; ; x &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; (altura&lt;span style="color:#f92672"&gt;-&lt;/span&gt;i); x&lt;span style="color:#f92672"&gt;++&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;putchar&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39; &amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Numero de Asteriscos
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Começa em 1 porque não existem linhas sem *
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Algoritmo: (2 * linha) - 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; (x &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;; x &lt;span style="color:#f92672"&gt;&amp;lt;=&lt;/span&gt; (&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;&lt;span style="color:#f92672"&gt;*&lt;/span&gt;i)&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;; x&lt;span style="color:#f92672"&gt;++&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;putchar&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;putchar&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/* Largura ultima linha */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lul &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (altura &lt;span style="color:#f92672"&gt;*&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;) &lt;span style="color:#f92672"&gt;-&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Ciclo da altura do tronco
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Algoritmo: altura / 2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt;(i &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;; i &lt;span style="color:#f92672"&gt;&amp;lt;=&lt;/span&gt; (altura&lt;span style="color:#f92672"&gt;/&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;); i&lt;span style="color:#f92672"&gt;++&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Por causa do ASCII nao permitir meio char
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; tive de fazer duas implementacoes diferentes,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; uma para quando o valor da altura do tronco
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; e&amp;#39; par, e outra para quando e&amp;#39; impar.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (altura &lt;span style="color:#f92672"&gt;%&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/* Impar */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Numero de Espaços
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Algoritmo: (lul / 4) - 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt;(x &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;; x &lt;span style="color:#f92672"&gt;&amp;lt;=&lt;/span&gt; (lul&lt;span style="color:#f92672"&gt;/&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;)&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;; x&lt;span style="color:#f92672"&gt;++&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;putchar&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39; &amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Numero de # (tronco)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Algoritmo: lul / 2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt;(x &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;; x &lt;span style="color:#f92672"&gt;&amp;lt;=&lt;/span&gt; (lul&lt;span style="color:#f92672"&gt;/&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;); x&lt;span style="color:#f92672"&gt;++&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;putchar&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;putchar&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/* Par */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Numero de Espaços
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Algoritmo: lul / 4
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt;(x &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;; x &lt;span style="color:#f92672"&gt;&amp;lt;=&lt;/span&gt; (lul&lt;span style="color:#f92672"&gt;/&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;); x&lt;span style="color:#f92672"&gt;++&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;putchar&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39; &amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Numero de # (tronco)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; Algoritmo: (lul / 2) - 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt;(x &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;; x &lt;span style="color:#f92672"&gt;&amp;lt;=&lt;/span&gt; (lul&lt;span style="color:#f92672"&gt;/&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;)&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;; x&lt;span style="color:#f92672"&gt;++&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;putchar&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;putchar&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#f92672"&gt;/&lt;/span&gt;sourcecode]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A pedido de muitas famílias, foi me imposta a tarefa de fazer um RFC da nova árvorezinha, mas não tenho muito jeito para escrever algoritmos em pseudo-código. Então tal obra heróica fica para o caro leitor, façam me um baseado no código em C e enviem-me!&lt;/p&gt;</description></item><item><title>Programação Funcional com Perl (parte I, revista e aumentada)</title><link>https://blol.org/1700-programacao-funcional-com-perl-parte-i-revista-e-aumentada/</link><pubDate>Sat, 11 Dec 2010 22:23:59 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1700</guid><description>&lt;p&gt;Começo com este artigo uma série de artigos relacionados com a Programação Funcional com Perl.&lt;/p&gt;
&lt;p&gt;Com estes artigos pretendo demonstrar algumas das capacidades do Perl para utilização com o paradigma de Programação Funcional. Não pretendo ensinar nem as bases da Programação Funcional, nem do Perl. Vou abrir excepções quando se tratarem de aspectos mais avançados e/ou muito relacionados com a própria Programação Funcional.&lt;br&gt;
O objectivo destes artigos também não passa por colocar os leitores a fazer Programação Funcional pura, mas sim demonstrar as funcionalidades de Programação Funcional que o Perl dispõe.&lt;br&gt;
Isto pode ser utilizado para praticar um estilo de programação com muitas semelhanças ao do paradigma da Programação Funcional, ou então simplesmente utilizar alguns &amp;ldquo;truques&amp;rdquo; para melhorar os programas que o leitor desenvolve.&lt;br&gt;
A compreensão elementar do Perl e da Programação Funcional é um requisito para a compreensão destes artigos contudo tudo será explicado de forma a permitir que um principiante possa compreender tudo e quem tiver dúvidas poderá contactar-me para as esclarecer (falco @ Portugal a Programar).&lt;/p&gt;</description></item><item><title>Indices bitmap - Oracle</title><link>https://blol.org/1693-indices-bitmap-oracle/</link><pubDate>Wed, 08 Dec 2010 10:55:08 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1693</guid><description>&lt;p&gt;Bom Dia Caros Leitores,&lt;/p&gt;
&lt;p&gt;Hoje vou vos falar sobre algo simples, mas que muitos podem ter dúvidas principalmente quando programam SQL ou simplesmente precisam de optimizar por várias razões algum código.&lt;/p&gt;
&lt;p&gt;Os programadores aplicam normalmente indices ao código, sem perceberem à priori, que tipo de indice necessitam, nem o seu impacto na performance. Hoje falaremos de indices bitmap que se resumem a indices que se designam comprimidos e que se aplicam geralmente nas seguintes situações:&lt;/p&gt;</description></item><item><title>HWM (High Water Mark) Oracle</title><link>https://blol.org/1673-hwm-high-water-mark-oracle/</link><pubDate>Sun, 05 Dec 2010 15:09:42 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1673</guid><description>&lt;p&gt;Bom dia Amigos,&lt;/p&gt;
&lt;p&gt;Hoje vou falar-vos sobre um conceito denominado High Water Mark, ou simplesmente HWM, que basicamente define no Oracle a divisão de um segmento entre blocos usados e blocos livres. Um segmento, para os menos entendidos é um container de objectos, sejam eles tabelas, indices, cache, etc.&lt;/p&gt;
&lt;p&gt;Ora então, para que serve isto do HWM? &lt;strong&gt;&lt;em&gt;Imagine-mos&lt;/em&gt;&lt;/strong&gt; que por exemplo temos uma tabela recentemente criada e que a tabela é basicamente uma estrutura linear, seria parecido com isto:&lt;/p&gt;</description></item><item><title>Arvorezinha --- C++ Templates 2</title><link>https://blol.org/1669-arvorezinha-c-templates-2/</link><pubDate>Thu, 04 Nov 2010 03:00:10 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1669</guid><description>&lt;p&gt;Viva. Há demasiado tempo que não são adicionadas novas entradas à nossa já lendária colecção de arvorezinhas em várias linguagens e dialectos de todo o mundo.&lt;/p&gt;
&lt;p&gt;Assim sendo, hoje trago-vos uma arvorezinha feita com templates de C++. Sim, eu sei. &lt;a href="//blol.org/1390-arvorezinha-c-templates"&gt;Já temos uma&lt;/a&gt;. Mas isto não me impede de utilizar outras capacidades de C++ para cumprir o mesmo objectivo. Ora vejam lá:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;using namespace std;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;template&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; i&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;struct&lt;/span&gt; SemiArvorezinha : public SemiArvorezinha&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;i&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;SemiArvorezinha&lt;/span&gt;(){cout &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;template&lt;span style="color:#f92672"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;struct&lt;/span&gt; SemiArvorezinha&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; {};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;template&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; i&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;struct&lt;/span&gt; Arvorezinha : public Arvorezinha&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;i&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;, SemiArvorezinha&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;i&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;Arvorezinha&lt;/span&gt;(){ cout &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;template&lt;span style="color:#f92672"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;struct&lt;/span&gt; Arvorezinha&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;{};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; argc, &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt; &lt;span style="color:#f92672"&gt;**&lt;/span&gt;argv)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Arvorezinha&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; A;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Em vez de funções com templates, temos nesta encarnação classes e multiple inheritance. Bem haja a todos.&lt;/p&gt;</description></item><item><title>Scam nos leilões do ClubeFashion</title><link>https://blol.org/1657-scam-nos-leiloes-do-clubefashion/</link><pubDate>Thu, 28 Oct 2010 09:32:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1657</guid><description>&lt;p&gt;Ora viva amigos!&lt;/p&gt;
&lt;p&gt;Hoje não venho aqui blogar de nada relativo a Informáticas, mas sim a um &lt;em&gt;scam&lt;/em&gt; lindo que achei nas Internets portuguesas.&lt;/p&gt;
&lt;p&gt;Então estava eu ontem muito bem no meu covil, a fazer a lida das coisas inúteis do dia-a-dia, quando a minha FC se vira para mim e diz-me que o site ClubeFashion (que já é conhecido por dar altas baldas de 1 e 2 meses para entregar as coisas que se compra la) agora tem leilões, e que haviam la pessoas a ganhar coisas mirabolantes por preços bues baratos.&lt;/p&gt;</description></item><item><title>FCT</title><link>https://blol.org/1654-fct/</link><pubDate>Sun, 17 Oct 2010 16:22:18 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1654</guid><description>&lt;p&gt;No outro dia ia pela escolinha e vi o fALSO. Fui falar com ele e ele pensava que eu era todo trve. Só que eu não sou&lt;/p&gt;</description></item><item><title>Arduino, AT*'s, AVR Studio/AVRdude, ISP, JTAG, debugWIRE e afins</title><link>https://blol.org/1569-arduino-ats-avr-studioavr-dude-isp-jtag-debugwire-e-afins/</link><pubDate>Sun, 05 Sep 2010 03:02:33 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1569</guid><description>&lt;p&gt;Boa noite amiguinhos!&lt;/p&gt;
&lt;p&gt;A pedido de algumas familias, volto para monologar um pouco sobre algumas inutilidades que me ocuparam o fim de semana. Penso que também poderá ser util para o patrão deste blog!&lt;/p&gt;
&lt;p&gt;Aqui há algum tempo falei com nosso amiguinho fALSO sobre o facto de ele utilizar o AVR Studio para brincar com o seu arduino. Na altura a conversa ficou um bocado por ali, não falamos muito sobre o caso, mas hoje vou blolar sobre isso com um mini-how-to inútil.&lt;/p&gt;</description></item><item><title>Cena de Urso da Tipp-Ex</title><link>https://blol.org/1564-cena-de-urso-da-tipp-ex/</link><pubDate>Thu, 02 Sep 2010 23:01:12 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1564</guid><description>&lt;p&gt;Boas amiguinhos!&lt;/p&gt;
&lt;p&gt;Já não blogo há algum tempo, portanto aqui vai um post sobre uma coisa completamente inútil:&lt;/p&gt;
&lt;p&gt;Um amigo meu mostrou-me nas internets uma cena fofi, que podem ver aqui:&lt;br&gt;
&lt;a href="http://www.youtube.com/profile?user=tippexperience&amp;amp;feature=iv&amp;amp;annotation_id=annotation_820885"&gt;http://www.youtube.com/profile?user=tippexperience&amp;amp;feature=iv&amp;amp;annotation_id=annotation_820885&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Basicamente tens alto player etc e depois metes palavras (verbos) na caixinha de texto e mostra-te um video se existir. O problema é que eu sou preguiçoso e não me apetecia tar a pensar em palavras. Então decidi fazer alto scripte em php. Fui às internets, saquei uma lista de 600 e tais verbos mais usados em inglês e fiz o seguinte:&lt;/p&gt;</description></item><item><title>Bus Pirate - Firmware update</title><link>https://blol.org/1524-bus-pirate-firmware-update/</link><pubDate>Wed, 01 Sep 2010 23:04:02 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1524</guid><description>&lt;p&gt;Bom noite amiguinhos!! (disseram-me que &amp;ldquo;amiguinhos&amp;rdquo; ficava muito gay, então decidi editar).&lt;/p&gt;
&lt;p&gt;Estive quase para blogar sobre a aventura que foi conseguir recuperar a password neste blog inútil&amp;hellip; mas fica para outra vez.&lt;/p&gt;
&lt;p&gt;Ora estava eu hoje com vontade de arranjar problemas e decidi fazer um firmware update ao meu Bus Pirate. Dei uma vista de olhos na diagonal no site mas como não estava com muita paciencia para ler, decidi logo zergar à campeão e fiz logo o download do maior numero que sufixava o nome dos ficheiros de firmware disponiveis para download no repositório.&lt;/p&gt;</description></item><item><title>McEliece e a QFT</title><link>https://blol.org/1518-mceliece-e-a-qft/</link><pubDate>Sun, 22 Aug 2010 04:17:40 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1518</guid><description>&lt;p&gt;Nos últimos dias, tem andado uma notícia a passar pelos sites de notícias &amp;ldquo;científicas&amp;rdquo; que me chamou a atenção. Pela negativa. Pois parece que uns &lt;a href="http://www.technologyreview.com/blog/arxiv/25629/"&gt;gajos quaisquer&lt;/a&gt; &lt;a href="http://www.popsci.com/technology/article/2010-08/quantum-computer-proof-data-encryption-researchers-look-formulat-created-1978"&gt;descobriram&lt;/a&gt; que o algoritmo proposto pelo &lt;a href="https://docs.google.com/viewer?url=http%3A%2F%2Fipnpr.jpl.nasa.gov%2Fprogress_report2%2F42-44%2F44N.PDF"&gt;McEliece em 1978&lt;/a&gt; é resistente a &amp;ldquo;todos os ataques quânticos&amp;rdquo;. Que valente merda de &amp;ldquo;jornalismo&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Quem se tivesse dado ao trabalho de ler o artigo tinha reparado que só foram considerados ataques baseados na QFT (Quantum Fourier Transform). A QFT é extremamente útil na análise de sistemas criptográficos, dado que permite detectar períodos de uma função consideravelmente mais rápido que um computador clássico. Isto é posto em uso no &lt;a href="http://arxiv.org/abs/quant-ph/9508027"&gt;algoritmo de Shor&lt;/a&gt; e extensões do mesmo para quebrar sistemas baseados em factorização de inteiros (RSA), logaritmo discreto (DH, DSA), logaritmo discreto em curvas elípticas (ECDH, ECDSA), etc.&lt;/p&gt;</description></item><item><title>Desenvolvimentos no SHA-3</title><link>https://blol.org/1514-desenvolvimentos-no-sha-3/</link><pubDate>Fri, 13 Aug 2010 00:06:38 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1514</guid><description>&lt;p&gt;Ora viva,&lt;/p&gt;
&lt;p&gt;Como os leitores deste blog devem certamente lembrar-se, decorre neste momento uma competição para seleccionar uma função de hashing adequada para servir como um novo standard, denominado SHA-3.&lt;/p&gt;
&lt;p&gt;As funções restantes neste momento são: BLAKE, Blue Midnight Wish, CubeHash, ECHO, Fugue, Grøstl, Hamsi, JH, Keccak, Luffa, Shabal, SHAvite-3, SIMD e Skein. No próximo dia 24, serão anunciados os 5 finalistas da competição.&lt;/p&gt;
&lt;p&gt;Quais destas funções serão escolhidas é impossível de saber ao certo. Das funções listadas, não foram encontrados ataques que reduzissem dramaticamente a segurança de qualquer uma delas. Existem algumas decisões no design destas funções que podem afectar a segurança, no entanto.&lt;/p&gt;</description></item><item><title>Arvorezinha – POSTSCRIPT</title><link>https://blol.org/1504-arvorezinha-%E2%80%93-postscript/</link><pubDate>Wed, 11 Aug 2010 16:42:10 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1504</guid><description>&lt;p&gt;Boas,&lt;/p&gt;
&lt;p&gt;depois de ver estas novas arvorezinhas, deu-me uma vontade de fazer uma. O postscript é muito marado, é uma maquina de stack, e ainda por cima, a origem das coordenadas é no canto inferior esquerdo. Aqui vai&amp;hellip;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;%!&lt;/span&gt;PS
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;cm {&lt;span style="color:#ae81ff"&gt;28.34645669&lt;/span&gt; mul} &lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#f92672"&gt;%&lt;/span&gt;definir centrimetros
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;size{&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; cm}&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#f92672"&gt;%&lt;/span&gt;definir uma constante
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;w{&lt;span style="color:#ae81ff"&gt;595&lt;/span&gt;}&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#f92672"&gt;%&lt;/span&gt;width da folha em pontos
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;h{&lt;span style="color:#ae81ff"&gt;842&lt;/span&gt;}&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#f92672"&gt;%&lt;/span&gt;height da folha em pontos
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;PageSize [ w h ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;movetoTop{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;yy exch &lt;span style="color:#66d9ef"&gt;def&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;xx exch &lt;span style="color:#66d9ef"&gt;def&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;h&lt;/span&gt; yy sub
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;aux2 exch &lt;span style="color:#66d9ef"&gt;def&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;xx&lt;/span&gt; aux2 moveto
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#f92672"&gt;%&lt;/span&gt; O (&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;,&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;) &lt;span style="color:#960050;background-color:#1e0010"&gt;é&lt;/span&gt; no canto inferior esquerdo, então esta função transforma o (&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;,&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;) no canto superior esquerdo com as coordenadas positivas para baixo
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;Courier &lt;span style="color:#f92672"&gt;%&lt;/span&gt; Nome &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt; tipo de letra
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;size selectfont &lt;span style="color:#f92672"&gt;%&lt;/span&gt; Definir o tamanho da letra
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;i exch &lt;span style="color:#66d9ef"&gt;def&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;i&lt;/span&gt; size mul
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; size add
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;yy exch &lt;span style="color:#66d9ef"&gt;def&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; i{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;j exch &lt;span style="color:#66d9ef"&gt;def&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;j&lt;/span&gt; size mul
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; size add
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;xx exch &lt;span style="color:#66d9ef"&gt;def&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;xx&lt;/span&gt; yy movetoTop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (&lt;span style="color:#f92672"&gt;*&lt;/span&gt;) show
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; clear
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; &lt;span style="color:#f92672"&gt;%&lt;/span&gt;colunas
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; &lt;span style="color:#f92672"&gt;%&lt;/span&gt;linhas
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;showpage &lt;span style="color:#f92672"&gt;%&lt;/span&gt; imprimir página
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;O resultado final é este:&lt;/p&gt;</description></item><item><title>Arvorezinha em Windows PowerShell</title><link>https://blol.org/1498-arvorezinha-em-windows-powershell/</link><pubDate>Wed, 11 Aug 2010 14:17:41 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1498</guid><description>&lt;p&gt;Após colocar a ideia da arvorezinha, vi muitos ports a aparecerem aqui. No entanto não estão mesmo na RFC da &amp;ldquo;primeira&amp;rdquo;, pois é pedido o numero maximo de bases da arvore (ler N e ir com um for ate N).&lt;/p&gt;
&lt;p&gt;Hoje lembrei-me que ainda não colocaram aqui uma em Windows PowerShell, por isso aqui vai:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;# This program is free software. It comes without any warranty, to&lt;br&gt;
# the extent permitted by applicable law. You can redistribute it&lt;br&gt;
# and/or modify it under the terms of the Do What The Fuck You Want&lt;br&gt;
# To Public License, Version 2, as published by Sam Hocevar. See&lt;br&gt;
# &lt;a href="http://sam.zoy.org/wtfpl/COPYING"&gt;http://sam.zoy.org/wtfpl/COPYING&lt;/a&gt; for more details.&lt;/p&gt;</description></item><item><title>Arvorezinha em AppleScript</title><link>https://blol.org/1487-arvorezinha-em-applescript/</link><pubDate>Tue, 10 Aug 2010 15:52:31 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1487</guid><description>&lt;p&gt;Boas tardes a todos,&lt;/p&gt;
&lt;p&gt;Ontem à noite, pelas 4 ou 5 e tal da matina, provavelmente devido aos líquidos de Baco e afins, não consegui, por questões várias, colocar aqui a primeira versão da arvorezinha em AppleScript. Como poderá ver o leitor, trata-se de uma linguagem de programação altamente sofisticada e complexa, que não é para qualquer um&amp;hellip;&lt;br&gt;
Quem quiser faço um bundle para correr como aplicação :-)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(*&lt;br&gt;
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE&lt;br&gt;
Version 2, December 2004&lt;/p&gt;</description></item><item><title>Maquinas Fotográficas Vintage</title><link>https://blol.org/1472-maquinas-fotograficas-vintage/</link><pubDate>Thu, 22 Jul 2010 23:37:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1472</guid><description>&lt;p&gt;Ora viva amigalhaços!&lt;br&gt;
Eu desde há uns tempos que ando fascinado com maquinas fotográficas clássicas, e então há coisa de uns meses atrás vi alta pérola no eBay, uma &lt;a href="http://www.flickr.com/photos/falso/sets/72157623508759532/"&gt;Kodak Junior II&lt;/a&gt; por um preço mesmo bacano, o gajo la dizia que estava boa, e o rating dele era 100% então comprei logo à fome.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/falso/4395569156/" title="Pronta a disparar by falso, on Flickr"&gt;&lt;img src="//blol.org/wp-content/uploads/HLIC/4395569156_e3c6630974.jpg" alt="Pronta a disparar"&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/falso/4396033269/" title="Detalhe da lente by falso, on Flickr"&gt;&lt;img src="//blol.org/wp-content/uploads/HLIC/4396033269_bcb6fa5923.jpg" alt="Detalhe da lente"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Arvorezinha - OCTAVE</title><link>https://blol.org/1463-arvorezinha-octave/</link><pubDate>Mon, 14 Jun 2010 22:04:51 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1463</guid><description>&lt;p&gt;Boas,&lt;/p&gt;
&lt;p&gt;Noutro dia, estava eu muito bem a trabalhar para middleware na faculdade, até que veio ter comigo uma gaja das quimicas a perguntar se eu sabia como chamar uma função em octave. Tive que dizer que não sabia, mas pensei, ainda não existe uma arvorezinha em octave. Aqui vai ela.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;C:\Octave\3.2.4_gcc-4.4.0\bin&amp;gt;cat arvorezinha-octave.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;for i=1:5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; for j=1:i
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; printf(&amp;#34;*&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; endfor
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; printf(&amp;#34;\n&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;endfor
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;C:\Octave\3.2.4_gcc-4.4.0\bin&amp;gt;octave.exe arvorezinha-octave.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GNU Octave, version 3.2.4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Copyright (C) 2009 John W. Eaton and others.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;This is free software; see the source code for copying conditions.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;FITNESS FOR A PARTICULAR PURPOSE. For details, type `warranty&amp;#39;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Octave was configured for &amp;#34;i686-pc-mingw32&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Additional information about Octave is available at http://www.octave.org.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Please contribute if you find this software useful.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;For more information, visit http://www.octave.org/help-wanted.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Report bugs to (but first, please read
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http://www.octave.org/bugs.html to learn how to write a helpful report).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;For information about changes from previous versions, type `news&amp;#39;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;***
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*****
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Arvorezinha paralela - pthreads</title><link>https://blol.org/1460-arvorezinha-paralela-pthreads/</link><pubDate>Mon, 07 Jun 2010 16:12:48 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1460</guid><description>&lt;p&gt;Boas. Como meu primeiro post neste belíssimo blog decidi fazer uma arvorezinha nunca vista. Uma Arvorezinha paralela usando pthreads do C. Completamente inutil&amp;hellip;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;* arvorezinha_pthread.c
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;* Created on: 28/5/2010
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;* Author: João Saramago
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;* Versão da arvorezinha paralela com pthreads
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;pthread.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#define LINHAS 5
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt;&lt;span style="color:#f92672"&gt;*&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;arvorezinha&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt;&lt;span style="color:#f92672"&gt;*&lt;/span&gt; arg){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; i;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; n&lt;span style="color:#f92672"&gt;=*&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt;&lt;span style="color:#f92672"&gt;*&lt;/span&gt;)arg;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt;&lt;span style="color:#f92672"&gt;*&lt;/span&gt; out &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;malloc&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;sizeof&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;char&lt;/span&gt;)&lt;span style="color:#f92672"&gt;*&lt;/span&gt;n&lt;span style="color:#f92672"&gt;+&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; (i &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;; i &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;n; &lt;span style="color:#f92672"&gt;++&lt;/span&gt;i) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt;(out&lt;span style="color:#f92672"&gt;+&lt;/span&gt;i)&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt;(out&lt;span style="color:#f92672"&gt;+&lt;/span&gt;i)&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt;&lt;span style="color:#f92672"&gt;*&lt;/span&gt;)out;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; argc, &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt; &lt;span style="color:#f92672"&gt;**&lt;/span&gt;argv) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; i;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;pthread_t&lt;/span&gt; t[LINHAS];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt;(i&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;;i&lt;span style="color:#f92672"&gt;&amp;lt;=&lt;/span&gt;LINHAS;i&lt;span style="color:#f92672"&gt;++&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;pthread_create&lt;/span&gt;(&lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt;t[i&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;],NULL,arvorezinha,&lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt;i);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt;(i&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;i&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;LINHAS;i&lt;span style="color:#f92672"&gt;++&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt;&lt;span style="color:#f92672"&gt;*&lt;/span&gt; out;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;pthread_join&lt;/span&gt;(t[i],&lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt;out);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;printf&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;%s&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;\n&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;,(&lt;span style="color:#66d9ef"&gt;char&lt;/span&gt;&lt;span style="color:#f92672"&gt;*&lt;/span&gt;)out);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;free&lt;/span&gt;(out);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Windows Mobile 7 - Arvorezinha</title><link>https://blol.org/1451-windows-mobile-7-arvorezinha/</link><pubDate>Fri, 04 Jun 2010 17:14:56 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1451</guid><description>&lt;p&gt;Boa Tarde,&lt;/p&gt;
&lt;p&gt;Podem já ter na vossa posse uma fantástica e mágica aplicação que vai revolucionar a nossa forma de ver e usar arvorezinhas no dia a dia. Assim que experimentarem no vosso novo telémovel com windows mobile 7 todo o vosso mundo vai mudar&amp;hellip;&lt;/p&gt;
&lt;p&gt;O conselho de administração deste blog está a pensar colocá-lo à venda no Windows Market Share e também no Android Market a correr em cima de wine.&lt;/p&gt;</description></item><item><title>Lost Eden</title><link>https://blol.org/1421-lost-eden/</link><pubDate>Fri, 04 Jun 2010 00:11:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1421</guid><description>&lt;p&gt;Olá pessoal.&lt;/p&gt;
&lt;p&gt;Eu há uns tempos, quando ainda estava de cama, lembrei-me de um granda jogo dos tempos do DOS, o &lt;a href="http://en.wikipedia.org/wiki/Lost_Eden"&gt;Lost&lt;/a&gt; &lt;a href="http://www.mobygames.com/game/lost-eden"&gt;Eden&lt;/a&gt;. A história é sobre um mundo onde os humanos e os dinossauros coexistiam, e eram amigos (alguns), e era bem fixe para a altura!&lt;br&gt;
O jogo era feito de animações em vídeo, género ficheiros FLC feitos no 3D Studio, e incluía altas musicas do grande compositor &lt;a href="http://en.wikipedia.org/wiki/St%C3%A9phane_Picq"&gt;Stéphane Picq&lt;/a&gt; (eu tenho o CD original da banda sonora ;-).&lt;/p&gt;</description></item><item><title>Portugal@Rippar - Os rippers contra-atacam</title><link>https://blol.org/1413-portugalrippar-os-rippers-contra-atacam/</link><pubDate>Sat, 29 May 2010 10:51:27 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1413</guid><description>&lt;p&gt;Antes de mais, devo dizer, que estou emocionado pela quantidade de arvorezinhas que surgiram depois dos meus dois posts de arvorezinhas&amp;hellip;&lt;/p&gt;
&lt;p&gt;Agora vou ao assunto deste post.&lt;br&gt;
O &amp;ldquo;ripanço&amp;rdquo; (desculpa dcoder), no &lt;a href="http:///www.portugal-a-programar.org/"&gt;Portugal@Rippar&lt;/a&gt; está de volta!&lt;br&gt;
Digo de volta porque &lt;a href="//blol.org/432-achtung-rippers"&gt;até uma arvorezinha já foi ripada&lt;/a&gt;. Um dia conto o drama todo como deve ser, mas vai ser difícil porque eu não ripei o texto da discussão antes dos donos do fórum o terem apagado para esconder as asneiras que fizeram e as acusações injuriosas que fizeram a mim e ao falso.&lt;/p&gt;</description></item><item><title>Arvorezinha - HP Precision Architecture (aka PA-RISC aka DEMONIO)</title><link>https://blol.org/1407-arvorezinha-hp-precision-architecture-aka-pa-risc-aka-demonio/</link><pubDate>Thu, 27 May 2010 16:36:35 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1407</guid><description>&lt;p&gt;E ca fica mais uma arvorezinha, desta vez numa arquitectura demoniaca.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hpux$ cat arvorezinha.S
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .LEVEL 1.1 ; cenas gays do hpux
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .SPACE $PRIVATE$ ; o HPPA funciona por spaces, ler arch book
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 ; pra mais informacoes ou esquizofrenia antecipada
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .SPACE $TEXT$
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .IMPORT $global$,DATA
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .IMPORT $$dyncall,MILLICODE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .IMPORT write,CODE ; eh mais simpatico fazer imports
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .IMPORT exit,CODE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .IMPORT __main,CODE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .SPACE $TEXT$
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .SUBSPA $LIT$
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .align 4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;STAR
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .STRING &amp;#34;\x2a\x00&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LF
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .STRING &amp;#34;\x0a\x00&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .SPACE $TEXT$
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .SUBSPA $CODE$
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .align 4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .NSUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR ; a cena dos privilege levels eh funny
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .PROC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .CALLINFO FRAME=64,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .ENTRY
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .CALL
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; xor %r4,%r4,%r4 ; aka meter %r4 a zero :)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;arewedoneyet
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; comib,=,n 5,%r4,kk10xbai ; se %r4 for 5, BAI NAO!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; xor %r3,%r3,%r3 ; inicializar o counter do segundo loope
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;letsdothis
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; comb,&amp;lt;=,n %r3,%r4,estrela ; se o %r3 for menor ou igual a %r4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; xor %r1,%r1,%r26 ; sim, isto eh um nop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldi 1,%r26 ; escolher o fd (1 eh stdout)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldil LR&amp;#39;LF,%r19 ; copiar a stringue com
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldo RR&amp;#39;LF(%r19),%r25 ; paneleirices...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldi 1,%r24 ; length da stringue
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bl write,%r2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; xor %r1,%r2,%r3 ; sim, isto eh um nop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; addi 1,%r4,%r4 ; incrementar o %r4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b arewedoneyet
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; shladd %r4,2,%r8,%r15 ; sim, isto eh um nop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;estrela
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldi 1,%r26 ; ver outro write
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldil LR&amp;#39;STAR,%r19 ; eh a mm merda
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldo RR&amp;#39;STAR(%r19),%r25
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldi 1,%r24
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bl write,%r2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; add %r13,%r14,%r15 ; sim, isto eh um nop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; addi 1,%r3,%r3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b letsdothis
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nop ; adivinha...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kk10xbai
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldi 0,%r26
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .CALL ARGW0=GR
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bl exit,%r2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; shrpw %r8,%r7,8,%r9 ; nop nop nop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; subi,OD 42,%r3,%r12 ; nop nop nop nopppppp! :D
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .EXIT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .PROCEND
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hpux$ gcc arvorezinha.S
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;***
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hpux$
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;jah agora para esclarecer um pouco certas esquisitisses desta arquitectura, para loadar uma word (32 bits), como todas as instruções têm de ter 32bits eh obvio que nao da para meter um endereço com esse tamanho e ainda gastar 6 bits num opcode. entao o que estes genios da computacao fizeram foi primeiro loadar 21 bits e depois os 11 bits restantes.&lt;/p&gt;</description></item><item><title>Arvorezinha - SPARC!</title><link>https://blol.org/1402-arvorezinha-sparc/</link><pubDate>Tue, 25 May 2010 15:10:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1402</guid><description>&lt;p&gt;Btw, esta arch é meio intragável&amp;hellip;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;solaris$ cat arvore.S
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.section &amp;#34;.rodata1&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.align 4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.L0:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .ascii &amp;#34;*\0&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.L1:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .ascii &amp;#34;\n\0&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.L2:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .ascii &amp;#34;bla\n\0&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .section &amp;#34;.text&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .global main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;main:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; save %sp,-96,%sp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov 0,%g2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;arewedoneyet:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmp %g2,5 ! comparar com RFC_MAX pois claro, n eh preciso registry pra isto
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; be weredonefaggot
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov 0,%g3 ! inicializar counter1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;estrelitas:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmp %g3,%g2 ! ah e tal, compara-me a pissa, less or equal?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ble estrela
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; set .L1,%o0 ! meter LF no output register, e mandar printar
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; call printf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; inc %g2 ! increasar o counter2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ba arewedoneyet
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;estrela:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; set .L0,%o0 ! printar estrelinha
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; call printf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; inc %g3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ba estrelitas
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;weredonefaggot:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; restore
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;solaris$ gcc arvore.S -o arvorezinha
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;solaris$ ./arvorezinha
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;***
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;solaris$
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Arvorezinha - melhor arquitectura do mundo (Alpha)</title><link>https://blol.org/1396-arvorezinha-melhor-arquitectura-do-mundo-alpha/</link><pubDate>Tue, 25 May 2010 12:53:07 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1396</guid><description>&lt;p&gt;Como se lê no subject, fica aqui uma arvorezinha na melhor arquitectura à face do planeta. Em breve na terceira melhor arquitectura à face do planeta&amp;hellip;(SPARC)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;true64&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; gcc arvore&lt;span style="color:#f92672"&gt;.&lt;/span&gt;S &lt;span style="color:#f92672"&gt;-&lt;/span&gt;o arvorezinha
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;true64&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#f92672"&gt;./&lt;/span&gt;arvorezinha
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;*&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;**&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;***&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;****&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;*****&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;true64&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; cat arvore&lt;span style="color:#f92672"&gt;.&lt;/span&gt;S
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;.&lt;/span&gt;data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LF: &lt;span style="color:#f92672"&gt;.&lt;/span&gt;ascii &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;\n\0&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GAY: &lt;span style="color:#f92672"&gt;.&lt;/span&gt;ascii &lt;span style="color:#e6db74"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;.&lt;/span&gt;text
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;.&lt;/span&gt;align &lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;.&lt;/span&gt;set noreorder
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;.&lt;/span&gt;arch ev4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;.&lt;/span&gt;globl main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;.&lt;/span&gt;ent main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;main:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldgp &lt;span style="color:#f92672"&gt;$&lt;/span&gt;gp,&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;(&lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;27&lt;/span&gt;) &lt;span style="color:#75715e"&gt;# load ao global pointer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; stq &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;26&lt;/span&gt;,&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;(&lt;span style="color:#f92672"&gt;$&lt;/span&gt;sp) &lt;span style="color:#75715e"&gt;# inicializar o stack pointer (só naquela)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lda &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;,&lt;span style="color:#ae81ff"&gt;5&lt;/span&gt; &lt;span style="color:#75715e"&gt;# RFC_MAX para o loop principal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lda &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;9&lt;/span&gt;,&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#75715e"&gt;# counter do loop1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;loop1:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmpeq &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;9&lt;/span&gt;,&lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;,&lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;7&lt;/span&gt; &lt;span style="color:#75715e"&gt;# se $9 igual $10, branchar para o final&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bne &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;7&lt;/span&gt;,final
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lda &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;11&lt;/span&gt;,&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#75715e"&gt;# counter para o loop2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;loop2:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmple &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;11&lt;/span&gt;,&lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;9&lt;/span&gt;,&lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;7&lt;/span&gt; &lt;span style="color:#75715e"&gt;# se $11 menor ou igual q $9, estrelar!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bne &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;7&lt;/span&gt;,estrela
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lda &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;16&lt;/span&gt;,LF &lt;span style="color:#75715e"&gt;# new line pl0x&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jsr &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;26&lt;/span&gt;,printf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldgp &lt;span style="color:#f92672"&gt;$&lt;/span&gt;gp,&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;(&lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;26&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lda &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;9&lt;/span&gt;,&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;(&lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;9&lt;/span&gt;) &lt;span style="color:#75715e"&gt;# uma maneira gay de incrementar&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; br loop1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;estrela:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lda &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;16&lt;/span&gt;,GAY &lt;span style="color:#75715e"&gt;# printar estrelinha...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jsr &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;26&lt;/span&gt;,printf &lt;span style="color:#75715e"&gt;# é sempre preciso fazer reset ao $gp&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldgp &lt;span style="color:#f92672"&gt;$&lt;/span&gt;gp,&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;(&lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;26&lt;/span&gt;) &lt;span style="color:#75715e"&gt;# depois de usar uma função&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; addq &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;11&lt;/span&gt;,&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;,&lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;11&lt;/span&gt; &lt;span style="color:#75715e"&gt;# outra maneira gay de incrementar :p&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; br loop2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;final:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;31&lt;/span&gt;,&lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#75715e"&gt;# return = 0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldq &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;26&lt;/span&gt;,&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;(&lt;span style="color:#f92672"&gt;$&lt;/span&gt;sp) &lt;span style="color:#75715e"&gt;# limpar a stacka, se bem q nao foi usado mas pronto..&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ret &lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;31&lt;/span&gt;,(&lt;span style="color:#f92672"&gt;$&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;26&lt;/span&gt;),&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; &lt;span style="color:#75715e"&gt;# returnarrrrrrrrr&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;.&lt;/span&gt;end main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;true64&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Arvorezinha - C++ Templates</title><link>https://blol.org/1390-arvorezinha-c-templates/</link><pubDate>Tue, 25 May 2010 11:07:21 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1390</guid><description>&lt;p&gt;A pedido de várias famílias, aqui está uma versão da árvorezinha em C++, sem loops. Os loops são avaliados durante a compilação; o código final contém apenas a sequência de caracteres impressos.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;enum&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; LIMIT &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;&lt;span style="color:#f92672"&gt;+&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;template &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; x&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;inner&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;cout &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; inner&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;x&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;template &lt;span style="color:#f92672"&gt;&amp;lt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; inner&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt;){}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;template &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; x&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;outer&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; inner&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;x&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;cout &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; outer&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;x&lt;span style="color:#f92672"&gt;+&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;template&lt;span style="color:#f92672"&gt;&amp;lt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; outer&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;LIMIT&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt;){}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; argc, &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt; &lt;span style="color:#f92672"&gt;**&lt;/span&gt;argv)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; outer&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Arvorezinha - REXX</title><link>https://blol.org/1384-arvorezinha-rexx/</link><pubDate>Sun, 23 May 2010 03:35:08 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1384</guid><description>&lt;p&gt;Olá de novo, o meu caro amigo cardinal já há uns dias que me tem dito que para eu ser verdadeiramente inútil tinha de fazer uma arvorezinha em AREXX. Fui então pesquisar o que é isso era e descobri que o AREXX é uma implementação para Amiga da linguagem REXX criada pela IBM em 1979 (pelo menos segundo a Wikipedia).&lt;br&gt;
O cardinal disse-me para experimentar o AROS (que é uma implementação do AmigaOS para outras arquitecturas) numa maquina virtual, mas aquilo pareceu-me bues de arcaico. Então fui foi à procura dum interpretador de REXX para Windows, e achei o &lt;a href="http://ftp.gwdg.de/pub/languages/rexx/brexx/html/rx.html"&gt;BREXX&lt;/a&gt; (o site é mesmo belo, por isso é que partilhei o urle) e como não há uma sem duas, decidi fazer mais esta arvorezinha hoje, então aqui vai.&lt;/p&gt;</description></item><item><title>Arvorezinha - Google Go</title><link>https://blol.org/1379-arvorezinha-google-go/</link><pubDate>Sun, 23 May 2010 02:54:23 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1379</guid><description>&lt;p&gt;Olá amigos, estava aqui aborrecido e já a pensar em ir-me deitar porque não tinha series para ver nem nada para fazer, e então lembrei-me que não havia arvorezinha na linguagem de programação Go da Google, então pus mãos à obra, e foi tão simples que até pensei não vir aqui blogar sobre isso, mas como não tinha nada para fazer, aqui vai o sores.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;/*&lt;/span&gt; this crap can never fail &lt;span style="color:#f92672"&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;package main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import &lt;span style="color:#e6db74"&gt;&amp;#34;os&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;func&lt;/span&gt; main() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;var&lt;/span&gt; RFC_MAX &lt;span style="color:#a6e22e"&gt;int&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; i :&lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;; i &lt;span style="color:#f92672"&gt;&amp;lt;=&lt;/span&gt; RFC_MAX; i&lt;span style="color:#f92672"&gt;++&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; x :&lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;; x &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; i; x&lt;span style="color:#f92672"&gt;++&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; os&lt;span style="color:#f92672"&gt;.&lt;/span&gt;Stdout&lt;span style="color:#f92672"&gt;.&lt;/span&gt;WriteString(&lt;span style="color:#e6db74"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; os&lt;span style="color:#f92672"&gt;.&lt;/span&gt;Stdout&lt;span style="color:#f92672"&gt;.&lt;/span&gt;WriteString(&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;\n&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;E a tal pic que toda a gente gosta, como prova!&lt;/p&gt;</description></item><item><title>Cracking 102</title><link>https://blol.org/1368-cracking-102/</link><pubDate>Fri, 21 May 2010 20:21:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1368</guid><description>&lt;p&gt;Ora viva amigos!&lt;br&gt;
Há uns dias lembrei-me do mítico Championship Manager Itália 94/95, e das múltiplas tentativas que fazia para o conseguir jogar devido à protecção anti-copia, que basicamente pedia o resultado do jogo X da pagina Y do manual.&lt;/p&gt;
&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/2010/05/choradeira.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Então lá eu ficava montes de tempo a experimentar combinações ate conseguir jogar. Nessa altura sonhava em conseguir crackar aquilo, mas skills de cracking nesse tempo eram quase nulos. Decidi então tentar hoje.&lt;/p&gt;</description></item><item><title>Arvorezinha 68K Assembly</title><link>https://blol.org/1360-arvorezinha-68k-assembly/</link><pubDate>Sun, 16 May 2010 22:36:18 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1360</guid><description>&lt;p&gt;Hoje devido aos posts de hoje do falco sobre arvorezinhas ganhei um pouco de moral e fui à procura de arquitecturas que ainda não tivesse feito em assembly e lembrei-me dos &lt;a href="http://en.wikipedia.org/wiki/Motorola_68000_family"&gt;Motorola 68K&lt;/a&gt;, os que eram usados nos MACs antigos.&lt;br&gt;
Decidi então meter as mãos à obra, e fui procurar um emulador/simulador ou algo do género para este processador e achei o &lt;a href="http://www.easy68k.com/"&gt;Easy68K&lt;/a&gt; que é um três-em-um, Editor, Assembler e Debugger.&lt;br&gt;
Fiquem bem e joguem muito.&lt;/p&gt;</description></item><item><title>Mais três arvorezinhas</title><link>https://blol.org/1351-mais-tres-arvorezinhas/</link><pubDate>Sun, 16 May 2010 11:19:09 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1351</guid><description>&lt;p&gt;&lt;strong&gt;Em Bash:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ramo&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tam&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;7&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;i&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;while&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; $i -lt $tam &lt;span style="color:#f92672"&gt;]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;j&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;while&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; $j -lt $i &lt;span style="color:#f92672"&gt;]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;printf &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$ramo&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;j&lt;span style="color:#f92672"&gt;=&lt;/span&gt;$&lt;span style="color:#f92672"&gt;[&lt;/span&gt;$j+1&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;printf &lt;span style="color:#e6db74"&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;i&lt;span style="color:#f92672"&gt;=&lt;/span&gt;$&lt;span style="color:#f92672"&gt;[&lt;/span&gt;$i+1&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;printf &lt;span style="color:#e6db74"&gt;&amp;#34;\n\n&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Em Tea:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#!/home/diogo/Tea/tea-3.2.5/bin/tsh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# Esta é uma arvorezinha escrita em Tea,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# de acordo com o rfc da arvorezinha praticado
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# em http://www.blol.org/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# version 0.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# This script can never fail!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;define arvorezinha &amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;define estrelinha &amp;#34;*&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;define fiter 1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;while { &amp;lt; $fiter 6 } {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;define siter 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;while { &amp;lt; $siter $fiter } {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;set! arvorezinha [str-cat $arvorezinha $estrelinha]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;set! siter [+ $siter 1]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;set! arvorezinha [str-cat $arvorezinha &amp;#34;\n&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;set! fiter [+ $fiter 1]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo $arvorezinha
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Em Tea, com POO&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Historia resumida das Arvorezinhas</title><link>https://blol.org/1345-historia-resumida-das-arvorezinhas/</link><pubDate>Sun, 16 May 2010 11:00:08 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1345</guid><description>&lt;p&gt;A primeira arvorezinha de que há registo blolado (01:00 do dia 11 de Janeiro do&lt;br&gt;
ano de 2008 da graça do senhor) foi feita pelo falso em Assembly. Esta&lt;br&gt;
arvorezinha foi inspirada num trabalho de escola do _itensdown_ e estabeleceu o&lt;br&gt;
standard para as arvorezinhas (compostas por asteriscos (n = n + 1 asteriscos,&lt;br&gt;
em que n é o número de asteriscos por linha e n &amp;lt;= 5 na base da arvorezinha). No&lt;br&gt;
mesmo dia o _itensdown_ publicou a sua arvorezinha em vb. E ainda antes do dia&lt;br&gt;
terminar tinhamos a terceira arvorezinha feita com um one liner de Perl.&lt;/p&gt;</description></item><item><title>Algoritmos, chaves WEP e WPA e routers "baratos"...</title><link>https://blol.org/1338-algoritmos-chaves-wep-e-wpa-e-routers-baratos/</link><pubDate>Thu, 08 Apr 2010 16:18:37 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1338</guid><description>&lt;p&gt;Olá a todos,&lt;/p&gt;
&lt;p&gt;Ontem confesso que não me estava a sentir muito bem-disposto por isso resolvi implementar um algoritmo que encontrei nas internetes sobre como descobrir as chaves predefinidas dos routers de alguns provedores&amp;hellip; Aqui vai:&lt;/p&gt;
&lt;p&gt;Certamente o leitor já se deverá ter deparado com algumas redes wireless com o nome &amp;ldquo;Toquerapido30A428&amp;rdquo;  ou &amp;ldquo;Marca49F90B&amp;rdquo; e afins&amp;hellip; Geralmente os detentores das referidas redes por ignorância ou por solidariedade não alteram as chaves que vêm por defeito nos routers. O que este algoritmo pretende fazer é exactamente isso. Gerar as chaves predefinidas desses routers.&lt;/p&gt;</description></item><item><title>...boa noite, convosco vão ficar Os Simples</title><link>https://blol.org/1323-boa-noite-convosco-vao-ficar-os-simples/</link><pubDate>Thu, 25 Mar 2010 22:08:36 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1323</guid><description>&lt;p&gt;Olá!&lt;/p&gt;
&lt;p&gt;Para quem não sabe, &lt;em&gt;Os Simples&lt;/em&gt; foram uma banda que existiu nas décadas de 70 e 80 nessa terra mítica que é a Trafaria, cujo um dos membros era o meu pai (é o de barba com a trompete, na primeira foto).&lt;/p&gt;
&lt;p&gt;Eu há uns tempos passei para formato digital duas cassetes de audio que tinha de gravações deles, e partilhei-as &lt;a href="//blol.org/310-os-simples"&gt;aqui&lt;/a&gt; e &lt;a href="//blol.org/1029-os-simples-ao-vivo-nos-bvt"&gt;aqui&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Desde então já fui contactado por antigos membros d&amp;rsquo; &lt;em&gt;Os Simples&lt;/em&gt; e também por filhos deles, e claro, tentei sempre arranjar mais informações, fotos, etc.&lt;/p&gt;</description></item><item><title>Mais um ano, mais um ataque.</title><link>https://blol.org/1321-mais-um-ano-mais-um-ataque/</link><pubDate>Tue, 09 Mar 2010 16:45:52 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1321</guid><description>&lt;p&gt;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 &lt;a href="http://www.eecs.umich.edu/~valeria/research/publications/DATE10RSA.pdf"&gt;novo ataque ao RSA&lt;/a&gt; [PDF], baseado em falhas, que &lt;a href="http://www.engadget.com/2010/03/09/1024-bit-rsa-encryption-cracked-by-carefully-starving-cpu-of-ele/"&gt;pôs&lt;/a&gt; a &lt;a href="http://techie-buzz.com/tech-news/1024-bit-rsa-cracked.html"&gt;blogosfera&lt;/a&gt; em &lt;a href="http://www.hardmac.com/news/2010/03/08/rsa-1024-bits-key-encryption-cracked"&gt;polvorosa&lt;/a&gt;. Existe alguma razão para isto? Absolutamente não.&lt;/p&gt;
&lt;p&gt;É bem sabido que existem imensas classes de ataques que podem afectar implementações perfeitamente correctas do RSA (&lt;a href="//blol.org/1018-side-channel"&gt;e não só&lt;/a&gt;).  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 &lt;a href="http://www.computer.org/portal/web/csdl/doi/10.1109/FDTC.2009.30"&gt;pelo menos 2006&lt;/a&gt;. 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).&lt;/p&gt;</description></item><item><title>Multiplicação de polinómios - part ii</title><link>https://blol.org/1311-multiplicacao-de-polinomios-part-ii/</link><pubDate>Tue, 02 Mar 2010 23:42:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1311</guid><description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Consideremos a multiplicação de polinómios em &lt;/p&gt;
$$\mathbb{F}_2[x]$$&lt;p&gt;. O algoritmo considerado no &lt;a href="//blol.org/1038-multiplicacao-de-polinomios"&gt;post anterior&lt;/a&gt; é conhecido há milénios e tem uma complexidade quadrática, i.e., &lt;/p&gt;
$$O(n^2)$$&lt;p&gt; operações para multiplicar dois polinómios de grau n. Este algoritmo será óptimo? Não.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>CSI: Funchal</title><link>https://blol.org/1301-csi-funchal/</link><pubDate>Mon, 22 Feb 2010 21:36:07 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1301</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2010/02/lolmadeira1.png"&gt;&lt;img src="//blol.org/wp-content/uploads/2010/02/lolmadeira1.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>COMIC STRIP OFICIAL DO BLOL, LOL (UPDATED)</title><link>https://blol.org/1291-comic-strip-oficial-do-blol-lol/</link><pubDate>Sun, 07 Feb 2010 23:45:27 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1291</guid><description>&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/2010/02/Untitled-11.png" alt=""&gt;&lt;/p&gt;</description></item><item><title>Falando em vampiros...</title><link>https://blol.org/1283-falando-em-vampiros/</link><pubDate>Mon, 01 Feb 2010 23:20:35 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1283</guid><description>&lt;p&gt;Pois bem amigalhaços já que o tema dos vampiros veio ah baila também eu tenho que blogar sobre o assunto&amp;hellip;&lt;/p&gt;
&lt;p&gt;Eis que surge na TVI uma coisa inédita&amp;hellip; uma novela sobre vampiros (coisa nunca vista) cujo nome é: &amp;ldquo;Destino Imortal&amp;rdquo; passada na Serra de Sintra, com um amor impossível entre um rapaz e uma rapariga (querem saber mais vejam a novela&amp;hellip;).&lt;/p&gt;
&lt;p&gt;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 &amp;ldquo;Lua Vermelha&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Ois migos! Estou a escrever um poste!</title><link>https://blol.org/1222-ois-migos-estou-a-escrever-um-poste/</link><pubDate>Mon, 01 Feb 2010 19:44:05 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1222</guid><description>&lt;p&gt;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, &amp;ldquo;Todo Fit&amp;rdquo; ou &amp;ldquo;Dia do Projecto&amp;rdquo;. 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!&lt;/p&gt;</description></item><item><title>Oi pessoal! Vamos falar de consolas!</title><link>https://blol.org/1224-oi-pessoal-vamos-falar-de-consolas/</link><pubDate>Mon, 01 Feb 2010 12:52:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1224</guid><description>&lt;p&gt;Ora viva caros amigos! Espero que a vossa cave esteja bem quentinha e com pouca humidade, pois vou falar de algo que vos vai deixar cheio de sopas de cu! Vamos falar da: XBOX 360!&lt;/p&gt;
&lt;p&gt;Como toda a gente sabe, eu tenho uma Xbox 360 e gosto de comprar jogos originais, para ela se sentir amada. Mas há sempre pessoal que acha que comprar jogos é um desperdício de dinheiro. Acho isso relativo, há quem curta gastar guito em PDA&amp;rsquo;s e telemóveis, outros gostam de comprar o último produto da maçã mordida. No final, todos compram aquilo que gostam e o que os fazem felizes, seja X, Y ou Z. Mas gostava de saber o que é que vocês acham sobre isso. Comprar games, YAY or NAY?&lt;/p&gt;</description></item><item><title>Palavras para quê...</title><link>https://blol.org/1188-palavras-para-que/</link><pubDate>Fri, 29 Jan 2010 10:46:06 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1188</guid><description>&lt;p&gt;Andava eu a googlar coisas sobre o iphone quando dou de caras com isto:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Somos os únicos distribuidores autorizados da marca Cect para Portugal. Oferecemos Cects i9 com 2 Gb de memória desbloqueados dual sim a 110,33 euros com transporte incluído para Portugal continental e ilhas. &lt;strong&gt;Clone aperfeiçoado do Iphone, sendo que a Apple criou uma nova versão do Iphone devido à concorrencia do Cect que, apesar de ser mais barato, era mais aperfeiçoado e corrigia alguns bugs do iPhone.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Cantina da FCT UNL no Google Calendar (com SMS)</title><link>https://blol.org/1155-cantina-fct-unl-no-google-calendar/</link><pubDate>Thu, 28 Jan 2010 21:54:56 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1155</guid><description>&lt;p&gt;Ora Viva amigos!&lt;br&gt;
Hoje venho aqui blogar não sobre uma coisa inútil como é habitual, mas sobre algo deveras útil!&lt;/p&gt;
&lt;p&gt;Como devem saber (se não sabem, deviam!!!) eu há uns tempos tinha feito um &lt;em&gt;parser&lt;/em&gt; à pagina das ementas no site dos &lt;a href="http://sas.unl.pt/cantina"&gt;Serviços de Acção Social da Universidade Nova de Lisboa&lt;/a&gt; que cria um &lt;a href="http://rdk.deadbsd.org/refeitas/feed.xml"&gt;&lt;em&gt;RSS Feed&lt;/em&gt;&lt;/a&gt; onde se pode ver no Google Reader (ou outro) todos os dias a ementa do dia.&lt;/p&gt;</description></item><item><title>WP_Birds</title><link>https://blol.org/1151-wp_birds/</link><pubDate>Tue, 26 Jan 2010 23:44:51 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1151</guid><description>&lt;p&gt;Ora viva!&lt;/p&gt;
&lt;p&gt;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.&lt;br&gt;
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 &lt;a href="http://rdk.homeip.net/www.apeadeiro.org/comments-plugin.html"&gt;seguir as passadas&lt;/a&gt; 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.&lt;br&gt;
Sei que é a coisa mais inútil de sempre, mas, é para isso que cá estou eu!&lt;br&gt;
&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="//blol.org/wp-content/uploads/2010/01/wp_birds_0.1.zip"&gt;wp_birds_0.1.zip&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Gripe A</title><link>https://blol.org/1142-gripe-a/</link><pubDate>Mon, 25 Jan 2010 12:15:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1142</guid><description>&lt;p&gt;Pois é, está um belo dia soalheiro de inverno e este importante facto faz-me relembrar a &amp;ldquo;pandemia&amp;rdquo; 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).&lt;/p&gt;
&lt;p&gt;Após ter tomado o conhecimento que &lt;a href="//blol.org/1121-jornal-de-noticias"&gt;o terramoto do Haiti curou a gripe A&lt;/a&gt; e que com esse facto provado, a OMS vem confirmar que o virus H1N1 &lt;a href="http://oglobo.globo.com/economia/mat/2010/01/18/pandemia-da-gripe-perde-forca-admite-oms-915545871.asp"&gt;está a perder a força&lt;/a&gt;, 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!!!&lt;br&gt;
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&amp;hellip; e com eles grande parte das defesas naturais que as mãos têm contra a tal gripe sazonal entre outras maleitas.&lt;br&gt;
As grandes farmaceuticas também agradecem o facto de termos comprado &lt;a href="http://sic.sapo.pt/online/noticias/vida/Gripe+A+Portugal+comprou+6+milhoes+de+vacinas+mas+muitas+podem+nao+ser+usadas.htm"&gt;6 MILHÕES&lt;/a&gt; de vacinas &amp;ldquo;não vá o diabo tecê-las&amp;rdquo; mais tamiflus, constipal, antigripine e o raio que os parta a todos.&lt;/p&gt;</description></item><item><title>Holanda...</title><link>https://blol.org/1136-holanda/</link><pubDate>Sun, 24 Jan 2010 04:05:42 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1136</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2010/01/dsc_0510.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2010/01/dsc_0510.jpg" alt="A Lolanda"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mais uns dias e faz 2 anos que la estivemos&amp;hellip;&lt;/p&gt;</description></item><item><title>José Cid raptado</title><link>https://blol.org/1127-jose-cid-raptado/</link><pubDate>Sun, 24 Jan 2010 03:39:40 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1127</guid><description>&lt;p&gt;Ora viva,&lt;/p&gt;
&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/HLIC/ng1246031.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Vocês sabiam que o José Cid foi assaltado e raptado? Nem mais do que por um português e um brasileiro? E nem sequer lhe gamaram o telemóvel. Já não se fazem ladrões como antigamente&amp;hellip;&lt;/p&gt;
&lt;p&gt;PS: Ai de alguém que diga &lt;a href="http://dn.sapo.pt/inicio/portugal/interior.aspx?content_id=1476777"&gt;que fui buscar isto ao DN&lt;/a&gt;! A minha fonte foi o José Cid e apenas ele! Nem imaginam; acordei hoje e pensei em ligar-lhe para saber se tinha sido assaltado! Exactamente como no outro dia com o &lt;a href="http://bitaites.org/instantaneo/o-medico-que-se-operou-a-si-proprio/comment-page-1#comment-24824"&gt;russo que se operou a ele próprio&lt;/a&gt;!&lt;/p&gt;</description></item><item><title>Jornal de Notícias</title><link>https://blol.org/1121-jornal-de-noticias/</link><pubDate>Sun, 24 Jan 2010 03:31:08 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1121</guid><description>&lt;p&gt;Ora viva!&lt;br&gt;
Venho aqui reportar que os senhores webmasters do jornal de notícias estão se mesmo a cagar para os visitantes. Portanto tive de vir dramatizar sobre isso!&lt;br&gt;
Já há mais de 2 meses que os avisei por email que o site deles estava com um bug, disseram que iam ver, e cagaram de alto.&lt;/p&gt;
&lt;p&gt;O bug é o seguinte, em todos os &lt;a href="http://jn.sapo.pt/Dossies/"&gt;Dossiês&lt;/a&gt;, ele escreve no site tudo o que se meter na variavel dossier do url. Exemplos:&lt;/p&gt;</description></item><item><title>HD na TV Nacional</title><link>https://blol.org/1105-hd-na-tv-nacional/</link><pubDate>Mon, 11 Jan 2010 23:37:52 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1105</guid><description>&lt;p&gt;Como já todos repararam o HD está na moda&amp;hellip;. 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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Ora vejamos como funciona um novo canal HD exemplificando a FOX:&lt;/p&gt;</description></item><item><title>Retrospectiva sobre 2009.</title><link>https://blol.org/1101-retrospectiva-sobre-2009/</link><pubDate>Fri, 01 Jan 2010 04:38:43 +0000</pubDate><guid isPermaLink="false">http://blol.org/1101-retrospectiva-sobre-2009</guid><description>&lt;p&gt;Seguindo a panóplia de posts na fervente blogosfera portuguesa sobre as retrospectivas do(a)s melhores momentos/filmes/musica de 2009, também sinto uma vontade delirante de o fazer. Ora então sobre 2009:&lt;br&gt;
LOL.&lt;/p&gt;</description></item><item><title>Jardim do Torel - Lisboa</title><link>https://blol.org/1090-jardim-do-torel-lisboa/</link><pubDate>Sun, 20 Dec 2009 02:50:14 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1090</guid><description>&lt;p&gt;Ir em busca de um produto em particular que se encontrava numa loja perto do Campo Mártires da Pátria&amp;hellip; E uma extrema vontade de ir passear. Foi assim que se iniciou a desventura da descoberta de um jardim,  num sábado de inverno soalheiro e frio.&lt;/p&gt;
&lt;p&gt;Levantar da cama às duas da tarde que está frio&amp;hellip; E ter uma súbita sensação de querer passear! Agarrámos na SPOT e lá fomos, comemos uma sandes num fast food pelo caminho que agora escurece cedo e já se faz tarde&amp;hellip; Comprar o bilhete de comboio para a SPOT e lá fomos. (Sim, um bilhete de comboio para uma cadela! Infelizmente não se pode comprar de ida e volta, irónico&amp;hellip;)&lt;/p&gt;</description></item><item><title>HD nas consolas - it's a TRAP!!!</title><link>https://blol.org/1081-hd-nas-consolas-its-a-trap/</link><pubDate>Wed, 16 Dec 2009 12:22:24 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1081</guid><description>&lt;p&gt;Ora viva amigos!&lt;/p&gt;
&lt;p&gt;Estava eu ontem a bater um vício de Need for Speed: Shift numa PissStation3 dum amigo meu, quando reparei na caixa do jogo e vi o seguinte: Resolução - 720p. O que me deixou indignado, ate porque no PC jogo o mesmo jogo a 1080 com os gráficos melhores que na PS3, nunca pensei que isto fosse assim, devido ao hype todo da PS3, CPU ultra potente com 50 mil cores, melhor que pão com tulicreme etc&amp;hellip;&lt;br&gt;
Fui ver o resto da colecção de jogos dele, e eram todos assim.&lt;br&gt;
Então este hype todo do HD nas consolas era só para vender inicialmente? Só nos Blugays é que se tem 1080? Ou pelo que me dizem no IRC existem praí DOIS jogos em 1080 lol&amp;hellip;&lt;br&gt;
Depois a conversa seguiu-se para &amp;ldquo;A PS3 faz UPSCALING para 1080 - portanto é bom&amp;rdquo;, man, sendo assim eu também jogo jogos do ZX SPECTRUM a 1080 com o &lt;a href="http://en.wikipedia.org/wiki/Pixel_art_scaling_algorithms"&gt;hq4x e afins&lt;/a&gt;.&lt;br&gt;
Agora quando me vierem gozar da resolução da Wii levam com esta e EMBRULHAM. Continuo a dizer, jogos -&amp;gt; NO PC.&lt;/p&gt;</description></item><item><title>Detecção de Máquinas Virtuais</title><link>https://blol.org/1057-deteccao-de-maquinas-virtuais/</link><pubDate>Thu, 05 Nov 2009 08:01:37 +0000</pubDate><guid isPermaLink="false">http://blol.org/1057-deteccao-de-maquinas-virtuais-2</guid><description>&lt;p&gt;oi lindinhos. daqui falo-vos de coisas simples, desta vez de detecção de máquinas virtuais através do OUI (organizationally unique identifier) presente num MAC address (primeiros 3 bytes). o engraçado disto é pode ser aplicado tanto localmente, como remotamente.&lt;/p&gt;
&lt;p&gt;aqui fica um pequeno exemplo capaz de detectar localmente o virtualbox e o vmware player :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;sys/socket.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;sys/ioctl.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;net/if.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;unsigned&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; sfd; &lt;span style="color:#66d9ef"&gt;unsigned&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt;mac;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;struct&lt;/span&gt; ifreq ifr;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sfd &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;socket&lt;/span&gt;(AF_INET, SOCK_DGRAM, &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;strcpy&lt;/span&gt;(ifr.ifr_name, &lt;span style="color:#e6db74"&gt;&amp;#34;eth0&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;ioctl&lt;/span&gt;(sfd, SIOCGIFHWADDR, &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt;ifr);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mac &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;unsigned&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt;) ifr.ifr_hwaddr.sa_data;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/* virtualbox 3.0.8 / vmware player 3.0.0 OUIs */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt;(&lt;span style="color:#f92672"&gt;!&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;memcmp&lt;/span&gt;(mac, &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;\x08\x00\x27&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;)) &lt;span style="color:#f92672"&gt;||&lt;/span&gt; &lt;span style="color:#f92672"&gt;!&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;memcmp&lt;/span&gt;(mac, &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;\x00\x0c\x29&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;puts&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;VM detected!&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;a quem interessar, prometo depois voltar a falar sobre o assunto. adeus.&lt;/p&gt;</description></item><item><title>Backdoor em Lunix Kernel</title><link>https://blol.org/1055-backdoor-em-lunix-kernel/</link><pubDate>Thu, 05 Nov 2009 07:57:20 +0000</pubDate><guid isPermaLink="false">http://blol.org/1055-1055</guid><description>&lt;p&gt;oi lindinhos, assim num piscar de peida, apresento-vos uma forma simples e subtil de inserir uma backdoor num linux kernel e para isso foquei-me particularmente na syscall setreuid :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; struct cred &lt;span style="color:#f92672"&gt;*&lt;/span&gt;old;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; struct cred &lt;span style="color:#f92672"&gt;*&lt;/span&gt;new;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;int&lt;/span&gt; retval;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (new&lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt;uid &lt;span style="color:#f92672"&gt;!=&lt;/span&gt; old&lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt;uid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; retval &lt;span style="color:#f92672"&gt;=&lt;/span&gt; set_user(new);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (retval &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; goto error;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;se quisessemos &amp;ldquo;backdoorar&amp;rdquo; a syscall em questao bastava-nos negar o valor do uid antigo e atribuir o valor do mesmo ao novo uid antes da funcao set_user.&lt;/p&gt;</description></item><item><title>Lições de um Taxista</title><link>https://blol.org/1052-licoes-de-um-taxista/</link><pubDate>Fri, 30 Oct 2009 14:04:45 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1052</guid><description>&lt;p&gt;Epa o Jose_Sida partilhou alta video lindo nos mirques, tão lindo que até decidi dedicar-lhe um post, aqui vai.&lt;/p&gt;</description></item><item><title>Benfica 5 – Everton 0</title><link>https://blol.org/1063-benfica-5-everton-0/</link><pubDate>Fri, 23 Oct 2009 16:20:54 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1063</guid><description>&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/HLIC/04d9c22cb3ce97ab864bf7bf550db66f.jpg" alt="E Pluribus Unum"&gt;&lt;br&gt;
&lt;em&gt;E Pluribus Unum&lt;/em&gt;&lt;/p&gt;</description></item><item><title>As constantes do Skein</title><link>https://blol.org/1078-as-constantes-do-skein/</link><pubDate>Wed, 07 Oct 2009 01:21:15 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1078</guid><description>&lt;p&gt;Oi,&lt;/p&gt;
&lt;p&gt;Os leitores que acompanham este blol com certeza já leram os meus &lt;a href="//blol.org/927-threefish"&gt;posts&lt;/a&gt; &lt;a href="//blol.org/932-threefish-part-ii"&gt;anteriores&lt;/a&gt; sobre o Threefish, a cifra por trás do &lt;a href="http://www.skein-hash.info/"&gt;Skein&lt;/a&gt;. Já vimos como melhorar o desempenho da mesma utilizando as extensões SSE2. Há pouco reparei num detalhe que não tinha na altura — algumas das constantes utlilizadas nas rotações do Skein são múltiplos de 8. Isto permite-nos efectuar a rotação como uma permutação de bytes, como demostrado &lt;a href="//blol.org/704-byte-swap-com-ssse3"&gt;neste post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nas especificações originais do Skein, existiam 13 constantes múltiplas de 8: 1 para a versão de 256 bits, 2 para a de 512 bits e 10 para a de 1024 bits. As rotações implementadas na versão SSE2 são sensivelmente da forma:&lt;/p&gt;</description></item><item><title>Hash Joins – Oracle (e talvez outros)</title><link>https://blol.org/1076-hash-joins-oracle-e-talvez-outros/</link><pubDate>Mon, 05 Oct 2009 19:36:28 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1076</guid><description>&lt;p&gt;Estava aqui a ver um filme estúpido na SIC, enquanto o meu browser crashou com um pdf e então lembrei me logo de blogar sobre hash joins.&lt;/p&gt;
&lt;p&gt;A primeira regra para se usar um hash join em detrimento de outras opções para uma operação de join é o pressuposto que ambas as tabelas têm que ter uma quantidade de dados significativa, ou seja, “grandes” tabelas.&lt;/p&gt;
&lt;p&gt;Normalmente o optimizador da BD opta pelo uso de hash join quando não existem indices apropriados, quando o fracção de dados a juntar é grande ou simplesmente porque o conceito de ALL_ROWS está definido para o output do join e uma das anteriores condições é valida.&lt;br&gt;
Numa fase inicial e quando se opta pelo hash join, o motor da BD lê a menor tabela da operação de join e coloca-a na memória. O conceito básico será a criação de um hash key por linha que servirá posteriormente para fazer o join. Essa hash table é guardada em memória e é APENAS gerada com base nas chaves existentes na tabela, chaves essas que irão ser usadas para o join com a tabela maior.&lt;/p&gt;</description></item><item><title>Sites em C</title><link>https://blol.org/1073-sites-em-c/</link><pubDate>Fri, 02 Oct 2009 02:23:56 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1073</guid><description>&lt;p&gt;Ora viva!&lt;/p&gt;
&lt;p&gt;Já desde há uns tempos que se tinha falado nos mirques sobre fazer sites super optimizados em C à-lá-OpenBSD.&lt;/p&gt;
&lt;p&gt;Então hoje num momento de aborrecimento decidi fazer um!&lt;/p&gt;
&lt;p&gt;Teve de ser alta executável estático para poder ser executado dentro do chroot do Apache.&lt;/p&gt;
&lt;p&gt;Basicamente, é uma pagina central mais dois requests que são feitos por ajax com ajuda do jQuery.&lt;/p&gt;
&lt;p&gt;Até inclui alta inline assembly cortesia do dongs!&lt;/p&gt;</description></item><item><title>Multiplicação de Polinómios</title><link>https://blol.org/1038-multiplicacao-de-polinomios/</link><pubDate>Wed, 16 Sep 2009 20:17:08 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1038</guid><description>&lt;p&gt;Depois de um breve hiato, volto a este Blol colocar pensamentos inúteis. E hoje pensei na multiplicação de polinómios - em particular, polinómios com coeficientes mod 2, i.e. &lt;/p&gt;
$$\mathbb{F}_2[x]$$&lt;p&gt;. Como é que representamos estes polinómios?&lt;/p&gt;
&lt;p&gt;Dado que cada coeficiente apenas pode ser 0 ou 1, podemos utilizar apenas um bit para estes. Assim, se tivermos um polinómio &lt;/p&gt;
$$x^3 + x + 1$$&lt;p&gt;, representamos o mesmo por 0b1011 ou 0x0B.&lt;/p&gt;
&lt;p&gt;A adição de polinómios é trivial - consiste unicamente em aplicar a operação XOR, dado que XOR é adição mod 2. A multiplicação pode ser efectuada como efectuamos multiplicações de inteiros, excepto que ignoramos todos os transportes ( &lt;em&gt;carries&lt;/em&gt;). Podemos então implementar uma multiplicação de polinómios como:&lt;/p&gt;</description></item><item><title>Faço saites!!!</title><link>https://blol.org/1035-faco-saites/</link><pubDate>Sat, 29 Aug 2009 15:51:37 +0000</pubDate><guid isPermaLink="false">http://blol.org/1035-faco-saites</guid><description>&lt;p&gt;Um anúncio (&lt;a href="http://www.net-empregos.com/detalhe_anuncio_livre.asp?REF=805336"&gt;http://www.net-empregos.com/detalhe_anuncio_livre.asp?REF=805336&lt;/a&gt;) da GFI Portugal e alguém no #loonixhalp da WoW.net deram-me uma ideia para bater toda a concorrência. A partir de agora faço saites de interweb, por um pacote de bolachas maria (daqueles pequeninos de 4 bolachas) e um copo de água (para ajudar a engolir).&lt;/p&gt;</description></item><item><title>E pq nem tudo na vida ..</title><link>https://blol.org/1034-e-pq-nem-tudo-na-vida/</link><pubDate>Fri, 28 Aug 2009 14:39:06 +0000</pubDate><guid isPermaLink="false">http://blol.org/1034-e-pq-nem-tudo-na-vida</guid><description>&lt;p&gt;.. é mal. Cá temos um exemplo de solidariedade para o continente Africano.&lt;/p&gt;
&lt;p&gt;10:18 &amp;lt; falso&amp;gt; ha tantos pretos a mrorer&lt;br&gt;
10:18 &amp;lt; falso&amp;gt; em africa&lt;br&gt;
10:18 &amp;lt; falso&amp;gt; sem familia&lt;/p&gt;</description></item><item><title>printf("oi lindinhos!\n");</title><link>https://blol.org/1032-printfoi-lindinhosn/</link><pubDate>Tue, 25 Aug 2009 20:06:48 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1032</guid><description>&lt;p&gt;há mil dias li um post do *xorl* intitulado de &amp;ldquo;&lt;a href="http://xorl.wordpress.com/2009/02/26/funny-c-programming-interview-questions/"&gt;Funny C programming interview questions&lt;/a&gt;&amp;rdquo;, achei uma certa piada ao raio do post e resolvi escrever aqui sobre isso.&lt;/p&gt;
&lt;p&gt;no post o xorl apresenta a solução para uma das questões colocadas neste *site*, no qual nos é questionado se é possível fazer com que a variável &amp;ldquo;i&amp;rdquo; apresente outro valor, senão &amp;ldquo;2&amp;rdquo;, apenas adicionando código à função foo().&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;foo&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; i&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;foo&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;printf&lt;/span&gt; (&lt;span style="color:#e6db74"&gt;&amp;#34;%d&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;\n&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;,i);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; EXIT_SUCCESS;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;foo&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// add code so that printf above prints different value of i (i.e. not 2)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;a primeira coisa que me ocorreu (em mil milésimos de segundo) foi modificar directamente o valor de &amp;ldquo;i&amp;rdquo; através da função &amp;ldquo;printf&amp;rdquo; e então fiz o seguinte :&lt;/p&gt;</description></item><item><title>Os Simples - Ao vivo nos BVT</title><link>https://blol.org/1029-os-simples-ao-vivo-nos-bvt/</link><pubDate>Tue, 25 Aug 2009 08:54:43 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1029</guid><description>&lt;p&gt;Ora viva amigos.&lt;/p&gt;
&lt;p&gt;Há dias veio aqui um senhor ao blol comentar no post d&amp;rsquo;&lt;a href="//blol.org/310-os-simples"&gt;Os Simples&lt;/a&gt; com alta conhecimento obscuro sobre eles que amei, o que me fez querer partilhar com vocês outra gravação que tinha em casa. Desta vez um concerto nos Bombeiros Voluntários da Trafaria (pelo menos é o que a cassete diz) nos anos 70. A qualidade desta gravação não é a melhor, mas é o que se arranja de algo assim tão raríssimo.&lt;/p&gt;</description></item><item><title>oi lindinhos do craking</title><link>https://blol.org/1025-oi-lindinhos-do-craking/</link><pubDate>Fri, 21 Aug 2009 11:07:03 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1025</guid><description>&lt;p&gt;aqui há tempos ( há mil dias ) prometi ao david publicar umas merdas sobre anti-debugging&lt;br&gt;
e ao pedro enviar um crackme, mas em vez disso ( e porque sou uma merda )&lt;br&gt;
resolvi apresentar aqui um exemplo de fácil compreensão e a devida explicação.&lt;/p&gt;
&lt;p&gt;aqui vai disto :&lt;/p&gt;
&lt;p&gt;root@inferno:[~/dev/cracking]# gdb crackme&lt;br&gt;
(no debugging symbols found)&lt;br&gt;
(gdb) set disassembly-flavor intel&lt;br&gt;
(gdb) set write&lt;br&gt;
(gdb) show write&lt;br&gt;
Writing into executable and core files is on.&lt;br&gt;
(gdb) file crackme&lt;br&gt;
Reading symbols from /root/dev/cracking/crackme&amp;hellip;(no debugging symbols found)&amp;hellip;done.&lt;/p&gt;</description></item><item><title>Mário Gamito</title><link>https://blol.org/1023-mario-gamito/</link><pubDate>Fri, 07 Aug 2009 17:33:33 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1023</guid><description>&lt;p&gt;Para mais tarde recordar.&lt;br&gt;
&lt;img src="//blol.org/wp-content/uploads/2009/08/gamito.png" alt="gamito"&gt;&lt;/p&gt;</description></item><item><title>Side-channel</title><link>https://blol.org/1018-side-channel/</link><pubDate>Fri, 07 Aug 2009 03:40:49 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1018</guid><description>&lt;p&gt;Além dos ataques comuns existentes para atacar algoritmos criptográficos, alguns destes já mencionados anteriormente (e.g. &lt;a href="//blol.org/918-aes-256-debilitado"&gt;AES-256&lt;/a&gt;), existe uma classe de ataques que não explora deficiências algorítmicas, mas sim deficiências de implementação &amp;mdash; &lt;em&gt;Side-channel attacks&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;A vasta maioria destes ataques tem como base o tempo que uma operação demora a executar; este tipo de ataques foi originalmente proposto para algoritmos baseados na &lt;a href="http://www.cryptography.com/resources/whitepapers/TimingAttacks.pdf"&gt;exponenciação de inteiros, como RSA ou DSA&lt;/a&gt;. É fácil de perceber que quando se utiliza o &lt;a href="http://en.wikipedia.org/wiki/Exponentiation_by_squaring"&gt;método binário de exponenciação&lt;/a&gt; e o expoente é uma chave privada, o tempo de execução da exponenciação está directamente relacionado com o número de bits no expoente. Este tipo de ataques pode ser evitado através de &lt;a href="http://en.wikipedia.org/wiki/Blinding_(cryptography)"&gt;blinding&lt;/a&gt; ou outros algoritmos de exponenciação, como as &lt;a href="http://www.gemplus.com/smart/rd/publications/pdf/JY03mont.pdf"&gt;cadeias de Montgomery&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Arvorezinha - LISP take 2</title><link>https://blol.org/1013-arvorezinha-lisp-take-2/</link><pubDate>Tue, 04 Aug 2009 22:23:21 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1013</guid><description>&lt;p&gt;Oi!&lt;/p&gt;
&lt;p&gt;Segundo a LISP Police, vim a saber que a &lt;a href="//blol.org/817-arvorezinha-lisp"&gt;primeira arvorezinha em LISP&lt;/a&gt; do _Lone_Wolf_ não cumpria os standards definidos pelo rfc da arvorezinha, e ele para não sofrer as consequências redimiu-se com uma versão totalmente standard. Aqui vai ela:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; i i i i i i i ooooo o ooooooo ooooo ooooo
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; I I I I I I I 8 8 8 8 8 o 8 8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; I \ `+&amp;#39; / I 8 8 8 8 8 8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; \ `-+-&amp;#39; / 8 8 8 ooooo 8oooo
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; `-__|__-&amp;#39; 8 8 8 8 8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | 8 o 8 8 o 8 8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ------+------ ooooo 8oooooo ooo8ooo ooooo 8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Welcome to GNU CLISP 2.47 (2008-10-23) &amp;lt;http://clisp.cons.org/&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Copyright (c) Bruno Haible, Sam Steingold 1999-2000
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Copyright (c) Sam Steingold, Bruno Haible 2001-2008
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Type :h and hit Enter for context help.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[1]&amp;gt; (loop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (loop for i from 1 to 4 do
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (loop for j from 1 to i do
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (write-char #\*)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (terpri)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (return &amp;#39;*****)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;***
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*****
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Arvorezinha - OpenGL</title><link>https://blol.org/1007-arvorezinha-opengl/</link><pubDate>Tue, 04 Aug 2009 22:17:49 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1007</guid><description>&lt;p&gt;Ora viva. Trago-vos uma nova uma submissão para a saga da arvorezinha, desta meu amigo João Saramago. Aqui vai:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Como prometi aqui vai.&lt;br&gt;
Não consegui foi por em applet. Precisa de dll’s :S.&lt;/p&gt;
&lt;p&gt;Só funciona em Windows. Mas se quiseres posso fazer binários para Linux e para Mac.&lt;/p&gt;
&lt;p&gt;Estão ai os binários e o source.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2009/08/arvorezinha.zip"&gt;arvorezinha.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;E claro como toda a gente gosta de screenshots, aqui vão, até porque merece, porque é uma árvore completa em vez de ser só meia.&lt;/p&gt;</description></item><item><title>Blogosphere</title><link>https://blol.org/1005-blogosphere/</link><pubDate>Tue, 04 Aug 2009 09:54:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=1005</guid><description>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Blogosphere"&gt;Blogosphere&lt;/a&gt; is just multiplayer copy &amp;amp; paste.&lt;/p&gt;</description></item><item><title>kgme1</title><link>https://blol.org/990-kgme1/</link><pubDate>Fri, 31 Jul 2009 01:32:47 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=990</guid><description>&lt;p&gt;Ora viva!&lt;/p&gt;
&lt;p&gt;Já há uns tempos que tinha falado com o Dongs para fazer um KeygenMe para eu tentar keygennar porque nunca o tinha feito. Ele então fez um e eu pus mãos à obra.&lt;/p&gt;
&lt;p&gt;[ &lt;a href="//blol.org/wp-content/uploads/2009/07/kgme.tar.bz2"&gt;kgme.tar.bz2&lt;/a&gt; ]&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ./kgme
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Name: falso
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Serial: 12345
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Bad serial!
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Abri então o ficheiro no IDA e andei a procurar por &amp;ldquo;Bad serial!&amp;rdquo;, e então que achei. Vai aqui um dump comentado:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0804830C movzx ecx, byte ptr [esi] ; ESI contem o &amp;#34;User&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0804830C ; e ECX contem o primeiro char do &amp;#34;User&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0804830F test ecx, ecx ; Se (ECX != 0x0) ZF=0 ELSE ZF=1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048311 jz short loc_8048333 ; Se ZF=1 Salta pro drama
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048313 lea edx, [ebp-10Fh] ; EDX fica com &amp;#34;User&amp;#34; sem o primeiro char
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048319 mov ebx, 0DEADh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0804831E db 66h
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0804831E nop ; No Operation
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048320
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048320 loc_8048320:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048320 mov eax, ebx ; EAX passa a tar 0xDEAD tambem
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048322 shl eax, 5 ; Shift Logical Left 5 vezes
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048325 add eax, ecx ; Adiciona o valor do char do &amp;#34;User&amp;#34; (ECX) a EAX
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048327 movzx ecx, byte ptr [edx] ; le o proximo char pra ECX
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0804832A add edx, 1 ; Add
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0804832D add ebx, eax ; Add
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0804832F test ecx, ecx ; Logical Compare
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048331 jnz short loc_8048320 ; Jump if Not Zero (ZF=0)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048333
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048333 loc_8048333:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048333 xor edx, edx ; Logical Exclusive OR
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048335 mov eax, offset aBadSerial ; &amp;#34;Bad serial!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0804833A cmp [ebp-10h], ebx ; Compare Two Operands
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0804833D setz dl ; Set Byte if Zero (ZF=1)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048340 xor eax, offset aGoodSerial ; &amp;#34;Good serial!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048345 neg edx ; Two&amp;#39;s Complement Negation
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048347 and eax, edx ; Logical AND
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;08048349 xor eax, offset aBadSerial ; &amp;#34;Bad serial!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Então o funcionamento da coisa é mais ou menos o seguinte:&lt;/p&gt;</description></item><item><title>Software livre? What's that?????</title><link>https://blol.org/994-software-livre-whats-that/</link><pubDate>Fri, 31 Jul 2009 01:20:20 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=994</guid><description>&lt;p&gt;Ao que parece o nosso primeiro ministro nem sabe do que se trata quando se faz uma pergunta coerente. &amp;ldquo;Bem&amp;rdquo; fez ele.. deu a volta à pergunta para puxar a brasa à sua sardinha&amp;hellip; 1 milhão de computadores&amp;hellip; bla bla bla bla bla&amp;hellip;.. e não fomos nós, nós só demos o primeiro passo&amp;hellip; mas graças a nós, todos têm aquilo que é preciso&amp;hellip; bla bla bla bla bla&amp;hellip; eu, eu, eu, eu&amp;hellip; arrrrrrrrrrrgh!&lt;br&gt;
Take a look:&lt;/p&gt;</description></item><item><title>R.I.P Michael Jackson</title><link>https://blol.org/988-r-i-p-michael-jackson/</link><pubDate>Thu, 25 Jun 2009 23:09:23 +0000</pubDate><guid isPermaLink="false">http://blol.org/988-r-i-p-michael-jackson</guid><description>&lt;p&gt;Pois é&amp;hellip; segundos após a morte apareceram nas internets quase mil gif&amp;rsquo;s a lolar com o SR&amp;hellip; tá mal e achei que devia blolar sobre isto.&lt;/p&gt;</description></item><item><title>Curvas Elípticas</title><link>https://blol.org/969-curvas-elipticas/</link><pubDate>Tue, 09 Jun 2009 23:41:31 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=969</guid><description>&lt;p&gt;Nos últimos anos, uma grande parte da investigação feita em criptografia de chave pública tem-se desviado dos grupos definidos sobre os números inteiros mod m, i.e. &lt;/p&gt;
$$\mathbb{Z}/m\mathbb{Z}$$&lt;p&gt;, para os grupos definidos por curvas elípticas sobre um corpo finito K, este geralmente &lt;/p&gt;
$$\mathbb{F}_p$$&lt;p&gt; ou &lt;/p&gt;
$$\mathbb{F}_{2^m}$$&lt;p&gt; &amp;mdash; E/K. Não só a investigação, mas também a própria indústria tem-se virado para as curvas elípticas em detrimento dos algoritmos mais clássicos - o NIST definiu em 1999 uma série de curvas e corpos standard e em 2006 anunciou a &lt;a href="http://www.nsa.gov/ia/programs/suiteb_cryptography/index.shtml"&gt;Suite B&lt;/a&gt;, um conjunto de algoritmos aprovados para proteger dados até ao nível &amp;lsquo;Top Secret&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;A que é que se deve esta mudança?&lt;/p&gt;</description></item><item><title>Cracking 101</title><link>https://blol.org/938-cracking-101/</link><pubDate>Sat, 06 Jun 2009 00:53:02 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=938</guid><description>&lt;p&gt;Ora viva!&lt;/p&gt;
&lt;p&gt;O software há dias estava a tentar descobrir como se cracka um simples strncmp(3), então eu fiquei com ideias de criar um breve *curso* de cracking para os iniciantes.&lt;br&gt;
Começamos com o seguinte sores:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include&lt;/span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span style="color:#75715e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt; loljews[&lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;printf&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;--&amp;gt; &amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;scanf&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;%s&amp;#34;&lt;/span&gt;,&lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt;loljews);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;strncmp&lt;/span&gt;(loljews,&lt;span style="color:#e6db74"&gt;&amp;#34;morte&amp;#34;&lt;/span&gt;,&lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;)&lt;span style="color:#f92672"&gt;==&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;printf&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34; OK ;-)&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;\n&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;printf&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34; FAiLED!&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;\n&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;O código julgo que é auto-explicativo. O que se pretende é, depois de ter o programa compilado alterar o executável de forma a que aceite qualquer palavra sem ser &amp;ldquo;morte&amp;rdquo; e diga OK.&lt;br&gt;
Então corri o programa no gdb e fiz &amp;ldquo;disassemble main&amp;rdquo;&lt;/p&gt;</description></item><item><title>Threefish - Part II</title><link>https://blol.org/932-threefish-part-ii/</link><pubDate>Fri, 05 Jun 2009 22:28:44 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=932</guid><description>&lt;p&gt;Como prometido aos meus fiéis leitores &lt;a href="//blol.org/927-threefish"&gt;ontem&lt;/a&gt;, hoje vamos ver como optimizar a cifra Threefish de 250 ciclos por byte (em 32 bit) para algo mais útil na prática.&lt;/p&gt;
&lt;p&gt;Em primeiro lugar, e de longe mais relevante, vamos eliminar todos os loops e branches da função. Estes não apenas ocupam recursos que podiam estar a ser usados na cifração em si, mas impedem o uso de todas as unidades de execução. Em segundo lugar, queremos eliminar os acessos à memória desnecessários e manter o máximo de dados possível em registos: substituímos os arrays por variáveis para facilitar esta tarefa ao compilador. Infelizmente, não existem registos para toda a gente (em x86) e vamos sempre ter de aceder à stack para guardar alguns dados. Mas não faz mal. Assim sendo, ficamos com uma função do género:&lt;/p&gt;</description></item><item><title>Threefish</title><link>https://blol.org/927-threefish/</link><pubDate>Fri, 05 Jun 2009 03:54:20 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=927</guid><description>&lt;p&gt;Uma das formas de criar hash functions seguras passa por reutilizar uma cifra num ou noutro modo de operação especial. Entre estes encontram-se o modo Davies-Meyer, UBI, Miyaguchi-Preneel, etc.&lt;/p&gt;
&lt;p&gt;Um dos candidatos ao SHA-3, o Skein, utiliza uma cifra nova em modo UBI &amp;mdash; Threefish. Dada esta conversa toda sobre o AES-256 ser inseguro, e como &lt;a href="http://en.wikipedia.org/wiki/Idea_NXT"&gt;não&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Camellia_(cipher)"&gt;temos&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Serpent_(cipher)"&gt;já cifras&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Twofish"&gt;seguras&lt;/a&gt; &lt;a href="http://cr.yp.to/snuffle.html"&gt;suficientes&lt;/a&gt;, implementei esta cifra em C a partir das especificações acessíveis &lt;a href="http://www.schneier.com/skein.pdf"&gt;aqui&lt;/a&gt;. Existem vários tamanhos para o bloco e chave do Threefish &amp;mdash; implementei apenas o mais realista para cifração de dados: bloco de 256 bits, chave de 256 bits.&lt;/p&gt;</description></item><item><title>Samba e files por default.</title><link>https://blol.org/921-samba-e-files-por-default/</link><pubDate>Thu, 04 Jun 2009 20:58:25 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=921</guid><description>&lt;p&gt;Que raio.&lt;/p&gt;
&lt;p&gt;Quero fazer uma coisinha simples, uma directoria partilhada para toda a gente com acesso a leitura/escrita e deparo-me com uma complicação extrema de um ficheiro de configuraçao de samba por default em Debian completamente ilegivel, confuso e com um monte de &amp;ldquo;features&amp;rdquo; e comentários inúteis em que só me apetece pegar fogo ao ficheiro. Para não falar dos exemplos que não funcionam se nao Desactivarmos/Activarmos/Re-activarmos algumas opções que estão 34843 linhas acima.&lt;/p&gt;</description></item><item><title>AES-256 debilitado</title><link>https://blol.org/918-aes-256-debilitado/</link><pubDate>Tue, 02 Jun 2009 16:29:29 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=918</guid><description>&lt;p&gt;Surgiu um artigo recentemente, apresentado na Eurocrypt 2009, que afirmava que o AES-256 não é uma cifra ideal. O que é que isto significa? Significa que a cifra &lt;a href="http://en.wikipedia.org/wiki/Block_cipher#Generalities"&gt;não é uma permutação aleatória de bits&lt;/a&gt;, i.e. que é possível, com um esforço menor do que testar todas as chaves possíveis, distinguir a saída de uma &lt;em&gt;stream&lt;/em&gt; cifrada por AES de uma sequência aleatória de bytes.&lt;/p&gt;
&lt;p&gt;Isto tem várias consequências importantes. Por exemplo, ao criar uma função de &lt;em&gt;hashing&lt;/em&gt; recorrendo ao modo &lt;a href="http://en.wikipedia.org/wiki/One-way_compression_function#Davies-Meyer"&gt;Davies-Meyer&lt;/a&gt; e à cifra AES-256, é possível encontrar colisões em menos de 2^(n/2) compressões &amp;mdash; este facto é importante visto que este modo é usado em todas as hashes mais difundidas (e.g. MD5, SHA1, SHA2) e pode ser provado que é seguro, desde que a cifra seja segura. O artigo mostra que é possível encontrar &lt;strong&gt;q&lt;/strong&gt; pseudo-colisões desta forma em &lt;strong&gt;q.2^67&lt;/strong&gt; operações. Utilizar AES-256 em modo Davies-Meyer estará, portanto, fora de questão.&lt;/p&gt;</description></item><item><title>Failures em certificados de 16k</title><link>https://blol.org/906-failures-em-certificados-de-16k/</link><pubDate>Sun, 31 May 2009 22:44:35 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=906</guid><description>&lt;p&gt;Ora viva!!!&lt;/p&gt;
&lt;p&gt;Há dias o senhor mirage fez um req para meter a administração do blol por ssl. Então segui a bela da &lt;a href="http://www.openbsd.org/faq/faq10.html#HTTPS"&gt;FAQ do OpenBSD (Setting up a Secure HTTP server with SSL)&lt;/a&gt; e criei um certificado como explicam lá pus o login por https.&lt;/p&gt;
&lt;p&gt;Mas no dia seguinte o dongs disse que com 1024 não se sentia seguro, e eu também achei que ele tinha razão, então picado por ele decidi criar um certificado de 16384 bits, porque I CAN REALLY NOTICE THE DIFFERENCE!&lt;/p&gt;</description></item><item><title>Lucifer</title><link>https://blol.org/903-lucifer/</link><pubDate>Thu, 28 May 2009 23:58:56 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=903</guid><description>&lt;p&gt;Lucifer foi uma cifra desenvolvida pela IBM durante os anos 70 que definiu a estrutura de todas as cifras nas décadas seguintes. A cifra DES foi directamente derivada da Lucifer; ambas eram &lt;a href="http://en.wikipedia.org/wiki/Feistel_network"&gt;Feistel networks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ao contrário do DES, no entanto, a Lucifer era mais vulnerável a ataques diferenciais (um exemplo das fraquezas da cifra mais adiante). Tinha também um bloco e chave maiores (ambos de 128 bits). O código que se segue tem apenas valor histórico, dado que a cifra é bastante insegura para os standards actuais.&lt;/p&gt;</description></item><item><title>Leitor de SMS - Modem Huawei E220</title><link>https://blol.org/892-leitor-de-sms-modem-huawei-e220/</link><pubDate>Tue, 26 May 2009 23:46:26 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=892</guid><description>&lt;p&gt;Ora viva!&lt;/p&gt;
&lt;p&gt;No natal passado a minha fc ofereceu-me um &amp;ldquo;Vodafone Vita Net&amp;rdquo;. Que inclui este modem USB. A malandrice é que em OSX (onde costumo usar) e OpenBSD não há maneira de ler as sms que nos são enviadas pela Vodafone a dizer ate quando dura o serviço, quantos megabytes temos, etc. Já andava com esta fisgada há muito tempo então decidi fazer um programinha que se ligasse ao modem por serie, mandasse os comandos AT que listam as sms, e mostrasse duma forma pipi.&lt;/p&gt;</description></item><item><title>Blolpod #1</title><link>https://blol.org/880-blolpod-1/</link><pubDate>Sun, 24 May 2009 05:39:30 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=880</guid><description>&lt;p&gt;Isto é um podcast que decidi criar das coisas que tenho ouvido ultimamente&amp;hellip; Sei que é deveras inútil, porque ninguem quer saber o que eu ando a ouvir ultimamente, mas mesmo assim aqui está. As musicas que contem são as seguintes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Slagsmålsklubben - KKKKK Come On! (Fest I Valen)&lt;/strong&gt;&lt;br&gt;
Também conhecidos por SMK, são uma banda Sueca de chiptunes &amp;ldquo;actuais&amp;rdquo;, para quem aprecia a demoscene e retro computing aconselho vivamente!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chalawa - Waiting In Vain (Exodub)&lt;/strong&gt;&lt;br&gt;
Uma versão DUB da musica Waiting In Vain do Bob Marley, está mesmo com o puro feeling do reggae!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ricardo Silveira - País Tropical (Noite Clara)&lt;/strong&gt;&lt;br&gt;
Guitarrista brasileiro que conheço à pouco tempo mas faz um som mesmo do relax&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Os Gatos - Sambidú (Os Gatos)&lt;/strong&gt;&lt;br&gt;
Uma bela bossa brasileira dos anos 60&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ketama, Toumani Diabate, Jose Soto - Pozo del Deseo (Songhai 2)&lt;/strong&gt;&lt;br&gt;
Uma mistura de musica do Mali com musica espanhola, muito bom para quem gosta de World Music&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Голландия (Holland) - Сказочка Ксюшечке (Tale for Ksushechka) (Я дошёл (I came))&lt;/strong&gt;&lt;br&gt;
Uma banda russa que o género de som faz me lembrar as musicas contra o fascismo do Sérgio Godinho e afins&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jimi Hendrix - I Don&amp;rsquo;t Live Today (Stages: Stockholm &amp;lsquo;67)&lt;/strong&gt;&lt;br&gt;
O rei da guitarra nesta versão ao vivo que acho fabulosa!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quarteto 1111 - Dragão (Balada Para D. Inês)&lt;/strong&gt;&lt;br&gt;
Banda do rei José Cid, numa musica que aprecio muito a letra&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Offspring - Burn It Up (Ignition)&lt;/strong&gt;&lt;br&gt;
Um verdadeiro classico do punk!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Espero que gostem&amp;hellip; ou não! Aguardo comentários.&lt;/p&gt;</description></item><item><title>Arvorezinha - ML (versão alternativa)</title><link>https://blol.org/877-arvorezinha-ml-versao-alternativa/</link><pubDate>Thu, 14 May 2009 00:22:28 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=877</guid><description>&lt;p&gt;Ora viva de novo!&lt;br&gt;
Mais uma vez venho blogar por causa de novas submissões de arvorezinhas, desta vez do ardoRic da PTnet! Ele diz o seguinte:&lt;/p&gt;
&lt;p&gt;nao gostei da &lt;a href="//blol.org/413-arvorezinha-java-bytecode-optimizado"&gt;outra versão (está nos comentários)&lt;/a&gt; &amp;hellip; estava pouco ML like.&lt;br&gt;
Espero que gostes desta :)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;let rec branch n =
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; match n with
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0 -&amp;gt; []
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | n -&amp;gt; &amp;#34;*&amp;#34;:: branch (n-1)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;let rec nat n =
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; match n with
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0 -&amp;gt; []
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | n -&amp;gt; n::(nat (n-1))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;List.iter (fun x -&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; List.iter print_string x ;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print_string &amp;#34;\n&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;) (List.rev_map branch (nat 5))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Arvorezinha - COBOL</title><link>https://blol.org/874-arvorezinha-cobol/</link><pubDate>Wed, 13 May 2009 16:07:40 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=874</guid><description>&lt;p&gt;Outra submissão para a saga da arvorezinha, pelo meu colega João Saramago, desta vez em COBOL. Aqui vai:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;IDENTIFICATION DIVISION.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PROGRAM-ID. Arvorezinha.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;AUTHOR. João Saramago.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DATA DIVISION.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WORKING-STORAGE SECTION.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;01 Linhas PIC 99 VALUE 5.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;01 AUX PIC 99 VALUE ZEROS.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;01 AUX2 PIC 99 VALUE ZEROS.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PROCEDURE DIVISION.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Main.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; DISPLAY &amp;#34;Número de Linhas: &amp;#34; WITH NO ADVANCING
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ACCEPT Linhas.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PERFORM VARYING AUX FROM 1 BY 1 UNTIL AUX GREATER THAN Linhas
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PERFORM VARYING AUX2 FROM 0 BY 1 UNTIL AUX2 EQUAL TO AUX
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; DISPLAY &amp;#34;*&amp;#34; WITH NO ADVANCING
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; END-PERFORM
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; DISPLAY &amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; END-PERFORM
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; STOP RUN.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para compilar usei o &lt;a href="http://www.opencobol.org/"&gt;OpenCobol&lt;/a&gt; e para compilar é este comando:&lt;/p&gt;</description></item><item><title>Truecrypt 6.2</title><link>https://blol.org/872-truecrypt-62/</link><pubDate>Mon, 11 May 2009 19:48:15 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=872</guid><description>&lt;p&gt;Ora viva.&lt;/p&gt;
&lt;p&gt;Saiu hoje uma nova versão do &lt;a href="http://truecrypt.org"&gt;Truecrypt&lt;/a&gt;, o utilitário a utilizar quando queremos proteger os nossos dados de organizações alheias (party van).&lt;/p&gt;
&lt;p&gt;Esta nova versão não traz nada de novo do ponto de vista criptográfico, mas bugfixes e speedups são sempre bem vindos.&lt;/p&gt;
&lt;p&gt;Bem-haja!&lt;/p&gt;</description></item><item><title>Arvorezinha - ARM Assembly</title><link>https://blol.org/864-arvorezinha-arm-assembly/</link><pubDate>Sun, 10 May 2009 23:18:06 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=864</guid><description>&lt;p&gt;Boas noites!&lt;/p&gt;
&lt;p&gt;Venho de novo dar continuação à saga da arvorezinha, desta vez em ARM assembly para Linux. Esta foi relativamente simples, mas também depois de se ter feito em tantos tipos de arches já não há muito a diferir :-P&lt;/p&gt;
&lt;p&gt;Aqui segue o código:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.equ SYSCALL_BASE, 0x900000
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.equ SYSCALL_EXIT, 1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.equ SYSCALL_WRITE, 4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.text
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.align 2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.globl _start
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_start:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov r0,#5 @ total = 5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov r1,#0 @ counter1 = 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_ciclo1:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmp r0,r1 @ compara c1 e tot
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; beq _exit @ se for igual sai
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov r2,#0 @ counter2 = 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_ciclo2:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmp r2,r1 @ compara c1 e c2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; beq _estrela @ se for igual _estrela
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blt _estrela @ se for menor _estrela
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; stmfd sp!, {r0-r2} @ guarda r0 a r2 na stack
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; adr r1,newline @ le \n
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bl _print @ imprime
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldmfd sp!, {r0-r2} @ le da stack r0 a r2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; add r1,r1,#1 @ incrementa c1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b _ciclo1 @ salta _ciclo1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_estrela:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; stmfd sp!, {r0-r2} @ guarda r0 a r2 na stack
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; adr r1,estrela @ le *
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bl _print @ imprime
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldmfd sp!, {r0-r2} @ le da stack r0 a r2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; add r2,r2,#1 @ incrementa c2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b _ciclo2 @ salta _ciclo2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_exit:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov r0,#0 @ resultado e&amp;#39; 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; swi SYSCALL_BASE+SYSCALL_EXIT @ sai
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_print:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov r0,#1 @ 1 == stadout
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov r2,#1 @ tamanho da string
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; swi SYSCALL_BASE+SYSCALL_WRITE @ imprime
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bx r14 @ return
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;estrela:.string &amp;#34;*&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;newline:.string &amp;#34;\n&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;E aqui a prova-dos-nove:&lt;/p&gt;</description></item><item><title>Arvorezinha de Letras</title><link>https://blol.org/853-arvorezinha-de-letras/</link><pubDate>Sun, 10 May 2009 19:55:16 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=853</guid><description>&lt;p&gt;Olá a todos,&lt;/p&gt;
&lt;p&gt;Todos os que visitam o blol conhecem de certeza o sucesso da árvorezinha, publicada imensas vezes de inúmeras formas sempre com o mesmo grau de inutilidade.&lt;/p&gt;
&lt;p&gt;Quando passava os olhos no blol deparei-me com um &lt;a href="//blol.org/717-arvorezinha-falso"&gt;post do spico&lt;/a&gt; que fazia uma arvorezinha com letras de forma manual. Ora não seria isto engraçado ser feito com o mesmo entusiasmo que a v1.0 da arvorezinha nas mais inúmeras formas cada uma mais inútil que a anterior?&lt;br&gt;
Decidi assim ser o primeiro a fazê-lo em python, pois é simples de entender para todos os que quiserem pegar nisto.&lt;/p&gt;</description></item><item><title>kryptwit 0.1</title><link>https://blol.org/845-kryptwit-01/</link><pubDate>Sun, 10 May 2009 05:41:54 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=845</guid><description>&lt;p&gt;Bom dia. Tenho, com alguma tristeza, assistido ao flagelo que o &lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt; se tornou nos últimos tempos. Esta actividade inútil, &amp;rsquo;twitar&amp;rsquo;, fomentou a minha última criação: o kryptwit. A prova viva que inutilidade gera inutilidade.&lt;/p&gt;
&lt;p&gt;Esta biblioteca tem como função cifrar updates do twitter, por forma a poderem apenas ser lidos pelos possuidores de uma password adequada. O RFC que proponho é o seguinte:&lt;/p&gt;
&lt;p&gt;Mensagens de entrada - Não podem ultrapassar os 100 bytes (isto inclui caracteres unicode que podem ocupar mais de 1 byte) de tamanho.&lt;/p&gt;</description></item><item><title>arvorezinha em LUA</title><link>https://blol.org/836-arvorezinha-em-lua/</link><pubDate>Sat, 09 May 2009 01:22:05 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=836</guid><description>&lt;p&gt;Olá a todos,&lt;/p&gt;
&lt;p&gt;Depois de ter xatiado o falso um bocado, lá consegui que ele me abrisse uma conta&amp;hellip; Ora bem.. primeiro post, vamos a ver se não fico mal&amp;hellip;&lt;/p&gt;
&lt;p&gt;A saga da arvorezinha continua a nos assombrar&amp;hellip; desta vez em Lua (pelo menos ainda não vi por cá&amp;hellip;) a correr na PSP, só para ser diferente =).&lt;/p&gt;
&lt;p&gt;Aqui têm a &amp;ldquo;sores&amp;rdquo;, como vocês chamam:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;verde = Color.new(0, 255, 0)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;screen:clear()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;arv=&amp;#34;*&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;for i=100,140,10 do
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;screen:print(200,i, arv, verde)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;arv=arv .. &amp;#34;*&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;endscreen.flip()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;while true do
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;screen.waitVblankStart()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;end
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Parabéns aos gurus do malbolge e do assembly! Já agora, aproveito para lançar um desafio:&lt;/p&gt;</description></item><item><title>Sexylosers is back!</title><link>https://blol.org/833-sexylosers-is-back/</link><pubDate>Fri, 08 May 2009 18:30:04 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=833</guid><description>&lt;p&gt;Amigos, fiquei imensamente entristecido pelo recente desaparecimento do &lt;a href="http://sexylosers.com/"&gt;sexylosers.com&lt;/a&gt;, um dos comics mais fixes de toda a Interweb.&lt;/p&gt;
&lt;p&gt;Mas nada temam, pois o SL está de volta com 5 novos strips, segundo o Clay. 2 deles já estão no site:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sexylosers.com/251.html"&gt;http://sexylosers.com/251.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sexylosers.com/252.html"&gt;http://sexylosers.com/252.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Não temos senão razão para festejar este maravilhoso retorno do comic pródigo, já com 10 anos de existência!&lt;/p&gt;</description></item><item><title>Useless one-liner #1</title><link>https://blol.org/820-useless-one-liner-1/</link><pubDate>Thu, 07 May 2009 21:51:10 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=820</guid><description>&lt;p&gt;Que tal arruinar uma das coisas mais úteis ?&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hexdump -C /dev/urandom | grep -i jew
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(aposto que o Dcoder consegue calcular de cabeça a probabilidade deste evento acontecer)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0081de30  fe 4e 4a 45 57 04 b9 dc  65 ed 7d 92 b0 cb ab 7e  |.NJEW...e.}....~|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;008739e0  6d c3 d6 f4 52 cd 55 fc  9d 4a 65 57 c6 e8 2b cb  |m...R.U..JeW..+.|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;008db5d0  0b b7 4b cc 6a 65 77 09  2f 63 b8 76 d6 82 fa 46  |..K.jew./c.v...F|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;00b2d430  6f 46 ab d7 4f be 43 2b  52 cb 67 5d c5 4a 65 57  |oF..O.C+R.g].JeW|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;00d3dbe0  b8 0b 35 7a 92 14 6a 45  57 f2 47 42 fa e2 c6 f5  |..5z..jEW.GB....|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;00d76640  c4 1a d8 db d1 c7 98 cf  e2 7e 5a 7d 6a 65 77 66  |.........~Z}jewf|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;00f081d0  d2 cf 34 c7 18 52 0c 4a  45 57 9b 63 bd b6 5d b5  |..4..R.JEW.c..].|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;012ea540  dc 80 31 71 1d 4f 39 64  72 d7 c5 4a 65 57 be 07  |..1q.O9dr..JeW..|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;01326920  fd b8 0b e4 6f 6a 45 77  25 1a 7a d2 2e 8b 70 0e  |....ojEw%.z...p.|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0148f3d0  4e ed bf 6f 6c ec 40 7d  fc 6a 45 57 33 a0 d3 71  |N..ol.@}.jEW3..q
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Cenas do próximo capítulo:&lt;/p&gt;</description></item><item><title>Arvorezinha - LISP</title><link>https://blol.org/817-arvorezinha-lisp/</link><pubDate>Thu, 07 May 2009 19:38:27 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=817</guid><description>&lt;p&gt;Submetido pelo _Lone_Wolf_ da ptnet:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(defun arvorezinha (count) (loop for i from 1 to count do (print (make-string i :initial-element #\*))))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>fractalg</title><link>https://blol.org/814-fractalg/</link><pubDate>Thu, 07 May 2009 19:19:02 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=814</guid><description>&lt;p&gt;Todos os que frequentam o #linuxhelp @ ptnet já devem ter levado com a propaganda do sr fractalg sobre o seu porsche, ele faz isto, ele faz aquilo, ele passa por este na A1, passa pelo outro, o que é verdade é que tal carro nunca foi visto&amp;hellip; nem só uma piczinha&amp;hellip;.&lt;/p&gt;
&lt;p&gt;Após árdua pesquisa consegui encontrar a dita foto do carro aqui fica:&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2009/05/2005-porsche-miniature-cayenne-prototype-golf-cart-sa-1280x960.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2009/05/2005-porsche-miniature-cayenne-prototype-golf-cart-sa-1280x960.jpg" alt="2005-porsche-miniature-cayenne-prototype-golf-cart-sa-1280x960"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Geocities !!!</title><link>https://blol.org/811-811/</link><pubDate>Wed, 06 May 2009 22:18:48 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=811</guid><description>&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/HLIC/skull.gif" alt="aids"&gt;&lt;/p&gt;</description></item><item><title>Arvorezinha - C Preprocessor</title><link>https://blol.org/803-arvorezinha-c-preprocessor/</link><pubDate>Wed, 06 May 2009 20:34:48 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=803</guid><description>&lt;p&gt;Aqui vai uma submissão ligeiramente lame da arvorezinha em C preprocessor. Infelizmente não descobri como concatenar os &amp;lsquo;*&amp;rsquo; (concatenar uma vez funciona com ##, mas a segunda vez não, dado que o preprocessor não avalia as expressões até o fim). Se alguém tiver sugestões, tomem a liberdade de as colocar nos comentários.&lt;/p&gt;
&lt;p&gt;print.h:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#if i &amp;lt;= total
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#if i &amp;gt; 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#pragma message( STR )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#endif
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#include &amp;#34;inc_i.h&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#include __FILE__
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#endif
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;inc_i.h:&lt;/p&gt;</description></item><item><title>Oldies</title><link>https://blol.org/800-oldies/</link><pubDate>Tue, 05 May 2009 21:14:14 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=800</guid><description>&lt;p&gt;Em conversa há dias com o falso, mostrei-lhe uma calculadora de bitrate que tinha feito há (N) anos, toda em Win32 assembly. Escusado será dizer o desperdício de tempo que foi. Fiquei, no entanto, triste por ter perdido o código original da mesma; aquilo era até bastante complexo, para o efeito que era.&lt;/p&gt;
&lt;p&gt;Para não perder mais lixo que fiz no passado, sempre que o encontrar por aqui vou postando. Neste post coloco o &lt;strong&gt;CryptoFrame&lt;/strong&gt;, uma aplicação modular que fiz para servir de workbench para as várias experiências que ia fazendo. Como sempre, nunca foi acabado nem passou da primeira versão, 0.1. Mesmo assim, há quem tenha achado isto útil por alguma razão que me ultrapassa.&lt;/p&gt;</description></item><item><title>Arvorezinha - Pascal</title><link>https://blol.org/794-arvorezinha-pascal/</link><pubDate>Tue, 05 May 2009 13:49:23 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=794</guid><description>&lt;p&gt;Directly from South Africa we have a submission from Desmond that works for Cartrack, here it is his submission:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;for i := 1 to 5 do
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;begin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;for j := 1 to i do write(´*´);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;writeln;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;end;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Malbolge desmistificado</title><link>https://blol.org/735-malbolge-desmistificado/</link><pubDate>Mon, 04 May 2009 21:42:26 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=735</guid><description>&lt;p&gt;Bem-vindos. Espicaçado pelas inutilidades que o &lt;a href="//blol.org/574-arvorezinha-malbolge"&gt;falso e o Dcoder&lt;/a&gt; fizeram em &lt;a href="http://en.wikipedia.org/wiki/Malbolge"&gt;malbolge&lt;/a&gt;, e ainda mais depois de o falso ter afirmado peremptoriamente que era impossível fazer uma arvorezinha à mão nesta linguagem diabólica, decidi, fatalmente, jogar mãos à obra.&lt;/p&gt;
&lt;p&gt;O segredo do falso em relação ao malbolge é que todo o código dele é gerado por bruteforce. As optimizações do Dcoder limitaram-se a correr o bruteforce durante mais tempo para procurar soluções mais curtas. Neste post proponho um método real, analítico e bastante simples para criar um programa de malbolge que imprima qualquer sequência de caracteres, com a limitação de ser curta. E sim, a arvorezinha é suficientemente curta. ;-) Para facilitar a programação, criei vários utilitários, baseados no malbolge.c original, que constituem o malbolge SDK &lt;a href="//blol.org/wp-content/uploads/2009/05/malbolge-sdk.tgz"&gt;disponível aqui&lt;/a&gt;. Eis uma curta explicação de cada programa:&lt;/p&gt;</description></item><item><title>RIP fravia+</title><link>https://blol.org/737-rip-fravia/</link><pubDate>Mon, 04 May 2009 14:30:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=737</guid><description>&lt;p&gt;A noticia chegou-me pelo IRC, também já estava mais que sabido, ele próprio já tinha escrito no site dele que não ia durar mais que umas semanas. Pelo que a &lt;a href="http://en.wikipedia.org/wiki/Fravia"&gt;Wikipedia&lt;/a&gt; diz foi ontem, dia 3 de Maio 2009.&lt;br&gt;
É uma grande perda para comunidade de RE de todo o mundo e não só, pois ele não se dedicava só a essa arte. Para mim, ele e o tKc foram como um senseis do cracking (que não domino assim tanto) que me meteram o bichinho, de ver como as coisas funcionam _under the hood_.&lt;br&gt;
Vou actualizar de novo o mirror que tenho site dele em &lt;a href="http://fravia.blol.org"&gt;http://fravia.blol.org&lt;/a&gt; para não se perder caso o servidor onde o site dele ta alojado na suíça vá com os porcos.&lt;/p&gt;</description></item><item><title>Oracle - O eterno mito: "Mete mais memória que isso vai.."</title><link>https://blol.org/728-oracle-o-eterno-mito-mete-mais-memoria-que-isso-vai/</link><pubDate>Sun, 03 May 2009 11:42:46 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=728</guid><description>&lt;p&gt;Bom dia,&lt;/p&gt;
&lt;p&gt;Durante finais da decada de 80, todo e qualquer individuo que tivesse frequentado meia duzia de aulas de tuning de Oracle sabia que a forma mais simples de optimização de uma query era simplesmente eliminar os acessos físicos de  I/O (ou E/S se preferirem). Isso era o que se ensinava, mas basta pensar um pouco para perceber que &amp;ldquo;e então os memory accesses?&amp;rdquo;. Alegava-se convictamente que os acessos à memoria eram tão rápidos que o seu impacto era desprezável. Isto parecia estranho no mínimo e curioso no máximo. Então toda a vida os programadores de C tentaram eliminar os acessos indevidos à memória e agora estes senhores dizem que isto é  desprezável.&lt;/p&gt;</description></item><item><title>SHA-1 Quebrado (outra vez)</title><link>https://blol.org/721-sha-1-considered-harmful/</link><pubDate>Sun, 03 May 2009 02:27:09 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=721</guid><description>&lt;p&gt;Lembram-se de todo o drama quando &lt;a href="http://www.win.tue.nl/hashclash/rogue-ca/"&gt;criaram certificados falsos a partir de colisões de MD5&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;Aparentemente a resposta dos principais CAs &lt;a href="https://press.verisign.com/easyir/customrel.do?easyirid=AFC0FF0DB5C560D3&amp;amp;version=live&amp;amp;prid=463259&amp;amp;releasejsp=custom_97"&gt;foi rapidamente migrar para SHA-1&lt;/a&gt;, mesmo sabendo que &lt;a href="http://www.rsa.com/rsalabs/node.asp?id=2927"&gt;já não era inteiramente seguro&lt;/a&gt; (reparem na data). Na altura eu disse que era má ideia, mas agora a situação piorou:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://eurocrypt2009rump.cr.yp.to/837a0a8086fa6ca714249409ddfae43d.pdf"&gt;SHA-1 Collisions now 2^52&lt;/a&gt;. Infelizmente o artigo completo ainda não foi publicado, deixando os detalhes do ataque em aberto. Ainda assim, os autores são credíveis e os resultados vão ser apresentados na Eurocrypt 2009 pelo Greg Rose, autor de um dos candidatos ao SHA-3.&lt;/p&gt;</description></item><item><title>Arvorezinha - FALSO</title><link>https://blol.org/717-arvorezinha-falso/</link><pubDate>Thu, 30 Apr 2009 14:36:47 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=717</guid><description>&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; f -- Line number 1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; als -- This line .. Well ...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ofals
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ofalsof
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; alsofalso -- First cycle (Begin)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; falsofalsof -- Second cycle (End)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; alsofalsofals
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ofalsofalsofals
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ofalsofalsofalsof
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; alsofalsofalsofalso -- Second cycle (End)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; falsofalsofalsofalsof -- First cycle (End)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; alsofalsofalsofalsofals
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ofalsofalsofalsofalsofals
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ofalsofalsofalsofalsofalsofa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lsofa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lsofa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lsofa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lsofa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lsofa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lsofa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lsofa -- 7 lsofa &amp;lt;=&amp;gt; Returns 0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Espero que tenham gostado dos comentários.&lt;/p&gt;</description></item><item><title>Byte Swap com SSE4.1</title><link>https://blol.org/713-byte-swap-com-sse41/</link><pubDate>Wed, 29 Apr 2009 17:03:28 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=713</guid><description>&lt;p&gt;Para finalizar esta série de optimizações inúteis, trago-vos a versão final desta função:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BITS 32
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;%define UNROLL_COUNT (4)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;section .data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;align 16
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;shuffle: dd 0x04050607, 0x00010203, 0x0c0d0e0f, 0x08090a0b
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;section .text
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;global sse41_bswap64
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sse41_bswap64:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; push ebp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov edx, [esp+8] ; buffer -- assumed aligned 16
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov ecx, [esp+12] ; length in #words
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; test ecx, ecx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jz near _end
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; and ecx, -(UNROLL_COUNT*2) ; make ecx even
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jz _finalize
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; movdqu xmm7, [shuffle]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;align 16
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_loop:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sub ecx, UNROLL_COUNT*2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ; use movntdqa with sse 4.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; movntdqa xmm0, [edx + 00]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; movntdqa xmm1, [edx + 16]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; movntdqa xmm2, [edx + 32]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; movntdqa xmm3, [edx + 48]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pshufb xmm0, xmm7 ; p5, 1l 1t
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pshufb xmm1, xmm7 ; p5, 1l 1t
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pshufb xmm2, xmm7 ; p5, 1l 1t
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pshufb xmm3, xmm7 ; p5, 1l 1t
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ; use movntdq --- the data won&amp;#39;t be accessed again
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ; until the end of the function
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; movntdq [edx + 00], xmm0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; movntdq [edx + 16], xmm1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; movntdq [edx + 32], xmm2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; movntdq [edx + 48], xmm3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lea edx, [edx+ 16*UNROLL_COUNT];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jnz _loop ; no dependency, all flags were
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ; computed in the beginning of the loop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_finalize:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sfence
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov ebp, [esp+8]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; and ebp, (UNROLL_COUNT*2)-1 ; ebp = count mod UNROLL
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jz _end
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_endloop:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov eax, [edx]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bswap eax ; p0+p5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov ecx, [edx+4]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bswap ecx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov [edx], ecx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov [edx+4], eax
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sub ebp, 1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lea edx, [edx+8]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jnz _endloop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_end:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pop ebp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ret
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A única diferença nesta é que agora não apenas os stores, mas também os loads são não temporais, evitando a poluição da cache com dados que sabemos que nao vão ser usados. A performance desta última versão é a melhor do grupo, como demonstrado:&lt;/p&gt;</description></item><item><title>Cantiga do Fumicio</title><link>https://blol.org/706-cantiga-do-fumicio/</link><pubDate>Wed, 29 Apr 2009 14:31:17 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=706</guid><description>&lt;p&gt;Ora viva amigos!&lt;/p&gt;
&lt;p&gt;Estava aqui a ver mais umas coisas antigas, e encontrei uma letra *alternativa* linda que um amigo meu de escola fez para uma musica do &lt;em&gt;Fausto&lt;/em&gt; chamada a &lt;em&gt;Cantiga do Desemprego&lt;/em&gt;.&lt;br&gt;
Aqui vai a original e a alterada, chamada &amp;ldquo;Cantiga do Fumicio&amp;rdquo;:&lt;/p&gt;
&lt;p&gt;Cantiga do DesempregoCantiga do Fumicio&lt;br&gt;
Fumo um cigarro deitado no mês de Janeiro.&lt;br&gt;
Fecho a cortina da vida, espreguiço em Fevereiro.&lt;br&gt;
E procuro trabalho nesta esperança de Março.&lt;br&gt;
Já me farta tanto Abril e aquilo que não faço.&lt;br&gt;
Espreito por um funil a promessa de Maio,&lt;br&gt;
porque esperar o prometido, nessa já não caio.&lt;br&gt;
Queimo os dias de Junho no sol quente de Julho.&lt;br&gt;
Esfrego as mãos de contente num sorriso de entulho.&lt;br&gt;
Para teu grande desgosto, janto contigo em silêncio&lt;br&gt;
e lentamente esquecido, digo-te adeus em Agosto.&lt;br&gt;
Meu Setembro perdido numa esquina que eu roço.&lt;br&gt;
E penso em Outubro o menos que posso.&lt;br&gt;
Mas quando sinto a verdade daquilo que cansa,&lt;br&gt;
nunca houve vontade do tempo de andança.&lt;br&gt;
E sinto força em Novembro, juro luta em Dezembro.&lt;br&gt;
E sinto força em Novembro, juro luta em Dezembro.&lt;/p&gt;</description></item><item><title>Byte Swap com SSSE3</title><link>https://blol.org/704-byte-swap-com-ssse3/</link><pubDate>Wed, 29 Apr 2009 04:26:56 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=704</guid><description>&lt;p&gt;Lembrei-me há pouco, durante as minhas insónias, que podemos aproveitar uma nova instrução introduzida nos Core 2 para acelerar consideravelmente esta operação: PSHUFB.&lt;/p&gt;
&lt;p&gt;Essencialmente, o PSHUFB permite-nos criar uma permutação à escolha dentro de um registo XMM. É fácil ver como isto se aplica no nosso caso a inversão de bytes.&lt;/p&gt;
&lt;p&gt;Para aumentar o débito, nas escritas utilizo a instrução MOVNTDQ, que dá a dica ao processador que a memória em causa já não vai ser acedida em breve. SFENCE serve para serializar todos estes armazenamentos. Mais uma vez leio/escrevo uma cache line por iteração (podia abusar e fazer isto para uma página inteira &amp;ndash; valerá a pena?).&lt;/p&gt;</description></item><item><title>Byte Swap com SSE2</title><link>https://blol.org/699-byte-swap-com-sse2/</link><pubDate>Tue, 28 Apr 2009 23:32:27 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=699</guid><description>&lt;p&gt;Encontrava-me hoje na Internet descansado quando o raxx7 começou a falar de optimizar uma função simples, mas engraçada &amp;ndash; inverter a ordem dos bytes de um inteiro de 64 bits. Vou desde já assumir x86, visto que em amd64 existe uma instrução nativa que faz isto em apenas 4 ciclos (latência no core2) e é provavelmente rápido o suficiente. Mas em x86 precisamos de 2 instruções destas e 2+2 acessos à memória. Assim, peguei na identidade simples:&lt;/p&gt;</description></item><item><title>Telefonemas Anónimos</title><link>https://blol.org/690-telefonemas-anonimos/</link><pubDate>Tue, 28 Apr 2009 20:02:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=690</guid><description>&lt;p&gt;Ora viva amigos!&lt;br&gt;
Estava a ver aqui umas directorias bues de antigas, e achei aqui os clássicos telefonemas anónimos de quando comecei a vir pras internets!&lt;br&gt;
Os tais do &amp;ldquo;vai ja chamar a tua filha&amp;hellip;&amp;rdquo; e o da pizza e o do funeral!&lt;/p&gt;
&lt;p&gt;Ta aqui o belo do &lt;a href="//blol.org/wp-content/uploads/2009/04/classicos.zip"&gt;zip&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;O meu favorito:
&lt;audio controls preload="metadata"&gt;
&lt;source src="//blol.org/wp-content/uploads/2009/04/pizza1.mp3" type="audio/mp3"&gt;
Your browser does not support the audio element.
&lt;/audio&gt;
&lt;/p&gt;</description></item><item><title>Arvorezinha - CMD.exe</title><link>https://blol.org/687-arvorezinha-cmdexe/</link><pubDate>Tue, 28 Apr 2009 11:35:42 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=687</guid><description>&lt;p&gt;Submetido pelo brackhat:&lt;/p&gt;
&lt;p&gt;Num batch file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;C:\&amp;gt;type arv.bat
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;@echo off
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;set arv=*****&amp;amp;cmd.exe /v:on /C &amp;#34;for /L %%n in (1,1,5) do @echo !arv:~-%%n!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;C:\&amp;gt;arv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;***
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;C:\&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Em command line:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;C:\&amp;gt;set arv=*****&amp;amp;cmd.exe /v:on /C &amp;#34;for /L %n in (1,1,5) do @echo !arv:~-%n!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;***
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;C:\&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Hipocrisia no Planet Geek</title><link>https://blol.org/681-hipocrisia-no-planet-geek/</link><pubDate>Tue, 28 Apr 2009 10:24:05 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=681</guid><description>&lt;p&gt;Ora viva amigalhaços!&lt;/p&gt;
&lt;p&gt;Venho deste modo falar de um drama que aconteceu, que me deixou um bocado triste.&lt;br&gt;
No sábado passado fiz um pedido para ser adicionado ao agregador português de blogs, o Planet Geek, disseram-me que iam fazer uma votação com os membros actuais para saber se o nosso blog poderia entrar ou não.&lt;br&gt;
Fiz este pedido, por desde já uns tempos o blog está a ter vários posts diariamente e muitos deles com conteúdo, pode se dizer, MUITO geek, e gostava que tivesse mais um pouco de exposição do que tem actualmente.&lt;/p&gt;</description></item><item><title>Arvorezinha - MOOsaico</title><link>https://blol.org/673-arvorezinha-moosaico/</link><pubDate>Mon, 27 Apr 2009 17:25:25 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=673</guid><description>&lt;p&gt;Seguindo a linha do &amp;ldquo;One Liner&amp;rdquo;, segue a arvorezinha feita no &lt;a href="http://moosaico.com" title="MOOsaico"&gt;MOOsaico&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;eval(&amp;#34;s=\&amp;#34;*\&amp;#34;;for x in [1..5] player:tell(s); s=s+\&amp;#34;*\&amp;#34;;endfor;&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Resultado:&lt;br&gt;
*&lt;br&gt;
**&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;hr&gt;</description></item><item><title>Arvorezinha - POV-Ray</title><link>https://blol.org/669-arvorezinha-pov-ray/</link><pubDate>Sun, 26 Apr 2009 23:39:17 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=669</guid><description>&lt;p&gt;Mais uma submissão, agora do nifan:&lt;/p&gt;
&lt;p&gt;Cá vai mais uma :D&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; #include &amp;#34;colors.inc&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; camera {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; location &amp;lt;0, 0.5, -20&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; look_at 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; angle 45
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; light_source { &amp;lt;500,500,-1000&amp;gt; White }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; plane {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; y,0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pigment { checker Brown White }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; #declare blol1 = 1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; #while(blol1 &amp;lt;= 5)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; #declare blol2 = 1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; #while(blol2 &amp;lt;= blol1)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; text {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ttf &amp;#34;timrom.ttf&amp;#34; &amp;#34;*&amp;#34; 1, 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pigment { Green }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; translate (-3+blol2)*x+(5-blol1)*y
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; #declare blol2 = blol2 + 1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; #end
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; #declare blol1 = blol1 + 1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; #end
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para compilar: povray blol.pov&lt;/p&gt;</description></item><item><title>Arvorezinha - ADA e Ruby</title><link>https://blol.org/665-arvorezinha-ada-e-ruby/</link><pubDate>Sun, 26 Apr 2009 23:35:21 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=665</guid><description>&lt;p&gt;Submetido por kuvalski:&lt;/p&gt;
&lt;p&gt;Oix, kuvalski here!&lt;/p&gt;
&lt;p&gt;ADA:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;with Ada.Text_IO; use Ada.Text_IO;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;procedure Arvorezinha is
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; X : String := &amp;#34;*&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;begin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; for I in Integer range 1 .. 5 loop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; for J in Integer range 1 .. I loop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Put(X);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; end loop;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Put_Line(&amp;#34;&amp;#34;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; end loop;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;end Arvorezinha;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ruby:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;for i in 1..5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; i.times do
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print &amp;#34;*&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; end
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print &amp;#34;\n&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;end
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tens aí duas arvorezinhas todas fofas.&lt;br&gt;
A de ADA é instalar o gnat.&lt;br&gt;
gnat make arvorezinha.adb&lt;br&gt;
./arvorezinha&lt;br&gt;
e go go&lt;/p&gt;</description></item><item><title>Arvorezinha .Net 2.0 - 'Optimizada'</title><link>https://blol.org/659-arvorezinha-net-20-optimizada/</link><pubDate>Sun, 26 Apr 2009 22:17:32 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=659</guid><description>&lt;p&gt;Em resposta ao &lt;a href="//blol.org/618-arvorezinha-net"&gt;desafio do spico&lt;/a&gt;, o kuvalski envia-nos uma arvorezinha &amp;lsquo;optimizada&amp;rsquo;:&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2009/04/2u580o3.png"&gt;&lt;img src="//blol.org/wp-content/uploads/2009/04/2u580o3.png" alt="2u580o3"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Arvorezinha - Python: One liner optimizado</title><link>https://blol.org/649-arvorezinha-python-inliner-optimizado/</link><pubDate>Sun, 26 Apr 2009 21:38:19 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=649</guid><description>&lt;p&gt;Olá a todos,&lt;/p&gt;
&lt;p&gt;Ora agora a moda é os one liners e decidi optimizar a versão do trodrigues que está BASTANTE lenta na minha opinião de expert claro. Então escrevi assim algo que me demorou vários segundos a fazer:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;for i in xrange(1,6): print i * &amp;#39;*&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;O resultado é o esperado:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;&amp;gt;&amp;gt; for i in xrange(1,6): print i * &amp;#39;*&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;***
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*****
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Obrigado pela atenção,&lt;/p&gt;</description></item><item><title>Arvorezinha - Perl</title><link>https://blol.org/643-643/</link><pubDate>Sun, 26 Apr 2009 16:07:16 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=643</guid><description>&lt;p&gt;Já que avançámos para linguagens mais normais e para demonstrar que o python suga, segue o meu one liner em perl.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;david@tokyo ~ $ perl -l arvorezinha.pl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;***
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;david@tokyo ~ $ cat arvorezinha.pl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;for (1..5){print &amp;#34;*&amp;#34;x$_;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;david@tokyo ~ $ wc -c arvorezinha.pl
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;O &amp;ldquo;-l&amp;rdquo; põe automaticamente o carriage return no fim de cada linha.&lt;/p&gt;
&lt;p&gt;Bem-haja!&lt;/p&gt;</description></item><item><title>Arvorezinha - Python</title><link>https://blol.org/639-arvorezinha-python/</link><pubDate>Sat, 25 Apr 2009 22:28:36 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=639</guid><description>&lt;p&gt;Um one liner pelo trodrigues para a linguagem mais fag de sempre!&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;for i in xrange(1, 6): print [&amp;#39;*&amp;#39; for j in xrange(i)]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Arvorezinha em Brainfuck 2.0 - Com loops</title><link>https://blol.org/633-arvorezinha-em-brainfuck-20-com-loops/</link><pubDate>Sat, 25 Apr 2009 21:42:52 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=633</guid><description>&lt;p&gt;Viva amigos.  Numa noite lenta como esta, decidi ceder aos pedidos de uma arvorezinha em brainfuck segundo as regras, isto é, sem ser hardcoded. E aqui está. Aviso desde já que podia ser reduzida pelo menos uns 20% com alguns melhoramentos mais ou menos óbvios, mas não tenho paciência para essas coisas. Podem alterar o número de iterações na quarta sequência de &amp;lsquo;+&amp;rsquo;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;++++++++++&amp;gt;++++++[&amp;gt;+++++++&amp;lt;-]&amp;gt;&amp;gt;++++++[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;-&amp;gt;&amp;gt;-]&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;[&amp;lt;&amp;lt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&amp;lt;.&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;.&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;lt;+[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[-]&amp;lt;&amp;lt;[-]&amp;lt;[&amp;gt;+&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;-&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;gt;[&amp;lt;+&amp;lt;+&amp;gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-]&amp;lt;&amp;lt;&amp;lt;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Um grande bem-haja!&lt;/p&gt;</description></item><item><title>A saga da Árvorezinha</title><link>https://blol.org/arvorezinha/</link><pubDate>Thu, 23 Apr 2009 22:32:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/?page_id=622</guid><description>&lt;p&gt;A árvorezinha, foi uma ideia de fazer um programa em assembly que reproduzisse o sequinte:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;***
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*****
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Fiz o primeiro para x86, e depois os outros foram-se seguindo, uns por mim e outros submetidos por amigos ;-)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="//blol.org/70-arvorezinha"&gt;x86 Assembly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/72-arvorezinha-e-programa-do-carlao-em-vb"&gt;Visual Basic&lt;/a&gt;(?)&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/75-arvorezinha-em-perl"&gt;Perl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/76-arvorezinha-em-asus-oled"&gt;Asus OLED&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/333-arvorezinha-mips-assembly"&gt;Mips Assembly&lt;/a&gt; e &lt;a href="//blol.org/347-arvorezinha-mips-assembly-optimizada"&gt;optimização&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/367-arvorezinha-z80-assembly"&gt;Z80 Assembly - Spectrum 48k&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/379-arvorezinha-brainfuck"&gt;Brainfuck&lt;/a&gt; mas só com prints, não tem ciclos&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/390-arvorezinha-em-haskell"&gt;Haskell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/400-arvorezinha-z80-assembly-ti86"&gt;Z80 Assembly - TI86&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/408-arvorezinha-ms-sql-server"&gt;MS SQL Server&lt;/a&gt; e Oracle nos comentários.&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/413-arvorezinha-java-bytecode-optimizado"&gt;Java Bytecode&lt;/a&gt; e tem ML (ocaml) e PostgreSQL nos comentários&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/435-arvorezinha-em-ook"&gt;Ook!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/447-arvorezinha-prolog"&gt;Prolog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/450-formula-da-arvorezinha"&gt;Formula Matematica&lt;/a&gt;(?)&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/467-arvorezinha-em-amd64"&gt;amd64 Assembly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/469-arvorezinha-powerpc-assembly"&gt;PowerPC Assembly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/475-arvorezinha-em-pdp-11-assembly"&gt;PDP-11 Assembly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/477-arvorezinha-fortran"&gt;Fortran&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/490-arvorezinha-logo"&gt;Logo&lt;/a&gt; e &lt;a href="//blol.org/527-arvore-completa-em-logo"&gt;versão melhorada&lt;/a&gt;(?)&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/498-arvorezinha-smalltalk"&gt;Smalltalk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/501-arvorezinha-6502-assembly-nes"&gt;6502 Assembly - NES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/544-arvorezinha-em-x86-20-boot-sector"&gt;x86 Assembly - Bootsector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/552-arvorezinha-dbase"&gt;dBASE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/560-arvezinha-em-lolpython"&gt;LOLCODE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/574-arvorezinha-malbolge"&gt;Malbolge&lt;/a&gt; também só com prints, não tem ciclos&lt;/li&gt;
&lt;li&gt;&lt;a href="//blol.org/618-arvorezinha-net"&gt;Paint.NET&lt;/a&gt;(?)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Arvorezinha .NET</title><link>https://blol.org/618-arvorezinha-net/</link><pubDate>Thu, 23 Apr 2009 15:22:54 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=618</guid><description>&lt;p&gt;Não é ASP.NET .. Mas sim PAINT.NET&lt;/p&gt;
&lt;p&gt;Dcoder e falso, fica ai o desafio para optimizarem esta arvorezinha em Paint.NET&lt;/p&gt;
&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/2009/04/arvorezinha.jpg" alt="arvorezinha"&gt;&lt;/p&gt;</description></item><item><title>Arvorezinha - Malbolge</title><link>https://blol.org/574-arvorezinha-malbolge/</link><pubDate>Wed, 22 Apr 2009 01:32:34 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=574</guid><description>&lt;p&gt;Ora viva amigos!&lt;br&gt;
Para quem duvidou, aqui está a arvorezinha em &lt;a href="http://en.wikipedia.org/wiki/Malbolge"&gt;Malbolge&lt;/a&gt; (provavelmente a linguagem de programação mais difícil de todos os tempos), versão lame, sem ciclos, só prints. Como a &lt;a href="//blol.org/379-arvorezinha-brainfuck"&gt;versão em brainfuck&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(&amp;#39;&amp;amp;%#^&amp;#34;!~|X9876543210/.-,+*)(&amp;#39;&amp;amp;%$#z!~&amp;gt;v{^:K77o54VTSShmPe+MLJJH%$#!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mB}A\zyxed:976q542m~k/ig,fevcb``#^&amp;gt;~}Z|{z10TSuts*)Momll)jh~Df{dcb=
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Usei uma batota para chegar a este código, mas acho que ninguém vai chegar la :-P&lt;br&gt;
Até la, fiquem bem, e joguem muito!&lt;/p&gt;
&lt;p&gt;EDIT:&lt;/p&gt;
&lt;p&gt;O sir dongs optimizou ainda mais, fez uma em 104 caracteres, quando a minha usava 133 caracteres. Aqui vai, optimizadissimo:&lt;/p&gt;</description></item><item><title>Ripar VHS em Linux é fácil</title><link>https://blol.org/570-ripar-vhs-em-linux-e-facil/</link><pubDate>Tue, 21 Apr 2009 22:58:09 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=570</guid><description>&lt;p&gt;Não acreditam? Basta escrever este comando e ficam com um .mpg com excelente qualidade! (in b4 mkv: a qualidade de vhs é tão má que nem compensa, prefiro ficar com uma stream compatível com DVD)&lt;/p&gt;
&lt;p&gt;&lt;code&gt;transcode -x v4l2=resync_margin=1:resync_interval=250,v4l2 -u 10,4 -J smartyuv -J nored -J dnr -J pv -M 0 -i /dev/video0 -p /dev/dsp -y ffmpeg -F dvd --encode_fields p --export_asr 2 -f 25,3 -w 8000 -Q 5 -N 0x50 -m ok.mp2 -o ok ; mplex -f 3 -V -o ok.mpg ok.m2v ok.mp2&lt;/code&gt;&lt;/p&gt;</description></item><item><title>ArveZinHa em LOLCODE</title><link>https://blol.org/560-arvezinha-em-lolpython/</link><pubDate>Tue, 21 Apr 2009 20:13:56 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=560</guid><description>&lt;p&gt;Olá a todos,&lt;/p&gt;
&lt;p&gt;Estava eu também a acompanhar esta saga maravilhosa da criação da arvorezinha em tudo o que é possível e decidi dar o meu contributo na medida do possível.&lt;br&gt;
Então decidi pegar numa linguagem bastante usada o &lt;a href="http://lolcode.com/"&gt;LOLCODE&lt;/a&gt; e numa implementação ainda mais usada o &lt;a href="http://www.dalkescientific.com/writings/diary/archive/2007/06/01/lolpython.html"&gt;LOLPYTHON&lt;/a&gt; e escrever uma arvorezinha nesta maravilhosa linguagem. Ora o interpretador desta coisa fantástica é apenas um ficheiro e serve para tudo e mais alguma coisa.&lt;/p&gt;</description></item><item><title>Arvorezinha dBASE</title><link>https://blol.org/552-arvorezinha-dbase/</link><pubDate>Tue, 21 Apr 2009 15:28:21 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=552</guid><description>&lt;p&gt;Olá caros jardineiros. Tenho assistido com agrado à proliferação de arvorezinhas (deveras ecológico), todavia não tenho tido disponibilidade para vos acompanhar, o que me tem entristecido. Não mais! Eis uma arvorezinha em dBASE (não confundir com clipper), a correr na versão IV, que tive o prazer de usar na escola secundária. Apraz-me o print implícito das variáveis, o que obrigou a modificar ligeiramente a lógica habitual das arvorezinhas. Aqui está um screenshot do dBASE IV para reavivar a memória:&lt;br&gt;
&lt;img src="//blol.org/wp-content/uploads/2009/04/dbase4.png" alt="dBASE IV"&gt;&lt;br&gt;
&lt;em&gt;dBASE IV&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Enquadra-se totalmente...</title><link>https://blol.org/547-enquadra-se-totalmente/</link><pubDate>Tue, 21 Apr 2009 09:54:14 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=547</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2009/04/fail.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2009/04/fail.jpg" alt="fail"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Palavras para quê&amp;hellip;.&lt;/p&gt;</description></item><item><title>arvorezinha em x86 2.0 - boot sector</title><link>https://blol.org/544-arvorezinha-em-x86-20-boot-sector/</link><pubDate>Mon, 20 Apr 2009 10:09:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=544</guid><description>&lt;p&gt;Olá sirs,&lt;/p&gt;
&lt;p&gt;Para completar a colecção fiz a arvorezinha como boot sector, sem recorrer a chamadas ao sistema ou à BIOS. Assim até podem usar uma BIOS opensource e a arvorezinha continua a funcionar!&lt;/p&gt;
&lt;p&gt;Eis o código:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BITS 16
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ORG 0x7C00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;start:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov ax, 0xb800
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov es, ax
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov ax, 0x072a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov bx, 5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov dx, 1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;xor di, di
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_loop1:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov cx, dx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rep stosw
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;add di, 160
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sub di, dx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sub di, dx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;inc dx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cmp dx, bx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jbe _loop1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_loop2:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;in al,0x60 ; read from keyboard
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cmp al, 1 ; is it escape?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jnz _loop2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jmp 0xFFFF:0000 ; reboot ;-)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;; pad to 512
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;times 510-($-$$) db 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dw 0xAA55 ; magic boot value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Assemblem com o NASM, e guardem o output de 512 bytes no sector 0 de um disco ou disquete ou CD. As últimas instruções antes do padding servem para esperar que o utilizador carregue na tecla ESC; após isto, reinicia.&lt;/p&gt;</description></item><item><title>Árvore-completa em "Logo"</title><link>https://blol.org/527-arvore-completa-em-logo/</link><pubDate>Sun, 19 Apr 2009 21:53:54 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=527</guid><description>&lt;p&gt;Não fiquei satisfeito com o programa da árvorezinha em &amp;ldquo;Logo&amp;rdquo;. Não era fiel à linguagem (uma vez que esta se baseia no desenho). Aqui está a versão da árvorezinha desenhada  em Logo.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# ali-o-kimiku (c) 2009
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;learn estrela $L {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# estrela
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# 90+36=126
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;turnleft 126
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;repeat 5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;forward $L
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# 180-36=144
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;turnright 144
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;penup
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;turnright 126
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;learn avancah $H {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;penup
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;turnleft 90
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#espaço horizontal
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;forward $H
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;turnright 90
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pendown
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;learn avancav $V {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;penup
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;forward $V
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pendown
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# Programa Principal
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;reset
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#spritehide
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$n=ask &amp;#34;Quantos raminhos ?&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$i=1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$lado=30
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$delta=4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#sin(72)=0.951056516
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#cos(72)=0.309016994
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#c72=0.309016994
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;#s72=0.951056516
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$avh=$lado
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$avv=$lado
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$navv=0-$lado
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$navh=0-$lado
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;go $lado,$lado/2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;repeat $n {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; repeat $i {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;  estrela $lado
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;  avancah $avh+$delta
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; $i=$i+1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; avancav $navv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; avancah $i*($navh-$delta)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;penup
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;spriteshow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2009/04/arvorezinha-completa.png"&gt;&lt;img src="//blol.org/wp-content/uploads/2009/04/arvorezinha-completa.png" alt="Arvorezinha completamente desenhada no kturtle"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Arvorezinha completamente desenhada no kturtle&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Arvorezinha - 6502 Assembly (NES)</title><link>https://blol.org/501-arvorezinha-6502-assembly-nes/</link><pubDate>Sun, 19 Apr 2009 19:44:17 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=501</guid><description>&lt;p&gt;Olá jovens garotos!&lt;/p&gt;
&lt;p&gt;Desde sexta-feira que andei com ideias de fazer uma arvorezinha para a clássica NES, comecei então a minha jornada de ver como funcionava esta maravilha da minha juventude!&lt;br&gt;
Achei o site &lt;a href="http://nesdev.parodius.com/"&gt;nesdev&lt;/a&gt; que tem montes de informação sobre a consola, e tambem tem alguns sores para algumas roms, mas não achei nada que printasse texto para o ecrã, que é o pretendido. Num dos textos que li vi uma referência ao canal #nesdev da efnet, então lá fui eu, e não é que existe uma grande comunidade de pessoal que percebe e ama isto, e pelos vistos são todos amigaveis, falei la com uns deles, e um deles (não me recordo do nick&amp;hellip;) enviou me um &lt;a href="//blol.org/wp-content/uploads/2009/04/ex.zip"&gt;zipzinho com 4 tutoriais&lt;/a&gt;, e o ultimo deles escreve &amp;ldquo;Hello World&amp;rdquo; pro ecrã, copiei descaradamente do codigo desse.&lt;/p&gt;</description></item><item><title>Arvorezinha - Smalltalk</title><link>https://blol.org/498-arvorezinha-smalltalk/</link><pubDate>Sun, 19 Apr 2009 03:53:10 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=498</guid><description>&lt;p&gt;Submetido por trodrigues.&lt;/p&gt;
&lt;p&gt;Olá falsinho. Aqui vai a versão da árvorezinha numa linguagem que aprendi na universidade e que sempre me fascinou, o Smalltalk.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| n |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;n := 5.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1 to: n do: [ :i |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; i timesRepeat: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Transcript show: &amp;#39;*&amp;#39;].
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Transcript cr].
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para correr este código, pode-se instalar o &lt;a href="http://www.squeak.org/"&gt;Squeak&lt;/a&gt;, um ambiente de Smalltalk multiplataforma que parece ter sido feito para miúdos de 5 anos. Depois, no menu de tools do lado direito, arrastar uma janela de Transcript e outra de Workspace para a área principal e colocar o código na janela de Workspace. Por fim basta seleccionar o código todo com o rato e fazer Alt+D ou middle click -&amp;gt; Do it&lt;/p&gt;</description></item><item><title>Arvorezinha - Logo</title><link>https://blol.org/490-arvorezinha-logo/</link><pubDate>Sat, 18 Apr 2009 01:16:48 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=490</guid><description>&lt;p&gt;Mais uma submissão do ali-o-kimiku. Desta vez com uma linguagem de 1967.&lt;/p&gt;
&lt;p&gt;Olá Falsinho-do-meu-coração&lt;br&gt;
Junto envio mais uma árvore desta vez em Logo uma linguagem que sempre me fascinou desde a primeira vez que vi em miúdo.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# (c) ali-o-kimiku 2009
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;reset
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;spritehide
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$n=ask &amp;#34;Quantos raminhos ?&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$i=1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$e=&amp;#34;*&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;repeat $n
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{ repeat $i
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{print $e}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;penup
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;backward 10
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$e=$e+&amp;#34;*&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;turnright 180
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;forward 20
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;spriteshow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Isto foi feito no kturtle que é uma implementação de &lt;a href="http://en.wikipedia.org/wiki/Logo_(programming_language)"&gt;Logo&lt;/a&gt; para KDE embora com o nome de turtlescript ou algo do género.&lt;br&gt;
O Logo era usado para ensinar o básico de programação a miúdos e como tal é completamente inútil &amp;hellip; Acho que fica bem dentro do blol !&lt;br&gt;
Ah segue a bela da pic da árvorezinha dentro do kturtle&lt;br&gt;
um grande bem-haja&lt;/p&gt;</description></item><item><title>Dedicação</title><link>https://blol.org/484-dedicacao/</link><pubDate>Fri, 17 Apr 2009 16:23:59 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=484</guid><description>&lt;p&gt;Oi.&lt;/p&gt;
&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/HLIC/capitaocaverna.jpg" alt="Capitão COVIL"&gt;&lt;br&gt;
&lt;em&gt;Capitão COVIL&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Esta é uma dedicatória aos verdadeiros homens da cave : Dcoder e falso.&lt;/p&gt;</description></item><item><title>Arvorezinha - Fortran</title><link>https://blol.org/477-arvorezinha-fortran/</link><pubDate>Fri, 17 Apr 2009 10:28:38 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=477</guid><description>&lt;p&gt;Submetido por &lt;strong&gt;ali-o-kimiku&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Olá amiguinhos&lt;br&gt;
Dentro do espirito da inutilidade vigente neste blol decidi acrescentar mais dois programas da arvorezinha.&lt;br&gt;
O primeiro é o clássico escrito em Fortran 90/95/2003&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;! (c) ali-o-kimiku 2009
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;program arvore
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;implicit none
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;integer :: i,ii,n
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;write(*,*) &amp;#34;Qual a dimensao da arvore?&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;read(*,*)n
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;do i=1,n
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; write(*,*)(&amp;#34;*&amp;#34;,ii=1,i)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;end do
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;end program arvore
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gfortran arvorezinha.f90 -o arvorezinha
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./arvorezinha
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Qual a dimensao da arvore?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; *
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; **
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ***
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; *****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ******
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; *******
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ********
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; *********
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; **********
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Claro que não contente com isto decidi fazer algo para homenagear o nosso Dcoder. Aqui está a minha versão da árvore de Fibonacci:&lt;/p&gt;</description></item><item><title>arvorezinha em pdp-11 assembly</title><link>https://blol.org/475-arvorezinha-em-pdp-11-assembly/</link><pubDate>Fri, 17 Apr 2009 00:13:18 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=475</guid><description>&lt;p&gt;Exactamente como o título indica.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.globl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;star:.byte 52,0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;newline:.byte 12,0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.globl _main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.text
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_main:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov r0, -(sp)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov r1, -(sp)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov r2, -(sp)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov r5, -(sp)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov $1,r4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_loop1:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov r4,r3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_loop2:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov $star, (sp)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jsr pc, *$_printf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dec r3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tst r3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jne _loop2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov $newline, (sp)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jsr pc, *$_printf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;inc r4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cmp $5,r4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jge _loop1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov (sp)+, r5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov (sp)+, r2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov (sp)+, r1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mov (sp)+, r0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rts pc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Testei isto no SIMH, a correr o glorioso 2.11BSD:&lt;/p&gt;</description></item><item><title>Arvorezinha - PowerPC Assembly</title><link>https://blol.org/469-arvorezinha-powerpc-assembly/</link><pubDate>Wed, 15 Apr 2009 23:58:58 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=469</guid><description>&lt;p&gt;Ora viva!&lt;/p&gt;
&lt;p&gt;Aqui estou de novo, agora com a arvorezinha em assembly de powerpc em OpenBSD! Segue o código, é muito parecido com o de mips tirando as comparações e uns loads&amp;hellip;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# this powerpc assembly can never fail
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;estrela: .ascii &amp;#34;*&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;newline: .byte 0xa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# REGISTOS
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# 13 - counter1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# 14 - counter2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.text # section declaration - begin code
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .global main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;main:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; li 13,0 # counter1 e o registo 13
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_ciclo1:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; li 15,5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmpw 13,15
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; beq _fim
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; li 14,0 # counter2 e o registo 14
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_ciclo2:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmpw 14,13
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; beq _estrela
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blt _estrela
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lis 4,newline@ha
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; addi 4,4,newline@l
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bl _print
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; addi 13,13,1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b _ciclo1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_estrela:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lis 4,estrela@ha
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; addi 4,4,estrela@l
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bl _print
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; addi 14,14,1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b _ciclo2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_fim:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; li 0,1 # syscall number (sys_exit)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; li 3,1 # first argument: exit code
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sc # call kernel
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_print:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; li 0,4 # syscall 4 (sys_write)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; li 3,1 # stdout
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; li 5,1 # tamanho
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sc # do it fag!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blr # retorna a onde foi chamado
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Uma imagem não precisa de palavras!&lt;br&gt;
&lt;img src="//blol.org/wp-content/uploads/2009/04/arvorezinha_ppc.jpg" alt="arvorezinha_ppc"&gt;&lt;/p&gt;</description></item><item><title>Arvorezinha em amd64</title><link>https://blol.org/467-arvorezinha-em-amd64/</link><pubDate>Wed, 15 Apr 2009 23:33:19 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=467</guid><description>&lt;p&gt;Viva sirs. Aparentemente o pessoal esqueceu-se desta arch por ja haver uma em x86. Este código é essencialmente igual ao do falso, excepto que as chamadas ao kernel são feitas com a instrução syscall em vez de int 0x80. Eis o código:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SECTION .data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; star db &amp;#39;*&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; newline db 10
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SECTION .text
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; global _start
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_start:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov r8, 5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lea r9, [r8-4]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov rdx, r9
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov rdi, r9
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov rax, r9
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_loop1:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov rbx, r9
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_loop2:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov rsi, star
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; syscall
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dec rbx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jnz _loop2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; inc r9
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov rsi, newline
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; syscall
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmp r9, r8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jbe _loop1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov al, 60
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dec rdi
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; syscall
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Resultado:&lt;/p&gt;</description></item><item><title>Fórmula da arvorezinha</title><link>https://blol.org/450-formula-da-arvorezinha/</link><pubDate>Tue, 14 Apr 2009 20:26:09 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=450</guid><description>&lt;p&gt;Viva amigos,&lt;/p&gt;
&lt;p&gt;Já que andam todos aí a exportar árvores feitos baratas tontas, vou aproveitar e fazer o mesmo.&lt;/p&gt;
&lt;p&gt;Seja &lt;strong&gt;L(n)&lt;/strong&gt; o número correspondente à linha n da arvorezinha. Seja &lt;strong&gt;c&lt;/strong&gt; o caracter utilizado para representar a árvore e &lt;strong&gt;b&lt;/strong&gt; a base numérica utilizada para representar L(n). Então,&lt;/p&gt;
&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/2009/04/arvore1.png" alt="$ L(n) = c\frac{b^n-1}{b-1} $"&gt;&lt;/p&gt;
&lt;p&gt;Vamos experimentar criar uma arvorezinha em base 36, com o caracter &amp;lsquo;X&amp;rsquo; (33 em base 36).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;b := 36;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;c := 33;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;for i in [1..5] do
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; IntegerToString(c*((b^i-1) div (b-1)), b);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;end for;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Podem experimentar isto &lt;a href="http://magma.maths.usyd.edu.au/calc/"&gt;aqui&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Arvorezinha - Prolog</title><link>https://blol.org/447-arvorezinha-prolog/</link><pubDate>Tue, 14 Apr 2009 10:10:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=447</guid><description>&lt;p&gt;Olá bom dia!&lt;/p&gt;
&lt;p&gt;O meu colega enviou me por mail mais uma nova versão da arvorezinha, desta vez em prolog. Aqui vai o sores:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;stars(0).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;stars(N) :- write(&amp;#39;*&amp;#39;), M is N-1, stars(M).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;arvorezinha(5).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;arvorezinha(N):- M is N+1, stars(M),write(&amp;#39;\n&amp;#39;),X is N+1,arvorezinha(X).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;display:-arvorezinha(0).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;display.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>A minha arvorezeca em tcl ;]</title><link>https://blol.org/442-a-minha-arvorezeca-em-tcl/</link><pubDate>Mon, 13 Apr 2009 18:54:28 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=442</guid><description>&lt;p&gt;by Juvenal&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; #!/usr/bin/env tclsh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; set chars 40
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; set bottom 4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; set bott 4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; set s &amp;#34; &amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; set f *
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; proc repeat {a b} {return [string repeat $a $b]}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; for {set a 1;set b [expr ($chars / 2)*2];set x $bott;set y [expr ($chars - $bottom)+1]} {$a &amp;lt; = $chars||$x&amp;gt;1} {incr a 1;incr b -1} {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; if {$a&amp;lt; =$chars} {set z [repeat $f $a];puts [repeat $s $b]$z$z} {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; set z [repeat $f $bottom];puts [repeat $s $y]$z$z;incr x -1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Arvorezinha em Ook!</title><link>https://blol.org/435-arvorezinha-em-ook/</link><pubDate>Mon, 13 Apr 2009 18:28:32 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=435</guid><description>&lt;p&gt;Aqui fica:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook. Ook. Ook. Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook. Ook.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook! Ook? Ook!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ook! Ook! Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Compilador disponivel aqui: &lt;a href="http://search.cpan.org/~jhi/Acme-Ook-0.11/lib/Acme/Ook.pm"&gt;http://search.cpan.org/~jhi/Acme-Ook-0.11/lib/Acme/Ook.pm&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Achtung: Rippers!</title><link>https://blol.org/432-achtung-rippers/</link><pubDate>Mon, 13 Apr 2009 14:53:24 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=432</guid><description>&lt;p&gt;Ora viva amigos.&lt;/p&gt;
&lt;p&gt;Andava agora de volta do google à procura de arvorezinhas e achei uma coisa que me deixou a sentir violado.&lt;/p&gt;
&lt;p&gt;Vejam este link do &lt;a href="http://www.portugal-a-programar.org/forum/index.php?topic=26881.0"&gt;portugal-a-rippar&lt;/a&gt;, parece que um tal de &lt;strong&gt;Dumpster&lt;/strong&gt;, em menos de 35 minutos conseguiu ripar a minha &lt;a href="//blol.org/70-arvorezinha"&gt;arvorezinha de x86&lt;/a&gt; e trocar os nomes das variaveis e labels. Nem o titulo se dignou a mudar, chamou-lhe arvorezinha tambem. Alem do mais que fez isto tudo, enquanto a namorada shemale dele tomava um granda golden shower do Reinaldo. Porque será que não fez a arvore completa?&lt;/p&gt;</description></item><item><title>xchat... aquele fail...</title><link>https://blol.org/420-xchat-aquele-fail/</link><pubDate>Mon, 13 Apr 2009 09:25:16 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=420</guid><description>&lt;p&gt;Porque raio o XCHAT tem de origem dois tipos de letra para a nicklist e outro para o canal ? Depois dá o que podemos ver na seguinte foto:&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2009/04/snapshot6.png"&gt;&lt;img src="//blol.org/wp-content/uploads/2009/04/snapshot6.png" alt="snapshot6"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Como podem ver tenho duas vezes o nick &lt;strong&gt;falso&lt;/strong&gt;&amp;hellip;..&lt;/p&gt;</description></item><item><title>Oi Dongs</title><link>https://blol.org/427-oi-dcoder/</link><pubDate>Sun, 12 Apr 2009 03:15:50 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=427</guid><description>&lt;p&gt;Quando estou nos mirques, estou constatemente a ser bombardeado de propaganda pro-bsd por parte do falso. Quer dizer, é mais tipo pseudo anti-propaganda. É um falar mal de quem ama a cena. Mas a verdade é que toda a gente sabe que o bsd está mais morto que aquela velha que eu enterrei debaixo da ponte depois de a ter apropelado com o meu carro. Aposto que a velha estava a ir à missa para rezar pela alminha do marido que tem sida. Minha amiga, se você mora em Viseu é normal que o seu marido tenha sida. Queria o quê? Milagres? Essa merda dessa terra está cheia de putas! É impossível dar quatro passos sem se ver uma. Eu acho que ir a putas é mais ou menos como ir a um restaurante. Tudo bem que tu comes o que pediste, mas também gostas de ir petiscar ao prato dos outros. Ou seja, vais à tua puta habitual, mas também gostas de ir a outra esquina para provar carne nova. E diz que Viseu tem uma picanha categoria, fora o aidjiz. E claro que basta uma puta ter sida para infectar toda a gente, snowball style. E depois os velhos passam a sida às mulheres, está claro! O que tu não sabes é que essas velhas trabalham em restaurantes e depois passam com os bifes nas snaitas, a chamada marinada de cona, para dar aquele sabor especial a molho de aids. Anyway, acho que não é com rezas que elas vão salvar os maridos. A menos que a reza seja feita de joelhos em frente ao padre. Epá, será que mamar no mangalho de um padre concede entrada imediata no céu? E será que o load deles está abençoado, tipo água benta? Já estou a imaginar um padre a vir-se para a cara de uma puta, e a gritar &amp;ldquo;EU ABSOLVO-TE DOS TEUS PECADOS!&amp;rdquo;. Tchapow, alta holy cumshot nos olhos. Approved by God. Ok, falta falar de pretos para ter a lista completa. O que é que posso dizer sobre pretos sem os ofender? LOL NADA! Pretos do caralho!&lt;/p&gt;</description></item><item><title>Arvorezinha - Java Bytecode [e optimizado]</title><link>https://blol.org/413-arvorezinha-java-bytecode-optimizado/</link><pubDate>Fri, 10 Apr 2009 14:58:05 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=413</guid><description>&lt;p&gt;Ora viva amigos.&lt;br&gt;
Tive alta submissão por amigo meu e colega de trabalho de uma arvorezinha numa coisa mesmo verdadeiramente inutil. Tive mesmo de blogar sobre isso!&lt;br&gt;
Esta arvorezinha é em java bytecode, só mesmo para quem ama!&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.class public Avorezinha
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.super java/lang/Object
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.method public &amp;lt;init&amp;gt;()V
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; aload_0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; invokenonvirtual java/lang/Object/&amp;lt;init&amp;gt;()V
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; return
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.end method
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.method public static main([Ljava/lang/String;)V
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ; set limits used by this method
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .limit locals 4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .limit stack 3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ; setup local variables:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ; 1 - the PrintStream object held in java.lang.System.out
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; getstatic java/lang/System/out Ljava/io/PrintStream;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; astore_1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ; 2 - the integer 10 - the counter used in the loop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bipush 1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; istore_2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ; now loop 10 times printing out a number
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Loop1:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; goto InitLoop2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;endLoop1:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; aload_1 ; push the PrintStream object
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldc &amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ; decrement the counter and loop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; iinc 2 1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; iload_2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bipush 6
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; isub
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ifne Loop1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; goto exit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;InitLoop2:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; iload_2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; istore_3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Loop2:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; aload_1 ; push the PrintStream object
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ldc &amp;#34;*&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; invokevirtual java/io/PrintStream/print(Ljava/lang/String;)V
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; iinc 3 -1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; iload_3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ifne Loop2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; goto endLoop1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exit:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ; done
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; return
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.end method
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ele disse me que se tem de usar o assemblador &lt;a href="http://jasmin.sourceforge.net/"&gt;Jasmin&lt;/a&gt;. Espero que amem porque esta eu amei mesmo bues!&lt;/p&gt;</description></item><item><title>Arvorezinha - MS SQL Server</title><link>https://blol.org/408-arvorezinha-ms-sql-server/</link><pubDate>Thu, 09 Apr 2009 10:37:42 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=408</guid><description>&lt;p&gt;No âmbito do projecto ARVOREZINHA, eis que o meu amiguinho spico, torna-se parte colaboradora do mesmo, com o seguinte código:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DECLARE @ASCIZZ NVARCHAR(5)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DECLARE @CONTADOR INT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SET @ASCIZZ = &amp;#39;*&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SET @CONTADOR = 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WHILE @CONTADOR &amp;lt; = 5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BEGIN
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PRINT REPLICATE(@ASCIZZ,@CONTADOR)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; SET @CONTADOR = @CONTADOR + 1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;END
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Arvorezinha - Z80 Assembly (TI86)</title><link>https://blol.org/400-arvorezinha-z80-assembly-ti86/</link><pubDate>Wed, 08 Apr 2009 23:48:21 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=400</guid><description>&lt;p&gt;Ora viva amigalhaços!&lt;/p&gt;
&lt;p&gt;O mirage há dias já me tinha dito que a calculadora TI86 dele tinha um processador z80, e que eu devia fazer o port da arvorezinha do spectrum para ela. Então fui à descoberta de como fazer estas coisinhinhas lindas. Usei o programinha &lt;a href="http://www.ticalc.org/archives/files/fileinfo/67/6787.html"&gt;Assembly Studio 86&lt;/a&gt; para assemblar e editar o codigo. E fui testando com o emulador &lt;a href="http://www.ticalc.org/archives/files/fileinfo/84/8442.html"&gt;VTI&lt;/a&gt; com a rom da TI86 obtida legalmente, claro.&lt;/p&gt;
&lt;p&gt;O unico problema que me tenho a queixar é que na ti86, antes de se printar um caracter, tem que se definir a posição dele em x e y, o que é meio manhoso. Mas la consegui dar a volta!&lt;/p&gt;</description></item><item><title>A Intel e os manuais</title><link>https://blol.org/397-a-intel-e-os-manuais/</link><pubDate>Wed, 08 Apr 2009 23:24:20 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=397</guid><description>&lt;p&gt;Viva meus amigos. Eu já tinha ouvido falar das muitas incorrecções dos manuais publicados pela Intel, particularmente em relação à contagem de ciclos das instruções (contagem de ciclos não faz sentido hoje em dia, claro que me refiro à latência/throughput), mas sempre imaginei que fosse apenas má língua. Aparentemente não.&lt;/p&gt;
&lt;p&gt;O manual que descreve todas as instruções da ISA x86/x86_64, acessível &lt;a href="ftp://download.intel.com/design/processor/manuals/"&gt;aqui&lt;/a&gt;, contém as instruções CBW/CWDE/CDQE, representadas pelo byte 0x98 (mais prefixos). Estas instruções servem para estender o sinal de um registo de 8/16/32 bits para 16/32/64 bits.&lt;/p&gt;</description></item><item><title>Arvorezinha em HASKELL</title><link>https://blol.org/390-arvorezinha-em-haskell/</link><pubDate>Wed, 08 Apr 2009 11:43:28 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=390</guid><description>&lt;p&gt;Pois bem, depois de seguir atentamente os posts do falso com coisas completamente inúteis&amp;hellip; Resolvi fazer a arvore em HASKELL.&lt;/p&gt;
&lt;p&gt;Sem mais demoras aqui fica:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-- THIS HASKELL CODE CAN NEVER FAIL
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;module Main where
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;main = do putStr (unlines (take 5 (iterate(&amp;#39;*&amp;#39;:) &amp;#34;*&amp;#34;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; putStrLn &amp;#34;2nd version:&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; putStr . unlines . take 5 . iterate (&amp;#39;*&amp;#39; :) $ &amp;#34;*&amp;#34; -- 2nd version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Como podem ver até é bem simples&amp;hellip;&lt;/p&gt;</description></item><item><title>Arvorezinha - Brainfuck</title><link>https://blol.org/379-arvorezinha-brainfuck/</link><pubDate>Tue, 07 Apr 2009 23:29:09 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=379</guid><description>&lt;p&gt;Ola de novo!&lt;/p&gt;
&lt;p&gt;Hoje fui desafiado a fazer a arvorezinha em brainfuck. Portanto aqui vai:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;++++[&amp;gt;++++++++++&amp;lt;-]&amp;gt;++.&amp;gt;+++++++++++++.&amp;lt;&amp;lt;++[&amp;gt;.&amp;lt;-]&amp;gt;&amp;gt;.&amp;lt;&amp;lt;+++[&amp;gt;.&amp;lt;-]&amp;gt;&amp;gt;.&amp;lt;&amp;lt;++++[&amp;gt;.&amp;lt;-]&amp;gt;&amp;gt;.&amp;lt;&amp;lt;+++++[&amp;gt;.&amp;lt;-]&amp;gt;&amp;gt;.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Agora por blocos para gente normal entender:&lt;/p&gt;
&lt;p&gt;Começa se no registo 0&lt;br&gt;
++++ Define r0 a 4&lt;br&gt;
[ - enquanto o registo actual não for 0, entra no ciclo&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;++++++++++ anda para o registo 1 e soma-lhe 10&lt;br&gt;
&amp;lt; volta para o registo anterior r0, e retira-lhe 1&lt;br&gt;
] repete ate r0 = 0&lt;br&gt;
++ vai-se para o r1 e soma se 2 - e está o valor 42 (asterisco em ascii) no r1&lt;br&gt;
. manda imprimir&lt;/p&gt;</description></item><item><title>Arvorezinha - Z80 Assembly</title><link>https://blol.org/367-arvorezinha-z80-assembly/</link><pubDate>Sun, 05 Apr 2009 23:26:42 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=367</guid><description>&lt;p&gt;Oi de novo! Como este fim de semana, foi mesmo daqueles bem passados na cave e não sabia o que fazer, entao fiz também a arvorezinha em z80 assembly, para o zx spectrum. O processador é mais ou menos parecido com ou 8085 mas com menos instruções. Este não foi muito difícil de fazer.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;; this z80 assembly can never fail
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org 32768
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;estrela: defb 0x2a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;newline: defb 0xd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;counter1: db 0x0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;counter2: db 0x0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;start:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld a, 2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; call $1601 ; inicializar o ecrã
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_ciclo1:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld bc,(counter1) ; le o counter1 para bc (o valor fica em c)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld a,5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cp c ; compara c com a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jr z,_fim; se for igual sai
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld a,0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld (counter2),a ; mete o counter2 a 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_ciclo2:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld bc,(counter2) ; ve o valor de counter2 para c
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld a,(counter1) ; valor de counter1 para a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cp c ; compara c com a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jr nc,_estrela ; se for menor -&amp;gt; estrela
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld a,(newline)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; call _print ; printa um newline
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld a,(counter1) ; le counter1 para a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; add a,1 ; incrementa a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld (counter1),a ; le a para counter1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jr _ciclo1 ; -&amp;gt; ciclo1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_estrela:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld a,(estrela)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; call _print ; printa um asterisco
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld a,(counter2) ; le counter2 para a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; add a,1 ; incrementa a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ld (counter2),a; le a para counter2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jr _ciclo2 ; -&amp;gt;; ciclo2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_fim:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ret ; volta ao basic
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_print:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rst 16 ; syscall(?) para escrever
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ret
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/2009/04/arvorezinha.png" alt="arvorezinha.tap a correr num emulador"&gt;&lt;/p&gt;</description></item><item><title>Arvorezinha - MIPS Assembly Optimizada</title><link>https://blol.org/347-arvorezinha-mips-assembly-optimizada/</link><pubDate>Sun, 05 Apr 2009 17:09:28 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=347</guid><description>&lt;p&gt;Ola de novo. Com ajuda do sir dongs, optimizei a arvorezinha em mips, e decidi vir blogar sobre isso.&lt;br&gt;
As alterações foram as seguintes:&lt;br&gt;
De:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;slt t0,s2,s1 # se s1 &amp;lt; s2 entao t0 = 1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;li t1,1 # t1 = 1 para a comparacao do branch seguinte
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;beq t0,t1,_estrela # se o r0 = 1 (t1) -&amp;gt; _estrela
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;slt t0,s2,s1 # se s1 &amp;lt; s2 entao t0 = 1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bne t0, zero,_estrela # se o r0 ! 0 -&amp;gt; _estrela
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Em vez de se verificar quando t1 é 1, compara-se t1 com o registo &lt;strong&gt;zero&lt;/strong&gt; (que tem sempre o valor 0) quando não é igual a 0 é 1 entao, faz se o branch.De:&lt;/p&gt;</description></item><item><title>Oi blol! Apeteceu-me fazer um post...</title><link>https://blol.org/342-oi-blol-apeteceu-me-fazer-um-post/</link><pubDate>Sat, 04 Apr 2009 19:24:13 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=342</guid><description>&lt;p&gt;Ora viva! Ando a comer uma gaja toda boa com uma rata incrível! Isto seria o que eu diria se estivesse a falar no mirc, mas como não estou vou falar de outra coisa qualquer.  Pensando melhor era um cozido.&lt;/p&gt;
&lt;p&gt;Cagay para vocês. Vou falar do mirc na mesma. Ora então, o mirc é uma coisa muito bonita, pois dá para encontrar pessoas fixes e gajas mais ou menos boas. Isto é o que eu escreveria se estivesse em 1997, mas a verdade é que estamos em 2009 e a realidade é outra.&lt;/p&gt;</description></item><item><title>Arvorezinha - MIPS Assembly</title><link>https://blol.org/333-arvorezinha-mips-assembly/</link><pubDate>Sat, 04 Apr 2009 18:33:23 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=333</guid><description>&lt;p&gt;Ora viva amigos!&lt;/p&gt;
&lt;p&gt;Depois do grande sucesso que foi o post da &lt;a href="//blol.org/70-arvorezinha"&gt;Arvorezinha em x86 assembly&lt;/a&gt;, fiquei sempre com ela fisgada para fazer isso em outros tipos de processador diferentes. Hoje finalmente consegui, fiz exactamente o mesmo programa inútil mas em mips assembly em IRIX.&lt;/p&gt;
&lt;p&gt;Tinham me falado ja nao sei onde, de um simulador de mips para windows, o &lt;a href="http://pages.cs.wisc.edu/~larus/spim.html"&gt;PCSpim&lt;/a&gt; instalei isso e comecei a ver como funcionava a cena, em poucas horas consegui ter a arvorezinha a funcionar naquilo.&lt;/p&gt;</description></item><item><title>deadbsd</title><link>https://blol.org/331-deadbsd/</link><pubDate>Wed, 01 Apr 2009 23:50:15 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=331</guid><description>&lt;p&gt;Ora viva amigos!&lt;/p&gt;
&lt;p&gt;Só para avisar-vos que comprei um novo dominio que proximamente vou utilizar para coisas inuteis como é devido.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://deadbsd.org"&gt;deadbsd.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Shii a nova Wii para as senhoras...</title><link>https://blol.org/328-shii-a-nova-wii-para-as-senhoras/</link><pubDate>Wed, 01 Apr 2009 22:23:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/328-shii-a-nova-wii-para-as-senhoras</guid><description>&lt;p&gt;Tava eu nas winterwebs quando dei com este anuncio:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=_SXNAtwYMBw"&gt;http://www.youtube.com/watch?v=_SXNAtwYMBw&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pronto eu sei que é mau para primeiro post comecar com um youtube video&amp;hellip;.. mas pronto tive que blogar sobre isto&amp;hellip;.&lt;/p&gt;</description></item><item><title>Os Simples</title><link>https://blol.org/310-os-simples/</link><pubDate>Tue, 10 Mar 2009 14:40:38 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=310</guid><description>&lt;p&gt;Hoje decidi partilhar com as internets uma coisa fantástica e rara! Um rip para flac de uma cassete de ensaios de uma banda que o meu pai teve nos anos 70 &amp;ldquo;Os Simples&amp;rdquo; oriundos da Trafaria, essa terra mítica! Eles pelo que sei (quando nasci acho que já não existiam) só faziam covers de musicas da &amp;ldquo;moda&amp;rdquo; da altura. Neste rip a maioria das musicas são brasileiras. A única que sei o nome é a primeira do LADO A que é a &amp;ldquo;&lt;a href="http://pt.wikipedia.org/wiki/A_tonga_da_mironga_do_kabulet%C3%AA"&gt;A tonga da mironga do kabuletê&lt;/a&gt;&amp;rdquo; do Vinícius de Moraes, se alguém souber o nome de mais alguma não hesitem em comentar!&lt;/p&gt;</description></item><item><title>ALL GLORY TO THE HYPNOTOAD</title><link>https://blol.org/307-all-glory-to-the-hypnotoad/</link><pubDate>Sun, 15 Feb 2009 02:19:05 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=307</guid><description>&lt;p&gt;Depois do grande sucesso do script de hypnotoad, decidi criar um projecto no google code pros scripts todos que vão aparecendo. Esta parece me uma razão bastante inutil pra blogar portanto aqui está!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://code.google.com/p/hypnotoad/"&gt;http://code.google.com/p/hypnotoad/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;EDIT: devido ao facto de estar deveras aborrecido, fui fazer um script para xchat no xchat-aqua para osx e já lá está tambem a versão oficial para xchat.&lt;/p&gt;</description></item><item><title>Tributo ao Fjalar Ravia</title><link>https://blol.org/302-tributo-ao-fjalar-ravia/</link><pubDate>Sun, 05 Oct 2008 23:54:48 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=302</guid><description>&lt;p&gt;Estava eu nas internets à procura de info sobre ARM para crackar umas cenas de windows mobile, quando vou parar à homepage do &lt;a href="http://www.searchlores.org"&gt;Searchlores do Fravia&lt;/a&gt;, e descubri que este deus do cracking está com o &lt;a href="http://www.searchlores.org/illness.htm"&gt;cancaro&lt;/a&gt; e com altas tratamentos e provavelmente ja nao vai actualizar mais a pagina dele.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I have been diagnosed with two different tumors at the same time, and after months of therapy I don&amp;rsquo;t really know what my chances of survival are. Fate believes to be stronger than me. We&amp;rsquo;ll see. While I undergo operations and chemotherapies, and learn the deep meaning of the term &amp;ldquo;patient&amp;rdquo;, my site won&amp;rsquo;t be updated&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>JOVEM, QUERES SER FIT?</title><link>https://blol.org/299-jovem-queres-ser-fit/</link><pubDate>Thu, 02 Oct 2008 00:46:39 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=299</guid><description>&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;br&gt;
&lt;em&gt;UI ASSIM TAMBÉM EU POSSO SER TODO FIT! TESOA!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Expressoes do Lulz</title><link>https://blol.org/294-expressoes-do-lulz/</link><pubDate>Sun, 21 Sep 2008 04:45:51 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=294</guid><description>&lt;p&gt;Hoje finalmente tive pachorra, e comecei a fazer um site que já andava a falar há bue de tempo, um site com expressões típicas portuguesas. Utilizei uma framework open sores chamada codeigniter para fazer isto e ate agora parece me ser bacano. Não esperem nada de especial ainda, mas futuramente vai ser o site mais visitado do mundo ate ser comprado pelo google!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://expressoes.blol.org/"&gt;http://expressoes.blol.org/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>9/11</title><link>https://blol.org/290-911/</link><pubDate>Thu, 11 Sep 2008 09:52:49 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=290</guid><description>&lt;p&gt;&lt;a href="http://www.encyclopediadramatica.com/JEWS_DID_WTC" title="Never Forget"&gt;Never Forget&lt;/a&gt;&lt;/p&gt;</description></item><item><title>O "Cube attack" do Shamir</title><link>https://blol.org/285-o-cube-attack-do-shamir/</link><pubDate>Thu, 04 Sep 2008 12:56:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=285</guid><description>&lt;p&gt;Aparentemente uma coisa que criou hype na Crypto2008 foi a descrição do &amp;ldquo;Cube attack&amp;rdquo; do Shamir. É essencialmente mais um ataque algébrico: apenas cifras/hashes que possam ser descritas como um polinómio multivariável de grau reduzido (o exemplo que ele deu tinha grau 16) estão vulneráveis. Informação detalhada aqui:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mail-archive.com/cryptography@metzdowd.com/msg09686.html"&gt;http://www.mail-archive.com/cryptography@metzdowd.com/msg09686.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;E aparentemente alguém se deu ao trabalho de fazer um exemplo em python:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://webpages.charter.net/curryfans/peter/cubedemo.py"&gt;http://webpages.charter.net/curryfans/peter/cubedemo.py&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Curtia ver este ataque a funcionar em algum algoritmo a sério (Trivium é um dos principais candidatos).&lt;/p&gt;</description></item><item><title>midnightBSD</title><link>https://blol.org/283-midnightbsd/</link><pubDate>Tue, 02 Sep 2008 18:49:43 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=283</guid><description>&lt;p&gt;Bom, estava eu aqui a divagar pela Interweb e pelo IRC, quando o bot IONews do #linuxhelp me dá uma noticia maravilhosa, uma distribuição nova de BSD: MidnightBSD.&lt;/p&gt;
&lt;p&gt;Ora o MeiaNoite BSD deve ser algo de extraordinário pensei eu, meia noite e BSD na mesma palavra só pode ser algo admirável no mínimo. Decidi abrir o website do meianoiteBSD pensando que me ia surpreender ainda mais, e claro está, fiquei boqueaberto pois o slogan é &amp;ldquo;BSD for everyone&amp;rdquo;. Boa! pensei eu, agora também há um BSD para toda a gente usar no desktop, já estava como imaginam a salivar mais que o cão do Pavlov.&lt;/p&gt;</description></item><item><title>E recordar é viver!</title><link>https://blol.org/280-e-recordar-e-viver/</link><pubDate>Tue, 02 Sep 2008 10:44:55 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=280</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/09/lolmirage.png"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/09/lolmirage.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>lulz do c</title><link>https://blol.org/276-lulz-do-c/</link><pubDate>Thu, 28 Aug 2008 23:56:22 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=276</guid><description>&lt;p&gt;Como já não blogo há muito tempo decidi vir falar sobre algo completamente inutil. Estava eu a tentar compilar o ircd da ptlink no OpenBSD com o pcc em vez do gcc, quando me deparo com um erro meio estranho&amp;hellip;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pcc -I../include -g -O2 -DNDEBUG -c help.c
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pcc -I../include -g -O2 -DNDEBUG -c hvc.c
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hvc.c, line 100: return value required
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*** Error code 1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Achei estranho este tipo de erro, ate porque isto é compilavel em outras circunstancias.&lt;/p&gt;</description></item><item><title>GPcode, again</title><link>https://blol.org/274-gpcode-again/</link><pubDate>Thu, 28 Aug 2008 05:27:58 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=274</guid><description>&lt;p&gt;Aparentemente alguém foi mais inteligente que os cromos da Kaspersky:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://rump2008.cr.yp.to/6b53f0dad2c752ac2fd7cb80e8714a90.pdf"&gt;http://rump2008.cr.yp.to/6b53f0dad2c752ac2fd7cb80e8714a90.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;O ataque não é surpreendente. Uma vez que é utilizado RC4 para cifrar os ficheiros (eles usam a CryptoAPI), é utilizado o mesmo tipo de ataque que no famoso WEP. Basta ter ficheiros suficientes para conseguir obter correlações.&lt;/p&gt;
&lt;p&gt;O que me leva a perguntar: porque raio ainda tanta gente usa RC4? Existem tantas outras &lt;em&gt;stream ciphers&lt;/em&gt; seguras e que têm mecanismos próprios para definir chaves e IVs (e.g. Salsa20, Sosemanuk, Trivium, etc). Caso o autor usasse uma destas cifras sem tremendos problemas (é ridículo descartar os primeiros 1024 bytes da stream de RC4 porque libertam informação sobre a chave) com um IV para cada ficheiro, seria efectivamente impossível recuperar os dados.&lt;/p&gt;</description></item><item><title>Import Library for RtlGenRandom</title><link>https://blol.org/260-import-library-for-rtlgenrandom/</link><pubDate>Thu, 14 Aug 2008 15:19:19 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=260</guid><description>Everyone needs cryptographically strong pseudo random numbers in this day and age. From card games to your Paypal HTTPS session, it has become an essential part of secure systems. Now, as a user it&amp;rsquo;s hard to generate randomness; we all know how many systems are seeded with time(NULL) or the like. That&amp;rsquo;s why most operating systems have mechanisms to provide randomness to the user. In Unix systems, this is usually done through /dev/?random; on Windows, through the function CryptGenRandom.</description></item><item><title>bsd lulz</title><link>https://blol.org/256-bsd-lulz/</link><pubDate>Mon, 04 Aug 2008 21:26:41 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=256</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/08/openbsd.png"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/08/openbsd.png" alt="oh no!!!!"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;oh no!!!!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>o meu carrinho todo fodidinho :( lá se foi a minha colecção de unhas :/</title><link>https://blol.org/254-o-meu-carrinho-todo-fodidinho-la-se-foi-a-minha-coleccao-de-unhas/</link><pubDate>Sat, 26 Jul 2008 18:08:54 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=254</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/07/dsc00044.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/07/dsc00044.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Olá amizades dos InterTubos!</title><link>https://blol.org/240-ola-amizades-dos-intertubos/</link><pubDate>Sat, 26 Jul 2008 17:28:34 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=240</guid><description>&lt;p&gt;Hoje acordei de manhã e pensei, &amp;ldquo;Ui, acordei!&amp;rdquo;. Mas depois tornei a pensar melhor, e lembrei-me que já não escrevia um post decente no Blol do falsinho há muito tempo. Aliás, só para terem uma ideia do tempo que já se passou, parece que entretanto descobriram a cura para a SIDA. Lol, estou a brincar, nunca vão descobrir a cura para essa doença maravilhosa. Maravilhosa porquê, perguntam vocês? Porque é a melhor dieta que existe. Uma vez conheci uma gaja que era um bocado gorda e estava sempre a queixar-se que não conseguia perder peso. Então eu disse-lhe que uma boa maneira de perder peso, era ir a uma casa de banho pública e lamber as sanitas, mas que não convinha exagerar, pois lamber sanitas também tem efeitos secundários que são os seguintes: morte.&lt;/p&gt;</description></item><item><title>Windows e CryptGenKey</title><link>https://blol.org/239-windows-e-cryptgenkey/</link><pubDate>Sun, 13 Jul 2008 23:31:14 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=239</guid><description>&lt;p&gt;Suponho que quem ler isto conheça, ou pelo menos tenho noção, de como funciona o RSA. Com a API do Windows é-nos permitido gerar novas chaves, mas o expoente público (também conhecido por e) é sempre 65537 (0x10001). E se quisermos usar outro que não este?&lt;/p&gt;
&lt;p&gt;Para minha surpresa, é impossível. Com o Enhanced Provider da Microsoft (rsaenh.dll), verifiquei que o valor 65537 está mesmo hardcoded no código; para gerar chaves com outro expoente temos de alterar o dll. Ao analisar o binário, rapidamente chegamos à função 6800FBD9 - é nesta que a geração é efectuada. Primeira paragem:&lt;/p&gt;</description></item><item><title>OIS AMIGOS! POST DEDICADO A FOTOS TIRADAS PELO TELEMÓVEL</title><link>https://blol.org/235-ois-amigos-post-dedicado-a-fotos-tiradas-pelo-telemovel/</link><pubDate>Sat, 12 Jul 2008 14:10:45 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=235</guid><description>&lt;p&gt;epa sintam só a capa do cd! e do DVD. E DAQUELE BONGO QUE SE CALHAR VOU COMPRAR PARA FUMAR UMA ERVADA COM O OB&lt;/p&gt;</description></item><item><title>FALTAM POUCOS DIAS PARA O DIA DO PROJECTO!</title><link>https://blol.org/234-faltam-poucos-dias-para-o-dia-do-projecto/</link><pubDate>Fri, 11 Jul 2008 12:42:48 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=234</guid><description>&lt;p&gt;OBcecado: plz2not forget weed&lt;/p&gt;
&lt;p&gt;falso: plz2not forget ipod with minor threat&lt;/p&gt;
&lt;p&gt;software: plz2not forget lipstick to suck cock&lt;/p&gt;</description></item><item><title>Debugging em Lunix</title><link>https://blol.org/231-debugging-em-lunix/</link><pubDate>Mon, 30 Jun 2008 10:50:41 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=231</guid><description>&lt;p&gt;O GNU/Lunix, tal como o &lt;a href="http://goatse.cz/"&gt;Goatse&lt;/a&gt;, gira todo à volta da abertura. Assim sendo, não existem debuggers decentes para analisar código binário, sem acesso ao código nem &lt;em&gt;symbols&lt;/em&gt; disponíveis. É possível configurar o gdb para ser remotamente útil (cf. &lt;a href="//blol.org/5-gdb-com-corzinhas"&gt;first post&lt;/a&gt;) mas continua a ser incoveniente e pouco funcional, particularmente quando comparado com as ferramentas disponíveis em Windows para o efeito.&lt;/p&gt;
&lt;p&gt;É neste contexto que apresento o &lt;a href="http://www.codef00.com/projects.php#Debugger"&gt;EDB Debugger&lt;/a&gt;. Embora esteja longe de ser uma ferramenta completa para &lt;em&gt;reverse engineering&lt;/em&gt;, é um passo em frente quando comparado com as outras ferramentas rudimentares disponíveis.&lt;/p&gt;</description></item><item><title>Idiot alert</title><link>https://blol.org/228-idiot-alert/</link><pubDate>Tue, 10 Jun 2008 02:42:59 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=228</guid><description>&lt;p&gt;Pois é, meus amigos.&lt;/p&gt;
&lt;p&gt;Há alguns dias deparei-me com isto: &lt;a href="http://forum.kaspersky.com/index.php?showtopic=71652"&gt;http://forum.kaspersky.com/index.php?showtopic=71652&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Aparentemente, os bons senhores da Kaspersky acham boa ideia factorizar um módulo de 1024 bits para de alguma forma combater o &lt;em&gt;ransomware&lt;/em&gt; gpcode. Boa sorte com os vossos 100 anos de factorização.&lt;/p&gt;
&lt;p&gt;E que tal obterem o utilitário que faz a decriptação (paguem ao gajo se for preciso, nós também temos de vos pagar), e extrairem de lá a chave? Sim, já que não percebem de criptografia, ao menos de reverse engineering devem ter umas luzes.&lt;/p&gt;</description></item><item><title>O Bar da Escolinha</title><link>https://blol.org/226-o-bar-da-escolinha/</link><pubDate>Thu, 29 May 2008 11:25:55 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=226</guid><description>&lt;p&gt;Olá amigos.&lt;/p&gt;
&lt;p&gt;Hoje eu e o Pedro Monteiro não fomos para a aulinha e por isso fomos comer para o bar da escola.&lt;br&gt;
Comemos alta sandezinha de queijo com um leitinho fresco&amp;hellip; mesmo bom!&lt;/p&gt;
&lt;p&gt;Aqui está a prova: &lt;a href="//blol.org/wp-content/uploads/2008/05/fotos-0006.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/05/fotos-0006.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;E tive que vir para aqui blolar sobre isto.&lt;/p&gt;
&lt;p&gt;PS: Já tinha saudades. Beijinhos para o luminoso (adoro falar com ele sobre o gaytoo)&lt;/p&gt;</description></item><item><title>:P</title><link>https://blol.org/224-p/</link><pubDate>Thu, 15 May 2008 18:35:51 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=224</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/05/breakdown.png"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/05/breakdown.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Work pays!</title><link>https://blol.org/222-work-pays/</link><pubDate>Wed, 14 May 2008 23:13:59 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=222</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/05/dscf4587.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/05/dscf4587.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;o que recebo ao final dum longo dia nos campos de algodão&lt;/p&gt;</description></item><item><title>FTW</title><link>https://blol.org/220-ftw/</link><pubDate>Mon, 28 Apr 2008 14:14:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=220</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/04/ftw.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/04/ftw.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>que se lixem os servers</title><link>https://blol.org/219-que-se-lixem-os-servers/</link><pubDate>Mon, 28 Apr 2008 14:03:17 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=219</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/04/lolol.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/04/lolol.jpg" alt="ferias"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>lol</title><link>https://blol.org/215-lol/</link><pubDate>Mon, 28 Apr 2008 12:10:15 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=215</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/04/00263.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/04/00263.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Aquela mão ali &amp;hellip;..&lt;/p&gt;</description></item><item><title>Amadores</title><link>https://blol.org/212-amadores/</link><pubDate>Sun, 27 Apr 2008 01:10:59 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=212</guid><description>O &lt;a href="http://fish.sekure.us" title="FiSH"&gt;FiSH&lt;/a&gt; é uma valente seca para se compilar - é um facto. Em particular quando se fala em compilá-lo num SO opensores numa arquitectura não x86. A biblioteca &lt;a href="http://www.shamus.ie/"&gt;MIRACL&lt;/a&gt; que aquilo usa é essencialmente o problema aqui. Portanto a escolha lógica é acabar com esta biblioteca e usar uma ligeiramente mais decente.</description></item><item><title>Gamitos!</title><link>https://blol.org/206-gamitos/</link><pubDate>Sat, 26 Apr 2008 03:29:49 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=206</guid><description>&lt;p&gt;Ora boa noite&amp;hellip; madrugada whatever..&lt;/p&gt;
&lt;p&gt;Aqui estao os gamitos, quais yetis descalcos na neve&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/04/00264_.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/04/00264_.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Amanha e&amp;rsquo; dia de ir para Salamanca, aguardem novidades.&lt;/p&gt;
&lt;p&gt;Um bem-haja!&lt;/p&gt;</description></item><item><title>Sabugal</title><link>https://blol.org/204-sabugal/</link><pubDate>Sat, 26 Apr 2008 03:19:06 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=204</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/04/00041_.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/04/00041_.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;the end&lt;/p&gt;</description></item><item><title>When you see it...</title><link>https://blol.org/199-when-you-see-it/</link><pubDate>Sat, 26 Apr 2008 02:47:54 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=199</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/04/whenyouseeit.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/04/whenyouseeit.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Fomos as couves!</title><link>https://blol.org/198-fomos-as-couves/</link><pubDate>Fri, 25 Apr 2008 13:01:48 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=198</guid><description>&lt;p&gt;Ora bom dia!&lt;/p&gt;
&lt;p&gt;Depois de irmos buscar o nosso borreguinho que cresceu no pasto so&amp;rsquo; a comer coisinhas boas, fomos ate&amp;rsquo; ao Sabugal, paramos no caminho para tirar fotos a um campinho verdejante &amp;lsquo;a l&amp;rsquo;a windows XP e agora tamos na horinha de almoco.&lt;/p&gt;
&lt;p&gt;Depois de comer uma bela feijoada com folhinhas de couve acabadas de tirar da terra, vamos dar um pulinho ate&amp;rsquo; &amp;lsquo;a serra da estrela. Mais umas fotozinhas para vos abrir o apetite.&lt;/p&gt;</description></item><item><title>Chegamos!</title><link>https://blol.org/196-chegamos-2/</link><pubDate>Fri, 25 Apr 2008 01:58:15 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=196</guid><description>&lt;p&gt;Chegamos!&lt;/p&gt;
&lt;p&gt;Depois de umas peripecias com o GPS, ja jantamos um belo esparguete &amp;lsquo;a l&amp;rsquo;a bolonheza cozinhado pelo mestre Tutatux com comida biologica e uma bela vinhassa&amp;hellip; e tive que vir blogar sobre isto&amp;hellip;&lt;/p&gt;
&lt;p&gt;fiquem com um cheirinho:&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/04/soft3.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/04/soft3.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;foto da mesa&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/04/soft4.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/04/soft4.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;foto pc&amp;rsquo;s&lt;/p&gt;
&lt;p&gt;Um bem-haja!&lt;/p&gt;</description></item><item><title>Chegamos!</title><link>https://blol.org/194-chegamos/</link><pubDate>Fri, 25 Apr 2008 01:44:26 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=194</guid><description>&lt;p&gt;Chegamos!&lt;/p&gt;
&lt;p&gt;Depois de umas peripecias com o GPS, o kim foi nos buscar&amp;hellip; ja jantamos um belo esparguete á lá lululululz. Era para copiar o texto todo do software mas entretanto cansei-me.&lt;/p&gt;
&lt;p&gt;E tive de vir blogar sobre isto.&lt;/p&gt;</description></item><item><title>lol blogs</title><link>https://blol.org/192-lol-blogs/</link><pubDate>Wed, 23 Apr 2008 17:00:08 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=192</guid><description>&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Vou já twittar sobre isto!&lt;/p&gt;</description></item><item><title>FIRST POST</title><link>https://blol.org/191-first-post/</link><pubDate>Wed, 23 Apr 2008 16:33:10 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=191</guid><description>&lt;p&gt;Daqui a doravante esta categoria de &amp;ldquo;Road Trip&amp;rdquo; irá ser criada para seguirem as nossas aventuras até à Guarda, Espanha e afins, já temos um objectivo delineado, que é ir ao IRC (e provavelmente bloggar sobre isso) de Lisboa até à Guarda NO CAMINHO, com uma placa 3g fodavone e cada um no seu portátil (excepto condutor)&lt;/p&gt;
&lt;p&gt;Aguardem noticias e fotos.&lt;/p&gt;
&lt;p&gt;Um bem-haja.&lt;/p&gt;</description></item><item><title>Já sou homem! II</title><link>https://blol.org/190-ja-sou-homem-ii/</link><pubDate>Sat, 19 Apr 2008 17:56:44 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=190</guid><description>&lt;p&gt;Estou meio desapontado com o OpenBSD no mac, e portanto tive de vir blogar sobre isso.&lt;/p&gt;
&lt;p&gt;1º Não tem Virtual Terminals, ou seja só se tem um terminal na consola.&lt;br&gt;
2º Não ha rato na consola, o wsmoused nem é compilado no macppc.&lt;br&gt;
3º O monitor não se desliga passado um tempo sem mexer no teclado ou no rato (deixei a compilar coisas durante a noite, e quando acordei o monitor continuava ligado).&lt;br&gt;
4º A compilação das coisas leva MUITO mais tempo em comparação com o OSX.&lt;br&gt;
5º ???&lt;br&gt;
6º FAILURE&lt;/p&gt;</description></item><item><title>Já sou homem!</title><link>https://blol.org/187-ja-sou-homem/</link><pubDate>Sat, 19 Apr 2008 03:06:22 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=187</guid><description>&lt;p&gt;Instalei o OpenBSD 4.3-CURRENT no mac! Depois de ter estado praí duas horas no Ubuntu para powerpc a rezar pais nossos enquanto aquilo fazia resize à partição HFS+. Instalou sem problemas nenhuns, e já tenho o WIFI a funcionar.&lt;/p&gt;
&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/2008/04/dscf45411.jpg" alt=""&gt;&lt;/p&gt;</description></item><item><title>velho e cansado ( e todo fodido )</title><link>https://blol.org/186-velho-e-cansado-e-todo-fodido/</link><pubDate>Sat, 19 Apr 2008 00:11:36 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=186</guid><description>&lt;p&gt;Hoje o barbeiro aparou-me as sobrancelhas e os pêlos do nariz.&lt;br&gt;
Senti-me velho.&lt;/p&gt;
&lt;p&gt;Afinal só via fazer isso aos velhos.&lt;br&gt;
E quando chegar à altura de aparar os das orelhas? Também EU vou ter pêlos aí?!&lt;/p&gt;
&lt;p&gt;E depois?&lt;br&gt;
Terei ainda tesão?&lt;br&gt;
Apreciarei ainda um bom cú ou um bom par de mamas?&lt;br&gt;
Mijarei controladamente e nos locais próprios?&lt;br&gt;
Vou ter mau hálito?&lt;/p&gt;
&lt;p&gt;Tenho que decidir enquanto ainda tenho tempo se quero ser um velho porco ou um velho decente.&lt;/p&gt;</description></item><item><title>A crise do euro</title><link>https://blol.org/183-a-crise-do-euro/</link><pubDate>Fri, 18 Apr 2008 23:53:43 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=183</guid><description>&lt;p&gt;As putas e a crise&lt;/p&gt;
&lt;p&gt;As putas e a inflacção&lt;/p&gt;
&lt;p&gt;As putas e as condições laborais&lt;/p&gt;
&lt;p&gt;As putas e os seus preços&lt;/p&gt;
&lt;p&gt;Há cerca de 2 dias, estava eu a me actualizar acerca dos preços dos bens de consumo corrente, descobri que 20 minutos de sexo com uma meretriz custam a módica quantia de 20€, preservativo (Colocado com a boca) e alojamento incluídos, sendo o broche uns meros 5€.&lt;/p&gt;
&lt;p&gt;Mas o que é isto caralho?!!?!?&lt;/p&gt;</description></item><item><title>Cracking X-Chat -- part ii</title><link>https://blol.org/178-cracking-x-chat-part-ii/</link><pubDate>Thu, 17 Apr 2008 23:21:06 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=178</guid><description>Aparentemente saiu uma nova versão do xcrap, 2.8.7a. Eu reparei nisto e lembrei-me que houve um post do falso ha uns tempos que falava de como crackar opensores. Infelizmente, não tenho muito tempo por isso vou ser sucinto.</description></item><item><title>OpenBSD para quem ama!</title><link>https://blol.org/177-openbsd-para-quem-ama/</link><pubDate>Thu, 17 Apr 2008 19:43:00 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=177</guid><description>&lt;p&gt;Passei o &lt;a href="//blol.org"&gt;blol.org&lt;/a&gt; e o &lt;a href="http://rdk.homeip.net"&gt;rdk.homeip.net&lt;/a&gt; (incluido o &lt;a href="http://rdk.homeip.net/wiki"&gt;rdk.homeip.net/wiki&lt;/a&gt;) para o OpenBSD, porque a conta da lulz ao fim do mês estava a ser gigante. Assim já posso desligar o lunix durante a noite.&lt;/p&gt;
&lt;p&gt;Foi cagativo passar o WordPress de uma maquina pra outra, foi so mesmo copiar os ficheiros e criar o vhost neste apache. Piece of cake, amei mesmo!&lt;/p&gt;
&lt;p&gt;Ah&amp;hellip; Já tenho alta AP com WPA em OpenBSD! :-P&lt;/p&gt;</description></item><item><title>OpenBSD com WPA</title><link>https://blol.org/175-openbsd-com-wpa/</link><pubDate>Thu, 17 Apr 2008 00:08:16 +0000</pubDate><guid isPermaLink="false">http://blol.org/?p=175</guid><description>&lt;p&gt;Passados uns mil anos a ser gozado por causa do OpenBSD nao ter WPA, hoje aconteceu alta magia, foi commitado alta suporte a wpa no OpenBSD!&lt;/p&gt;
&lt;p&gt;Já estou a compilar o kernel, e a seguir é já o userland todo, amanhã já faço alta AP com WPA, só para quem ama!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Software de factorização - part ii</title><link>https://blol.org/174-software-de-factorizacao-part-ii/</link><pubDate>Fri, 29 Feb 2008 13:54:45 +0000</pubDate><guid isPermaLink="false">http://blol.org/174-software-de-factorizacao-part-ii</guid><description>&lt;p&gt;Há quase 3 anos, &lt;a href="http://wiiaboo.com/dcoder/a.htm#8"&gt;bloguei sobre este assunto&lt;/a&gt;, e dei uma lista mais ou menos completa sobre as aplicações de factorização existentes.&lt;/p&gt;
&lt;p&gt;O que mudou de há 3 anos para cá? Não muito.&lt;/p&gt;
&lt;p&gt;A única aplicação que sofreu alterações significativas foi o &lt;a href="http://www.boo.net/~jasonp/qs.html"&gt;msieve&lt;/a&gt;. Muito pela positiva. Foi-lhe acrescentado um módulo para SNFS/GNFS; embora a escolha de polinómios e o &amp;lsquo;siever&amp;rsquo; não se comparem com os do Franke/Kleinjung (incluídos no GGNFS), o pós-processamento das relações é de longe superior ao do &lt;a href="http://sourceforge.net/projects/ggnfs"&gt;GGNFS&lt;/a&gt;. Note-se, no entanto, que para a raiz quadrada final o algoritmo utilizado pelo GGNFS (Montgomery/Nguyen) é bastante superior ao quase brute-forcing do msieve. Na prática não faz grande diferença excepto para números demasiado grandes para factorizar sem ter altos clusters.&lt;/p&gt;</description></item><item><title>Wonder Shaper GUI</title><link>https://blol.org/171-wonder-shaper-gui/</link><pubDate>Sun, 17 Feb 2008 16:20:08 +0000</pubDate><guid isPermaLink="false">http://blol.org/171-wonder-shaper-gui</guid><description>&lt;p&gt;Isto é um GUI que fiz para oferecerem às vossas namoradas para elas configurarem o wonder shaper sem terem muito trabalho.&lt;/p&gt;
&lt;p&gt;Ler o README para mais detalhes.&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/02/wshapgui.tar" title="Wonder Shaper GUI"&gt;Wonder Shaper GUI&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Windows Vista drama</title><link>https://blol.org/170-windows-vista-drama/</link><pubDate>Sat, 16 Feb 2008 10:59:25 +0000</pubDate><guid isPermaLink="false">http://blol.org/170-windows-vista-drama</guid><description>&lt;p&gt;Ois. Adoro quando estou no Vista a trabalhar e a ouvir música e a navegar nas interwebs feliz, contente e descansado da vida quando de repente oiço: BEEEEP. Eis que penso &amp;ldquo;olá&amp;hellip;vai haver marosca!&amp;rdquo;. O portátil reinicia&amp;hellip;.transpiro e fico verde. Mordo o lábio, lanço um ou outro grunhido e não tenho outro remédio senão reduzir-me à minha significância e aceitar a minha condição de pseudo-(windows fag) e&amp;hellip;.enfim, esperar que esta merda lá reinicie e tenha de abrir tudo novamente, restaurar a sessão do Firefox, apoiar a cabeça na palma da mão, suspirar, olhar para o lado, pensar para o íntimo do meu arrependimento &amp;ldquo;Maldita hora em que não pus linux nesta merda&amp;hellip;&amp;rdquo;. Adeus.&lt;/p&gt;</description></item><item><title>Pensamento do dia</title><link>https://blol.org/169-pensamento-do-dia/</link><pubDate>Fri, 15 Feb 2008 23:12:51 +0000</pubDate><guid isPermaLink="false">http://blol.org/169-pensamento-do-dia</guid><description>&lt;p&gt;E se o estado enfiasse o IRS no cu do jynx, pah ?&lt;/p&gt;</description></item><item><title>Java drama (CTRL+C)</title><link>https://blol.org/168-java-drama-ctrlc/</link><pubDate>Thu, 14 Feb 2008 18:43:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/168-java-drama-ctrlc</guid><description>&lt;p&gt;Ois, amiguinhos. Tenho andado um pouco afastado desta rambóia por motivos sérios e profissionais, embora volta e meia faça um ou outro comment a um ou outro post. Sim, confirmo, a vida de pseudo-trabalhador / pseudo-estudante é, de facto, desgastante aborrecida, por vezes. Hoje deparei-me com um drama aqui no trabalhinho que até foi fácil resolver após uns minutinhos a pensar e a pesquisar no gugal. Na minha aplicação existe o try / catch habitual para handlar as exceptions. Existe também um finally para fazer qualquer coisa nomatter what. No entanto, e como estou a correr a aplicação na consola, caso faça um CTRL+C , o troçozinho de código que consta no finally não é executado, o que é uma maçada&amp;hellip;Então pensei: &amp;ldquo;Ora o que eu queria mesmo&amp;hellip;era uma forma de handlar este signal&amp;hellip;.em Java!!&amp;rdquo; . Em C isto seria coisa simples, mas nunca me tinha deparado com este drama em Java, apesar de a solução ser igualmente simples. Aqui vai a solução e espero que possa ajudar alguém (e também poupar alguma pesquisa):&lt;/p&gt;</description></item><item><title>Dia dos namorados</title><link>https://blol.org/166-dia-dos-namorados/</link><pubDate>Tue, 12 Feb 2008 15:50:38 +0000</pubDate><guid isPermaLink="false">http://blol.org/166-dia-dos-namorados</guid><description>&lt;p&gt;O que mais me chateia nesta época é a substituição parcial do spam aos male enhancers pelo das prendas, que é completamente lulz-less.&lt;/p&gt;</description></item><item><title>Uma música, uma foto.</title><link>https://blol.org/164-uma-musica-uma-foto/</link><pubDate>Sun, 10 Feb 2008 17:45:14 +0000</pubDate><guid isPermaLink="false">http://blol.org/164-uma-musica-uma-foto</guid><description>&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/2008/02/0008.jpg" alt="0008.jpg"&gt;&lt;/p&gt;
&lt;p&gt;(capturado pela webcam da torre da PT em Ponta Delgada)&lt;/p&gt;
&lt;p&gt;REFRÃO:&lt;br&gt;
Mãe querida, mãe querida&lt;br&gt;
O melhor que a gente tem&lt;br&gt;
Não há outro amor na vida&lt;br&gt;
Igual ao amor de mãe&lt;/p&gt;
&lt;p&gt;Feliz de quem possa dizer&lt;br&gt;
Que tem ainda quem lhe deu o ser&lt;br&gt;
Feliz de quem possa contar&lt;br&gt;
Com o seu regaço pra se aconchegar&lt;/p&gt;
&lt;p&gt;Graças a Deus, que tenho ainda&lt;br&gt;
Carinhos teus minha mãe querida&lt;br&gt;
O teu consolo, compreensão&lt;br&gt;
Tuas palavras cheias de razão&lt;/p&gt;</description></item><item><title>lulz de Domingo</title><link>https://blol.org/162-lulz-de-domingo/</link><pubDate>Sun, 10 Feb 2008 14:46:45 +0000</pubDate><guid isPermaLink="false">http://blol.org/162-lulz-de-domingo</guid><description>&lt;p&gt;14:48 &amp;lt;@OBcecado&amp;gt; obrigado por esta lição Armorfist&lt;br&gt;
14:48 &amp;lt;@Armorfist&amp;gt; SABES QUE COMECOU NO A&lt;br&gt;
14:48 &amp;lt;@Armorfist&amp;gt; A A A&lt;br&gt;
14:48 &amp;lt;@Armorfist&amp;gt; DEPOIS VEM O E&lt;br&gt;
14:48 &amp;lt;@Armorfist&amp;gt; E E E&lt;br&gt;
14:48 &amp;lt;@OBcecado&amp;gt; vou fazer uma tatuagem para nunca me esquecer&lt;br&gt;
14:48 &amp;lt;@Armorfist&amp;gt; INTELIGENTE É COM O I&lt;br&gt;
14:48 &amp;lt;@Armorfist&amp;gt; I I I&lt;br&gt;
14:48 &amp;lt;@Armorfist&amp;gt; O U DEPOIS DO O FAZ O A E I O U&lt;/p&gt;</description></item><item><title>Será que...</title><link>https://blol.org/161-sera-que/</link><pubDate>Sun, 10 Feb 2008 03:04:47 +0000</pubDate><guid isPermaLink="false">http://blol.org/161-sera-que</guid><description>&lt;p&gt;&amp;hellip;se eu enviar uma carta para esta morada, ela chega lá, ou perde-se pelo caminho? Aquele código postal não me inspira confiança&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;</description></item><item><title>E quando pensava que já tinha visto tudo...</title><link>https://blol.org/160-e-quando-pensava-que-ja-tinha-visto-tudo/</link><pubDate>Sat, 09 Feb 2008 22:04:44 +0000</pubDate><guid isPermaLink="false">http://blol.org/160-e-quando-pensava-que-ja-tinha-visto-tudo</guid><description>&lt;p&gt;Eis que sou presenteado com publicidade a um &amp;ldquo;smart&amp;rdquo; com decoração da &amp;ldquo;hello kitty&amp;rdquo;. &lt;a href="http://www.optivisao.pt/cgi-bin/Detalhe.asp?ID=778"&gt;AQUI&lt;/a&gt; fica o link do concurso (da optivisão). Pitas de Portugal, toca a participar.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Password morte</title><link>https://blol.org/159-password-morte/</link><pubDate>Sat, 09 Feb 2008 10:43:34 +0000</pubDate><guid isPermaLink="false">http://blol.org/159-password-morte</guid><description>&lt;p&gt;Olá, como não tenho nada de útil para escrever, venho escrever algo de inútil.&lt;/p&gt;
&lt;p&gt;O outro dia fui para a aula de programação, e ouço assim: &amp;ldquo;Hey tem aqui o ultimo username que iniciou sessao: vanessa trindade&amp;rdquo;&lt;br&gt;
&amp;ldquo;Ahah, experimenta a colocar na password vanessa&amp;rdquo;&lt;br&gt;
&amp;ldquo;DEU!&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Bom, eu ouvi isso, e como essa vanessa é uma sujeita muito beta, fifi, tola, estupida, ave rara, camela, boiola, banana&amp;hellip;&lt;/p&gt;</description></item><item><title>Adoro receber spam</title><link>https://blol.org/158-adoro-receber-spam/</link><pubDate>Sat, 09 Feb 2008 04:38:21 +0000</pubDate><guid isPermaLink="false">http://blol.org/158-adoro-receber-spam</guid><description>&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Vou já comprar!!&lt;/p&gt;</description></item><item><title>Não era eu que gostava de trabalhar ali...</title><link>https://blol.org/157-nao-era-eu-que-gostava-de-trabalhar-ali/</link><pubDate>Sat, 09 Feb 2008 04:12:28 +0000</pubDate><guid isPermaLink="false">http://blol.org/157-nao-era-eu-que-gostava-de-trabalhar-ali</guid><description>&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Amiritegaise?&lt;/p&gt;</description></item><item><title>Steve Gibson is a moron.</title><link>https://blol.org/156-steve-gibson-is-a-moron/</link><pubDate>Fri, 08 Feb 2008 19:30:28 +0000</pubDate><guid isPermaLink="false">http://blol.org/156-steve-gibson-is-a-moron</guid><description>&lt;p&gt;I stumbled upon this yesterday. It seems to be some kind of show/podcast where Steve Gibson talks out of his ass. &lt;a href="http://www.grc.com/securitynow.htm#125"&gt;One of them&lt;/a&gt; particularly pissed me off.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;And it comes from really that bungling attempt I made a couple weeks ago when, well, it was the issue of double encryption, the question we answered several Q&amp;amp;As ago where some guy said hey, you know, what if I encrypt something with one key, then I encrypt it again with another key? Isn&amp;rsquo;t that, like, much better than encrypting it just once? And I absolutely know that it is, and I know why it is.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>KIT software legal da FNAC</title><link>https://blol.org/153-kit-software-legal-da-fnac/</link><pubDate>Thu, 07 Feb 2008 20:01:42 +0000</pubDate><guid isPermaLink="false">http://blol.org/153-kit-software-legal-da-fnac</guid><description>&lt;p&gt;Já viram o novo &amp;ldquo;produto exclusivo&amp;rdquo; da fnac? &lt;a href="http://www.fnac.pt/pt/Catalog/Detail.aspx?cIndex=7&amp;amp;catalog=software&amp;amp;categoryN=Software&amp;amp;category=sistemasOperativos&amp;amp;product=2200013368793"&gt;O KIT SOFTWARE LEGAL&lt;/a&gt;? Agora pela módica (leia-se mórbida) quantia de 269.99 eur toda a gente pode usufruir deste fantástico produto.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;</description></item><item><title>LOL @ iPhone</title><link>https://blol.org/152-lol-iphone/</link><pubDate>Thu, 07 Feb 2008 10:25:18 +0000</pubDate><guid isPermaLink="false">http://blol.org/152-lol-iphone</guid><description>&lt;p&gt;Estava eu a coç^?^?^?trabalhar arduamente quando aparece um tipo com um iPhone aqui no serviço para lhe configurarmos o acesso à rede wireless da universidade. Assim que a notícia se espalhou, levantou-se praticamente todo o serviço só para ver o gadget. A excitação só acalmou quando se percebeu que aquela merda &lt;a href="http://www.iphoneatlas.com/2008/02/01/the-iphone-8021x-hole/"&gt;nem sequer suporta 802.1x&lt;/a&gt;, e como tal não se pode ligar à nossa rede. Amei, do fundo do coração.&lt;/p&gt;</description></item><item><title>O vídeo mais trve de sempre!</title><link>https://blol.org/151-o-video-mais-trve-de-sempre/</link><pubDate>Wed, 06 Feb 2008 15:55:55 +0000</pubDate><guid isPermaLink="false">http://blol.org/151-o-video-mais-trve-de-sempre</guid><description>&lt;p&gt;Bem, tinha prometido a muitos no irc que hoje ia colocar um vídeo mesmo TRVE!&lt;/p&gt;
&lt;p&gt;Aqui está ele: &lt;a href="http://terminal.home.sapo.pt/bm.mpeg"&gt;Ver/Baixar&lt;/a&gt;&lt;/p&gt;</description></item><item><title>TrueCrypt 5.0</title><link>https://blol.org/150-truecrypt-50/</link><pubDate>Wed, 06 Feb 2008 04:38:44 +0000</pubDate><guid isPermaLink="false">http://blol.org/150-truecrypt-50</guid><description>&lt;p&gt;Finalmente saiu a nova versão, com muitas cenas novas. Vejam o changelog.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.truecrypt.org/"&gt;http://www.truecrypt.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Alguns pontos dignos de nota:&lt;/p&gt;
&lt;p&gt;- Substituição de SHA-1 por SHA-512;&lt;/p&gt;
&lt;p&gt;- Outro modo de operação  (XTS) para além do LRW (&lt;a href="http://eprint.iacr.org/2007/362.pdf);"&gt;http://eprint.iacr.org/2007/362.pdf);&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- Pre-boot auth (finalmente!).&lt;/p&gt;</description></item><item><title>AIX é para quem ama UNIX - parte ii</title><link>https://blol.org/142-aix-e-para-quem-ama-unix-parte-ii/</link><pubDate>Tue, 05 Feb 2008 23:24:38 +0000</pubDate><guid isPermaLink="false">http://blol.org/142-aix-e-para-quem-ama-unix-parte-ii</guid><description>&lt;p&gt;Olá meus caros amigos. Peço desculpa por ter demorado tanto tempo desde a última vez, mas tenho andado a fazer experiências e neste momento tenho o AIX 1.3 a correr num cartão CF de 2GB ligado ao p133 através de um adaptador IDE-CF.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pacotes e updates&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No capítulo anterior, vimos como se faz a instalação base do AIX 1.3, mas como se devem recordar, ele ainda nem consegue bootar sozinho do disco rígido. Vou mostrar-vos como se faz a instalação dos restantes pacotes e dos seus updates, e também algumas configurações, de forma a ficar um UNIX puro e duro em toda a sua glória.&lt;/p&gt;</description></item><item><title>Férias</title><link>https://blol.org/146-ferias/</link><pubDate>Tue, 05 Feb 2008 22:43:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/146-ferias</guid><description>&lt;p&gt;Já vos disse que estou de férias? Sim, este é o post do &amp;ldquo;mete nojo&amp;rdquo; que já aqui faltava, o qual é dedicado a:&lt;/p&gt;
&lt;p&gt;a) A ave rara que amanhã irá acordar cedo e terá de lidar com o francês no trabalho (ola&amp;rsquo; drune) .&lt;/p&gt;
&lt;p&gt;b) A fallon. (já não dedicava nada a esta pita de 230 kg ha muito tempo).&lt;/p&gt;
&lt;p&gt;A todos vocês, um bem hajam.&lt;/p&gt;</description></item><item><title>Dramas com edição de video no open sores</title><link>https://blol.org/141-dramas-com-edicao-de-video-no-open-sores/</link><pubDate>Tue, 05 Feb 2008 16:20:23 +0000</pubDate><guid isPermaLink="false">http://blol.org/141-dramas-com-edicao-de-video-no-open-sores</guid><description>&lt;p&gt;Amiguinhos, estou eu aqui a escrever sobre dramas com edição de video no open sores. Andei aqui à procura e a testar estas craps open sores e encontrei um razoável: Kino.&lt;/p&gt;
&lt;p&gt;Já estive a fazer um video muitooooo simples (dedicado ao falfinho).&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/02/a.mpeg" title="Burzum"&gt;Sacar&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Conceito dum sistema de permissoes</title><link>https://blol.org/135-conceito-dum-sistema-de-permissoes/</link><pubDate>Tue, 05 Feb 2008 13:10:01 +0000</pubDate><guid isPermaLink="false">http://blol.org/135-conceito-dum-sistema-de-permissoes</guid><description>&lt;p&gt;Oix caros blogfags.&lt;br&gt;
Hoje vou mostrar aqui um método de gestão de permissões com base de dados. Não vou dar nada em concreto, apenas a teoria.&lt;br&gt;
Imaginemos que temos o saite separado em módulos, e queremos um sistema de permissões que suporte grupos que depois estarão associados a utilizadores.&lt;/p&gt;
&lt;p&gt;Carreguem ali naquele botão MOAR para verem o resto.&lt;/p&gt;</description></item><item><title>Melhor jogo de sempre</title><link>https://blol.org/139-melhor-jogo-de-sempre/</link><pubDate>Tue, 05 Feb 2008 13:05:58 +0000</pubDate><guid isPermaLink="false">http://blol.org/139-melhor-jogo-de-sempre</guid><description>&lt;p&gt;Há tempos que tinha uma vida dificil, pois nunca conseguia encontrar um jogo que me fizesse passar os meus tempos mortos. Daí que hoje por acaso encontrei o meu jogo ideal. Chama-se: &lt;a href="http://www.myminicity.com/"&gt;myMinicity&lt;/a&gt; e não é nada mais, nada menos que o jogo mais inútil de _SEMPRE_, ou seja, não é preciso fazer nada no jogo apenas dar o link da cidade a toda gente e essa gente clica e advinhem..não teem que fazer nada.&lt;br&gt;
O que acontece é que a cada clique a população, criminalidade, poluição e isso vao aumentado! Por isso e tudo mais, precisamos de mais pretos senão nao temos criminalidade nem poluição tal como trabalho de escravidão!&lt;/p&gt;</description></item><item><title>Trve Norwegian Raw Black Metal</title><link>https://blol.org/138-trve-norwegian-raw-black-metal/</link><pubDate>Tue, 05 Feb 2008 12:59:35 +0000</pubDate><guid isPermaLink="false">http://blol.org/138-trve-norwegian-raw-black-metal</guid><description>&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/2008/02/24-1.jpg" alt="24-1.jpg"&gt;&lt;/p&gt;</description></item><item><title>Ois amigos!</title><link>https://blol.org/133-ois-amigos/</link><pubDate>Mon, 04 Feb 2008 14:56:26 +0000</pubDate><guid isPermaLink="false">http://blol.org/133-ois-amigos</guid><description>&lt;p&gt;E mais informo que o que eu pensava ser uma simples expectoração aka gosma, era na verdade uma amigdalite disfarçada! De maneiras que já estou a tomar Clamoxyl e Brufen para ficar jóia.&lt;/p&gt;
&lt;p&gt;E pronto, era só para dizer isso.&lt;/p&gt;
&lt;p&gt;Fiquem bem e mantenham este país limpo.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Novo livrinho.</title><link>https://blol.org/132-novo-livrinho/</link><pubDate>Mon, 04 Feb 2008 10:49:35 +0000</pubDate><guid isPermaLink="false">http://blol.org/132-novo-livrinho</guid><description>&lt;p&gt;Poisé caros amigos, ando a tentar cultivar-me no mundo das telecomunicações já que sinto que tenho uma grande falha de conhecimentos nesta área e já que trabalho nela de momento, comprei um livrinho para me por a estudar.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.amazon.co.uk/Data-Computer-Communications-William-Stallings/dp/0132433109/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=gateway&amp;amp;qid=1202121524&amp;amp;sr=8-1"&gt;Data and Computer Communications&lt;/a&gt; é o nome do livro, &lt;a href="http://williamstallings.com/"&gt;William Stallings&lt;/a&gt; o do autor (belo site web 0.5, hein?).&lt;/p&gt;
&lt;p&gt;O livro aborda desde a parte fisica das telecomunicações (cheio de matematicas, ondas sinusoidais, algoritmos de compressao para audio e video para streaming), passando pela explicação do algoritmo de routing do &lt;a href="http://en.wikipedia.org/wiki/Dijkstra's_algorithm"&gt;Dijkstra&lt;/a&gt; (usado no OSPF) até ao layer 7 do modelo OSI, entre outras mil coisas que ainda nao me dei ao trabalho de ver.&lt;/p&gt;</description></item><item><title>DRI no OpenBSD</title><link>https://blol.org/131-dri-no-openbsd/</link><pubDate>Mon, 04 Feb 2008 09:46:23 +0000</pubDate><guid isPermaLink="false">http://blol.org/131-dri-no-openbsd</guid><description>&lt;p&gt;Hoje quando cheguei ao trabalho de manhã vi este &lt;a href="http://marc.info/?l=openbsd-cvs&amp;amp;m=120197306612317&amp;amp;w=2"&gt;emailzinho&lt;/a&gt; e fiquei a chorar. Pus logo o kernel do OpenBSD a compilar com as opções:&lt;/p&gt;
&lt;p&gt;option DRM_DEBUG&lt;br&gt;
mgadrm* at vga? # Matrox G[24]00, G[45]50 DRM driver&lt;/p&gt;
&lt;p&gt;Para poder experimentar com a minha über poderosa Matrox MGA G200 AGP :-D&lt;/p&gt;
&lt;p&gt;Já adicionei o &amp;ldquo;XENOCARA_BUILD_DRI=yes&amp;rdquo; ao /etc/mk.conf, e ja tou a buildar as userland tools. E mais logo pra tarde quando isso acabar, vai ser o xorg!&lt;/p&gt;</description></item><item><title>Pinocada de coelhos e matemática</title><link>https://blol.org/130-pinocada-de-coelhos-e-matematica/</link><pubDate>Mon, 04 Feb 2008 01:00:31 +0000</pubDate><guid isPermaLink="false">http://blol.org/130-pinocada-de-coelhos-e-matematica</guid><description>&lt;p&gt;Ois. No Liber Abbaci aparece o seguinte problema:&lt;/p&gt;
&lt;p&gt;Um homem colocou um par de coelhos num recinto cercado por todos os lados por uma parede. Quantos pares de coelhos podem ser gerados a partir desse par ao fim de um ano , sabendo que, por mês, cada par gera um novo par, que se torna produtivo no segundo mês de vida?&lt;/p&gt;
&lt;p&gt;Reparem  na resolução: no primeiro mês de vida existe apenas o par inicial. No segundo mês continua a existir o par inicial que ficou mais maduro. No terceiro mês, nasceu outro par. No quarto mês o par inicial teve outro par, enquanto os seus filhos cresciam. No quinto mês, o par inicial e os seus filhos tiveram um par cada um. Etc&amp;hellip;&lt;/p&gt;</description></item><item><title>Hoje é Domingo.</title><link>https://blol.org/129-hoje-e-domingo/</link><pubDate>Sun, 03 Feb 2008 16:36:14 +0000</pubDate><guid isPermaLink="false">http://blol.org/129-hoje-e-domingo</guid><description>&lt;p&gt;Ando com uma expectoração mesmo do caneco. Hoje vou a uma farmácia comprar Bissolvon para deitar este muco todo para fora, que já me anda a deixar chateado. E vocês não me querem ver chateado. Quando isso ocorre, não acontece nada de mais, apenas fico irritadiço, como se tivesse com areia na vagina.&lt;/p&gt;
&lt;p&gt;Ontem tentei ver o Sweeney Todd na minha Xbox, mas adormeci a meio do primeiro cd. Não gostei muito, pelo simples facto de eu não apreciar musicais e também porque eu tenho um pénis. Além disso o filme estava low on lulz. E eu preciso da minha quota diária de lulz senão não funciono bem.&lt;/p&gt;</description></item><item><title>"a pass FE MORTE"</title><link>https://blol.org/128-a-pass-fe-morte/</link><pubDate>Sun, 03 Feb 2008 00:07:58 +0000</pubDate><guid isPermaLink="false">http://blol.org/128-a-pass-fe-morte</guid><description>&lt;p&gt;Ora estava eu a rever o material da faculdade, à procura de um determinado relatório para um ex-colega meu, quando dei de caras com a seguinte entrada:&lt;/p&gt;
&lt;p&gt;#define PW &amp;ldquo;shoveitpassmorte&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Saudades dos velhos tempos do linuxgeeks&amp;hellip;&lt;/p&gt;</description></item><item><title>AES</title><link>https://blol.org/126-aes/</link><pubDate>Sat, 02 Feb 2008 23:50:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/126-aes</guid><description>&lt;p&gt;Estava há bocado a passar por sores antigas que para aqui tinha e vi uma implementação do AES (Rijndael) em assembly de x86 que fiz há uns anos.&lt;/p&gt;
&lt;p&gt;Fiquei logo com uma lágrima no olho e achei que devia partilhar isto com a minha culta assistência.&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/02/aesasm.zip" title="Pumba."&gt;Pumba.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Sidazinha no VB!</title><link>https://blol.org/124-sidazinha-no-vb/</link><pubDate>Thu, 31 Jan 2008 11:39:37 +0000</pubDate><guid isPermaLink="false">http://blol.org/124-sidazinha-no-vb</guid><description>&lt;p&gt;Olá meus queridinhos.&lt;/p&gt;
&lt;p&gt;Há pouco fiz um teste de programação (VB). E o VB em si estava com um bugzinho mesmo cheio de cancro&amp;hellip; 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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Hoje não</title><link>https://blol.org/123-hoje-nao/</link><pubDate>Wed, 30 Jan 2008 23:56:53 +0000</pubDate><guid isPermaLink="false">http://blol.org/123-hoje-nao</guid><description>&lt;p&gt;Ois. Hoje não vou blogar, por isso vim blogar sobre isso. Adeus.&lt;/p&gt;</description></item><item><title>Mortiis</title><link>https://blol.org/120-mortiis/</link><pubDate>Wed, 30 Jan 2008 19:25:24 +0000</pubDate><guid isPermaLink="false">http://blol.org/120-mortiis</guid><description>&lt;p&gt;O Mortiis, que é esse gajo que está aqui&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/plugins/hot-linked-image-cacher/upload/mortiis.com/gfx_desktop/scarecrow_background1024.jpg"&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(clicar para tamanho real)&lt;/p&gt;
&lt;p&gt;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:&lt;br&gt;
&lt;a href="//blol.org/wp-content/uploads/2008/01/81_photo.jpg" title="81_photo.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/81_photo.thumbnail.jpg" alt="81_photo.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;E pronto, era só para saberem.&lt;br&gt;
Mas o Mortiis, que é o gajo da foto era mesmo feio, não acham?&lt;/p&gt;</description></item><item><title>Java drama (part 2)</title><link>https://blol.org/117-java-drama-part-2/</link><pubDate>Tue, 29 Jan 2008 22:16:43 +0000</pubDate><guid isPermaLink="false">http://blol.org/117-java-drama-part-2</guid><description>&lt;p&gt;Ois.  Os dramas não me largam&amp;hellip;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&amp;hellip;!! Chego a pensar em estupidezes só para desanuviar&amp;hellip; Hoje uma simples frase dita por alguém no departamento despertou em mim uma súbita vontade de aprofundar o meu interesse pela filosofia&amp;hellip;porque estava farto do Java. &amp;ldquo;Faz o que quiseres!!&amp;rdquo; . Hmmmm&amp;hellip;é interessante porque, se fizermos o que nos apetece estamos a fazer a vontade à outra pessoa&amp;hellip;No entanto, se não fizermos o que queremos, estamos a tomar a liberdade de a contrariar, fazendo o que nos dá na gana&amp;hellip;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&amp;hellip;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&amp;hellip;). 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 &amp;ldquo;Mas porque é que esta besta não se limita a ver o resultado retornado ao invocarmos o método getRemoteUser() ao objecto request (HttpServletRequest) ? &amp;ldquo;. Pois&amp;hellip;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:&lt;/p&gt;</description></item><item><title>Gerador de Galeria de imagens HTML (Python)</title><link>https://blol.org/115-gerador-de-galeria-de-imagens-html-python/</link><pubDate>Tue, 29 Jan 2008 18:28:54 +0000</pubDate><guid isPermaLink="false">http://blol.org/115-gerador-de-galeria-de-imagens-html-python</guid><description>&lt;p&gt;É 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 &amp;ldquo;colocar&amp;rdquo; uma foto de cada vez em código html é trabalhoso, por isso aproveitei uma biblioteca de Python e pus mãos à obra.&lt;/p&gt;
&lt;p&gt;A minha primeira dificuldade foi certamente criar uma thumbnail da imagem em questão, por isso dei uma visita ao Google (&lt;a href="http://www.google.pt"&gt;http://www.google.pt&lt;/a&gt;) e rapidamente encontrei o que queria: Python Imaging Library (&lt;a href="http://www.pythonware.com/products/pil/)"&gt;http://www.pythonware.com/products/pil/)&lt;/a&gt;. É ó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.&lt;/p&gt;</description></item><item><title>Java drama</title><link>https://blol.org/114-java-drama/</link><pubDate>Tue, 29 Jan 2008 01:06:00 +0000</pubDate><guid isPermaLink="false">http://blol.org/114-java-drama</guid><description>&lt;p&gt;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&amp;hellip;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.&lt;/p&gt;</description></item><item><title>FIPS-186</title><link>https://blol.org/113-fips-186/</link><pubDate>Sun, 27 Jan 2008 01:26:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/113-fips-186</guid><description>&lt;p&gt;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 &lt;a href="http://csrc.nist.gov/publications/drafts/fips_186-3/fips186-3_Strong-Prime-Sections_Dec2007.pdf"&gt;aqui&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;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)).&lt;/p&gt;</description></item><item><title>Tou na Holanda.</title><link>https://blol.org/112-tou-na-holanda/</link><pubDate>Sat, 26 Jan 2008 22:46:36 +0000</pubDate><guid isPermaLink="false">http://blol.org/112-tou-na-holanda</guid><description>&lt;p&gt;E tive logo que vir blogar sobre isto.&lt;/p&gt;</description></item><item><title>Fazer reverse a um ip-mask na PTnet</title><link>https://blol.org/111-fazer-reverse-a-um-ip-mask-na-ptnet/</link><pubDate>Sat, 26 Jan 2008 21:38:32 +0000</pubDate><guid isPermaLink="false">http://blol.org/111-fazer-reverse-a-um-ip-mask-na-ptnet</guid><description>&lt;p&gt;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&amp;hellip; but he LIES (o gajo):&lt;br&gt;
&lt;Bop&gt; sabem como é q ele fez o hack ?&lt;br&gt;
&lt;MrGeneral&gt; nao o fez&lt;br&gt;
&lt;MrGeneral&gt; -.-&lt;br&gt;
&lt;Bop&gt; MrGeneral, viste eu no canal ao lado estar a falar do r00t ?&lt;br&gt;
&lt;MrGeneral&gt; sim&lt;br&gt;
&lt;Bop&gt; ele estava no canal&lt;br&gt;
&lt;Bop&gt; era o OverDox&lt;/p&gt;
&lt;p&gt;Mas EU tenho o verdadeiro algoritmo, vou o postar aqui e o código também!&lt;/p&gt;</description></item><item><title>Conversor de Binário para Decimal</title><link>https://blol.org/108-conversor-de-binario-para-decimal/</link><pubDate>Sun, 20 Jan 2008 21:34:37 +0000</pubDate><guid isPermaLink="false">http://blol.org/108-conversor-de-binario-para-decimal</guid><description>&lt;p&gt;O sadik pediu-me para não postar mais, mas vou postar&amp;hellip;&lt;/p&gt;
&lt;p&gt;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)&lt;br&gt;
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):&lt;/p&gt;</description></item><item><title>How to crack XChat 2.8.5e - Part I</title><link>https://blol.org/99-how-to-crack-xchat-285e-part-i/</link><pubDate>Thu, 17 Jan 2008 20:56:38 +0000</pubDate><guid isPermaLink="false">http://blol.org/99-how-to-crack-xchat-285e-part-i</guid><description>Já há não sei quantos dias que me andam a chatear para fazer um documento a explicar como se cracka o xcrap para Windows, hoje decidi começar então com esta saga&amp;hellip; sim vai ser uma saga á-lá-gamito porque assim da mais visitas, faz o pessoal voltar cá pra ver a continuação! Here we go&amp;hellip;</description></item><item><title>Multiplicação com FFT</title><link>https://blol.org/94-multiplicacao-com-fft/</link><pubDate>Tue, 15 Jan 2008 20:06:54 +0000</pubDate><guid isPermaLink="false">http://blol.org/94-multiplicacao-com-fft</guid><description>&lt;p&gt;Contra toda a lógica, isto é possível. Isto é possível pelo teorema da convolução (uma vez que uma multiplicação também pode ser considerada uma convolução).&lt;/p&gt;
&lt;p&gt;OK. Como é que isto se faz?&lt;/p&gt;
&lt;p&gt;1 - Transformar os números a multiplicar num polinómio, escolhendo uma base apropriada (e.g. 10, 16, 2^32, etc).&lt;/p&gt;
&lt;p&gt;2 - Calcular a DFT de ambos, através do uso de uma FFT. (Não é necessário ser estritamente a FFT, qualquer convolução em teoria dá.)&lt;/p&gt;</description></item><item><title>Yaourt 0.8.8-1</title><link>https://blol.org/93-yaourt-088-1/</link><pubDate>Mon, 14 Jan 2008 23:26:22 +0000</pubDate><guid isPermaLink="false">http://blol.org/93-yaourt-088-1</guid><description>&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>O meu primeiro post</title><link>https://blol.org/92-o-meu-primeiro-post/</link><pubDate>Mon, 14 Jan 2008 17:57:55 +0000</pubDate><guid isPermaLink="false">http://blol.org/92-o-meu-primeiro-post</guid><description>&lt;p&gt;Camaradinhas, ois. É a primeira vez que escrevo um post num blog por isso achei que devia blogar sobre isso. Ok ? Adeus.&lt;/p&gt;</description></item><item><title>GIMP</title><link>https://blol.org/90-gimp/</link><pubDate>Sun, 13 Jan 2008 21:05:14 +0000</pubDate><guid isPermaLink="false">http://blol.org/90-gimp</guid><description>&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/foto.jpg" alt="foto.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/foto2.jpg" alt="foto2.jpg"&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/foto2.jpg" title="foto2.jpg"&gt;foto2.jpg&lt;/a&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/fog.jpg" alt="fog.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Eu gosto mais da última porque fico a parecer Thor, senhor do trovão.&lt;/p&gt;</description></item><item><title>Arch Linux com novo site e nova versão do pacman</title><link>https://blol.org/87-arch-linux-com-novo-site-e-nova-versao-do-pacman/</link><pubDate>Sat, 12 Jan 2008 18:40:27 +0000</pubDate><guid isPermaLink="false">http://blol.org/87-arch-linux-com-novo-site-e-nova-versao-do-pacman</guid><description>&lt;p&gt;Para quem não sabe, a comunidade Arch Linux promoveu há uns tempos atrás um concurso de logotipos (&lt;a href="http://www.archlinux.org/news/375/"&gt;Ver&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Pois bem, o layout do site com o novo logotipo já está de pé.&lt;/p&gt;
&lt;p&gt;Aproveito também para dizer que uma nova versão do Pacman está cá fora com umas modificações na estrutura da sua configuração, ficou uns dias no [testing] mas hoje foi movido para o [core].&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.archlinux.org"&gt;http://www.archlinux.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Código estranho II</title><link>https://blol.org/85-codigo-estranho-ii/</link><pubDate>Sat, 12 Jan 2008 03:23:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/85-codigo-estranho-ii</guid><description>&lt;p&gt;mov ecx, eax&lt;br&gt;
mov eax, 0CCCCCCCDh&lt;br&gt;
mul ecx&lt;br&gt;
shr edx, 3&lt;/p&gt;
&lt;p&gt;Em 1994, o Torbjorn Granlund e o Peter Montgomery (o mesmo gajo que inventou a multiplicação de Montgomery do outro post) publicaram um artigo que descrevia como dividir um inteiro N por uma constante d, sem utilizar divisões. A partir daí todos os compiladores que se prezem passaram a usar este tipo de técnicas, e podemos ver no artigo como e&amp;rsquo; feito.&lt;/p&gt;</description></item><item><title>AIX é para quem ama UNIX - parte i</title><link>https://blol.org/36-aix-e-para-quem-ama-unix-parte-i/</link><pubDate>Fri, 11 Jan 2008 22:07:42 +0000</pubDate><guid isPermaLink="false">http://blol.org/36-aix-e-para-quem-ama-unix-parte-i</guid><description>&lt;p&gt;Por iniciativa do Dcoder, tomei como desafio a instalação do AIX 1.3, a única versão de AIX que corre em x86 &amp;ndash; mais exactamente, em IBM PS/2 e compatíveis. Para terem ideia, isto saiu em 1988 e teve o último update em 1992. Não há máquina virtual que corra isto (testei em Virtual PC 2004 e 2007, VMware, qemu, bochs, virtualbox&amp;hellip;). Teimoso como sou, tirei o fiel P133 de debaixo da cama (apesar de o AIX 1.3 ser para 386 e 486) e vá de o martelar até isto funcionar. Com 32MB RAM, disco IDE de 6GB e placa gráfica Cirrus Logic ISA, rezei para que não houvesse complicações de maior.&lt;/p&gt;
&lt;p&gt;Três disquetes depois, lá consigo passar do sítio onde o Virtual PC chegava, e apresenta-me algumas definições que ficam gravadas directamente na NVRAM, como o nome da máquina (usei o default, aixps2), o país, fuso horário e o teclado (nota para os BSDfags: já em 1988 isto suportava teclado português). Depois temos uma espécie de partitioner que apenas permite remover partições &amp;ldquo;desconhecidas&amp;rdquo;, ie, qualquer coisa que não seja AIX nem MSDOS (sim, isto tem pacotes para interagir com MSDOS). Limpando aquelas partições de Linux, avança para a fase seguinte: verificar bad blocks no disco rígido.&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/aix_proof.jpg" title="aix_proof.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/aix_proof.thumbnail.jpg" alt="aix_proof.jpg"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>LULZ</title><link>https://blol.org/78-lulz-2/</link><pubDate>Fri, 11 Jan 2008 20:33:59 +0000</pubDate><guid isPermaLink="false">http://blol.org/78-lulz-2</guid><description>&lt;p&gt;&amp;lt;_intensdown_&amp;gt; caracol_mix, leste o link q te dei?&lt;br&gt;
\* NinjaPT has quit (Quit: +q)&lt;br&gt;
&amp;lt;caracol_mix&amp;gt; _intensdown_: li e fix o k la dizia mas n deu na mesma&lt;br&gt;
&lt;karpa&gt; hmm ja andam a trocar links e tal..&lt;br&gt;
&amp;lt;caracol_mix&amp;gt; continua a dar erro&lt;br&gt;
&lt;OBcecado&gt; vai dar em namoro&lt;br&gt;
&lt;x03&gt; caracol_mix: /etc/init.d/mysql start&lt;br&gt;
&lt;s3phiroth&gt; oix&lt;br&gt;
&amp;lt;_intensdown_&amp;gt; lolol&lt;br&gt;
&lt;x03&gt; caracol_mix: se nao der&lt;br&gt;
&lt;x03&gt; cat /var/log/messages&lt;br&gt;
&amp;lt;caracol_mix&amp;gt; x03: da-m erro&lt;br&gt;
&lt;x03&gt; se nao tiveres erro&lt;br&gt;
&lt;x03&gt; sudo init 0&lt;br&gt;
&lt;x03&gt; pronto&lt;br&gt;
&lt;OBcecado&gt; ya&lt;br&gt;
&lt;x03&gt; problem_solved&lt;br&gt;
\* caracol_mix has quit (Quit: +q)&lt;/p&gt;</description></item><item><title>Arvorezinha em Asus OLED</title><link>https://blol.org/76-arvorezinha-em-asus-oled/</link><pubDate>Fri, 11 Jan 2008 14:42:26 +0000</pubDate><guid isPermaLink="false">http://blol.org/76-arvorezinha-em-asus-oled</guid><description>&lt;p&gt;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 &lt;a href="http://lapsus.berlios.de/asus_oled.html" title="Asus OLED driver (linux)"&gt;programável&lt;/a&gt; em Linux.&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/asusoled_arvorezinha.jpg" title="asusoled_arvorezinha.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/asusoled_arvorezinha.jpg" alt="asusoled_arvorezinha.jpg"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Arvorezinha em perl</title><link>https://blol.org/75-arvorezinha-em-perl/</link><pubDate>Fri, 11 Jan 2008 12:51:06 +0000</pubDate><guid isPermaLink="false">http://blol.org/75-arvorezinha-em-perl</guid><description>&lt;p&gt;Já que tamos numa de fazer arvorezinhas, aqui vai o meu one liner em perl&lt;br&gt;
$i=1;while($i &amp;lt;=5 ) {print &amp;lsquo;*&amp;rsquo; x $i++ . &amp;ldquo;\n&amp;rdquo;;}&lt;/p&gt;</description></item><item><title>Arvorezinha e Programa do Carlão em VB</title><link>https://blol.org/72-arvorezinha-e-programa-do-carlao-em-vb/</link><pubDate>Fri, 11 Jan 2008 10:23:31 +0000</pubDate><guid isPermaLink="false">http://blol.org/72-arvorezinha-e-programa-do-carlao-em-vb</guid><description>&lt;p&gt;Como o falsinho blogou sobre a sua arvorezinha em ASM, aqui vai a minha em VB:&lt;br&gt;
&lt;a href="//blol.org/wp-content/uploads/2008/01/arvorezinha.JPG" title="Arvorezinha fit em vb"&gt;Arvorezinha fit em vb&lt;/a&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/arvorezinha.JPG" alt="Arvorezinha fit em vb"&gt;&lt;/p&gt;
&lt;p&gt;E aqui o programa do Carlão:&lt;br&gt;
&lt;img src="//blol.org/wp-content/uploads/2008/01/carlao.JPG" alt="Programa do carlao"&gt;&lt;/p&gt;
&lt;p&gt;Sei que tenho aí variáveis declaradas não utilizadas, mas não me dei ao trabalho de as apagar do código.&lt;/p&gt;</description></item><item><title>Arvorezinha</title><link>https://blol.org/70-arvorezinha/</link><pubDate>Fri, 11 Jan 2008 01:00:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/70-arvorezinha</guid><description>&lt;p&gt;O _intensdown_ no mirc disse que hoje tiveram a fazer na escola em VB um programinha que davam um certo valor, e o gajo desenhava estilo uma arvore em ascii. Por exemplo, dava o valor 5, e aquilo desenhava:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;***
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;****
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*****
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Como ando ca pica toda do cracking do assembly e tal, tentei fazer isso em assembly, e aqui está o resultado de 3 horas de work:&lt;/p&gt;</description></item><item><title>rating hot</title><link>https://blol.org/69-rating-hot/</link><pubDate>Thu, 10 Jan 2008 21:40:19 +0000</pubDate><guid isPermaLink="false">http://blol.org/69-rating-hot</guid><description>&lt;p&gt;&amp;lt;_intensdown_&amp;gt; np: Amon Amarth - An Ancient Sign Of Coming Storm (4:39) Rating: x0305u25CFu25CFu25CFu25CF&lt;br&gt;
&lt;software&gt; :o&lt;br&gt;
&lt;Dongs&gt; alto rating&lt;br&gt;
&amp;lt; Dongs&amp;gt; blog it&lt;br&gt;
&amp;lt;_intensdown_&amp;gt; lulz&lt;br&gt;
&lt;software&gt; adorava ter ym rating assim&lt;br&gt;
&lt;software&gt; e um tambem&lt;br&gt;
&lt;StarFire&gt; NinjaPT?&lt;br&gt;
&amp;lt;falso_&amp;gt; ROFL&lt;br&gt;
&amp;lt;falso_&amp;gt; belo rating&lt;/p&gt;
&lt;p&gt;E depois vim blogar sobre isto.&lt;/p&gt;</description></item><item><title>Código estranho</title><link>https://blol.org/68-codigo-estranho/</link><pubDate>Thu, 10 Jan 2008 20:46:39 +0000</pubDate><guid isPermaLink="false">http://blol.org/68-codigo-estranho</guid><description>&lt;p&gt;Oi. Eu ia explicar o significado do código abaixo, mas nao tenho tempo agora. Portanto vou pastar aqui o código e escrevo noutro dia.&lt;/p&gt;
&lt;p&gt;mov     ecx, eax&lt;br&gt;
mov     eax, 0CCCCCCCDh&lt;br&gt;
mul     ecx&lt;br&gt;
shr     edx, 3&lt;/p&gt;
&lt;p&gt;Generalizar o processo pelo qual estas sequencias são criadas facilita bastante a leitura e recuperação de código. O Hex-Rays sabe fazer isso, e eu vou-vos ensinar quando me apetecer.&lt;/p&gt;</description></item><item><title>Juden e as Hamburgers</title><link>https://blol.org/57-juden-e-as-hamburguers/</link><pubDate>Thu, 10 Jan 2008 18:40:33 +0000</pubDate><guid isPermaLink="false">http://blol.org/57-juden-e-as-hamburguers</guid><description>&lt;p&gt;Hoje fui ao Burger Ranch comer um menu Bacon com upgrade Jumbo (2 tamanhos acima), bebi Pepsi e comi alto geladinho no fim mais o meu amigo.&lt;/p&gt;
&lt;p&gt;No caminho para lá encontrei na rua isto: &lt;a href="//blol.org/wp-content/uploads/2008/01/photo0001.jpg" title="Juden"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/photo0001.thumbnail.jpg" alt="Juden"&gt;&lt;/a&gt;&lt;br&gt;
Eles também já andam por aqui. ACHTUNG JUDEN&lt;/p&gt;
&lt;p&gt;Aqui estão as fotos do que comi: &lt;a href="//blol.org/wp-content/uploads/2008/01/photo0002.jpg" title="photo0002.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/photo0002.thumbnail.jpg" alt="photo0002.jpg"&gt;&lt;/a&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/photo0003.jpg" title="photo0003.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/photo0003.thumbnail.jpg" alt="photo0003.jpg"&gt;&lt;/a&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/photo0004.jpg" title="photo0004.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/photo0004.thumbnail.jpg" alt="photo0004.jpg"&gt;&lt;/a&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/photo0005.jpg" title="photo0005.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/photo0005.thumbnail.jpg" alt="photo0005.jpg"&gt;&lt;/a&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/photo0006.jpg" title="photo0006.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/photo0006.thumbnail.jpg" alt="photo0006.jpg"&gt;&lt;/a&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/photo0007.jpg" title="photo0007.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/photo0007.thumbnail.jpg" alt="photo0007.jpg"&gt;&lt;/a&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/photo0008.jpg" title="photo0008.jpg"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/photo0008.thumbnail.jpg" alt="photo0008.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Depois viemos para casa e fizemos uma mix-cover (mix porque é mistura de várias músicas, sou o que faz a voz de agonia) de Aaskereia que partilho convosco com muito gosto e dedico ao falsinho para ele ficar melhor da tosse: &lt;a href="http://bloodyangel.no.sapo.pt/cover-aaskereia.mp3"&gt;Ouvir/Baixar&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Contar os valores de um array em VB</title><link>https://blol.org/53-contar-os-valores-de-um-array-em-vb/</link><pubDate>Thu, 10 Jan 2008 10:01:33 +0000</pubDate><guid isPermaLink="false">http://blol.org/53-contar-os-valores-de-um-array-em-vb</guid><description>&lt;p&gt;Estou aqui na escola a blogar sobre algo mesmo inútil. Clica-se em Introduzir dados, põe-se o número de valores a introduzir, introduz-se e depois indica-se que número contar e o programinha conta quantos números são:&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/code.JPG" title="Codigo super useless"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/code.thumbnail.JPG" alt="Codigo super useless"&gt;&lt;/a&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/visual.JPG" title="Visual hot"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/visual.thumbnail.JPG" alt="Visual hot"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>emo</title><link>https://blol.org/52-emo/</link><pubDate>Wed, 09 Jan 2008 23:12:48 +0000</pubDate><guid isPermaLink="false">http://blol.org/52-emo</guid><description>&lt;p&gt;O Alt_of_Ctrl colocou no linuxhelp (como sempre) um link de uma FC&amp;hellip; da floribella, e eu comentei o seguinte:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;raca&gt; boas mamas&lt;br&gt;
&lt;OpenSys&gt; luciana esta ca com umas belas janelas&lt;br&gt;
&amp;lt;_intensdown_&amp;gt; raca, boas 2 bolinhas de silicona&lt;/p&gt;
&lt;p&gt;Escrevi silicona em vez de silicone.&lt;/p&gt;</description></item><item><title>Chegou o Zelda Twilight Princess</title><link>https://blol.org/51-chegou-o-zelda-twilight-princess/</link><pubDate>Tue, 08 Jan 2008 23:50:22 +0000</pubDate><guid isPermaLink="false">http://blol.org/51-chegou-o-zelda-twilight-princess</guid><description>&lt;p&gt;Hoje chegou-me o Zelda Twilight Princess. Será o meu próximo vício.&lt;/p&gt;
&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/zelda-twilight-princess-wii.jpg" alt="zelda-twilight-princess-wii.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Era só mesmo para saberem.&lt;/p&gt;</description></item><item><title>YO x2</title><link>https://blol.org/48-yo-x2/</link><pubDate>Tue, 08 Jan 2008 15:29:22 +0000</pubDate><guid isPermaLink="false">http://blol.org/48-yo-x2</guid><description>&lt;p&gt;Acabei o UT 2004 no meu MAC, e já o apaguei. Adeus.&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/lol-ut.jpg" title="UT2004"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/lol-ut.jpg" alt="UT2004"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>YO</title><link>https://blol.org/46-yo-2/</link><pubDate>Tue, 08 Jan 2008 00:49:07 +0000</pubDate><guid isPermaLink="false">http://blol.org/46-yo-2</guid><description>&lt;p&gt;Cheguei agora a casa. Estive a laurear a pevide. Estou no PC, pois não me apeteceu ligar o MAC. Não me apetecia brincar com o desktop. Saquei bué episódios de séries fixes, mas ainda só vi o American Dad. Curti. O Roger é um alien do caralho. É mais mimado e filho da puta que uma gaja. Tenho donas de casa para ver, mas não vai ser hoje, pois apetece-me ir dormir para amanhã acordar cedo, pois tenho um dia longo para não fazer nada. É dura esta vida!&lt;/p&gt;</description></item><item><title>Sueca Online nas aulas</title><link>https://blol.org/44-sueca-online-nas-aulas/</link><pubDate>Mon, 07 Jan 2008 20:56:06 +0000</pubDate><guid isPermaLink="false">http://blol.org/44-sueca-online-nas-aulas</guid><description>&lt;p&gt;Hoje na aula de programação estivemos a jogar em rede à Sueca.&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/sueca.JPG" title="sueca.JPG"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/sueca.thumbnail.JPG" alt="sueca.JPG"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Há pouco cheguei a casa, jantei e pus o novo ep de The Simpsons a sacar. Agora vou ter que fazer um texto de Físico-Química para entregar amanhã e ver se leio grande bocado do &amp;ldquo;Frei Luís de Sousa&amp;rdquo; de Almeida Garrett. O Manuel de Sousa (Frei Luís de Sousa) é grande doido&amp;hellip; largou fogo à sua casa (desculpem pelos spoilers). Na minha opinião deviam de o convidar para blolar sobre isto, mas como já morreu é impossível.&lt;/p&gt;</description></item><item><title>Link's Crossbow Training</title><link>https://blol.org/38-links-crossbow-training/</link><pubDate>Mon, 07 Jan 2008 13:12:51 +0000</pubDate><guid isPermaLink="false">http://blol.org/38-links-crossbow-training</guid><description>&lt;p&gt;Já cheguei ao fim do Link&amp;rsquo;s Crossbow Training com medalhas de bronze (20000 pontos em cada level). Vou agora jogar de novo para obter a medalha de prata (40000 pontos em cada level). O jogo veio com a pistolinha que está abaixo.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt; Ontem à noite liguei a minha Lava Lamp e comecei a ler na caminha o &amp;ldquo;Frei Luís de Sousa&amp;rdquo; de Almeida Garrett até ao fim da Cena XVII do Acto Primeiro, depois fui dormir.&lt;/p&gt;</description></item><item><title>BEWARE</title><link>https://blol.org/43-beware/</link><pubDate>Mon, 07 Jan 2008 00:26:45 +0000</pubDate><guid isPermaLink="false">http://blol.org/43-beware</guid><description/></item><item><title>YO</title><link>https://blol.org/39-yo/</link><pubDate>Sun, 06 Jan 2008 22:02:37 +0000</pubDate><guid isPermaLink="false">http://blol.org/39-yo</guid><description>&lt;p&gt;Olá viva caros amigos! Vou falar de uma coisa bastante séria que é o seguinte: TABACO. Ora então, a recente entrada da lei que proíbe as pessoas de fumarem em locais públicos, fez com que acabaram de lixar a vida ao pobre! Mas qual pobre? - Perguntam vocês. O pobre que não pode comprar cera para depilar a vagina da mulher. Sim! Estou a falar de ti TONI!! Eu sei que tu andavas a obrigar a tua mulher a respirar o teu fumo passivo para ver se ela ficava com cancro, para depois fazer quimioterapia e ficar sem pêlos. Seu cabrão! Não és capaz de gastar quatro tostões com a puta da tua mulher! Mas dou-te crédito pela ideia. É uma boa ideia essa, a da depilação dos pobres.&lt;/p&gt;</description></item><item><title>Wii Sports Fitness</title><link>https://blol.org/37-wii-sports-fitness/</link><pubDate>Sun, 06 Jan 2008 20:25:10 +0000</pubDate><guid isPermaLink="false">http://blol.org/37-wii-sports-fitness</guid><description>&lt;p&gt;Hoje fiz outra vez 22 anos no Wii Sports Fitness.&lt;/p&gt;</description></item><item><title>Say no to branching</title><link>https://blol.org/35-say-no-to-branching/</link><pubDate>Sun, 06 Jan 2008 19:47:27 +0000</pubDate><guid isPermaLink="false">http://blol.org/35-say-no-to-branching</guid><description>&lt;p&gt;No outro dia perguntaram-me porque é que uma função no fim tinha esta sequência de instruções:&lt;/p&gt;
&lt;p&gt;sbb     eax, eax&lt;br&gt;
sbb     eax, 0FFFFFFFFh&lt;/p&gt;
&lt;p&gt;Ora, este tipo de cena vem tipicamente depois de comparações.&lt;/p&gt;
&lt;p&gt;Se a carry flag for 1, a primeira linha vai resultar em EAX=0xFFFFFFFF. A segunda por sua vez em EAX=0xFFFFFFFF;&lt;/p&gt;
&lt;p&gt;Se a carry flag for 0, a primeira linha var resultar em EAX=0xFFFFFFFF. A segunda em EAX=1;&lt;/p&gt;
&lt;p&gt;Assim temos valores de retorno alternativos sem recorrer a branching. Mas muito menos legíveis.&lt;/p&gt;</description></item><item><title>DD-WRT v24 RC-6</title><link>https://blol.org/34-dd-wrt-v24-rc-6/</link><pubDate>Sun, 06 Jan 2008 19:33:54 +0000</pubDate><guid isPermaLink="false">http://blol.org/34-dd-wrt-v24-rc-6</guid><description>&lt;p&gt;Actualizei o meu WRT54G para o a ultima versão do DD-WRT, a v24 RC-6. Tem umas cenas novas fixes, mas o que curti mais foi isto:&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/evildead-bandwidth-monitoring.png" title="Bandwidth Monitoring"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/evildead-bandwidth-monitoring.png" alt="Bandwidth Monitoring"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Que cena elite! O grafico é desenhado em realtime com javascript!&lt;/p&gt;</description></item><item><title>Olá amigos!</title><link>https://blol.org/32-ola-amigos/</link><pubDate>Sun, 06 Jan 2008 19:19:41 +0000</pubDate><guid isPermaLink="false">http://blol.org/32-ola-amigos</guid><description>&lt;p&gt;Hoje acordei com dor nas costas e no pescoço! Acho que foi por ter dormido meio torto na cama. Depois o meu pai veio chamar-me para ir almoçar e como estava com fome, decidi ir comer qualquer coisa. Era carne assada com batatas assadas e arroz. Dose dupla de hidratos para mim se faz favor! Depois arrotei e vim para o pc, onde estou até agora. Não fiz nada productivo. Quer dizer, fiz umas capas de dvd para uns filmes. Como estava a dizer, nada productivo. Sinto-me todo seboso das peles. Acho que mais logo tomo um banho e faço a barba. A minha cara parece uma lixa d&amp;rsquo;água. Aproveitei para passar a cara na porta do meu quarto, porque estava um pouco áspera, mas agora já está suave como o rabinho de um bébé. Não que eu alguma vez tenha passado a mão no rabinho de um bébé. Só vi em filmes que o meu tio me traz da Tailândia. Tenho de ir pois um tipo qualquer chamado PJ está a bater à porta. Acho que não conheço ninguém com esse nome. Devem andar a vender cenas. Até logo!&lt;/p&gt;</description></item><item><title>A minha ex-Barba</title><link>https://blol.org/28-a-minha-ex-barba/</link><pubDate>Sun, 06 Jan 2008 05:09:29 +0000</pubDate><guid isPermaLink="false">http://blol.org/28-a-minha-ex-barba</guid><description>&lt;p&gt;Venho vos mostrar a barba que eu tinha antes de cortar com a tesoura:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Agora está assim:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[imagem perdida]&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Ontem fui comer ao KFC...</title><link>https://blol.org/31-ontem-fui-comer-ao-kfc/</link><pubDate>Sun, 06 Jan 2008 03:30:57 +0000</pubDate><guid isPermaLink="false">http://blol.org/31-ontem-fui-comer-ao-kfc</guid><description>&lt;p&gt;E como podem ver, escolhi a BOX MEAL que custa apenas 5.50€ !&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/1.jpg" title="KFC"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/1.jpg" alt="KFC"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Traz um Hamburger de frango, batatas fritas, 4 Onion Rings e um pedaço de frango - como dizem os brasucas - bem gostoso!&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/2.jpg" title="KFC"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/2.jpg" alt="KFC"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Alta tesão! Fiquei fan para toda a vida!&lt;/p&gt;</description></item><item><title>Estive a jogar UT 2004 no meu mac...</title><link>https://blol.org/27-estive-a-jogar-ut-2004-no-meu-mac/</link><pubDate>Sun, 06 Jan 2008 02:51:28 +0000</pubDate><guid isPermaLink="false">http://blol.org/27-estive-a-jogar-ut-2004-no-meu-mac</guid><description>&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2008/01/ut2004.jpg" title="UT 2004"&gt;&lt;img src="//blol.org/wp-content/uploads/2008/01/ut2004.jpg" alt="UT 2004"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;E tive de vir blogar (com uma imagem) sobre isso.&lt;/p&gt;</description></item><item><title>Saída à noite</title><link>https://blol.org/23-saida-a-noite/</link><pubDate>Sun, 06 Jan 2008 02:23:44 +0000</pubDate><guid isPermaLink="false">http://blol.org/23-saida-a-noite</guid><description>&lt;p&gt;*[imagem perdida]*Hoje fui ao centro de &lt;a href="http://pt.wikipedia.org/wiki/Ponta_delgada"&gt;Ponta Delgada&lt;/a&gt; à noite, e aquilo estava cheio de gente!&lt;/p&gt;
&lt;p&gt;Depois vi a Morticia (ela é vocalista de uma banda de Death Metal e é hot! Myspace da banda dela: &lt;a href="http://myspace.com/sanctusnosferatuband"&gt;Sanctus Nosferatu&lt;/a&gt;) a passar junto com o marido, mas como eu não a conheço nem ela a mim, não lhe disse nada.&lt;/p&gt;
&lt;p&gt;Quando era meia noite e pouco vim para casa. Mas Ponta Delgada quase que já parece o Bairro Alto à noite.&lt;/p&gt;</description></item><item><title>Montgomery</title><link>https://blol.org/19-montgomery/</link><pubDate>Sat, 05 Jan 2008 22:10:24 +0000</pubDate><guid isPermaLink="false">http://blol.org/lulz/19-montgomery</guid><description>&lt;p&gt;Viva amiquinhos. Hoje venho blogar sobre a multiplicação de Montgomery.&lt;/p&gt;
&lt;p&gt;Para que é que serve? Para multiplicar números módulo um inteiro p, sem ter de recorrer a divisões, que são imensamente lentas na maioria dos CPUs. O algoritmo que Montgomery propôs em 1985 é uma generalização de um já conhecido método para multiplicar módulo primos de Mersenne (2^n-1).&lt;/p&gt;
&lt;p&gt;Seja P o módulo a usar e R uma potência de 2 superior a P. Em primeiro lugar, convertemos as entradas para a forma de Montgomery: xR mod P. Isto terá de ser feito com métodos convencionais, ou redução de Barrett.&lt;br&gt;
Agora, resolvemos a equação R.R^-1 - P.P&amp;rsquo; = 1, para P&amp;rsquo; desconhecido: P&amp;rsquo; = -P^-1 (mod R). Tendo isto, a redução em si resume-se a:&lt;/p&gt;</description></item><item><title>Odeio...</title><link>https://blol.org/18-odeio/</link><pubDate>Sat, 05 Jan 2008 12:44:56 +0000</pubDate><guid isPermaLink="false">http://blol.org/lulz/18-odeio</guid><description>&lt;p&gt;&amp;hellip; Flash!&lt;/p&gt;
&lt;p&gt;E tive que vir blolar sobre isto.&lt;/p&gt;</description></item><item><title>hot</title><link>https://blol.org/17-hot/</link><pubDate>Fri, 04 Jan 2008 22:14:12 +0000</pubDate><guid isPermaLink="false">http://blol.org/lulz/17-hot</guid><description>&lt;p&gt;Olá! Hoje estava na escolinha e enquanto comia alta sandezinha de queijo acompanhada por um pacote de leite branco Nova Açores Unileite, ouvi um jovem a dizer para o outro:&lt;/p&gt;
&lt;p&gt;Jovem 1: &amp;ldquo;Ahh já tenho MacOS, mas não dá no meu pc&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Jovem 2: &amp;ldquo;MacOS é mais compatível que Linux&amp;rdquo;&lt;/p&gt;
&lt;p&gt;No intervalo a seguir:&lt;/p&gt;
&lt;p&gt;Jovem 2: &amp;ldquo;Quando me fartar mesmo de Linux vou instalar MacOS&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Jovem 1: &amp;ldquo;É preciso que o teu pc dê para MacOS&amp;hellip; Se não der, pegas no Darwin e programas aquilo até ficar parecido ao MacOS&amp;rdquo;&lt;/p&gt;</description></item><item><title>Vaiozinho</title><link>https://blol.org/15-vaiozinho/</link><pubDate>Fri, 04 Jan 2008 18:45:34 +0000</pubDate><guid isPermaLink="false">http://blol.org/lulz/15-vaiozinho</guid><description>&lt;p&gt;Poisé, já tenho o belo do gnome instaladinho e a funcionar nos conformes.&lt;/p&gt;
&lt;p&gt;Só é pena ter o teclado em &lt;em&gt;us&lt;/em&gt; mas dentro em breve vou mudar-lhe o map para português senão não consigo bloguear (de blogue) como deve de ser porcausa dos acentos&amp;hellip;&lt;/p&gt;
&lt;p&gt;O estado do menino:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wireless a funcionar SEM FALHAS com o wpa_supplicant! Coisa mais bela esta que foi inventada.&lt;/li&gt;
&lt;li&gt;O sleep nao funciona como deve de ser, consigo pô-lo em sleep mas para voltar&amp;hellip; tá quieto. Também como não tenho muita forma de debugar a situação resta-me googlar e arranjar paxorra para experimentar&amp;hellip;&lt;/li&gt;
&lt;li&gt;distcc com o meu core2duo a funcionar nos conformes (a compilar por wireless)! Pôr o distcc com libs de 64 bits a compilar libs de 32 bits foi uma bela magia, se nao fosse a documentação do gentoo bem que tava na merda.&lt;/li&gt;
&lt;li&gt;Ainda não lhe pus o compiz-fusion, talvez instale depois de ficar com um 1G de ram.&lt;/li&gt;
&lt;li&gt;O som do portatil em si também não é grande coisa, safa&amp;hellip; tenho que experimentar uns phones nele.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ll keep you updated!&lt;/p&gt;</description></item><item><title>Lulz</title><link>https://blol.org/13-lulz/</link><pubDate>Sun, 30 Dec 2007 01:07:30 +0000</pubDate><guid isPermaLink="false">http://blol.org/lulz/13-lulz</guid><description>&lt;p&gt;Fui pá badeira, estou com alta estala de licor beirão! Estou agora a fazer duas tostas e vou beber um Capri-Sonne de Laranja/Maracuja. Portanto tive de vir blogar sobre isso!Bem hajam!&lt;/p&gt;</description></item><item><title>iFail</title><link>https://blol.org/12-ifail/</link><pubDate>Fri, 28 Dec 2007 02:01:59 +0000</pubDate><guid isPermaLink="false">http://blol.org/lulz/12-ifail</guid><description>&lt;p&gt;Andei de volta do Everest, mas aquele código que o Delphi gera é bué de manhoso. O máximo que consegui foi meter a aparecer a imagem que diz que é completo, na AboutBox, mas o resto do programa tava trial na mesma :-X Aquilo apanha la uma parte gigante que o IDA não entende, acho que sao os resources do Delphi, dfm&amp;rsquo;s e tal. Aborreci-me, acho que amanha volto a tentar&amp;hellip;&lt;/p&gt;</description></item><item><title>Gentoo</title><link>https://blol.org/10-gentoo/</link><pubDate>Thu, 27 Dec 2007 23:32:19 +0000</pubDate><guid isPermaLink="false">http://blol.org/lulz/10-10</guid><description>&lt;p&gt;e compila e compila e compila&amp;hellip; e ainda nem comecei a instalar o gnomo&lt;/p&gt;
&lt;p&gt;&lt;a href="//blol.org/wp-content/uploads/2007/12/gnome.jpg" title="Gnomo"&gt;&lt;img src="//blol.org/wp-content/uploads/2007/12/gnome.jpg" alt="Gnomo"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Boredom..</title><link>https://blol.org/9-boredom/</link><pubDate>Thu, 27 Dec 2007 17:07:16 +0000</pubDate><guid isPermaLink="false">http://blol.org/lulz/9-boredom</guid><description>&lt;p&gt;E à espera que o meu &lt;a href="http://jkontherun.blogs.com/jkontherun/images/sony_vaio_g1.jpg"&gt;vaiozinho t150&lt;/a&gt; acabe de compilar o gentoo&amp;hellip;&lt;/p&gt;
&lt;p&gt;E tive que vir blogar sobre isto.&lt;/p&gt;</description></item><item><title>Everest</title><link>https://blol.org/7-everest/</link><pubDate>Thu, 27 Dec 2007 13:42:46 +0000</pubDate><guid isPermaLink="false">http://blol.org/lulz/7-everest</guid><description>&lt;p&gt;O meu cracking objective de hoje é tentar crackar o &lt;a href="http://www.lavalys.com/"&gt;Everest&lt;/a&gt;,  nem faço a minima ideia do que é ou do que faz. Mas espero que seja mais simples que o &lt;a href="http://www.xchat.org/"&gt;Xcrap 2.8.5e&lt;/a&gt; pra windoze, que levei mil anos a Unpackar do UPX, porque o autor fodeu as headers do UPX e o gajo nao unpackava.  E alta broxe pra saber em que sitios é que o dialog da &amp;ldquo;Expiração&amp;rdquo; aparecia.&lt;/p&gt;
&lt;p&gt;Fiz um crackzinho facil de aplicar, se der jeito a alguem: &lt;a href="//blol.org/wp-content/uploads/2007/12/xchat285eforwindows-patch.exe" title="Xchat 2.8.5e for Windows Crack"&gt;Xchat 2.8.5e for Windows Crack&lt;/a&gt;&lt;/p&gt;</description></item><item><title>gdb com corzinhas</title><link>https://blol.org/5-gdb-com-corzinhas/</link><pubDate>Thu, 27 Dec 2007 13:28:36 +0000</pubDate><guid isPermaLink="false">http://blol.org/lulz/5-gdb-com-corzinhas</guid><description>&lt;p&gt;O Dcoder mostrou me alta screenshot do gdb com alta configuração toda hacker, com corzinhas. Memo pro puro zen cracker. À noite vou instalar o gdb no OSX e experimentar esta configuração, pra tirar alta screenshot com a janela gay do OSX do Terminal.app. :-P&lt;/p&gt;
&lt;p&gt;&lt;img src="//blol.org/wp-content/uploads/2007/12/1198761372052.png" alt="gdb com corzinhas"&gt;&lt;/p&gt;
&lt;p&gt;Link pro ficheiro de conf &lt;a href="http://www.esnips.com/doc/34523412-65b8-433e-ae75-cc0a46d65818"&gt;gdbinit_color.txt&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Blogzinho</title><link>https://blol.org/4-blogzinho/</link><pubDate>Thu, 27 Dec 2007 11:46:58 +0000</pubDate><guid isPermaLink="false">http://blol.org/lulz/4</guid><description>&lt;p&gt;A partir de agora vou começar a blogar aqui sobre as minhas aventuras no meu recem comprado iBook G4 12&amp;quot;. OSX faggotry e afins.&lt;/p&gt;
&lt;p&gt;Esta noite passada abri o maczinho, tirei-lhe o teclado, abri a chapinha debaixo do teclado com alta chavinha philips numero 0 e adicionei mais uma memoria de 512MB, agora estou com 1GB de RAM no maczinho, mas ainda nao fiz testes pra ver se se nota grande diferença, mas nao se deve notar, até porque nunca o senti lento só com 512MB.&lt;/p&gt;</description></item></channel></rss>