<?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>Leandro A. F. Pereira</title>
	<atom:link href="http://labs.hardinfo.org/mindcrisis/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.hardinfo.org/mindcrisis</link>
	<description>geek em treinamento</description>
	<lastBuildDate>Sat, 29 Oct 2011 11:26:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Arduino no LHC: parte 2</title>
		<link>http://labs.hardinfo.org/mindcrisis/2011/10/28/arduino-no-lhc-parte-2/</link>
		<comments>http://labs.hardinfo.org/mindcrisis/2011/10/28/arduino-no-lhc-parte-2/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 10:00:54 +0000</pubDate>
		<dc:creator>acidx</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[lhc]]></category>

		<guid isPermaLink="false">http://labs.hardinfo.org/mindcrisis/?p=459</guid>
		<description><![CDATA[Na última quarta feira ocorreu a segunda noite de introdução ao Arduino no LHC. Além de pizza grátis, quem participou teve a oportunidade de aprender sobre o funcionamento básico do Arduino: as funções setup() e loop(), I/O analógico e digital, delays, e até mesmo implementação de um protocolo serial via software. As brincadeiras com I/O [...]]]></description>
			<content:encoded><![CDATA[<p>Na última quarta feira ocorreu a segunda noite de <a href="http://lhc.net.br/IntroducaoArduino">introdução ao Arduino</a> no <a href="http://lhc.net.br">LHC</a>. Além de pizza grátis, quem participou teve a oportunidade de aprender sobre o funcionamento básico do Arduino: as funções setup() e loop(), I/O analógico e digital, delays, e até mesmo implementação de um protocolo serial via software.</p>
<p><a href="http://labs.hardinfo.org/mindcrisis/wp-content/uploads/2011/10/osram-display.jpg"><img class="aligncenter" title="osram-display" src="http://labs.hardinfo.org/mindcrisis/wp-content/uploads/2011/10/osram-display-300x223.jpg" alt="" width="300" height="223" /></a></p>
<p>As brincadeiras com I/O giraram ao redor de oito LEDs conectados em uma <a href="http://en.wikipedia.org/wiki/Solderless_breadboard">protoboard</a> e aos pinos de I/O 0-7 de um Seeeduino. Um trimpot atuando como <a href="http://en.wikipedia.org/wiki/Voltage_divider">divisor de tensão</a> foi usado na entrada analógica 0 para controlar a velocidade de marcha dos LEDs ou escolher qual LED acender, de acordo com o valor lido pelo conversor analógico-digital.</p>
<p>A <a href="https://gist.github.com/1021747">implementação do protocolo serial via software</a>, usando técnica de <a href="http://en.wikipedia.org/wiki/Bitbang">bitbanging</a>, foi feita para interfacear um módulo de display da OSRAM, o <a href="http://www.digchip.com/data/629/629-00978-0-SCDQ5541P.pdf">SCDQ5541</a>.</p>
<p>No próximo encontro, devemos brincar com registradores de deslocamento ou <a href="http://en.wikipedia.org/wiki/Charlieplexing">charlieplexing</a>, para acender uma quantidade maior de LEDs, afim de construir um <a href="http://www.youtube.com/watch?v=6mXM-oGggrM">cubo</a>.<a href="http://labs.hardinfo.org/mindcrisis/wp-content/uploads/2011/10/osram-display.jpg"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.hardinfo.org/mindcrisis/2011/10/28/arduino-no-lhc-parte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Radioamadorismo no LHC</title>
		<link>http://labs.hardinfo.org/mindcrisis/2011/10/23/radioamadorismo-no-lhc/</link>
		<comments>http://labs.hardinfo.org/mindcrisis/2011/10/23/radioamadorismo-no-lhc/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 16:07:03 +0000</pubDate>
		<dc:creator>acidx</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[lhc]]></category>

		<guid isPermaLink="false">http://labs.hardinfo.org/mindcrisis/?p=454</guid>
		<description><![CDATA[No dia 20 de Outubro, ocorreu a primeira noite do radioamadorismo no Laboratório Hacker de Campinas (LHC). A idéia dessas noites é reunir pessoas interessadas em aprender sobre o assunto e fazer experimentos com rádio. O Juba trouxe (e deixou no LHC) um transceptor de rádio amador, com antena dipolo e caixa acústica. Conseguimos captar, mesmo [...]]]></description>
			<content:encoded><![CDATA[<p>No dia 20 de Outubro, ocorreu a primeira noite do radioamadorismo no <a href="http://lhc.net.br">Laboratório Hacker de Campinas</a> (LHC). A idéia dessas noites é reunir pessoas interessadas em aprender sobre o assunto e fazer experimentos com rádio.</p>
<p>O Juba trouxe (e deixou no LHC) um transceptor de rádio amador, com antena dipolo e caixa acústica. Conseguimos captar, mesmo com uma instalação precária da antena nas grades da janela, sinais de outros países (ou pelo menos em outros idiomas, como Chinês, Russo e Espanhol), e algumas transmissões nacionais também.</p>
<p>Além disso, brincamos com uma <a href="http://www.ettus.com/products">USRP</a>, que é basicamente uma interface para receber o sinal analógico do rádio e transmití-lo pela USB para processamento em software pelo <a href="http://gnuradio.org/">GNU Radio</a>. Rodamos alguns dos exemplos do GNU Radio e conseguimos sintonizar rádios FM comerciais e ver o sinal de walkie talkies <a href="http://en.wikipedia.org/wiki/General_Mobile_Radio_Service">GMRS</a> (deu pra ver a portadora do sinal e as distorções que acontecem depois da demodulação, mas não conseguimos de fato ouvir a voz).</p>
<p>No próximo encontro, devemos fazer uma instalação melhor da antena e começar a preparar o material para conseguir a licença de estação para a Anatel. O Juba já tem licença de radioamador e eu pretendo conseguir uma também.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.hardinfo.org/mindcrisis/2011/10/23/radioamadorismo-no-lhc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebKit EFL updates</title>
		<link>http://labs.hardinfo.org/mindcrisis/2011/09/02/webkit-efl-updates/</link>
		<comments>http://labs.hardinfo.org/mindcrisis/2011/09/02/webkit-efl-updates/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 15:01:37 +0000</pubDate>
		<dc:creator>acidx</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[profusion]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://labs.hardinfo.org/mindcrisis/?p=442</guid>
		<description><![CDATA[After a marathon to build WebKit EFL on a Pandaboard (setting up a reliable cross-compilation environment would take more time than I had at hand), I was able to test how WebKit EFL behaved on ARM. At least the ARMv7, little-endian, kind of RISC. The results were unsurprisingly similar to x86: 92% of the tests [...]]]></description>
			<content:encoded><![CDATA[<p>After a marathon to build WebKit EFL on a Pandaboard (setting up a reliable cross-compilation environment would take more time than I had at hand), I was able to test how WebKit EFL behaved on ARM. At least the ARMv7, little-endian, kind of RISC.</p>
<p>The results were unsurprisingly similar to x86: 92% of the tests are passing. Given that libraries differ in version from the ones I have on my development machine, and that the baselines were not readjusted to match the different environment, it is a pretty decent score. Environment discrepancies aside, there were some real failures as far as I can tell &#8212; some of them are already fixed and should hit upstream soon.</p>
<p>Also of note: by using a similar approach to obtain the text baselines, more than 5200 pixel test baselines were created. After a couple of bug fixes, results remained with 95% acceptance.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.hardinfo.org/mindcrisis/2011/09/02/webkit-efl-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>State of WebKitEFL</title>
		<link>http://labs.hardinfo.org/mindcrisis/2011/08/04/state-of-webkitefl/</link>
		<comments>http://labs.hardinfo.org/mindcrisis/2011/08/04/state-of-webkitefl/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 21:04:30 +0000</pubDate>
		<dc:creator>acidx</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[profusion]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://labs.hardinfo.org/mindcrisis/?p=436</guid>
		<description><![CDATA[WebKitEFL has gone a long way since it was upstreamed a year ago. Recently, we&#8217;ve been hard at work to implement the much needed testing infrastructure to not only help fix and identify bugs, but also to ensure that fixed things won&#8217;t break in the future. This infrastructure is implemented by all major ports, like [...]]]></description>
			<content:encoded><![CDATA[<p>WebKitEFL has gone a long way since it was upstreamed a year ago.</p>
<p>Recently, we&#8217;ve been hard at work to implement the much needed testing infrastructure to not only help fix and identify bugs, but also to ensure that fixed things won&#8217;t break in the future. This infrastructure is implemented by all major ports, like the Mac port, all the Chromium ports, the GTK and Qt ports, etc, and is comprised of a port-specific part, and a port-independent part.</p>
<p>The independent parts are scripts that gathers the (currently) 20000+ tests and feeds them to the port-specific parts, to compare with outputs generated previously with the same tools.</p>
<p>Since some things depends heavily on how a certain platform behaves &#8212; font hinting, for example, is largely dependent on the platform &#8212; baselines are provided for each platform, in addition to &#8220;generic&#8221; baselines for some tests. This is one of the reasons the WebKit repository is so large: the LayoutTests directory weighs about 1.4GB of tests and baselines for all the ports.</p>
<p>The platform-dependent part has been implemented and is in the process of being upstreamed. It is comprised of two tools, basically:</p>
<ul>
<li>DumpRenderTree, which, as the name says, dumps a textual representation of all the objects that will be used to render the web page &#8212; it performs a little more than that, of course, so that the output is in a known state before dumping the output;</li>
<li>ImageDiff, which compares two images and, if a significant difference is found, outputs the percentage of pixels that changed and a third image that highlights the regions of change.</li>
</ul>
<p>With these tools alone, and without any EFL-specific baselines, the port manages to get about 72% of acceptance. Given that most web pages renders perfectly under WebKitEFL, this score can be improved. However, as stated, there are <strong>a lot</strong> of tests, and manually checking each one would be very impractical and time consuming.</p>
<p>By writing a script that would compare the textual output of our DumpRenderTree with the baselines for other ports &#8212; and consider the output of the EFL port correct if within certain thresholds, the <strong>acceptance went up to 95%</strong>, which is pretty satisfactory.</p>
<p>There are still 5% of tests that are not passing,  either because of an unimplemented feature being tested (in which case, the test is temporarily skipped), or because some more deep debugging is required to improve the score. There are the occasional crashers as well, usually after merges with upstream.</p>
<p>The next step is to set up a bot that will periodically execute these tests and warn for potential breaks or changes of behavior.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.hardinfo.org/mindcrisis/2011/08/04/state-of-webkitefl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simulador de Pense Bem</title>
		<link>http://labs.hardinfo.org/mindcrisis/2011/07/18/simulador-de-pense-bem/</link>
		<comments>http://labs.hardinfo.org/mindcrisis/2011/07/18/simulador-de-pense-bem/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 02:15:53 +0000</pubDate>
		<dc:creator>acidx</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[emulador]]></category>
		<category><![CDATA[pense-bem]]></category>
		<category><![CDATA[projeto-pessoal]]></category>
		<category><![CDATA[simulador]]></category>

		<guid isPermaLink="false">http://labs.hardinfo.org/mindcrisis/?p=428</guid>
		<description><![CDATA[Enrolo há alguns anos para começar a fazer um emulador. Já escrevi máquinas virtuais, mas sem nenhum compromisso de compatibilidade com algum código já existente: sempre que desenvolvi a máquina virtual, desenvolvi todo o resto para acompanhá-la. Existem questões bem mais complicadas que devem ser levadas em consideração no desenvolvimento de um emulador, e é [...]]]></description>
			<content:encoded><![CDATA[<p>Enrolo há alguns anos para começar a fazer um emulador. Já escrevi máquinas virtuais, mas sem nenhum compromisso de compatibilidade com algum código já existente: sempre que desenvolvi a máquina virtual, desenvolvi todo o resto para acompanhá-la. Existem questões bem mais complicadas que devem ser levadas em consideração no desenvolvimento de um emulador, e é por isso que tenho vontade de escrever um.</p>
<p>Infelizmente, a maioria dos sitemas de 8- e 16-bit (que devem ser mais triviais para emular) já possuem emuladores escritos. Posso aprender bastante lendo o código deles (muitos são open source), mas não é a mesma coisa. Eu acredito na reinvenção da roda para aprender &#8212; tenho gostado dos resultados obtidos nos últimos anos com essa prática e quero continuar, portanto.</p>
<p>São várias as coisas que pretendo escrever um dia &#8212; e as idéias geralmente ficam dormentes até que uma oportunidade apareça. Outro dia, frequentando o <a href="http://garoa.net.br">Garoa</a>, foi levantada a hipótese da emulação do Pense Bem. Para quem não sabe ou não lembra, o Pense Bem foi um brinquedo fabricado no Brasil no começo da década de 90, com algumas atividades pré-programadas e um mecanismo engenhoso de expansão baseado em livros de atividades, com perguntas sobre vários assuntos e respostas de múltipla escolha.</p>
<p>Procurando na Internet informações sobre o brinquedo, acabei encontrando um <a href="http://www.pakequis.com.br/2010/01/por-dentro-do-pense-bem-da-tectoy.html">blog post onde o autor dissecava o Pense Bem e mostrava a placa de circuito impresso</a>, dentre outras coisas. Algumas dessas foram comentários do Felipe Sanches, que já tinha tido a idéia de fazer um emulador antes mas tinha esbarrado no mesmo problema que esbarrei: conseguir a ROM original para emular.</p>
<p>O microcontrolador do Pense Bem &#8212; um <a href="http://en.wikipedia.org/wiki/Zilog_Z8">Z8 da Zilog</a> &#8212; usa <a href="http://en.wikipedia.org/wiki/Mask_ROM">mask ROM</a>. Isso significa que a Tectoy (ou a Video Technologies, não sei bem ao certo) encomendou grandes quantidades para a Zilog, fornecendo o arquivo binário para a programação do microcontrolador. O código é gravado na fábrica &#8212; não há EEPROM para ler. A única maneira de obter esta ROM seria dissolvendo o encapsulamento de epoxy com ácido nítrico (ou outro ácido forte) e examinar a pastilha sob as lentes de um bom microscópio. Opção perigosa: ácido altamente corrosivo e fumaça cancerígena. Descartada temporariamente. De volta para a prancheta.</p>
<p>Conversando com o Felipe, ele me passou um patch para um esqueleto de um emulador, baseado no código do <a href="http://www.mess.org/">MESS</a>, que já tem um emulador de Z8. Infelizmente esse pedaço de código seria inútil sem a ROM para emular, e sem a ROM original, acabamos tendo a idéia de fazer a ROM nós mesmos, em assembly de Z8, e escrever um emulador capaz de executá-la.</p>
<p>Embora eu goste de programar em assembly diretamente, sei que isto é um bocado trabalhoso. Portanto, começamos a desenvolver um protótipo em uma linguagem de alto nível. O Felipe já tinha escrito um simulador de mini-game antes, usando JavaScript e SVG. Ele conhece bastante de SVG, afinal é um dos desenvolvedores do Inkscape. Desmontamos um Pense Bem que comprei no Mercado Livre, aproveitamos para mapear um monte de coisa que seria útil para a ROM (matriz do teclado, display, utilização dos pinos do microcontrolador, etc.), fotografamos o que conseguimos e partimos para o desenvolvimento do protótipo da ROM substituta, em JavaScript e SVG.</p>
<p><a href="http://labs.hardinfo.org/mindcrisis/wp-content/uploads/2011/07/pense-bem.png"><img title="pense bem" src="http://labs.hardinfo.org/mindcrisis/wp-content/uploads/2011/07/pense-bem-300x269.png" alt="" width="300" height="269" align="right" /></a>Em alguns dias, tínhamos um protótipo funcional. Nem todos os modos estavam implementados, mas já tínhamos som (primeira vez, inclusive, que gerei som em software e entendi o que eu fiz! hooray!), display, e teclado funcionais. Usando o algoritmo de escolha de resposta de livros que o <a href="https://github.com/ehabkost/pensebem">Eduardo Habkost encontrou alguns anos atrás</a>, foi possível também implementar a funcionalidade de livros (que é o que as pessoas mais lembram); infelizmente, a implementação atual não consegue responder corretamente nenhuma pergunta de número maior que 16. Mas já é alguma coisa.</p>
<p>Faltam alguns detalhes para terminar o protótipo, <a href="http://labs.hardinfo.org/pb">mas já é possível usá-lo como um simulador, disponível aqui</a>. Todo o <a href="https://github.com/lpereira/Pense-Bem">código fonte está disponível</a> sob a <a href="http://en.wikipedia.org/wiki/Beerware">Beerware License</a> (basicamente: faça o que bem entender, contanto que mantenha os créditos; se um dia topar com a gente e achar que o simulador vale alguma coisa, não vamos recusar uma gelada) no Github.</p>
<p>Enfim &#8212; ainda falta muito para que isso vire, de fato, um emulador. Não sei ao certo se ainda terei vontade de fazer um emulador de Pense Bem, ou se irei procurar alguma outra coisa não emulada por aí. Só sei que reinventar a roda para reinventar a roda valeu muito a pena.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.hardinfo.org/mindcrisis/2011/07/18/simulador-de-pense-bem/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FINF: FINF Is Not FORTH</title>
		<link>http://labs.hardinfo.org/mindcrisis/2011/02/26/finf-finf-is-not-forth/</link>
		<comments>http://labs.hardinfo.org/mindcrisis/2011/02/26/finf-finf-is-not-forth/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 22:26:02 +0000</pubDate>
		<dc:creator>acidx</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[forth]]></category>

		<guid isPermaLink="false">http://labs.hardinfo.org/mindcrisis/?p=421</guid>
		<description><![CDATA[On my vacations last year I was using a computer without a compiler. Intentionally. Unfortunately, the plan to not program for a month didn&#8217;t work: I&#8217;ve found one of my Arduino boards and decided to play with it a little. Without any components or shields nearby, I was limited on what I could do. I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>On my vacations last year I was using a computer without a compiler. Intentionally. Unfortunately, the plan to not program for a month didn&#8217;t work: I&#8217;ve found one of my <a href="http://arduino.cc/en/">Arduino</a> boards and decided to play with it a little. Without any components or shields nearby, I was limited on what I could do.</p>
<p>I&#8217;ve decided, then, to write yet another <a href="http://en.wikipedia.org/wiki/FORTH">FORTH</a> implementation. FORTH is simple enough that you can bootstrap it quite quickly &#8212; however, generating native code wasn&#8217;t  an option because the Arduino bootloader forbids messing with the program memory (Arduino uses a ATMega, which uses the <a href="http://en.wikipedia.org/wiki/Harvard_architecture">Harvard architecture</a> &#8212; which separates instructions and data &#8212; in contrast with the <a href="http://en.wikipedia.org/wiki/Von_Neumann_architecture">von Neumann</a> architecture used on common computer hardware, where instructions and data are treated like equal citizens). Without my AVR programmer to change the bootloader, I decided to write a simple virtual machine. This is easy for FORTH, as implementing a stack machine is pretty straightforward, even when you&#8217;re writing something to run on a 16MHz RISC microcontroller with 1KiB of RAM.</p>
<p>My earlier FORTH-like language was called FINF, meaning FINF Is Not FORTH. This is because most things that makes FORTH a great language (like the ability to extend the compiler with your program) wasn&#8217;t implemented. I decided to go through this route this time, too, as I already had the experience &#8212; and then extend it later when I were up to the challenge</p>
<p>Even with these simplifications, memory was an issue. By default, avr-gcc stores all string both on program and data memories (it generates code to copy them from program memory to code memory); this is needed because program data can&#8217;t be accessed directly. However, this uses up precious SRAM. Earlier versions of FINF had only about 68 bytes free because of this. So, after a little research, I found the <a href="http://www.nongnu.org/avr-libc/user-manual/group__avr__pgmspace.html">pgmspace.h</a> header file (included with avr-libc and thus available on the Arduino), which lets you easily cast memory and offers some other macros and functions to work with things from program memory. This saved a lot of memory. Also, Arduino&#8217;s Serial module reserves 128 bytes of RAM (!) for the serial buffer; changed that to 16bytes. With these plus some other minor changes, I got almost half of the SRAM for the environment to use, and FINF was way more stable and wouldn&#8217;t crash after defining more than a dozen of words.</p>
<p>I&#8217;ve then implemented a simple interface using <a href="http://en.wikipedia.org/wiki/ANSI_escape_code">ANSI escape sequences</a> to get colored output and basic terminal editing shortcuts (deleting words, clearing the screen, interrupting the current line, etc), which used a bit of memory for line buffers. With these, I&#8217;ve increased the virtual machine maximum program size and got about 300bytes free. Which is, beliveve it or not, plenty for some light hacking.</p>
<p>So, after some days of alternating between FINF and playing <a href="http://en.wikipedia.org/wiki/Fallout:_New_Vegas">Fallout: New Vegas</a> (more playing than hacking; vacations, after all), I could write the most amazing <a href="http://www.arduino.cc/en/Tutorial/Blink">LED blinker</a> ever known to man:</p>
<p><img class="aligncenter" title="Blinking LEDs" src="https://assets0.github.com/img/7eb04081607b2f533706386a76527c7f71fc475c?repo=&amp;url=http://i.imgur.com/TorgV.png&amp;path=" alt="" width="585" height="642" />Source is available on my <a href="https://github.com/lpereira/finf">Github</a>. Clone it and enjoy &#8212; and send me patches <img src='http://labs.hardinfo.org/mindcrisis/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://labs.hardinfo.org/mindcrisis/2011/02/26/finf-finf-is-not-forth/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>EWebKit snapshots</title>
		<link>http://labs.hardinfo.org/mindcrisis/2010/11/09/ewebkit-snapshots/</link>
		<comments>http://labs.hardinfo.org/mindcrisis/2010/11/09/ewebkit-snapshots/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 20:47:15 +0000</pubDate>
		<dc:creator>acidx</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[profusion]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://labs.hardinfo.org/mindcrisis/?p=416</guid>
		<description><![CDATA[For the last few weeks, I&#8217;ve been making snapshots tarballs of EWebKit and making them available here. They&#8217;re roughly 12MB in size, and ought to be easier on the bandwidth for those only wanting to try it out (or perhaps to run Eve). They&#8217;re tested and should build nicely &#8212; YMMV though, since there are [...]]]></description>
			<content:encoded><![CDATA[<p>For the last few weeks, I&#8217;ve been making snapshots tarballs of EWebKit and <a href="http://packages.profusion.mobi/webkit-efl/">making them available here</a>. They&#8217;re roughly 12MB in size, and ought to be easier on the bandwidth for those only wanting to try it out (or perhaps to run Eve). They&#8217;re tested and should build nicely &#8212; YMMV though, since there are some compiler/libraries configurations that just won&#8217;t work.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.hardinfo.org/mindcrisis/2010/11/09/ewebkit-snapshots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitoring the buildbot</title>
		<link>http://labs.hardinfo.org/mindcrisis/2010/11/03/monitoring-the-buildbot/</link>
		<comments>http://labs.hardinfo.org/mindcrisis/2010/11/03/monitoring-the-buildbot/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 20:40:06 +0000</pubDate>
		<dc:creator>acidx</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[profusion]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://labs.hardinfo.org/mindcrisis/?p=410</guid>
		<description><![CDATA[Last post I discussed about the webkit Buildbot I&#8217;ve set up. As nice as this is, simply setting up a buildbot won&#8217;t help much: things will break and won&#8217;t get noticed. Using ideas found scattered over the web, such as Github&#8217;s build indicator light, I&#8217;ve cooked my own buildbot monitor using a mail indicator bought [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://labs.hardinfo.org/mindcrisis/wp-content/uploads/2010/11/cropped03112010143.jpg"></a><a href="http://labs.hardinfo.org/mindcrisis/wp-content/uploads/2010/11/cropped03112010143.jpg"><img class="alignright" title="cropped03112010143" src="http://labs.hardinfo.org/mindcrisis/wp-content/uploads/2010/11/cropped03112010143-150x150.jpg" alt="" width="150" height="150" align="right" /></a>Last post I discussed about the webkit Buildbot I&#8217;ve set up. As nice as this is, simply setting up a buildbot won&#8217;t help much: things will break and won&#8217;t get noticed.</p>
<p>Using ideas found scattered over the web, such as <a href="https://github.com/blog/653-our-new-build-status-indicator">Github&#8217;s build indicator light</a>, I&#8217;ve cooked my own buildbot monitor using a mail indicator bought from a Chinese store (which is really just a RGB LED with an USB interface). A simple <a href="http://python.org">Python</a> script polls the buildbot status page every 15 minutes and changes the LED color to be either green or red, depending on the build status. Click on the photo for a full-sized version.</p>
<p>Why use something like this instead of a notification area icon, you ask? Well, this looks way nicer and displays the status even when my screen is locked and I&#8217;m away from my computer. <img src='http://labs.hardinfo.org/mindcrisis/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://labs.hardinfo.org/mindcrisis/2010/11/03/monitoring-the-buildbot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebKit EFL automated build test</title>
		<link>http://labs.hardinfo.org/mindcrisis/2010/10/15/webkit-efl-automated-build-test/</link>
		<comments>http://labs.hardinfo.org/mindcrisis/2010/10/15/webkit-efl-automated-build-test/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 21:53:09 +0000</pubDate>
		<dc:creator>acidx</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[profusion]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://labs.hardinfo.org/mindcrisis/?p=408</guid>
		<description><![CDATA[The past two weeks I&#8217;ve been working to set up both a Buildbot and an Early Warning System (EWS) for the EFL port of WebKit. This is an important landmark: with this there will be less build breakage happening, which happens quite often because WebKit is a moving target: things are being added, refactored, otherwise [...]]]></description>
			<content:encoded><![CDATA[<p>The past two weeks I&#8217;ve been working to set up both a <a href="http://buildbot.net">Buildbot</a> and an Early Warning System (EWS) for the EFL port of WebKit. This is an important landmark: with this there will be less build breakage happening, which happens quite often because WebKit is a moving target: things are being added, refactored, otherwise improved, and without automated tests other developers can&#8217;t see if their changes will work on all ports.</p>
<p>For those unfamiliar with this kind of stuff: the EWS bot will download every single patch submitted to WebKit&#8217;s Bugzilla, apply it with a clean tree, and then build the port. If the patch couldn&#8217;t be applied, or the build fails, a red bubble shows up in Bugzilla right beside the patch to warn the submitter that there might be a problem with it &#8212; clicking this bubble gives the build-webkit script output to give a clue of what happened.</p>
<p>The Buildbot does roughly the same thing as the EWS, with the exception of only running patches that actually went to the repository. Because of this, it performs incremental builds: there is no need to clean the build directory, so each build cycle is pretty fast: if no files relevant to the EFL port has been touched, a cycle will take about 30s, way faster than the 15minutes of each EWS cycle.</p>
<p>Both bots are being run on CPU time donated by Samsung Electronics. Currently there is only one machine running both bots, but more will be added soon.</p>
<p>Last, but not least: with the help of Buildbot, we know which revision is building or not, so expect <a href="http://packages.profusion.mobi/webkit-efl">weekly snapshots of WebKit EFL</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.hardinfo.org/mindcrisis/2010/10/15/webkit-efl-automated-build-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Picolé: get it while it is cold</title>
		<link>http://labs.hardinfo.org/mindcrisis/2010/10/06/picole-get-it-while-it-is-cold/</link>
		<comments>http://labs.hardinfo.org/mindcrisis/2010/10/06/picole-get-it-while-it-is-cold/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 17:39:10 +0000</pubDate>
		<dc:creator>acidx</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[picolé]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://labs.hardinfo.org/mindcrisis/?p=404</guid>
		<description><![CDATA[Some time ago I&#8217;ve blogged about Picolé, the Icecream monitor I wrote. On that blog post, I said I would soon release the source code. It took me a while to figure out a solution to a problem I was having (as this is a spare time project and I&#8217;ve been pretty busy lately) with [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago I&#8217;ve blogged about <a href="http://labs.hardinfo.org/mindcrisis/2010/05/03/picole/">Picolé</a>, the <a href="en.opensuse.org/Icecream">Icecream</a> monitor I wrote. On that blog post, I said I would soon release the source code. It took me a while to figure out a solution to a problem I was having (as this is a spare time project and I&#8217;ve been pretty busy lately) with stability. The server is now running here on <a href="http://profusion.mobi">ProFUSION</a> with more than one month of uptime, so I guess it is pretty stable for something hacked quickly like this.</p>
<p>Without further ado, the source code (and other information) is <a href="http://people.profusion.mobi/~leandro/picole/">available on its official web site</a>. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.hardinfo.org/mindcrisis/2010/10/06/picole-get-it-while-it-is-cold/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.799 seconds -->
<!-- Cached page served by WP-Cache -->

