<?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>Marcelo Toledo &#187; Computer Science</title>
	<atom:link href="http://marcelotoledo.com/category/computer-science/feed/" rel="self" type="application/rss+xml" />
	<link>http://marcelotoledo.com</link>
	<description>startups, empreendedorismo e tecnologia</description>
	<lastBuildDate>Tue, 29 Nov 2011 18:58:57 +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>SSD, você precisa ter um!  (Parte 2 de 2)</title>
		<link>http://marcelotoledo.com/2010/07/12/ssd-voce-precisa-ter-um-parte-2-de-2/</link>
		<comments>http://marcelotoledo.com/2010/07/12/ssd-voce-precisa-ter-um-parte-2-de-2/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 15:06:46 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[hdd]]></category>
		<category><![CDATA[ssd]]></category>

		<guid isPermaLink="false">http://marcelotoledo.com/?p=729</guid>
		<description><![CDATA[Leia a primeira parte deste artigo: SSD, você precisa ter um! (Parte 1 de 2) Há quem diga que o HD se tornará obsoleto em uma década, eu penso que menos da metade é suficiente, mas uma coisa é unanime, todos sabem que é apenas uma questão de tempo até você deixar de ter um HD. Em breve você vai trocar seu computador, tradicionalmente vão te empurrar um HD, mas já existem opções com SSD, que tal saber se vale a pena ou não? SSD significa Solid-State Drive, é um dispositivo de armazenando de dados que ao contrário do HD,&#8230;]]></description>
			<content:encoded><![CDATA[<p>Leia a primeira parte deste artigo: <a href="http://marcelotoledo.com/2010/07/05/ssd-voce-precisa-ter-um/">SSD, você precisa ter um! (Parte 1 de 2)</a></p>
<p><a href="http://marcelotoledo.com/wp-content/uploads/2010/07/hdd_ssd.gif"><img class="aligncenter size-medium wp-image-730" title="hdd_ssd" src="http://marcelotoledo.com/wp-content/uploads/2010/07/hdd_ssd-300x178.gif" alt="" width="300" height="178" /></a></p>
<p>Há quem diga que o HD se tornará obsoleto em uma década, eu penso que menos da metade é suficiente, mas uma coisa é unanime, todos sabem que é apenas uma questão de tempo até você deixar de ter um HD. Em breve você vai trocar seu computador, tradicionalmente vão te empurrar um HD, mas já existem opções com SSD, que tal saber se vale a pena ou não?</p>
<p>SSD significa Solid-State Drive, é um dispositivo de armazenando de dados que ao contrário do HD, não tem discos giratórios e sem cabeças móveis, tudo é armazenado em microchips e no fim das contas, atualmente tem muito mais vantagens do que desvantagens.</p>
<p>Conforme a tecnologia foi evoluindo, todos os segmentos foram requisitando a utilização de computadores, mas os tradicionais HDs não eram boas soluções para ambientes hostis. Nunca que um HD funcionaria em um caça, ou um foguete, ou talvez até um avião para turismo, já o SSD, da um tapa na cabeça do HD e diz, deixa comigo!</p>
<p>Mas no passado o SSD tinha dois principais problemas que foram os principais contribuintes para você não ter um SSD, até hoje. O primeiro deles é o preço, SSD é caro e para contribuir, a escala de vendas sempre foi baixa, o que fez com que o preço nunca baixasse de forma alcançar o consumidor final.</p>
<p>Outro grande problema é a durabilidade, ou como chamamos tecnicamente, &#8220;Write endurance&#8221;. Todas as SSDs tem um determinado tempo de vida, que é mensurado pela quantidade de escritas. Era possível no passado acabar com um SSD em alguns minutos e isso era um dos fatores que limitava sua aplicação, já que você não podia simplesmente trocar seu HD por SSD, que em pouco tempo ela iria para o saco, de lixo.</p>
<p>Eu arrisco dizer que o primeiro lugar que você utilizou SSD foi no celular e depois do lançamento dos iPods e iPhones, graças ao Tio Steve Jobs, o problema número um esta deixando de existir, o preço alto. Ele esta vendendo tanto iPod, iPhone e iPad que esta dando uma forcinha para os preços despencarem, já que a escala de vendas de SSD esta crescendo de forma impressionante.</p>
<p>A questão de durabilidade continua existindo, mas a partir do momento que você poderia levar trinta anos para acabar com essa capacidade, isso deixa de ser um empecilho.</p>
<p>Uma das principais características de um sistema operacional (SO) moderno é a memória virtual, que para resumir, utiliza o seu HD ou SD como extensão da RAM e isso gera uma quantidade absurda de escritas, uma SSD antiga poderia ir para o lixo em pouco tempo. Com este problema resolvido, é possível substituir o HD por SSD sem preocupações e é exatamente por isso que você já consegue comprar laptops, desktops e netbooks com SSD.</p>
<p>Eu tinha um Mac Book Pro com HD, vendi e comprei um com SSD e apesar de ainda ser bastante caro, foi um dos melhores investimentos que eu fiz:</p>
<p>Vamos as vantagens:</p>
<ul>
<li>Inicia quase na metade do tempo do que um com HD.</li>
<li>Hibernar e desligar, é impressionante, praticamente imediato.</li>
<li>Qualquer operação que faz uso do SSD se torna muito mais rápida. Ex: Abrir aplicações pesadas como Photoshop, Autocad e Corel draw. Copiar arquivos. Salvar arquivos de vídeo, etc.</li>
<li>Não existem partes móveis, logo não existe barulho, SSD é extremamente silencioso.</li>
<li>Retirando o fato do write endurance, a durabilidade da SSD é infinitamente maior se comparado ao HD.</li>
<li>Resistencia a impactos, vibrações, altas temperaturas e altitude.</li>
<li>Consome muito menos energia, logo a bateria do notebook irá durar muito mais.</li>
<li>O tamanho do SSD é normalmente uma vantagem, proporcional a sua capacidade, poderia até caber dentro de um relógio.</li>
</ul>
<p>Tudo vai depender para qual fim você utiliza o seu computador, mas de maneira geral a principal vantagem do SSD é a velocidade, seu computador vai ficar muito mais rápido. Posso dizer que de uma forma que fazia tempo que eu não percebia, não voltarei mais para o HD.</p>
<p>Da próxima vez que você for comprar um computador, lembre deste artigo e do SSD.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelotoledo.com/2010/07/12/ssd-voce-precisa-ter-um-parte-2-de-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>SSD, você precisa ter um! (Parte 1 de 2)</title>
		<link>http://marcelotoledo.com/2010/07/05/ssd-voce-precisa-ter-um/</link>
		<comments>http://marcelotoledo.com/2010/07/05/ssd-voce-precisa-ter-um/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 03:33:13 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://marcelotoledo.com/?p=715</guid>
		<description><![CDATA[O primeiro computador que eu usei foi um MSX Expert DD Plus de um grande amigo. Paixão imediata quando vi aquela quantidade enorme de botões. Meu sonho a partir daquele momento era ter um computador. Não tinha ideia pra que, mas eu queria um. Depois de um tempo meu pai comprou um 386 pra casa, doce ilusão que eu deixaria alguém daquela casa tocar naquela máquina. Cliquei em todos os botões, janelas, opções, descobri praticamente todos os bugs do Windows 3. Depois veio a fase do desmanche, desmontei ele inteirinho, como se fosse um médico dissecando uma rã. Meu primeiro&#8230;]]></description>
			<content:encoded><![CDATA[<p>O primeiro computador que eu usei foi um MSX Expert DD Plus de um grande amigo. Paixão imediata quando vi aquela quantidade enorme de botões. Meu sonho a partir daquele momento era ter um computador. Não tinha ideia pra que, mas eu queria um.</p>
<p><a href="http://marcelotoledo.com/wp-content/uploads/2010/07/expert_ddplus_caixa.jpg"><img class="aligncenter size-medium wp-image-718" title="expert_ddplus_caixa" src="http://marcelotoledo.com/wp-content/uploads/2010/07/expert_ddplus_caixa-300x218.jpg" alt="" width="300" height="218" /></a></p>
<p>Depois de um tempo meu pai comprou um 386 pra casa, doce ilusão que eu deixaria alguém daquela casa tocar naquela máquina. Cliquei em todos os botões, janelas, opções, descobri praticamente todos os bugs do Windows 3. Depois veio a fase do desmanche, desmontei ele inteirinho, como se fosse um médico dissecando uma rã.</p>
<p>Meu primeiro jogo veio em um daqueles disquetes flexíveis e por incrível que pareça, não havia espaço em disco suficiente, que frustração, acho que naquela época falávamos de 40MB de disco rígido, que já era impressionantemente grande,  o preço era bem salgado também, por volta de U$2.000,00. Hoje compramos HDs de 1TB por menos de 100 dólares.</p>
<p>Muitos o chamavam naquela época de Winchester, mas o nome oficial é HDD &#8211; Hard Disk Drive, ou HD como quase todo mundo fala. Assim que meu jogo não entrou no computador, descobri que era esse maldito que não tinha tamanho suficiente. Acho que foi a partir desse momento que realmente descobri que o HD era o responsável por registrar absolutamente tudo que eu produzia ou armazenava (Documentos, músicas, fotografias, filmes, etc).</p>
<p>Acontece que o HD é um dos dispositivos mais arcaicos do computador, na minha opinião. Sendo bem superficial na explicação, um dos principais elementos do HD é um pedaço de ferro bem fino, mas pra acalmar os mais técnicos, ele é uma mídia laminada magnética, é ali que todos os seus dados ficam.</p>
<p>Essa superfície é dividida em centenas de milhares de minúsculos blocos, dentro desses blocos são armazenados os dados, é um pouco técnico, mas já te explico como.</p>
<p><a href="http://marcelotoledo.com/wp-content/uploads/2010/07/hdd.jpg"><img class="aligncenter size-medium wp-image-719" title="hdd" src="http://marcelotoledo.com/wp-content/uploads/2010/07/hdd-300x253.jpg" alt="" width="300" height="253" /></a></p>
<p>Existe um componente fundamental em um HD que é a cabeça de leitura e gravação, muitas vezes chamada de agulha. Ela é presa a um braço mecânico, que se movimenta para parte mais interior e mais exterior do disco, enquanto o disco gira desenhando movimentos de 360 graus. O giro somado ao movimento do braço, permite a cabeça correr por toda superfície do disco. Para vocês terem uma ideia, atualmente eles conseguem atingir uma velocidade média de 7mil rotações por minuto.</p>
<p>Você já percebeu que quando você faz uma cópia de um arquivo muito grande, seu computador faz mais barulho? Antigamente isso era mais audível, hoje eles estão mais silenciosos, mas isso acontece exatamente porque a cabeça esta girando enlouquecidamente, parecendo uma turbina de avião. Veja só porque:</p>
<p>A cabeça de gravação funciona exatamente como um eletroímã, porém ela tem uma precisão inacreditável, consegue gravar blocos de dados com tamanhos inferiores a um milésimo de milímetro de área.</p>
<p>Para registrar dados no disco, a cabeça se dirige até o bloco ou trilha de interesse, e pondo em prática o conceito de que os opostos se atraem, ela alterna a polaridade para organizar as moléculas de óxido de ferro, alinhando os pólos positivos com negativos e vice-versa. Dessa forma, todos os dados no HD são registrados magneticamente em polo positivo ou negativo, absolutamente tudo que esta lá é 1 (um) ou 0 (zero).</p>
<p>Você já esteve brincando com um imã e alguém lhe falou para deixa-lo longe de equipamentos eletrônicos? Outro dia um colega de trabalho, levou para a empresa um brinquedinho de imã de quase 1kg. E sabe onde ele deixou? Enfeitando a sua mesa, bem ao lado do seu Mac Book Air. Acho que ele só vai entender meu pânico depois de ler este artigo.</p>
<p>O HD tem uma proteção externa, que aguenta até uma determinada força de campo magnético, mas se for ultrapassada, ela pode alterar os dados do HD, sim. Então crianças, cuidado com os imãs próximos aos HDs.</p>
<p>Agora que eu consegui explicar o que é e como funciona um HD, deixa eu te contar um segredo. Ele vai morrer muito em breve, coitadinho.</p>
<p>Agora que vem a parte mais interessante desse artigo. Eu vou te mostrar o que já substitui o HD e te dizer todas as vantagens e desvantagens, assim a próxima vez que você for comprar um computador, saberá diferenciar um e outro.</p>
<p>Mas serei sincero, acabei de voltar lá pro início do artigo e vi que essa introdução ficou grande demais, se tornou um artigo por si só. Então faremos o seguinte, vou ficar por aqui e no próximo artigo eu continuo falando sobre o assassino do HD, o SSD &#8211; Solid-State Drive e porque ele tem que estar no seu próximo computador.</p>
<p>Leia a segunda parte deste artigo: <a href="http://marcelotoledo.com/2010/07/12/ssd-voce-precisa-ter-um-parte-2-de-2/">SSD, você precisa ter um! (Parte 2 de 2)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://marcelotoledo.com/2010/07/05/ssd-voce-precisa-ter-um/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How can someone trust IEEE?</title>
		<link>http://marcelotoledo.com/2008/12/26/how-can-someone-trust-ieee/</link>
		<comments>http://marcelotoledo.com/2008/12/26/how-can-someone-trust-ieee/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 13:36:15 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Economy]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[ieee]]></category>

		<guid isPermaLink="false">http://marcelotoledo.com/?p=325</guid>
		<description><![CDATA[&#8220;Check out the paper Towards the Simulation of E-commerce by Herbert Schlangemann, which is available in the IEEEXplor database (full article available only to IEEE members). This generated paper has been accepted with review by the 2008 International Conference on Computer Science and Software Engineering (CSSE). According to the organizers, &#8216;CSSE is one of the important conferences sponsored by IEEE Computer Society, which serves as a forum for scientists and engineers in the latest development of artificial intelligence, grid computing, computer graphics, database technology, and software engineering.&#8217; Even better, fake author Herbert Schlangemann has been selected as session chair (PDF)&#8230;]]></description>
			<content:encoded><![CDATA[<blockquote><p><em>&#8220;Check out the paper <a href="http://ieeexplore.ieee.org/search/freesrchabstract.jsp?arnumber=4723109&amp;k2dockey=4723109@ieeecnfs">Towards the Simulation of E-commerce</a> by Herbert Schlangemann, which is available in the IEEEXplor database (full article available only to IEEE members). This <a href="http://pdos.csail.mit.edu/scigen/">generated paper</a> has been accepted <em>with review</em> by the 2008 International Conference on Computer Science and Software Engineering (CSSE). According to the organizers, &#8216;CSSE is one of the important conferences sponsored by IEEE Computer Society, which serves as a forum for scientists and engineers in the latest development of artificial intelligence, grid computing, computer graphics, database technology, and software engineering.&#8217; Even better, fake author Herbert Schlangemann has been <a href="http://www.highsci.org/cite2008Submission/website/cite/download/csse2008_program.pdf">selected as session chair</a> (PDF) for that conference. (The name Schlangemann was chosen based on the short film <a href="http://en.wikipedia.org/wiki/Der_Schlangemann">Der Schlangemann</a> by Andreas Hansson and Björn Renberg.)&#8221;</em></p></blockquote>
<p>Quality is not important anymore, money is talking louder then anything, this amazing piece of software showed us, not how advanced artificial intelligence is reaching, but how stupid we are for accepting a fragile revision and acceptance system of the scientific community.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelotoledo.com/2008/12/26/how-can-someone-trust-ieee/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>All you need to know about Conectiva</title>
		<link>http://marcelotoledo.com/2008/11/14/all-you-need-to-know-about-conectiva/</link>
		<comments>http://marcelotoledo.com/2008/11/14/all-you-need-to-know-about-conectiva/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 14:12:41 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[conectiva]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[ticktack]]></category>

		<guid isPermaLink="false">http://marcelotoledo.com/?p=283</guid>
		<description><![CDATA[Yesterday in TickTack we chatted with founders and employees of Conectiva, that was acquired by Mandrake and is now Mandriva, along with me, participated in this episode, Arnaldo Carvalho de Melo, Rodrigo Stulzer, Aurélio Marinho Jargas and Elvis Pfützenreuter. Extremely interesting content, must listen! Just remember it&#8217;s in Portuguese&#8230;]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://marcelotoledo.com/wp-content/uploads/2008/11/fundadores-conectiva-circa-1995-800x600.jpg"><img class="size-medium wp-image-284 aligncenter" title="fundadores-conectiva-circa-1995-800x600" src="http://marcelotoledo.com/wp-content/uploads/2008/11/fundadores-conectiva-circa-1995-800x600-300x223.jpg" alt="" width="300" height="223" /></a></p>
<p style="text-align: left;">Yesterday in <a href="http://ticktack.com.br">TickTack</a> we chatted with founders and employees of Conectiva, that was acquired by Mandrake and is now <a href="http://www.mandriva.com">Mandriva</a>, along with me, participated in this episode, <a href="http://oops.ghostprotocols.net:81/blog/">Arnaldo Carvalho de Melo</a>, <a href="http://stulzer.net/">Rodrigo Stulzer</a>, <a href="http://aurelio.wordpress.com/">Aurélio Marinho Jargas</a> and<a href="http://www.epx.com.br/blog/"> Elvis Pfützenreuter</a>.</p>
<p style="text-align: left;">Extremely interesting content, must listen! Just remember it&#8217;s in Portuguese&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelotoledo.com/2008/11/14/all-you-need-to-know-about-conectiva/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For or While?</title>
		<link>http://marcelotoledo.com/2008/10/22/for-or-while/</link>
		<comments>http://marcelotoledo.com/2008/10/22/for-or-while/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 19:18:38 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[assembly]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[while]]></category>

		<guid isPermaLink="false">http://marcelotoledo.com/?p=260</guid>
		<description><![CDATA[Denio raised this question: &#8220;What is faster, this while or this for?&#8221; He wrote this in the blackboard: for &#40;;;&#41; &#123; &#125; while &#40;1&#41; &#123; &#125; The answer in assembly is: For: .text .globl _main _main: pushl %ebp movl %esp, %ebp subl $8, %esp L2: jmp L2 .subsections_via_symbols While: .text .globl _main _main: pushl %ebp movl %esp, %ebp subl $8, %esp L2: jmp L2 .subsections_via_symbols]]></description>
			<content:encoded><![CDATA[<p>Denio raised this question:</p>
<blockquote><p>&#8220;What is faster, this while or this for?&#8221;</p></blockquote>
<p>He wrote this in the blackboard:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">        <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">;;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>                
        <span style="color: #009900;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">        <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #009900;">&#125;</span></pre></div></div>

<p>The answer in assembly is:</p>
<p>For:</p>

<div class="wp_syntax"><div class="code"><pre class="asm" style="font-family:monospace;">	<span style="color: #339933;">.</span>text
<span style="color: #339933;">.</span>globl _main
_main<span style="color: #339933;">:</span>
	pushl	<span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span>
	movl	<span style="color: #339933;">%</span><span style="color: #00007f;">esp</span><span style="color: #339933;">,</span> <span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span>
	subl	$<span style="color: #0000ff;">8</span><span style="color: #339933;">,</span> <span style="color: #339933;">%</span><span style="color: #00007f;">esp</span>
L2<span style="color: #339933;">:</span>
	<span style="color: #00007f; font-weight: bold;">jmp</span>	L2
	<span style="color: #339933;">.</span>subsections_via_symbols</pre></div></div>

<p>While:</p>

<div class="wp_syntax"><div class="code"><pre class="asm" style="font-family:monospace;">	<span style="color: #339933;">.</span>text
<span style="color: #339933;">.</span>globl _main
_main<span style="color: #339933;">:</span>
	pushl	<span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span>
	movl	<span style="color: #339933;">%</span><span style="color: #00007f;">esp</span><span style="color: #339933;">,</span> <span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span>
	subl	$<span style="color: #0000ff;">8</span><span style="color: #339933;">,</span> <span style="color: #339933;">%</span><span style="color: #00007f;">esp</span>
L2<span style="color: #339933;">:</span>
	<span style="color: #00007f; font-weight: bold;">jmp</span>	L2
	<span style="color: #339933;">.</span>subsections_via_symbols</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://marcelotoledo.com/2008/10/22/for-or-while/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What actually 802.11r do?</title>
		<link>http://marcelotoledo.com/2008/09/04/what-actually-80211r-do/</link>
		<comments>http://marcelotoledo.com/2008/09/04/what-actually-80211r-do/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 11:36:13 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[802.11]]></category>
		<category><![CDATA[802.11r]]></category>
		<category><![CDATA[bss]]></category>
		<category><![CDATA[fast bss transition]]></category>
		<category><![CDATA[handoff]]></category>
		<category><![CDATA[roaming]]></category>

		<guid isPermaLink="false">http://marcelotoledo.com/?p=222</guid>
		<description><![CDATA[After 4 years of hard working, IEEE approved the standard 802.11r, which handles a fast BSS transition. What this means? A big wireless network, is built with a lot of access points, this means that if you would like to cover a big city, you might have thousands of access points spreaded around. This brought a new challenge to 802.11, with the introduction of applications such as voip, the transition between access points needs a very small delay, you would be amazing how annoying is to have a delay bigger then 300ms, can turn your call into something unacceptable if&#8230;]]></description>
			<content:encoded><![CDATA[<p>After 4 years of hard working, IEEE approved the standard 802.11r, which handles a fast BSS transition.</p>
<blockquote><p>What this means?</p></blockquote>
<p>A big wireless network, is built with a lot of access points, this means that if you would like to cover a big city, you might have thousands of access points spreaded around.</p>
<p>This brought a new challenge to 802.11, with the introduction of applications such as voip, the transition between access points needs a very small delay, you would be amazing how annoying is to have a delay bigger then 300ms, can turn your call into something unacceptable if you are roaming into access points too fast.</p>
<p>Of course if you are walking in this city, it will not interfere much because you are slow, but if you are inside a car, you might be changing access points every five seconds, and this is where you&#8217;ll find the big problem. We already had the possibility to roam through access points at 100ms (802.11F), but this standard was defunct in 2006 giving space for r, which can roam twice as fast, 50ms, standard for voice transition.</p>
<p>What it basically do is allowing your software client to stabilish a new access point connection before actually switching for it, with this you can do the magic of roaming almost atomic in whatever state the access point is.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelotoledo.com/2008/09/04/what-actually-80211r-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TickTack Podcast</title>
		<link>http://marcelotoledo.com/2008/07/26/ticktack-podcast/</link>
		<comments>http://marcelotoledo.com/2008/07/26/ticktack-podcast/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 03:49:14 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[ticktack]]></category>

		<guid isPermaLink="false">http://marcelotoledo.com/?p=195</guid>
		<description><![CDATA[If you can understand portuguese, there is this new podcast TickTack about technology, it still in beta, but it&#8217;s worth it.]]></description>
			<content:encoded><![CDATA[<p>If you can understand portuguese, there is this new podcast <a href="http://www.ticktack.com.br">TickTack</a> about technology, it still in beta, but it&#8217;s worth it.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelotoledo.com/2008/07/26/ticktack-podcast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Embedded Linux Conference 2008</title>
		<link>http://marcelotoledo.com/2008/05/14/embedded-linux-conference-2008/</link>
		<comments>http://marcelotoledo.com/2008/05/14/embedded-linux-conference-2008/#comments</comments>
		<pubDate>Wed, 14 May 2008 22:15:21 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://marcelotoledo.com/?p=172</guid>
		<description><![CDATA[Rafael Ugolini sent me these awesome links about Embedded Linux Conference 2008, all the videos and reports (from all years): Videos like&#8230; Keynote: The Relationship Between kernel.org Development and the Use of Linux for Embedded Applications, by Andrew Morton (Google) UME &#8211; Ubuntu Mobile and Embedded, by David Mandala (Canonical) Back-tracing in MIPS-based Linux Systems, by Jong-Sung Kim (LG Electronics) Using a JTAG for Linux Driver Debugging, by Mike Anderson (PTR Group) &#8230; Go check: Videos: http://free-electrons.com/community/videos/conferences/ Reports: http://free-electrons.com/articles/conferences/elc2008-report/]]></description>
			<content:encoded><![CDATA[<p>Rafael Ugolini sent me these awesome links about Embedded Linux Conference 2008, all the videos and reports (from all years):</p>
<p>Videos like&#8230;</p>
<blockquote><p><al></p>
<li>Keynote: The Relationship Between kernel.org Development and the Use of Linux for Embedded Applications, by Andrew Morton (Google)</li>
<li>UME &#8211; Ubuntu Mobile and Embedded, by David Mandala (Canonical)</li>
<li>Back-tracing in MIPS-based Linux Systems, by Jong-Sung Kim (LG Electronics)</li>
<li>Using a JTAG for Linux Driver Debugging, by Mike Anderson (PTR Group)</li>
<li>&#8230;</li>
<p></al>
</p></blockquote>
<p>Go check:</p>
<p><strong>Videos:</strong> <a href="http://free-electrons.com/community/videos/conferences/">http://free-electrons.com/community/videos/conferences/</a><br />
<strong>Reports:</strong> <a href="http://free-electrons.com/articles/conferences/elc2008-report/">http://free-electrons.com/articles/conferences/elc2008-report/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://marcelotoledo.com/2008/05/14/embedded-linux-conference-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Printing the binary value of an integer</title>
		<link>http://marcelotoledo.com/2008/05/13/printing-the-binary-value-of-an-integer/</link>
		<comments>http://marcelotoledo.com/2008/05/13/printing-the-binary-value-of-an-integer/#comments</comments>
		<pubDate>Wed, 14 May 2008 00:55:49 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[dec2bin]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://marcelotoledo.com/?p=171</guid>
		<description><![CDATA[You can printf an integer in many forms, including decimal, octal or hexadecimal. What about binary? This is not the first time someone asks me this, so I&#8217;ll just post it here: &#62; ./dec2bin 3 3 -&#62; 00000000000000000000000000000011 &#62; ./dec2bin 4 4 -&#62; 00000000000000000000000000000100 &#62; ./dec2bin 5 5 -&#62; 00000000000000000000000000000101 &#62; ./dec2bin 6 6 -&#62; 00000000000000000000000000000110 &#62; ./dec2bin 7 7 -&#62; 00000000000000000000000000000111 A simple solution could be the function below, note that it is limited to 32 bits: static char *dec2bin&#40;int dec&#41; &#123; char *str, *ret; int i; const int bits = 32; &#160; ret = str = malloc&#40;bits&#41;; memset&#40;str,&#8230;]]></description>
			<content:encoded><![CDATA[<p>You can printf an integer in many forms, including decimal, octal or hexadecimal. What about binary? This is not the first time someone asks me this, so I&#8217;ll just post it here:</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">&gt;  ./dec2bin 3
3 -&gt; 00000000000000000000000000000011
&gt;  ./dec2bin 4
4 -&gt; 00000000000000000000000000000100
&gt;  ./dec2bin 5
5 -&gt; 00000000000000000000000000000101
&gt;  ./dec2bin 6
6 -&gt; 00000000000000000000000000000110
&gt;  ./dec2bin 7
7 -&gt; 00000000000000000000000000000111</pre></div></div>

<p>A simple solution could be the function below, note that it is limited to 32 bits:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">static</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>dec2bin<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> dec<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
        <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>str<span style="color: #339933;">,</span> <span style="color: #339933;">*</span>ret<span style="color: #339933;">;</span>
        <span style="color: #993333;">int</span> i<span style="color: #339933;">;</span>
        <span style="color: #993333;">const</span> <span style="color: #993333;">int</span> bits <span style="color: #339933;">=</span> <span style="color: #0000dd;">32</span><span style="color: #339933;">;</span>
&nbsp;
        ret <span style="color: #339933;">=</span> str <span style="color: #339933;">=</span> malloc<span style="color: #009900;">&#40;</span>bits<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        memset<span style="color: #009900;">&#40;</span>str<span style="color: #339933;">,</span> <span style="color: #ff0000;">'0'</span><span style="color: #339933;">,</span> bits<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> bits<span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&gt;=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>dec <span style="color: #339933;">%</span> <span style="color: #0000dd;">2</span> <span style="color: #339933;">==</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span>
                        str<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'1'</span><span style="color: #339933;">;</span>
&nbsp;
                dec <span style="color: #339933;">/=</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        str<span style="color: #009900;">&#91;</span>bits<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'<span style="color: #006699; font-weight: bold;">\0</span>'</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> ret<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://marcelotoledo.com/2008/05/13/printing-the-binary-value-of-an-integer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Essential Linux Device Drivers</title>
		<link>http://marcelotoledo.com/2008/05/02/essential-linux-device-drivers/</link>
		<comments>http://marcelotoledo.com/2008/05/02/essential-linux-device-drivers/#comments</comments>
		<pubDate>Fri, 02 May 2008 14:16:44 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[device driver]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://marcelotoledo.com/?p=165</guid>
		<description><![CDATA[I was searching around amazon to see new titles and for my surprise there was this brand new book, Essential Linux Device Drivers, dated April/2008, ~750 pages, like my older post, Linux Kernel Development, and my suggestion never posted, Linux Device Drivers, will give you the best tools around to understand and work in Linux, now continuing with the description: &#8220;Probably the most wide ranging and complete Linux device driver book I’ve read.&#8221; &#8211;Alan Cox, Linux Guru and Key Kernel Developer &#8220;Very comprehensive and detailed, covering almost every single Linux device driver type.&#8221; &#8211;Theodore Ts’o, First Linux Kernel Developer in&#8230;]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://marcelotoledo.com/wp-content/uploads/2008/05/essencial_linux_device_driver.jpg"><img class="size-medium wp-image-166" title="Essencial Linux Device Drivers" src="http://marcelotoledo.com/wp-content/uploads/2008/05/essencial_linux_device_driver-226x300.jpg" alt="" width="226" height="300" /></a></p>
<p style="text-align: left;">I was searching around amazon to see new titles and for my surprise there was this brand new book, <a href="http://www.amazon.com/Essential-Drivers-Prentice-Software-Development/dp/0132396556/ref=pd_bbs_sr_2?ie=UTF8&amp;s=books&amp;qid=1209735315&amp;sr=8-2">Essential Linux Device Drivers</a>, dated April/2008, ~750 pages, like my older post, <a href="http://marcelotoledo.com/2008/02/12/linux-kernel-development/">Linux Kernel Development</a>, and my suggestion never posted, <a href="http://www.amazon.com/Linux-Device-Drivers-Jonathan-Corbet/dp/0596005903/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1209737502&amp;sr=8-1">Linux Device Drivers</a>, will give you the best tools around to understand and work in Linux, now continuing with the description:</p>
<p style="text-align: left;">&#8220;Probably the most wide ranging and complete Linux device driver book I’ve read.&#8221;<br />
&#8211;<strong>Alan Cox</strong>, Linux Guru and Key Kernel Developer</p>
<p>&#8220;Very comprehensive and detailed, covering almost every single Linux device driver type.&#8221;<br />
&#8211;<strong>Theodore Ts’o</strong>, First Linux Kernel Developer in North America and Chief Platform Strategist of the Linux Foundation</p>
<p><span id="more-165"></span></p>
<p><strong>The Most Practical Guide to Writing Linux Device Drivers</strong></p>
<p>Linux now offers an exceptionally robust environment for driver development: with today’s kernels, what once required years of development time can be accomplished in days. In this practical, example-driven book, one of the world’s most experienced Linux driver developers systematically demonstrates how to develop reliable Linux drivers for virtually any device. Essential Linux Device Drivers is for any programmer with a working knowledge of operating systems and C, including programmers who have never written drivers before. Sreekrishnan Venkateswaran focuses on the essentials, bringing together all the concepts and techniques you need, while avoiding topics that only matter in highly specialized situations. Venkateswaran begins by reviewing the Linux 2.6 kernel capabilities that are most relevant to driver developers. He introduces simple device classes; then turns to serial buses such as I2C and SPI; external buses such as PCMCIA, PCI, and USB; video, audio, block, network, and wireless device drivers; user-space drivers; and drivers for embedded Linux–one of today’s fastest growing areas of Linux development. For each, Venkateswaran explains the technology, inspects relevant kernel source files, and walks through developing a complete example.</p>
<ul>
<li>Addresses drivers discussed in no other book, including drivers for I2C, video, sound, PCMCIA, and different types of flash memory</li>
<li>Demystifies essential kernel services and facilities, including kernel threads and helper interfaces</li>
<li>Teaches polling, asynchronous notification, and I/O control</li>
<li>Introduces the Inter-Integrated Circuit Protocol for embedded Linux drivers</li>
<li>Covers multimedia device drivers using the Linux-Video subsystem and Linux-Audio framework</li>
<li>Shows how Linux implements support for wireless technologies such as Bluetooth, Infrared, WiFi, and cellular networking</li>
<li>Describes the entire driver development lifecycle, through debugging and maintenance</li>
<li>Includes reference appendixes covering Linux assembly, BIOS calls, and Seq files</li>
</ul>
<p><strong>About the Author</strong></p>
<p><strong>Sreekrishnan Venkateswaran</strong> has spent more than a decade working in IBM product development laboratories. He has ported Linux to devices ranging from wristwatches and music players to PDAs, VoIP phones, and even pacemaker programmers. He was a Contributing Editor and kernel columnist for Linux Magazine for more than two years.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelotoledo.com/2008/05/02/essential-linux-device-drivers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Database Caching 1/49 queries in 0.023 seconds using disk: basic
Object Caching 688/809 objects using disk: basic

Served from: marcelotoledo.com @ 2012-02-07 18:12:25 -->
