<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mais um blog inútil.</title>
	<atom:link href="http://blol.org/feed" rel="self" type="application/rss+xml" />
	<link>http://blol.org</link>
	<description>Blog sobre coisas verdadeiramente inúteis</description>
	<lastBuildDate>Thu, 02 Sep 2010 23:10:45 +0000</lastBuildDate>
	<language>pt-pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Cena de Urso da Tipp-Ex</title>
		<link>http://blol.org/1564-cena-de-urso-da-tipp-ex</link>
		<comments>http://blol.org/1564-cena-de-urso-da-tipp-ex#comments</comments>
		<pubDate>Thu, 02 Sep 2010 23:01:12 +0000</pubDate>
		<dc:creator>armorfist</dc:creator>
				<category><![CDATA[Fail]]></category>
		<category><![CDATA[Useless]]></category>
		<category><![CDATA[lulz]]></category>

		<guid isPermaLink="false">http://blol.org/?p=1564</guid>
		<description><![CDATA[Já não blogo há algum tempo, portanto aqui vai um post sobre uma coisa completamente inútil:

Um amigo meu mostrou-me nas internets uma cena fofi, que podem ver aqui:
<a href="http://www.youtube.com/profile?user=tippexperience&#38;feature=iv&#38;annotation_id=annotation_820885">

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.</a>]]></description>
			<content:encoded><![CDATA[<p>Boas amiguinhos!</p>
<p>Já não blogo há algum tempo, portanto aqui vai um post sobre uma coisa completamente inútil:</p>
<p>Um amigo meu mostrou-me nas internets uma cena fofi, que podem ver aqui:<br />
<a href="http://www.youtube.com/profile?user=tippexperience&amp;feature=iv&amp;annotation_id=annotation_820885">http://www.youtube.com/profile?user=tippexperience&amp;feature=iv&amp;annotation_id=annotation_820885</a></p>
<p>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:</p>
<pre class="brush: php;">
&lt;?php
/*
Output:

No match:
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;&lt;datas&gt;&lt;status&gt;NO MATCH&lt;/status&gt;&lt;url&gt;gaC_66xPvBc&lt;/url&gt;&lt;id&gt;1&lt;/id&gt;&lt;duration&gt;0.001227855682373&lt;/duration&gt;&lt;/datas&gt;
Match:
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;&lt;datas&gt;&lt;status&gt;MATCH&lt;/status&gt;&lt;url&gt;Ks_2nKOKVGg&lt;/url&gt;&lt;cost&gt;0&lt;/cost&gt;&lt;id&gt;38&lt;/id&gt;&lt;duration&gt;0.00061297416687012&lt;/duration&gt;&lt;/datas&gt;
*/

//No execution timeout
set_time_limit(0); 

// Open Verb list
$handle = @fopen(&quot;verb_list.txt&quot;, &quot;r&quot;);

if ($handle)
    while (!feof($handle))
    {
		// Get word
        $word = fgets($handle, 4096);

		//Filter Word
		$word = trim(str_replace(array(&quot;\r\n&quot;, &quot;\n&quot;, &quot;\r&quot;),'',$word));

		// Create a stream
		$opts = array(
		  'http' =&gt;array(
			'header'  =&gt; &quot;Content-type: application/x-www-form-urlencoded\r\n&quot;,
			'method' =&gt;&quot;POST&quot;,
			'content' =&gt; http_build_query(array('words' =&gt; $word, 'language' =&gt; 'en')),
			'timeout' =&gt; 5,
		  )
		);

		$context = stream_context_create($opts);

		// Open the file using the HTTP headers set above
		$file = file_get_contents('http://217.174.206.135/tippex/scripts/matchfinder.php', false, $context);

		// Make an Object out of the XML
		$xmlobj = simplexml_load_string($file);

		// Is it a MATCH?
		if ($xmlobj-&gt;status == 'MATCH')
			echo &quot;&lt;a href='http://www.youtube.com/watch?v=&quot;.$xmlobj-&gt;url.&quot;'&gt;&quot;.$word.&quot;&lt;/a&gt; - http://www.youtube.com/watch?v=&quot;.$xmlobj-&gt;url.&quot;&lt;br/&gt;&quot;;

		// No flood
		sleep(1);
    }

// Close file
fclose($handle);
?&gt;
</pre>
<p>Os comentários estão em inglês porque estou habituado a faze-los em inglês. Basicamente deu-me a seguinte lista:</p>
<p><a href="http://www.eyeviewdesign.pt/blol/lista_vids.html">Lista Completa</a></p>
<p>Muitos vídeos estão repetidos, o que poderia ter sido evitado pois eles dão o ID do video no XML, mas só me lembrei disso depois e não me apetece fazer a filtragem agora. Talvez amanhã.</p>
<p>Espero que gostem!</p>
<p>Beijinhos abraços e muitos palhaços.</p>
]]></content:encoded>
			<wfw:commentRss>http://blol.org/1564-cena-de-urso-da-tipp-ex/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bus Pirate &#8211; Firmware update</title>
		<link>http://blol.org/1524-bus-pirate-firmware-update</link>
		<comments>http://blol.org/1524-bus-pirate-firmware-update#comments</comments>
		<pubDate>Wed, 01 Sep 2010 23:04:02 +0000</pubDate>
		<dc:creator>thread</dc:creator>
				<category><![CDATA[Drama]]></category>
		<category><![CDATA[Fail]]></category>
		<category><![CDATA[Useless]]></category>

		<guid isPermaLink="false">http://blol.org/?p=1524</guid>
		<description><![CDATA[Bom noite amiguinhos!! (disseram-me que &#8220;amiguinhos&#8221; ficava muito gay, então decidi editar). Estive quase para blogar sobre a aventura que foi conseguir recuperar a password neste blog inútil&#8230; mas fica para outra vez. Ora estava eu hoje com vontade de arranjar problemas e decidi fazer um firmware update ao meu Bus Pirate. Dei uma vista [...]]]></description>
			<content:encoded><![CDATA[<p>Bom noite <del>amiguinhos!</del>! (disseram-me que &#8220;amiguinhos&#8221; ficava muito gay, então decidi editar).</p>
<p>Estive quase para blogar sobre a aventura que foi conseguir recuperar a password neste blog inútil&#8230; mas fica para outra vez.</p>
<p>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.</p>
<p>Mal aquilo acabou de sacar a coisa, liguei-me via serie ao Bus Pirate, activei o bootloader mode, e em seguida fiz logo cócó:</p>
<p><a href="http://blol.org/wp-content/uploads/2010/09/Fail1_Tratado2.jpg"><img class="aligncenter size-full wp-image-1548" src="http://blol.org/wp-content/uploads/2010/09/Fail1_Tratado2.jpg" alt="Fail1 Tratado2 Bus Pirate   Firmware update" width="679" height="340" title="Bus Pirate   Firmware update" /></a></p>
<p>Pronto&#8230; depois de rapidamente perceber que tinha brickado o Bus Pirate, também percebi que esta coisa ia tentar rescrever o bootloader que por sua vez estava activo.. e não ia poder ser re-escrito!</p>
<p>Agora sim, tinha um desafio e uma vontade enorme de fazer serão à volta disto para o unbrickar.<br />
E decidi também blogar sobre isto caso alguem faça o mesmo cócó que eu fiz&#8230; pode ser que seja uma coisa pouco útil dentro desta vasta inutiilidade que estão para ver!</p>
<p>Comecei pelo que pensei ser o caminho mais simples&#8230; dado que o Bus Pirate tem uma interface ICSP, decidi tentar aceder directamente à pic com o auxilio dum pic debugger/programmer.</p>
<p>Portanto peguei então no lixo seguinte:</p>
<p><a href="http://blol.org/wp-content/uploads/2010/09/Tralha1.jpg"><img src="http://blol.org/wp-content/uploads/2010/09/Tralha1-300x225.jpg" alt="Tralha1 300x225 Bus Pirate   Firmware update" title="Tralha" width="300" height="225" class="size-medium wp-image-1528" /></a></p>
<p>Montei o estaminé seguinte:</p>
<p><a href="http://blol.org/wp-content/uploads/2010/09/Bench2.jpg"><img src="http://blol.org/wp-content/uploads/2010/09/Bench2-300x267.jpg" alt="Bench2 300x267 Bus Pirate   Firmware update" title="" width="300" height="267" class="alignnone size-medium wp-image-1536" /></a></p>
<p>Alimentado pela besta seguinte:</p>
<p><a href="http://blol.org/wp-content/uploads/2010/09/PowerSupply.jpg"><img src="http://blol.org/wp-content/uploads/2010/09/PowerSupply-300x225.jpg" alt="PowerSupply 300x225 Bus Pirate   Firmware update" title="" width="300" height="225" class="alignnone size-medium wp-image-1530" /></a></p>
<p>Ora resumindo pseudo-tecnicamente a coisa, fiz o seguinte:<br />
Interliguei o pickit3 ao interface ICSP do bus pirate com os cabinhos e alimentado por uma fonte de alimentação&#8230; (que podia ser 2 pilhas ou usar o próprio pickit3.. mas achei que assim ficava mais giro e tenho de dar uso as inutilidades cá de casa!) E as relações de cor/função na foto são:</p>
<p>amarelo -&gt; MCLR | vermelho -&gt; 3.3V | preto -&gt; ground | azul -&gt; PGD | verde -&gt; PGC</p>
<p>Após esta cangalhada estar bem ligada, deve acender um led vermelhinho e outro verde no bus pirate. Se não acender e se eventualmente cheirar a queimado significa que têm de encomendar umas coisinhas na farnell ou assim.<br />
Dado isto, está na altura de aproveitar o que o opensource tem de bom, e descarregar uma versão qualquer das sources do bus pirate para a sua amada pic. Decidi descarregar primeiro as sources da versão 4.3 e abri no mplab. (Nota&#8230; se realmente estiverem a salvar um bus pirate e queiram poupar tempo e trabalho&#8230; passem já para a parte final do post onde tem uns procedimentos de 1 a 15, que indica como flashar um bootloader e firmware com hex files, poupando assim a trabalhera de compilar as coisas todas.)</p>
<p>Algo importante a referir aqui, é que caso estejam a fazer este procedimento, devem instalar o mplab juntamente com outro pacote da microchip -&gt; O mplab c30 (pode ser a versão LITE) que contem o toolkit para compilar e linkar os projects para pic24&#8242;s (que vêm no bus pirate v3).</p>
<p>Caso tudo esteja correcto, indo a Project -&gt; Build all deverão obter o resultado seguinte:</p>
<p><a href="http://blol.org/wp-content/uploads/2010/09/BuildSuccess_Tratado1.jpg"><img src="http://blol.org/wp-content/uploads/2010/09/BuildSuccess_Tratado1-300x162.jpg" alt="BuildSuccess Tratado1 300x162 Bus Pirate   Firmware update" title="" width="300" height="162" class="alignnone size-medium wp-image-1532" /></a></p>
<p>Agora só se tem que selecionar o programador que vai ser usado para escrever o firmware.. que neste caso é um pickit3: Programmer -&gt; Select Programmer -&gt; 4 Pickit3.</p>
<p>E selecionar o pic em questão&#8230; que no caso do meu bus pirate v3 é o PIC24FJ64GA002 (mais alguem que esteja a fazer isto, deverá conferir a sopa de letras na pic do seu bus pirate e selecionar a correspondente): Configure -&gt; Select Device -&gt; Device: &lt;escolher o device na dropdown box&gt;</p>
<p>Com isto, penso que é seguro dizer que se pode ir a Programmer -&gt; Program, que deverá dar o seguinte resultado:</p>
<p><a href="http://blol.org/wp-content/uploads/2010/09/SucessProgram_Tratado1.jpg"><img class="aligncenter size-full wp-image-1542" src="http://blol.org/wp-content/uploads/2010/09/SucessProgram_Tratado1.jpg" alt="SucessProgram Tratado1 Bus Pirate   Firmware update" width="820" height="247" title="Bus Pirate   Firmware update" /></a></p>
<p>Agora só têm que desligar a fonte de alimentação, desligar o pickit3, retirar os cabinhos todos do interface ICSP, ligar por usb ao pc, e abrir um terminal na COMx correspondente e ver se o gajo respira:</p>
<p><a href="http://blol.org/wp-content/uploads/2010/09/BusPirate_AliveAgain_Tratado.jpg"><img class="aligncenter size-full wp-image-1534" src="http://blol.org/wp-content/uploads/2010/09/BusPirate_AliveAgain_Tratado.jpg" alt="BusPirate AliveAgain Tratado Bus Pirate   Firmware update" width="644" height="389" title="Bus Pirate   Firmware update" /></a></p>
<p>E parece que sim! De novo à vida inútil, pronto para ir para a prateleira mais uns meses apanhar pó&#8230;</p>
<p>Agora já só falta colocar um bootloader nisto, que como podem ver está com a v255.255 que quer dizer isso mesmo que estão a pensar.</p>
<p>Para poupar espaço no blog, vou apenas referir os procedimentos sem estar a largar mais screenshots.</p>
<p>1 &#8211; ligar novamente o bus pirate ao pickit3 com os passinhos todos anteriores.<br />
2 &#8211; abrir o mplab<br />
3 &#8211; ir a File -&gt; Import -&gt; selecionar o .hex file que contem o bootloader desejado. No meu caso: BPv3-Bootloader-v4.4.hex<br />
4 &#8211; Selecionar o programador em Programmer -&gt; Select Programmer e selecionar o device em Configure -&gt; Select Device<br />
5 &#8211; ir a Programmer -&gt; Program<br />
6 - se não houver erros, desligar o bus pirate do pickit3 e da alimentação (verificar que o bus pirate está mesmo desligado)<br />
7 &#8211; short entre PDC e PGD (basicamente, ligar o cabo azul ao verde)<br />
8 &#8211; Ligar o bus pirate por usb<br />
9 &#8211; tentar pingar o bootloader com: pirate-loader.exe &#8211;dev=COM3 &#8211;hello<br />
10 &#8211; Se não houver erros até aqui, estamos prontos para colocar novamente um firmware, neste caso será o último, o 5.7<br />
11 &#8211; Abrir o ds30 Loader GUI.exe (esta util bem como o pirate-loader encontram-se no pacote de update de firmware/bootloader que se pode descarregar do repositorio de code do bus pirate).<br />
12 &#8211; Selecionar o BPv3-Firmware-v5.7.hex e pressionar &#8220;Download&#8221; (claro está que se quiserem uma versão custom da coisa, têm que sacar a source, compilar, etc.. basicamente seguir os passos descritos anteriormente neste post).<br />
13 &#8211; Se não houver erros, desligar o bus pirate do usb<br />
14 &#8211; retirar o short entre o PDC e PGD (melhor ainda -&gt; desligar todos os cabos&#8230; já não vão ser necessários)<br />
15 &#8211; Ligar o bus pirate por usb novamente e aceder à consola pela respectiva COMx</p>
<p>Deverão ter o seguinte aspecto:</p>
<p><a href="http://blol.org/wp-content/uploads/2010/09/newfirmware.jpg"><img class="aligncenter size-full wp-image-1552" src="http://blol.org/wp-content/uploads/2010/09/newfirmware.jpg" alt="newfirmware Bus Pirate   Firmware update" width="679" height="423" title="Bus Pirate   Firmware update" /></a></p>
<p>E pronto&#8230;</p>
<p>Agora que já vos gastei 5 ou 10 minutos do vosso tempo, já posso ir jogar Starcraft II.</p>
]]></content:encoded>
			<wfw:commentRss>http://blol.org/1524-bus-pirate-firmware-update/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>McEliece e a QFT</title>
		<link>http://blol.org/1518-mceliece-e-a-qft</link>
		<comments>http://blol.org/1518-mceliece-e-a-qft#comments</comments>
		<pubDate>Sun, 22 Aug 2010 04:17:40 +0000</pubDate>
		<dc:creator>dongs</dc:creator>
				<category><![CDATA[Fail]]></category>
		<category><![CDATA[Serious Business]]></category>

		<guid isPermaLink="false">http://blol.org/?p=1518</guid>
		<description><![CDATA[Nos últimos dias, tem andado uma notícia a passar pelos sites de notícias &#8220;científicas&#8221; que me chamou a atenção. Pela negativa. Pois parece que uns gajos quaisquer descobriram que o algoritmo proposto pelo McEliece em 1978 é resistente a &#8220;todos os ataques quânticos&#8221;. Que valente merda de &#8220;jornalismo&#8221;. Quem se tivesse dado ao trabalho de [...]]]></description>
			<content:encoded><![CDATA[<p>Nos últimos dias, tem andado uma notícia a passar pelos sites de notícias &#8220;científicas&#8221; que me chamou a atenção. Pela negativa. Pois parece que uns <a href="http://www.technologyreview.com/blog/arxiv/25629/">gajos quaisquer</a> <a href="http://www.popsci.com/technology/article/2010-08/quantum-computer-proof-data-encryption-researchers-look-formulat-created-1978">descobriram</a> que o algoritmo proposto pelo <a href="https://docs.google.com/viewer?url=http%3A%2F%2Fipnpr.jpl.nasa.gov%2Fprogress_report2%2F42-44%2F44N.PDF">McEliece em 1978</a> é resistente a &#8220;todos os ataques quânticos&#8221;. Que valente merda de &#8220;jornalismo&#8221;.</p>
<p>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 <a href="http://arxiv.org/abs/quant-ph/9508027">algoritmo de Shor</a> 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. </p>
<p>No caso do algoritmo de McEliece (mal escrito num dos artigos &#8212; será assim tão difícil?), o problema a resolver é consideravelmente diferente &#8212; trata-se de descodificar um código de Goppa aleatório. No caso genérico, este problema está na classe NP-hard, e não vai ter nenhuma aceleração exponencial no futuro. Como tal, o resultado obtido não é nenhuma surpresa, e nem sequer justifica chegar às notícias. </p>
<p>Finalmente, o argumento que o McEliece resiste a todos os ataques quânticos conhecidos simplesmente não é verdade. É sabido que o <a href="http://arxiv.org/abs/quant-ph/9605043">algoritmo de Grover</a> acelera o processo de pesquisa quadraticamente; isto é usado eficientemente para <a href="http://www.springerlink.com/content/q5758231x66u7375/">acelerar o algoritmo clássico que quebra o McEliece</a>, de forma a que sejam necessárias chaves 4 vezes maiores. </p>
]]></content:encoded>
			<wfw:commentRss>http://blol.org/1518-mceliece-e-a-qft/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Desenvolvimentos no SHA-3</title>
		<link>http://blol.org/1514-desenvolvimentos-no-sha-3</link>
		<comments>http://blol.org/1514-desenvolvimentos-no-sha-3#comments</comments>
		<pubDate>Fri, 13 Aug 2010 00:06:38 +0000</pubDate>
		<dc:creator>dongs</dc:creator>
				<category><![CDATA[Serious Business]]></category>
		<category><![CDATA[Useless]]></category>

		<guid isPermaLink="false">http://blol.org/?p=1514</guid>
		<description><![CDATA[Ora viva, 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. 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 [...]]]></description>
			<content:encoded><![CDATA[<p>Ora viva,</p>
<p>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.</p>
<p>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.</p>
<p>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. </p>
<p>A função CubeHash torna mais fácil obter <em>preimages</em> de 512 bits do que o esperado; ao invés de O(2^512) operações, são apenas necessárias O(2^384). A relevância deste problema é bastante discutível &#8212; mesmo com computadores quânticos e transformando todos os átomos em qubits, seria difícil encontrar 2^192 no universo inteiro. No entanto, este nível de segurança vai contra as regras da competição, que especificavam um nível de segurança mínimo de 2^512. Isto põe a passagem desta função para o próximo passo em risco.</p>
<p>Outro ponto a considerar é o desempenho das funções. O NIST especificou que qualquer função escolhida terá de ser mais ou igualmente rápida que o SHA-2. Isto deixa-nos com as seguintes funções: BLAKE, Blue Midnight Wish, Shabal, Skein, CubeHash, Keccak, SIMD, Luffa (parcialmente). Algumas destas (i.e., ECHO e SHAvite-3) são extremamente acelerada se existirem instruções específicas de AES no sistema (AES-NI).</p>
<p>Dito isto, é uma decisão difícil escolher as 5 funções finalistas. Um palpite pode ser: BLAKE, Shabal, Skein, Blue Midnight Wish, Keccak. Existe um problema com este palpite, dado que as primeiras 4 funções são todas bastante semelhantes e pode ser vantajoso ter mais variedade, mas vou ignorar esse pequeno detalhe.</p>
]]></content:encoded>
			<wfw:commentRss>http://blol.org/1514-desenvolvimentos-no-sha-3/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Arvorezinha – POSTSCRIPT</title>
		<link>http://blol.org/1504-arvorezinha-%e2%80%93-postscript</link>
		<comments>http://blol.org/1504-arvorezinha-%e2%80%93-postscript#comments</comments>
		<pubDate>Wed, 11 Aug 2010 16:42:10 +0000</pubDate>
		<dc:creator>jsaramago</dc:creator>
				<category><![CDATA[Arvorezinha]]></category>

		<guid isPermaLink="false">http://blol.org/?p=1504</guid>
		<description><![CDATA[Boas, 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&#8230; %!PS /cm {28.34645669 mul} def %definir centrimetros /size{2 cm}def %definir uma constante /w{595}def %width da folha em [...]]]></description>
			<content:encoded><![CDATA[<p>Boas,<br />
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&#8230;</p>
<pre class="brush: plain;">
%!PS

/cm {28.34645669 mul} def %definir centrimetros
/size{2 cm}def %definir uma constante
/w{595}def %width da folha em pontos
/h{842}def %height da folha em pontos
/PageSize [ w h ]
/movetoTop{
	/yy exch def
	/xx exch def

	h yy sub
	/aux2 exch def

	xx aux2 moveto
}def % O (0,0) é no canto inferior esquerdo, então esta função transforma o (0,0) no canto superior esquerdo com as coordenadas positivas para baixo

/Courier             % Nome do tipo de letra
size selectfont      % Definir o tamanho da letra

0 1 4{
	/i exch def
	i size mul
	size add
	/yy exch def
	0 1 i{
		/j exch def
		j size mul
		size add
		/xx exch def
		xx yy movetoTop
		(*) show
		clear
	}for %colunas
}for %linhas

showpage             % imprimir página
</pre>
<p>O resultado final é este:</p>
<p><img class="alignnone size-full wp-image-1509" src="http://blol.org/wp-content/uploads/2010/08/ps.png" alt="ps Arvorezinha – POSTSCRIPT" width="300" height="315" title="Arvorezinha – POSTSCRIPT" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blol.org/1504-arvorezinha-%e2%80%93-postscript/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Arvorezinha em Windows PowerShell</title>
		<link>http://blol.org/1498-arvorezinha-em-windows-powershell</link>
		<comments>http://blol.org/1498-arvorezinha-em-windows-powershell#comments</comments>
		<pubDate>Wed, 11 Aug 2010 14:17:41 +0000</pubDate>
		<dc:creator>amg</dc:creator>
				<category><![CDATA[Arvorezinha]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blol.org/?p=1498</guid>
		<description><![CDATA[Após colocar a ideia da arvorezinha, vi muitos ports a aparecerem aqui. No entanto não estão mesmo na RFC da &#8220;primeira&#8221;, pois é pedido o numero maximo de bases da arvore (ler N e ir com um for ate N). Hoje lembrei-me que ainda não colocaram aqui uma em Windows PowerShell, por isso aqui vai: [...]]]></description>
			<content:encoded><![CDATA[<p>Após colocar a ideia da arvorezinha, vi muitos ports a aparecerem aqui. No entanto não estão mesmo na RFC da &#8220;primeira&#8221;, pois é pedido o numero maximo de bases da arvore (ler N e ir com um for ate N).</p>
<p>Hoje lembrei-me que ainda não colocaram aqui uma em Windows PowerShell, por isso aqui vai:</p>
<blockquote><p># This program is free software. It comes without any warranty, to<br />
# the extent permitted by applicable law. You can redistribute it<br />
# and/or modify it under the terms of the Do What The Fuck You Want<br />
# To Public License, Version 2, as published by Sam Hocevar. See<br />
# http://sam.zoy.org/wtfpl/COPYING for more details. </p>
<p>$str = &#8220;*&#8221;<br />
$max = read-host &#8220;Num: &#8221;<br />
For ($i=1;$i -le $max;$i++)<br />
{<br />
echo $str<br />
$str += &#8220;*&#8221;<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blol.org/1498-arvorezinha-em-windows-powershell/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arvorezinha em AppleScript</title>
		<link>http://blol.org/1487-arvorezinha-em-applescript</link>
		<comments>http://blol.org/1487-arvorezinha-em-applescript#comments</comments>
		<pubDate>Tue, 10 Aug 2010 15:52:31 +0000</pubDate>
		<dc:creator>gatuno</dc:creator>
				<category><![CDATA[Arvorezinha]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[lulz]]></category>
		<category><![CDATA[applescript]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://blol.org/?p=1487</guid>
		<description><![CDATA[Boas tardes a todos, 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 é [...]]]></description>
			<content:encoded><![CDATA[<p>Boas tardes a todos,</p>
<p>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&#8230;<br />
Quem quiser faço um bundle para correr como aplicação :-)</p>
<blockquote><p>(*<br />
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE<br />
Version 2, December 2004</p>
<p>Copyright (C) 2004 Sam Hocevar</p>
<p>Everyone is permitted to copy and distribute verbatim or modified<br />
copies of this license document, and changing it is allowed as long<br />
as the name is changed.</p>
<p>DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE<br />
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</p>
<p>0. You just DO WHAT THE FUCK YOU WANT TO.</p>
<p>*)</p>
<p>set title to &#8220;\\m/ 4rV0R321NH4 4ppL3scR1p7 V1.0 H4rD3N3D \\m/&#8221;<br />
set sloc to text returned of (display dialog &#8220;How many lines?<br />
RFC is lines=5&#8243; with title title with icon 1 default answer &#8220;5&#8243; buttons {&#8220;Generate!&#8221;} default button 1)<br />
set arv to &#8220;&#8221;<br />
set j to sloc<br />
set i to 1<br />
try<br />
repeat j times<br />
repeat i times<br />
set arv to arv &amp; &#8220;*&#8221;<br />
end repeat<br />
set i to i + 1<br />
set arv to arv &amp; &#8221;<br />
&#8221;<br />
end repeat</p>
<p>display dialog arv with title title buttons {&#8220;Save the arvorezinha!&#8221;} default button 1<br />
on error<br />
display dialog &#8220;7H3R3 w42 4 3RR0r P4RS1N&#8217; 73h NUMb3R 0f l1N32. 7ry 4941n!&#8221; with title title buttons {&#8220;OK&#8221;} default button 1<br />
end try</p></blockquote>
<p>Finalmente, ao executarmos o script, de acordo com o RFC, obtemos o seguinte resultado:</p>
<p><a href="http://blol.org/wp-content/uploads/2010/08/shot.png"><img class="aligncenter size-medium wp-image-1492" src="http://blol.org/wp-content/uploads/2010/08/shot-300x148.png" alt="shot 300x148 Arvorezinha em AppleScript" width="300" height="148" title="Arvorezinha em AppleScript" /></a></p>
<p>Salvem a arvorezinha!&#8230;</p>
<p><a href="http://blol.org/wp-content/uploads/2010/08/arvorezinhaAS.tar">source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blol.org/1487-arvorezinha-em-applescript/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Maquinas Fotográficas Vintage</title>
		<link>http://blol.org/1472-maquinas-fotograficas-vintage</link>
		<comments>http://blol.org/1472-maquinas-fotograficas-vintage#comments</comments>
		<pubDate>Thu, 22 Jul 2010 23:37:57 +0000</pubDate>
		<dc:creator>falso</dc:creator>
				<category><![CDATA[Serious Business]]></category>
		<category><![CDATA[Useless]]></category>
		<category><![CDATA[lulz]]></category>

		<guid isPermaLink="false">http://blol.org/?p=1472</guid>
		<description><![CDATA[Ora viva amigalhaços! 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 Kodak Junior II por um preço mesmo bacano, o gajo la dizia que estava boa, e o rating dele era 100% então comprei logo à fome. [...]]]></description>
			<content:encoded><![CDATA[<p>Ora viva amigalhaços!<br />
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 <a href="http://www.flickr.com/photos/falso/sets/72157623508759532/">Kodak Junior II</a> por um preço mesmo bacano, o gajo la dizia que estava boa, e o rating dele era 100% então comprei logo à fome.</p>
<table width="100%">
<tr>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4395569156/" title="Pronta a disparar by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4395569156_e3c6630974.jpg" width="462" height="500" alt="Pronta a disparar" title="Maquinas Fotográficas Vintage" /></a>
</td>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4396033269/" title="Detalhe da lente by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4396033269_bcb6fa5923.jpg" width="375" height="500" alt="Detalhe da lente" title="Maquinas Fotográficas Vintage" /></a>
</td>
</tr>
</table>
<p>Quando a recebi é que descobri que havia um drama maior, esta maquina usa rolos de 620, que já não são fabricados, mas com ajuda das Internets descobri que existem os rolos de 120, mas há um pequeno problema, o &#8220;carreto&#8221; dos rolos de 120 é um bocado mais comprido e mais largo que os de 620, e não cabe na minha maquina. E de novo, Internets to the rescue, achei uns <a href="http://www.flickr.com/groups/kinaxbaby/discuss/72157622440772985/">documentos </a>a explicar que se pode limar e cortar um bocado do plástico dos rolos de 120 ate atingirem o tamanho dos clássicos de 620.<br />
Comprei então um pack de 5 rolos de 120 a PB no eBay por alta preço, pedi uma lima toda xpto a um amigo, e eu mais a minha namorada aplicamos-nos a lixar até aquilo caber na maquina.</p>
<p>Depois entretanto parti uma perna e tal, e o rolo teve mil anos na maquina, até que houve um dia que fui com uns amigos até aos Algarves, e eu mandei logo a dica que tínhamos de passar na Praínha de Alvor para tirar umas fotos, porque há uns aninhos atrás o grande Xumpi levou-me la e amei mesmo aquilo.</p>
<p>Andei lá de tripé e tal na praia a tirar fotos com esta relíquia :-P Quando voltei, pus o rolo a revelar, e DUAS SEMANAS E MEIA depois estava revelado, e o resultado foi melhor do que eu esperava! </p>
<table width="100%">
<tr>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4819313550/" title="nameNNNN-001 by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4819313550_d739efbd58.jpg" width="500" height="334" alt="nameNNNN-001" title="Maquinas Fotográficas Vintage" /></a>
</td>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4818691215/" title="nameNNNN-003 by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4818691215_9706e4f5dc.jpg" width="500" height="334" alt="nameNNNN-003" title="Maquinas Fotográficas Vintage" /></a>
</td>
</tr>
<tr>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4818692813/" title="nameNNNN-006 by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4818692813_8d526d0646.jpg" width="500" height="333" alt="nameNNNN-006" title="Maquinas Fotográficas Vintage" /></a>
</td>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4818691707/" title="nameNNNN-004 by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4818691707_093c0c44d7.jpg" width="333" height="500" alt="nameNNNN-004" title="Maquinas Fotográficas Vintage" /></a>
</td>
</tr>
</table>
<p>As fotos estão todas <a href="http://www.flickr.com/photos/falso/sets/72157624435421779/">aqui</a>.</p>
<hr />
<p>Agora há umas semanas atrás novamente no eBay vi alta SLR classica dos anos 70 fabricada na RDA, uma Praktica Super TL 1000, o preço era tão apetecível que não resisti e comprei.</p>
<p><img src="http://blol.org/wp-content/uploads/2010/07/praktica_super_TL1000.jpg" alt="praktica super TL1000 Maquinas Fotográficas Vintage" title="praktica_super_TL1000" width="536" height="425" class="alignnone size-full wp-image-1480" /></p>
<p>Esta maquina já é mais profissional, é a minha primeira SLR, e pelo que descobri um pouco tempo depois de a ter é que existem MONTES de lentes para ela, usa o tipo de rosca M42. Tem alta &#8220;light-meter&#8221; para dizer como esta o nível de luz, bem, é uma maravilha! Comprei um rolo, e nestas ferias tenho estado a tirar fotografias com ela. Revelei-as hoje, e para mim ficaram mesmo baris! Estão com alta aspecto vintage, parece que foram tiradas nos anos 70 ou 80.</p>
<table width="100%">
<tr>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4819391180/" title="prakticaNNNN-004 by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4819391180_ec95ab8eb1.jpg" width="500" height="338" alt="prakticaNNNN-004" title="Maquinas Fotográficas Vintage" /></a>
</td>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4819386490/" title="prakticaNNNN-001 by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4819386490_67e060ea48.jpg" width="500" height="338" alt="prakticaNNNN-001" title="Maquinas Fotográficas Vintage" /></a>
</td>
</tr>
<tr>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4818953481/" title="prakticaNNNN-012 by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4818953481_8a005541e0.jpg" width="500" height="338" alt="prakticaNNNN-012" title="Maquinas Fotográficas Vintage" /></a>
</td>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4819568122/" title="prakticaNNNN-021 by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4819568122_61e611ef6c.jpg" width="500" height="339" alt="prakticaNNNN-021" title="Maquinas Fotográficas Vintage" /></a>
</td>
</tr>
<tr>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4818949189/" title="prakticaNNNN-025 by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4818949189_bbba492ee6.jpg" width="338" height="500" alt="prakticaNNNN-025" title="Maquinas Fotográficas Vintage" /></a>
</td>
<td width="50%">
<a href="http://www.flickr.com/photos/falso/4819397310/" title="prakticaNNNN-008 by falso, on Flickr"><img src="http://blol.org/wp-content/uploads/HLIC/4819397310_7b4fc000f8.jpg" width="500" height="338" alt="prakticaNNNN-008" title="Maquinas Fotográficas Vintage" /></a>
</td>
</tr>
</table>
<p>As fotos estão todas <a href="http://www.flickr.com/photos/falso/sets/72157624560367688/">aqui</a>.</p>
<p>Espero que tenham curtido, fiquem bem e joguem muito!</p>
]]></content:encoded>
			<wfw:commentRss>http://blol.org/1472-maquinas-fotograficas-vintage/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Arvorezinha &#8211; OCTAVE</title>
		<link>http://blol.org/1463-arvorezinha-octave</link>
		<comments>http://blol.org/1463-arvorezinha-octave#comments</comments>
		<pubDate>Mon, 14 Jun 2010 22:04:51 +0000</pubDate>
		<dc:creator>jsaramago</dc:creator>
				<category><![CDATA[Arvorezinha]]></category>

		<guid isPermaLink="false">http://blol.org/?p=1463</guid>
		<description><![CDATA[Boas, 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. C:\Octave\3.2.4_gcc-4.4.0\bin&#62;cat arvorezinha-octave.txt for i=1:5 [...]]]></description>
			<content:encoded><![CDATA[<p>Boas,<br />
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.
</p>
<pre class="brush: plain;">
C:\Octave\3.2.4_gcc-4.4.0\bin&gt;cat arvorezinha-octave.txt
for i=1:5
	for j=1:i
		printf(&quot;*&quot;)
	endfor
	printf(&quot;\n&quot;)
endfor
C:\Octave\3.2.4_gcc-4.4.0\bin&gt;octave.exe arvorezinha-octave.txt
GNU Octave, version 3.2.4
Copyright (C) 2009 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty'.

Octave was configured for &quot;i686-pc-mingw32&quot;.

Additional information about Octave is available at http://www.octave.org.

Please contribute if you find this software useful.
For more information, visit http://www.octave.org/help-wanted.html

Report bugs to  (but first, please read
http://www.octave.org/bugs.html to learn how to write a helpful report).

For information about changes from previous versions, type `news'.

*
**
***
****
*****
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blol.org/1463-arvorezinha-octave/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arvorezinha paralela &#8211; pthreads</title>
		<link>http://blol.org/1460-arvorezinha-paralela-pthreads</link>
		<comments>http://blol.org/1460-arvorezinha-paralela-pthreads#comments</comments>
		<pubDate>Mon, 07 Jun 2010 16:12:48 +0000</pubDate>
		<dc:creator>jsaramago</dc:creator>
				<category><![CDATA[Arvorezinha]]></category>

		<guid isPermaLink="false">http://blol.org/?p=1460</guid>
		<description><![CDATA[Boas. Como meu primeiro post neste belíssimo blog decidi fazer uma arvorezinha nunca vista. Uma Arvorezinha paralela usando pthreads do C. Completamente inutil&#8230;. /* * arvorezinha_pthread.c * * Created on: 28/5/2010 * Author: João Saramago * Versão da arvorezinha paralela com pthreads */ #include &#60;pthread.h&#62; #include &#60;stdlib.h&#62; #include &#60;stdio.h&#62; #define LINHAS 5 void* arvorezinha(void* arg){ [...]]]></description>
			<content:encoded><![CDATA[<p>Boas. Como meu primeiro post neste belíssimo blog decidi fazer uma arvorezinha nunca vista. Uma Arvorezinha paralela usando pthreads do C. Completamente inutil&#8230;.</p>
<pre class="brush: cpp;">
/*
*  arvorezinha_pthread.c
*
*  Created on: 28/5/2010
*  Author: João Saramago
*  Versão da arvorezinha paralela com pthreads
*/

#include &lt;pthread.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#define LINHAS 5

void* arvorezinha(void*  arg){
	int i;
	int n=*(int*)arg;
	char* out = malloc(sizeof(char)*n+1);
	for (i = 0; i &lt;n; ++i) {
		*(out+i)='*';
	}
	*(out+i)='&#092;&#048;';
	return (void*)out;
}

int main(int argc, char **argv) {
	int i;
	pthread_t t[LINHAS];

	for(i=1;i&lt;=LINHAS;i++){
		pthread_create(&amp;t[i-1],NULL,arvorezinha,&amp;i);
	}

	for(i=0;i&lt;LINHAS;i++){
		void* out;
		pthread_join(t[i],&amp;out);
		printf(&quot;%s\n&quot;,(char*)out);
		free(out);
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blol.org/1460-arvorezinha-paralela-pthreads/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
