<?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>bugflux.org &#187; pt</title>
	<atom:link href="http://bugflux.org/category/blog/pt/feed/" rel="self" type="application/rss+xml" />
	<link>http://bugflux.org</link>
	<description>André Prata, nDray</description>
	<lastBuildDate>Fri, 16 Sep 2011 07:54:03 +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>o sonho premiano</title>
		<link>http://bugflux.org/blog/1408:o-sonho-premiano/</link>
		<comments>http://bugflux.org/blog/1408:o-sonho-premiano/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 17:47:05 +0000</pubDate>
		<dc:creator>nDray</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[pt]]></category>
		<category><![CDATA[economy]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[society]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://bugflux.org/?p=1408</guid>
		<description><![CDATA[é cada vez mais comum ver pelo mercado fora promessas de grandes aplicações e inovações com a realização de concursos. basicamente a ideia é uma samsung, por exemplo, lançar um desafio de desenvolvimento de algo inovador contra a possibilidade de &#8230; <a href="http://bugflux.org/blog/1408:o-sonho-premiano/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>é cada vez mais comum ver pelo mercado fora promessas de grandes aplicações e inovações com a realização de concursos. basicamente a ideia é uma samsung, por exemplo, lançar um <a title="samsung smart tv challenge" href="http://www.samsungsmarttvchallenge.eu/" target="_blank">desafio de desenvolvimento de algo inovador</a> contra a possibilidade de ganhar um prémio de algumas centenas de milhar de euros. geralmente todas as candidaturas estão sujeitas a regras, de entre as quais o facto de a empresa ficar com os direitos sobre a aplicação, ou obrigar a que seja livre.</p>
<p>para o público isto é óptimo. é a garantia de que certamente surgirá algo novo, bom, e ilusão de que o prémio está ao alcance de todos. isto é o sonho americano. a falsa promessa das políticas de direita e do esforço pessoal em vista de um futuro bom. o problema é que estamos perante um ídolos. o sonho não está ao alcance de todos, apenas de um. no entanto todos os outros se esforçaram e devotaram o mesmo tempo e dedicação, apenas não tiveram sorte, e ficaram na miséria.</p>
<p>não está à vista?</p>
]]></content:encoded>
			<wfw:commentRss>http://bugflux.org/blog/1408:o-sonho-premiano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>comment</title>
		<link>http://bugflux.org/blog/1400:comment/</link>
		<comments>http://bugflux.org/blog/1400:comment/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 22:22:37 +0000</pubDate>
		<dc:creator>nDray</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[pt]]></category>
		<category><![CDATA[economy]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://bugflux.org/?p=1400</guid>
		<description><![CDATA[só porque não tenho nada que fazer, e me lembrei de rever esta tendência, e como se acentuou&#8230; =)]]></description>
			<content:encoded><![CDATA[<p>só porque não tenho nada que fazer, e me lembrei de rever esta tendência, e como se acentuou&#8230; =)</p>
<p><a href="http://bugflux.org/wp/wp-content/uploads/2010/10/rapid.png"><img class="aligncenter size-full wp-image-1401" title="rapid" src="http://bugflux.org/wp/wp-content/uploads/2010/10/rapid.png" alt="" width="592" height="222" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://bugflux.org/blog/1400:comment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>no ar</title>
		<link>http://bugflux.org/blog/1389:no-ar/</link>
		<comments>http://bugflux.org/blog/1389:no-ar/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 20:28:40 +0000</pubDate>
		<dc:creator>nDray</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[pt]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[society]]></category>

		<guid isPermaLink="false">http://bugflux.org/?p=1389</guid>
		<description><![CDATA[algo que ficou por expandir no último post, e algo de interesse para quem gostou desta performance do derren, especialmente a adivinhação do nome do primeiro namorado da rapariga. para ele adivinhar só nos ocorrem 2 coisas: ou ele já &#8230; <a href="http://bugflux.org/blog/1389:no-ar/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>algo que ficou por expandir no <a title="depois da vida @ bugflux.org" href="/?p=1337" target="_self">último post</a>, e algo de interesse para quem gostou desta <a title="derren brown - lying game @ youtube.com" href="http://www.youtube.com/watch?v=LWtr-0QKnhc" target="_self">performance</a> do derren, especialmente a adivinhação do nome do primeiro namorado da rapariga. para ele adivinhar só nos ocorrem 2 coisas: ou ele já sabia, ou a rapariga é actriz e foi paga para dizer &#8220;price&#8221;. nenhum dos dois! ele não sabia, e ela não é actriz, mas ambos agiram como tal: ele já sabia e ela não disse a verdade!! mais concretamente ele usou truques para fazer com que ela dissesse &#8220;price&#8221;, mas convicta de que era mesmo esse o nome, como que por hipnose (que por acaso também usou)! no fim de ler isto é mais fácil perceber, possivelmente.</p>
<p><span id="more-1389"></span>antes de avançar é preciso ter em conta que muita gente considera derren brown uma farsa, que usa actores, etc, etc. pessoalmente acredito que grande parte, senão tudo, do que faz é real, e acredito nisso depois de ver e entender as coisas em causa. neste caso particular seria muito difícil ter actores a participar, uma vez que a selecção das pessoas que sobem ao palco foi feita atirando um boneco, o que não é muito comum de se ver em espectáculos do género e que me dá uma sensação segura de aleatoriedade nas escolhas.</p>
<p>a detecção de mentiras na primeira parte do clip (que por acaso são dois vídeos, para quem não se deu ao trabalho de ver o segundo ao lado) está explicada, trata-se de simples leitura de sinais e de expressão corporal, que ele próprio vai descrevendo. mais sobre as técnicas envolvidas:</p>
<p>surgiu há um par de décadas uma nova aproximação à psicoterapia, por <a title="richardbandler.com" href="http://www.richardbandler.com/" target="_blank">richard bandler</a> e <a title="johngrinder.com" href="http://www.johngrinder.com/" target="_blank">john grinder</a>: <a title="neurolinguistic programming @ wikipedia.org" href="http://en.wikipedia.org/wiki/Neuro-linguistic_programming" target="_blank">programação neurolinguística</a>. aceite e igualmente rejeitada por muitos, esta &#8220;ciência&#8221; fazia já parte (ainda sem nome) das práticas de milton eriksson, e surge como um estudo dos padrões de raciocínio e de pensamento da mente humana.</p>
<p>muito do que antes eram vários anos de sessões terapêuticas fica com a pln reduzido a vários minutos. os autores/praticantes não estão preocupados em perceber exactamente como nem porquê, mas apenas na prática e na experimentação de algumas técnicas básicas, com muito ênfase na linguística do terapeuta. por não ter suporte teórico, a prática é pouco aceite e talvez mesmo condenada, mas são muitos os casos de sucesso. são instrumentos muito poderosos para a compreensão, comunicação e mesmo manipulação das pessoas, daí a aplicação em psiquiatria e psicologia, mas mais exuberantemente nos espectáculos de derren brown.</p>
<p>já toda a gente ouviu falar deste truque:</p>
<ol>
<li>escreves &#8220;vermelho&#8221; e &#8220;martelo&#8221; num papel.</li>
<li>chegas ao pé de uma pessoa, já com esse papel na mão, e pedes que faça algumas operações matemáticas.</li>
<li>pedes que indique o mais rapidamente possível: uma cor e uma ferramenta.</li>
<li>grande parte das pessoas indica as duas escritas, as restantes indicam uma das escritas e muito poucas pessoas indicam algo diferente do inicialmente esperado, pelo que podes surpreendê-las ao mostrar o que tinhas escrito!</li>
</ol>
<p>seria importante saber se a indicação daquelas duas escolhas em detrimento de quaisquer outras está de alguma forma relacionada com o cálculo matemático. possivelmente seriam as mesmas escolhas se a pessoa fosse imediatamente questionada sem nenhum &#8220;tratamento&#8221; prévio, mas não tenho personalidade para ir à rua testar as pessoas nesse aspecto.</p>
<p>os espectáculos de derren brown usam e abusam destes preconceitos e o que se torna fantástico no que faz é que se entrega às probabilidades, mas traz na manga várias alternativas caso a primária não seja a escolhida. claro que, apesar de tudo, não usa as probabilidades com distribuições uniformes. distorce-as ao máximo a seu favor, e usa a (programação neuro)linguística para influenciar as escolhas das pessoas. vejam-se <a title="derren brown - subliminal message card @ youtube.com" href="http://www.youtube.com/watch?v=0soGZpODgPY" target="_blank">estes</a> <a title="derren brown - subliminal message @ youtube.com" href="http://www.youtube.com/watch?v=QTTbDy3AZ9A" target="_blank">vídeos</a>! note-se que é menos provável que funcione em pessoas pouco fluentes em inglês&#8230; o segundo vídeo ele explica no fim, mas fica a descrição do primeiro, segundo a segundo:</p>
<blockquote><p><strong>00:05:</strong> <span style="font-style: normal;">não tentes adivinhar antes do tempo! o mesmo acontece com o martelo e o vermelho: se as pessoas pensam demasiado, tendem a fabricar algo fora do comum, em vez de <span style="text-decoration: underline;">aceitar as mensagens subliminares</span> transmitidas.</span></p>
<p><span style="font-style: normal;"><strong>00:08:</strong> &#8220;imagina a cor brilhante e vívida!&#8221; em princípio isto faz-nos pensar em cartas vermelhas, e não nas pretas. mas note-se ainda nas mãos. da primeira vez não deves ter reparado, mas olha como ele te enche o ecrã/visão com a <span style="text-decoration: underline;">forma de um diamante</span>!! escolhes ouros!</span></p>
<p><span style="font-style: normal;"><strong>00:12:</strong> &#8220;pensa num número&#8221;. dá-te tendência a pensar em números em vez de cartas com desenhos. mais, repara nos <span style="text-decoration: underline;">3 dedos</span>, dispostos na vertical, e o discurso: &#8220;boom, boom, boom&#8221;. <span style="text-decoration: underline;">3 booms!</span></span></p></blockquote>
<p><span style="font-style: normal;">de longe mais interessante do que os truques de cartas é <a title="derren brown birthday trick @ youtube.com" href="http://www.youtube.com/watch?v=befugtgikMg" target="_blank">este</a> truque que demonstra ainda melhor os poderes da sugestão linguística e visual. depois deste vídeo, absolutamente nada mais a explicar. </span>se restarem suspeitas acerca destas técnicas é só começar a ler bandler e grinder&#8230;</p>
<p><span style="font-style: normal;">geralmente os mágicos fazem um esforço para manter as pessoas sem perceber o que raio se passa ou como conseguiu um efeito. o mágico eleva-se e chama completo idiota a cada indivíduo do público. já derren brown, com um esforço pornograficamente maior, inclui o público no espectáculo e transfere para ele, com estas técnicas, as maravilhas do desconhecido, o que é muito mais divertido e exótico.</span></p>
<p>impossível não adorar, e o <a title="channel4.com" href="http://www.channel4.com/" target="_blank">channel4</a> está carregado de excelentes programas dele. espero que não acabem, como o <a title="balls of steel @ channel4.com" href="http://www.channel4.com/programmes/balls-of-steel" target="_blank">balls of steel</a> (esse sim, uma farsa)&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://bugflux.org/blog/1389:no-ar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>depois da vida</title>
		<link>http://bugflux.org/blog/1337:depois-da-vida/</link>
		<comments>http://bugflux.org/blog/1337:depois-da-vida/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 20:45:04 +0000</pubDate>
		<dc:creator>nDray</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[pt]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[society]]></category>

		<guid isPermaLink="false">http://bugflux.org/?p=1337</guid>
		<description><![CDATA[este é o título do programa da tvi, um pouco mais do que cor de rosa. ao que consta consiste num espaço de contacto com os falecidos, por intermédio da senhora anne germain. este é um tema que me suscita &#8230; <a href="http://bugflux.org/blog/1337:depois-da-vida/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>este é o título do <a title="depois da vida @ tvi.iol.pt" href="http://www.tvi.iol.pt/pag_fsc.html?id=3837" target="_blank">programa da tvi</a>, um pouco mais do que cor de rosa. ao que consta consiste num espaço de contacto com os falecidos, por intermédio da senhora <a title="annegermain.co.uk" href="http://www.annegermain.co.uk/" target="_blank">anne germain</a>. este é um tema que me suscita muito interesse, e tem duas faces. uma que sempre me cativou muito, curioso de todas as ciências; e outra que sempre me revoltou, exposto a todas as trapaças. querendo ser das pessoas com a mente mais aberta para estas questões, quero com este texto apenas explicar que poderes como os demonstrados no programa são muito fáceis de falsear. no caso da tvi não há quaisquer dúvidas da falsificação, que é até muito pobre.</p>
<p>esta trapaça não passa de uma ciência a que se dá o nome de <a title="cold reading @ youtube.com" href="http://www.youtube.com/watch?v=Xswt8B8-UTM" target="_blank">leitura fria</a>. com a quantidade de treino apropriada, virtualmente qualquer pessoa pode dominar esta arte, e tornar-se num habilidoso leitor de mentes, ou comunicador com os mortos. posso resumir esta ciência em 3 partes principais, que levam pessoas mais susceptíveis a deixar-se enganar pelo que ouvem. vou usar como caso de uso o programa da tvi, como exemplos de sucesso o mentalista <a title="derrenbrown.co.uk" href="http://derrenbrown.co.uk/" target="_blank">derren brown</a>, e como referência científica algumas personalidades aleatórias.</p>
<p><span id="more-1337"></span></p>
<p style="text-align: center;">&#8230;</p>
<p><strong>afirmações de barnum</strong>: <a title="phineas barnum @ wikipedia.org" href="http://en.wikipedia.org/wiki/P.T._Barnum" target="_blank">phineas barnum</a> observou um dia que &#8220;temos algo para todos&#8221;. o que ele queria dizer com esta afirmação é que num conjunto de pessoas, incluindo o universo, é possível encontrar um termo comum a todas. esse termo comum pode ser específico ao ponto de todos acharem que foi especificamente detalhado sobre si, sendo na verdade uma coisa generalizada. isto é uma ferramenta usada para fraudes como a astrologia, e a arte de ler mentes.</p>
<p>em 1948 o professor <a title="bertram forer @ wikipedia.org" href="http://en.wikipedia.org/wiki/Bertram_Forer" target="_blank">bertram forer</a> fez uma <a title="forer's effect @ wikipedia.org" href="http://en.wikipedia.org/wiki/Forer_effect#Forer.27s_demonstration" target="_blank">experiência</a>:</p>
<blockquote><p>disse aos seus alunos que iria fazer uma leitura individual das suas personalidades, com base nos resultados dos testes de avaliação. cada aluno teve a oportunidade de classificar o grau de sucesso dessa leitura. o professor conseguiu uma cotação média de 4.26, numa escala de 0 a 5. de facto o professor devia ser muito bom a interpretar as personalidades com base nas respostas dos testes, excepto o facto de que a leitura que fez não foi individual, mas a mesma para todos.</p></blockquote>
<p>o mesmo texto conseguiu descrever com aparente especificidade a personalidade de dezenas de pessoas com um grau de confiança de 85%. derren brown fez exactamente o mesmo <a title="derren brown forer's effect @ wikipedia.org" href="http://www.youtube.com/watch?v=btP_vy5cQq4" target="_blank">teste</a>:</p>
<blockquote><p>com base num objecto pessoal de alguém e no contorno da sua mão desenhada numa folha, conseguiu fazer uma leitura específica de indivíduos na inglaterra, estados unidos, e espanha. um deles anunciou uma eficácia de 99% na leitura da sua personalidade, e muitos indicaram também 80 a 90%. mais uma vez, o texto foi o mesmo para todos, e escrito meses antes de sequer ter contacto com quaisquer objectos ou imagens.</p></blockquote>
<p>a minha mãe viu o último &#8220;depois da vida&#8221;, e contou-me que num dos casos a senhora afirmou que a morte de alguém suscitou uma enorme revolta. trata-se uma verdade que abrange muita gente! se eu me dou ao trabalho de ir ao programa para ter contacto com alguém que perdi, é seguro dizer que essa perda foi trágica, e me causou revolta. não existe um ente querido que morra justamente. anne germain contava também que uma menina teria queimado uma refeição. parecendo isto uma coisa muito específica, é na verdade muito comum. qualquer pessoa que cozinhe com regularidade já deixou queimar uma refeição. se o evento tiver sido recente, o efeito dessa afirmação é muito poderoso; se tiver sido apenas uma torrada há um ano terá menor impacto, mas não deixa de ser uma verdade!</p>
<p style="text-align: center;">&#8230;</p>
<p>o que leva à segunda parte, a <strong>susceptibilidade</strong>. uma boa parte da nossa personalidade, especialmente nestes temas muito susceptíveis à experiência de cada um, tem tendência a filtrar partes irrelevantes, e a encontrar sentido específico em aspectos vagos. neste exemplo do contacto com os mortos, a tarefa de um medium está simplificada porque este é chamado a falar com mortos, e todas as pessoas presentes vêm já há várias semanas a pensar nas pessoas que perderam.</p>
<p><a title="michaelshermer.com" href="http://www.michaelshermer.com/" target="_blank">michael shermer</a> <a title="strange beliefs @ ted.com" href="http://www.ted.com/talks/michael_shermer_on_believing_strange_things.html" target="_blank">afirma</a> e <a title="the pattern behind self deception @ ted.com" href="http://www.ted.com/talks/michael_shermer_the_pattern_behind_self_deception.html" target="_blank">defende</a> que o homem tem tendência a acreditar em coisas estranhas. tal acontece como forma de instinto básico de sobrevivência, e algo que nos permitiu evoluir enquanto espécie. a nossa capacidade de encontrar associações e padrões, mesmo quando não existem, foi desde cedo uma ferramenta que nos permitiu tomar decisões seguras em momentos críticos:</p>
<blockquote><p>um roçar de arbustos numa selva pode ser só o vento ou pode ser um predador. chama-se padrão à associação entre o roçar de arbustos e a presença de um predador, pelo risco que este apresenta. seja qual for o caso, a opção mais segura é sempre assumir que se trata de um predador pois, assumindo o vento, estamos condenados no caso de estarmos errados. assim o homem, bem como muitos outros animais, desenvolveu esta capacidade de encontrar padrões em tudo o que o rodeia. ou melhor: os homens que tinham esta capacidade desenvolvida levaram a melhor! =)</p></blockquote>
<p>no entanto esta capacidade de encontrar relação causa-efeito encontra muitas vezes o seu extremo, a que chamamos de superstição. a superstição é o que nos leva a encontrar imagens de cristo em torradas. derren brown <a title="trick or treat s02e06 part1 @ youtube.com" href="http://www.youtube.com/watch?v=IDi2NlsA4nI" target="_blank">demonstrou</a> este conceito de uma forma muito simples, e ao mesmo tempo absurda, com base na <a title="pigeon's superstition @ wikipedia.org" href="http://en.wikipedia.org/wiki/B._F._Skinner#Superstition_in_the_pigeon" target="_blank">experiência</a> de <a title="burrhus skinner @ wikipedia.org" href="http://en.wikipedia.org/wiki/B._F._Skinner" target="_blank">burrhus skinner</a>.</p>
<blockquote><p>um molho de pessoas é encurralada numa sala, que pensavam ser uma festa. fechadas as portas surge um painel a informar de que devem concluir 100 pontos em 30 minutos para que as portas se abram, e outro a dizer que ao abrir as portas, ganham 500 libras, visíveis do outro lado da porta (motivação!). na sala existe um conjunto de objectos espalhados, os contadores são zerados, e a experiência começa.</p>
<p>os intervenientes começam-se a questionar como será que pontuam, e à medida que interagem entre si e com os objectos na sala, tentam encontrar uma relação entre as acções que tomam e o efeito no contador. no entanto chega-se ao ponto em que as suas acções são completamente absurdas, e causam muito entretenimento aos espectadores.</p>
<p>completamente absortos pela tarefa de encontrar os padrões que dão pontos, não reparam no painel que, desde o início, informa que as portas são destrancadas ao fim de 5 minutos e, se saírem, ganham 30 mil libras cada um.</p></blockquote>
<p>na verdade os pontos eram incrementados sempre que um dos peixes num aquário rectangular passasse uma risca central. isto demonstra claramente que a capacidade de procurar padrões em tudo por vezes leva o indivíduo a alhear-se da racionalidade, e a acreditar nas coisas para as quais num dado momento encontram sentido.</p>
<p>isto demonstra claramente que é possível encontrar certos truques de linguística, ou simples sociologia, que nos permitem proferir afirmações para as quais é fácil uma pessoa encontrar significado, que parece muito específico, apesar de ser inicialmente muito genérico (ruído!). desafiei a minha mãe a questionar-se neste caso do sentimento de revolta, relativamente à morte mais recente que ocorreu na família. inicialmente disse que não sentia qualquer tipo de revolta pelo acontecido, apesar de ter sido uma perda muito sentida, e trágica, mas passado um ou dois minutos tinha já encontrado 2 ou 3 situações que suscitaram uma enorme revolta aquando da perda.</p>
<p>aquilo que inicialmente parece descabido, com um pouco de reflexão adapta-se à nossa realidade de uma forma muito intensa. somos nós que criamos sentido particular para uma afirmação que não passa de algo muito genérico. pior do que isto é a facilidade com que se esquece uma série de afirmações sem nexo se finalmente surgir uma que parece fazer todo o sentido.</p>
<p style="text-align: center;">&#8230;</p>
<p>como se isto não bastasse, e os artistas não tivessem já ferramentas suficientes, a talvez mais poderosa de todas, é a <strong>expressão </strong><strong>corporal</strong>. uma parte importante da leitura fria consiste em determinar se as afirmações proferidas são verdadeiras ou falsas, qual o efeito que têm no sujeito, e para onde seguir a partir daí. sem que nos apercebamos, o nosso corpo está constantemente a deixar escapar informação. a forma dessa fuga não é exacta nem universal que permita a utilização do polígrafo, mas para um mesmo sujeito é relativamente constante. derren brown é um exímio detector de mentiras, como se pode ver nesta <a title="derren brown lying game @ youtube.com" href="http://www.youtube.com/watch?v=LWtr-0QKnhc" target="_blank">performance</a>.</p>
<p>não é verdade para todos os casos, mas os <a title="neuro linguistic programming search results @ amazon.co.uk" href="http://www.amazon.co.uk/s/ref=nb_sb_noss?url=search-alias%3Daps&amp;field-keywords=neuro+linguistic+programming&amp;x=0&amp;y=0" target="_blank">livros</a> de <a title="neuro linguistic programming @ wikipedia.org" href="http://en.wikipedia.org/wiki/Neuro-linguistic_programming" target="_blank">programação neurolinguística</a> avançam nas primeiras páginas com a interpretação dos movimentos dos olhos de acordo com o raciocínio que as pessoas fazem. por exemplo, se as pessoas estão a processar memórias tendem a olhar para a esquerda. se estão a produzir, no entanto, tendem a olhar para a direita. isto varia de pessoa para pessoa, mas é o mais comum entre destros, tendo eu próprio verificado o oposto para esquerdinos. os sinais são tão poderosos que muitas vezes nem sequer seguem o discurso, que é falso. não seria a primeira vez que uma pessoa me conta uma história e refere, por exemplo, a existência de outras 2 pessoas mas, enquanto o diz, levanta 3 dedos. podendo significar outra coisa (a inclusão de si próprio), confrontamos o locutor com a incoerência e acabamos por descobrir que de facto havia mais 3. como não se tratam de ciências exactas, ainda cabe a pessoas com excelentes capacidades de observação tirar o melhor partido das circunstâncias.</p>
<p>subtilidades à parte, o trabalho de um medium é muito fácil, pois uma afirmação correcta com conteúdo emocional resulta em demonstrações fortes do indivíduo. o trabalho de anne germain em particular é muito fraco, metódico, e probabilístico. a fórmula de introdução é sempre a mesma, e começa por não arriscar muito sobre quem se encontra presente.</p>
<blockquote><p>por exemplo, na presença de um casal desolado é seguro arriscar que a morte tenha sido de um filho, mas leva o seu tempo até admitir se é rapaz ou rapariga, e fá-lo com base nas reacções (diferenciadas) dos progenitores.</p>
<p>também pode a meio descobrir que afinal era pai, mas aí o discurso que usou vai talvez permitir-lhe admitir que o(a) filho(a) é a pessoa em causa, e não o espírito!</p>
<p>em alternativa pode esquecer por completo o fracasso e procurar outra coisa diferente. vi isto numa leitura onde começa por dizer que vem o pai ou avô de uma senhora de meia idade. a morte de uma destas pessoas, ou ambas, é altamente provável, mas vista a completa ignorância da senhora, passa logo a dizer que esse senhor traz com ele um espírito mais jovem, com o qual continua a conversa, e nunca mais se fala no idoso que queria ser o primeiro a falar, mas nada disse.</p></blockquote>
<p>não só as introduções e as despedidas são sempre as mesmas, mas o discurso também nunca é revelador e extemamente repetitivo. a série acaba por ser um entretenimento (exactamente onde a tvi categoriza o programa, também) de mau gosto e péssima performance. como a coisa ainda é nova em portugal, passa incólume&#8230; se procuram entretenimento deste género procurem pelo material de derren brown que, tirando alguns momentos de marketing, sempre foi &#8220;honesto acerca da sua desonestidade&#8221;!</p>
]]></content:encoded>
			<wfw:commentRss>http://bugflux.org/blog/1337:depois-da-vida/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>na crista da onda: anfíbio</title>
		<link>http://bugflux.org/blog/1317:na-crista-da-onda-anfibio/</link>
		<comments>http://bugflux.org/blog/1317:na-crista-da-onda-anfibio/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 11:24:05 +0000</pubDate>
		<dc:creator>nDray</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[pt]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://bugflux.org/?p=1317</guid>
		<description><![CDATA[depois do fracasso e do sucesso parcial do desenvolvimento para bada, procurei descobrir como seria desenvolver um widget para o telemóvel. surpresa! os widgets não passam de páginas web! apesar de já ter confessado não gostar de programação por eventos, &#8230; <a href="http://bugflux.org/blog/1317:na-crista-da-onda-anfibio/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>depois do <a title="na crista da onda @ bugflux.org" href="/?p=1208" target="_self">fracasso</a> e do <a title="na crista da onda: parte 2 @ bugflux.org" href="/?p=1211" target="_self">sucesso parcial</a> do desenvolvimento para bada, procurei descobrir como seria desenvolver um <em>widget</em> para o <a title="uma nova onda @ bugflux.org" href="/?p=1087" target="_self">telemóvel</a>. surpresa! os widgets não passam de páginas web! apesar de já ter confessado não gostar de programação por eventos, por algum motivo, javascript e html são coisas totalmente diferentes, para mim. talvez por associar <em>scripting</em> tão potente a linguagem de marcação de forma tão simples. não sei, mas gosto!</p>
<p><span id="more-1317"></span>uma coisa que dava jeito era poder ter no ecrã principal atalhos para aplicações. más notícias. para a maioria, não é possível. a samsung implementa uma api <a title="bondi @ omtp.org" href="http://bondi.omtp.org/default.aspx" target="_blank">bondi</a>, mas esta permite o acesso a escassas aplicações. claro que a samsung tem acesso a todas, com widgets até para aceder à aplicação da loja, que nem sequer consta na <a title="samsung widget api reference @ innovator.samsungmobile.com" href="http://innovator.samsungmobile.com/cms/cnts/knowledge.detail.view.do?platformId=12&amp;cntsId=6720" target="_self">documentação</a>. para as aplicações que interessa não deixam aceder&#8230;</p>
<p>além de aceder ao telemóvel, também seria interessante o acesso directo à web. é muito fácil criar pequenos atalhos no ecrã, estilo bookmarks. tive a ideia de ir mais longe, procurando poupar espaço comparativamente a essa solução. um pequeno widget do estilo da google, que vem no telemóvel, mas com botões configuráveis, e potencialmente ilimitados. surge o <a title="all terrain search @ bugflux.org" href="/dev/all-terrain-search/" target="_blank">All Terrain Search</a>:</p>
<p>a ideia é simples. uma caixa de texto e botões. se existir texto nessa caixa, o botão faz uma pesquisa no site. se a caixa estiver em branco, o botão redirecciona para a homepage. 4 botões não são lá grande coisa, portanto um scroll permite ver mais 4, e mais 4, e mais 4, tantos quanto inserir.</p>
<p>a ideia foi estruturar o código de maneira a que fosse simples adicionar novos motores. numa pasta individual colocam-se os ícones dos motores. qualquer que seja o tamanho da imagem, será sempre apresentada a 84&#215;84 pixels. é recomendável redimensionar antes, uma vez que o rendering do browser estraga um pouco a qualidade das imagens.</p>
<p>as imagens são depois usadas num ficheiro javascript, onde o utilizador deve mexer para configurar a seu gosto. a lista de motores não passa de um array de variáveis com 3 propriedades: a homepage, a string para pesquisa e a localização da imagem. se o tamanho do array exceder o número de motores visíveis de uma vez, as restantes serão acedidas por scoll.</p>
<p>não queria usar um botão adicional e desperdiçar espaço, queria que um drag vertical no widget mudasse a lista de motores. o drag horizontal também seria interessante, mas esse será sempre apanhado primeiro pelo home screen, para mudar entre ecrãs. o scroll foi a maior perda de tempo. a samsung tem uma <a title="touch table @ quirksmode.org" href="http://www.quirksmode.org/mobile/tableTouch.html" target="_blank">má implementação</a> dos eventos touch no seu browser. a única coisa que me permitiu gerir com eficiência foi o evento <strong>onmousewheel</strong>, lançado aquando de arrastamentos do dedo. não funcionando como num computador, no entanto, o <strong>Event</strong> associado não tem a propriedade <strong>wheelDelta</strong>, que normalmente devolve a extensão/direcção do scroll. não consigo sequer saber se o scroll é para baixo ou para cima, só sei que houve scroll. ainda para mais, um arrastamento contínuo lança diversos eventos, o que provoca scrolls a mais, acidentais.</p>
<p>para solucionar os dois problemas, o scroll não faz bem scroll, mas faz <em>cycle</em> entre as páginas de motores. para evitar o lançamento consecutivo de vários scroll, quando capturo um primeiro deixo de ouvir o evento para só ouvir um quinto de segundo mais tarde:</p>
<pre class="brush: jscript; title: ; notranslate">scroll = function(e) { /* more like cycle through */
	page = (page + 1) % Math.ceil(engines.length / visibleEngines);

	/* disable scroll for a fifth of a sec */
	document.onmousewheel = null;
	setTimeout('document.onmousewheel = scroll', 200);

	changePage(page);
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://bugflux.org/blog/1317:na-crista-da-onda-anfibio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bolha aviária</title>
		<link>http://bugflux.org/blog/1310:bolha-aviaria/</link>
		<comments>http://bugflux.org/blog/1310:bolha-aviaria/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 09:52:19 +0000</pubDate>
		<dc:creator>nDray</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[pt]]></category>
		<category><![CDATA[economy]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[society]]></category>

		<guid isPermaLink="false">http://bugflux.org/?p=1310</guid>
		<description><![CDATA[na versão televisiva desta notícia, dizia o jornalista que outras entidades, em particular na wall street, estariam interessadas em adquirir o animal, apesar de a sua esperança de vida não ultrapassar um ano. ao longo do episódio de south park &#8230; <a href="http://bugflux.org/blog/1310:bolha-aviaria/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>na versão televisiva desta <a title="polvo paul vale 100 mil dólares @ sic.sapo.pt" href="http://sic.sapo.pt/online/noticias/desporto/Sociedade+de+apostas+russa+quer+comprar+Paul+o+polvo+por+100+mil+dolares.htm" target="_blank">notícia</a>, dizia o jornalista que outras entidades, em particular na <a title="financial district @ wikipedia.org" href="http://en.wikipedia.org/wiki/Financial_District,_Manhattan" target="_blank">wall street</a>, estariam interessadas em adquirir o animal, apesar de a sua esperança de vida não ultrapassar um ano.</p>
<p><span id="more-1310"></span>ao longo do <a title="margaritaville @ southparkstudios.com" href="http://www.southparkstudios.com/episodes/220760/" target="_blank">episódio</a> de south park emitido em 25 de março de 2009, stan tenta devolver uma misturadora que o pai comprou com um plano de pagamentos. como a loja não trata da dívida gerada com o plano, stan tem que se dirigir junto da companhia financeira responsável para obter a devolução.</p>
<p>acontece que o economista não pode devolver o dinheiro. o que ele faz é simplesmente convencer pessoas sem dinheiro a comprar uma misturadora, empacota as dívidas numa grande, e são os investidores em wall street que tratam delas.</p>
<p>uma vez em wall street, stan descobre que ainda não pode recuperar o seu dinheiro pois os investidores separaram o grande pacote em valores que pudessem vender aos bancos. no entanto os bancos também não podem fazer a devolução pois, uma vez que muita gente foi aos bancos à procura do retorno das misturadoras, o governo teve de comprar os valores aos bancos, para que não falissem.</p>
<p>então stan dirige-se ao departamento do tesouro. ali explica a situação, e dizem-lhe de imediato que não há problema, apenas precisam de consultar as tabelas para ver o valor que que lhe devem devolver. de regresso de uma sala, ensanguentados, os funcionários anunciam o valor de investimento no total de 90 trilhões de dólares (biliões, no nosso sistema).</p>
<p>entretanto surge uma emergência com uma companhia de serguros prestes a falir, e os funcionários têm de ir lá dentro verificar os gráficos para ver o que fazer. stan entra e espreita: solta-se uma galinha decapitada, onde cair é a jogada mais prudente:</p>
<p><a href="http://bugflux.org/wp/wp-content/uploads/2010/07/southpark1.jpg"><img class="aligncenter size-full wp-image-1312" title="southpark" src="http://bugflux.org/wp/wp-content/uploads/2010/07/southpark1.jpg" alt="" width="650" height="374" /></a></p>
<p>metáfora: galinhas<br />
realidade: polvos</p>
<p>humm&#8230; doesn&#8217;t seem that different, to me!</p>
]]></content:encoded>
			<wfw:commentRss>http://bugflux.org/blog/1310:bolha-aviaria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>na crista da onda: parte 2</title>
		<link>http://bugflux.org/blog/1211:na-crista-da-onda-parte-2/</link>
		<comments>http://bugflux.org/blog/1211:na-crista-da-onda-parte-2/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 21:57:33 +0000</pubDate>
		<dc:creator>nDray</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[pt]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://bugflux.org/?p=1211</guid>
		<description><![CDATA[o flash é uma tarefa impossível, mas nada motivo para baixar os braços. outra aplicação que me interessou desenvolver consistia em procurar routers nas redondezas e, com base em vulnerabilidades conhecidas, ligar-se a eles. claro que os algoritmos sobre as &#8230; <a href="http://bugflux.org/blog/1211:na-crista-da-onda-parte-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://bugflux.org/wp/wp-content/uploads/2010/07/WifiSmith.png"><img class="alignleft size-thumbnail wp-image-1303" title="WifiSmith" src="http://bugflux.org/wp/wp-content/uploads/2010/07/WifiSmith-150x150.png" alt="" width="150" height="150" /></a>o flash é uma <a title="na crista da onda @ bugflux.org" href="/?p=1208" target="_self">tarefa impossível</a>, mas nada motivo para baixar os braços. outra aplicação que me interessou desenvolver consistia em procurar routers nas redondezas e, com base em vulnerabilidades conhecidas, ligar-se a eles. claro que os algoritmos sobre as vulnerabilidades não são meus, não tenho a destreza para esse trabalho, mas é uma boa maneira de iniciar interfaces. chamei-lhe Wi-Fi Smith. =)</p>
<p><span id="more-1211"></span>desta vez custou um pouco mais começar, pois foi preciso ler um pouco sobre controlos e containers. no fundo não há muita diferença relativamente a outros toolkits gráficos. comparando com gtk, que foi o último que usei, para o bada também tenho duas hipóteses: posso programar e colocar os controlos todos no sítio com código, ou posso desenhar no ide e depois, no código, pedir para que sejam colocados no sítio e obter o handle. nada de especial.</p>
<p>o problema que há com este modo de programação do bada, para mim, é que as callbacks para os módulos geradores de eventos não são passadas explicitamente. o que é passado é uma classe que implemente (herde, em c++) uma interface IModuleEventListener. além disto não podemos definir argumentos para passar a essas funções. resultado: torna-se complicado gerir a partilha de recursos a serem utilizados na rotina de atendimento. o que é que eu fiz? o módulo principal herda tudo&#8230; felizmente não há colisões, mas neste caso não vi que fizesse sentido criar módulos diferentes. uma vez que vou tratar de eventos wifi, e da interface, bem como os genéricos das aplicações, isto é a classe criada:</p>
<pre class="brush: cpp; first-line: 18; title: ; notranslate">class WifiSmith :
	public Osp::App::Application,
	public Osp::System::IScreenEventListener,
	public Osp::Ui::IActionEventListener,
	public Osp::Net::Wifi::IWifiManagerEventListener,
	public Osp::Ui::IItemEventListener
{</pre>
<p>em vez de dar uma caixa de texto e um botão &#8220;do the magic&#8221; achei que seria mais interessante (e até mais simples) limitar-me a pegar no wi-fi, obter uma lista das redes disponíveis e listá-las. isto foi muito fácil de fazer. ao construir o manifest.xml no site, tive de adicionar privilégio WIFI. isto permite fazer todas as operações com o módulo wi-fi, excepto Connect(). para ligar é necessário permissões WIFI_MANAGER. infelizemente, só parceiros da samsung podem pertencer a este grupo, pois é necessário um nível de acesso SYSTEM. uma parvoíce, a meu ver. qualquer que seja a parte da api, não vejo motivo para que alguém que pague (ou receba?) tenha acesso e os outros não. no entanto esta limitação apenas impede publicação na loja; o grupo pode ser adicionado manualmente no ficheiro xml, mas a aplicação será certamente rejeitada na loja:</p>
<pre class="brush: xml; first-line: 6; title: ; notranslate">&lt;Privileges&gt;
	&lt;Privilege&gt;
		&lt;Name&gt;WIFI&lt;/Name&gt;
	&lt;/Privilege&gt;
	&lt;Privilege&gt;
		&lt;Name&gt;WIFI_MANAGER&lt;/Name&gt;
	&lt;/Privilege&gt;
&lt;/Privileges&gt;</pre>
<p>para compilar com permissões especiais é preciso, com frequência, adicionar uma biblioteca para linkagem, neste caso FNet. verdade para o simulador, para o telemóvel parece-me estar tudo na mesma biblioteca, FOsp.</p>
<p><a href="http://bugflux.org/wp/wp-content/uploads/2010/07/FNet-library.png"><img class="aligncenter size-full wp-image-1287" title="FNet-library" src="http://bugflux.org/wp/wp-content/uploads/2010/07/FNet-library.png" alt="" width="662" height="594" /></a></p>
<p>a interface da aplicação é muito simples. dois botões em baixo, um &#8220;refresh&#8221; e outro &#8220;back&#8221;. gosto das aplicações que têm botão de saída no ecrã, não gosto de usar o físico. no editor visual: as duas SOFTKEY activas e uma List que ocupa todo o ecrã. a List permite scroll se os elementos excederem o espaço reservado. a SlidableList serve para listas grandes, e alocação dinâmica dos elementos que interessam ver num dado momento apenas. no início desenho esta estrutura, associo as callbacks, e inicializo as variáveis necessárias:</p>
<pre class="brush: cpp; first-line: 31; title: ; notranslate">bool
WifiSmith::OnAppInitializing(AppRegistry&amp; appRegistry)
{
	// draw the form
	MainForm *pMainForm = new MainForm();
	pMainForm-&gt;Construct(L&quot;IDF_FORM1&quot;);
	Frame *pFrame = GetAppFrame()-&gt;GetFrame();
	pFrame-&gt;AddControl(*pMainForm);
	pFrame-&gt;SetCurrentForm(*pMainForm);
	pMainForm-&gt;SetSoftkeyActionId(SOFTKEY_1, SOFTKEY_1);
	pMainForm-&gt;AddSoftkeyActionListener(SOFTKEY_1, *this); // register back button event
	pMainForm-&gt;SetSoftkeyActionId(SOFTKEY_0, SOFTKEY_0);
	pMainForm-&gt;AddSoftkeyActionListener(SOFTKEY_0, *this); // register refresh button event
	pMainForm-&gt;RequestRedraw();

	// set the wifimanager
	pWifiManager.Construct(*this);

	// get the essid list control
	pEssidListControl = (List*)pMainForm-&gt;GetControl(&quot;IDC_LIST1&quot;);
	pEssidListControl-&gt;AddItemEventListener(*this);

	return true;
}</pre>
<p>que no fim liberto:</p>
<pre class="brush: cpp; first-line: 56; title: ; notranslate">bool
WifiSmith::OnAppTerminating(AppRegistry&amp; appRegistry, bool forcedTermination)
{
	// decided to use dynamic allocation for the WifiManager and the list of WifiBssInfo (networks)
	delete pEssidListControl;

	return true;
}</pre>
<p>sair da aplicação faz-se chamando o método Application::Terminate(). este método parece só estar acessível no módulo principal. tentei mesmo Application::GetInstance()-&gt;Terminate() noutros módulos, mas nem assim consegui compilar. azelhice minha, talvez. a cada refresh limpa-se e volta-se a preencher a lista de redes disponíveis:</p>
<pre class="brush: cpp; first-line: 136; title: ; notranslate">void
WifiSmith::OnWifiActivated(result r)
{
	pWifiManager.Scan();
}</pre>
<pre class="brush: cpp; first-line: 86; title: ; notranslate"> // SOFTKEYs
void
WifiSmith::OnActionPerformed(const Osp::Ui::Control &amp;source, int actionId)
{
	// SOFTKEY_0 is just the actionId I associated with it on line 42, it's not really the key.
	if(actionId == SOFTKEY_0) // refresh
	{
		RefreshList();
	}
	else
	{
		Application::Terminate();
	}
}</pre>
<pre class="brush: cpp; first-line: 163; title: ; notranslate">void
WifiSmith::RefreshList()
{
	// clear the essid list
	pEssidListControl-&gt;RemoveAllItems();
	pEssidListControl-&gt;RequestRedraw();

	// turn on wifi, if off
	if(!pWifiManager.IsActivated())
	{
		MessageBox vMessageBox;
		vMessageBox.Construct(&quot;Action required!&quot;, &quot;WiFi needs to be ON for scanning! Turn on?&quot;, MSGBOX_STYLE_YESNO, 0);
		int modalResult;
		vMessageBox.ShowAndWait(modalResult);

		if(modalResult == MSGBOX_RESULT_YES)
		{
			pWifiManager.Activate();
		}
		else
		{
			Application::Terminate();
		}
	}
	else
	{
		// get the available networks
		OnWifiActivated(E_SUCCESS);
	}
}</pre>
<p>quando o wi-fi está desligado é na função refresh que pergunto ao utilizador se pretende activar, com uma MessageBox. se não o fizer, a aplicação termina. faria sentido chamar a RefreshList() na inicialização. no entanto há um problema de concorrência. enquanto a aplicação está a arrancar é mostrada uma &#8220;imagem splash&#8221;. por algum motivo a aplicação bloqueia nesse splash se tentar abrir uma MessageBox algures na função OnAppInitializing(). provavelmente funcionaria na função OnForeground(), mas nesse caso tinha de controlar o estado da aplicação com uma nova variável, pois a função OnForeground() é chamada sempre que se volta ao foreground, e não apenas da primeira vez. continuo a achar que o problema é do sistema operativo, algo diferente devia acontecer.</p>
<p>findo o Scan(), preenche-se novamente a lista:</p>
<pre class="brush: cpp; first-line: 102; title: ; notranslate">
void
WifiSmith::OnWifiScanCompletedN(const Osp::Base::Collection::IList *pWifiBssInfoList, result r)
{
	pNetworkList.RemoveAll();
	pNetworkList.AddItems(*pWifiBssInfoList);

	for(int r = 0; r &lt; pNetworkList.GetCount(); r++)
	{
		WifiBssInfo *currentBssInfo = (WifiBssInfo*)pNetworkList.GetAt(r);
		pEssidListControl-&gt;AddItem(&amp;currentBssInfo-&gt;GetSsid(), null, null, null, r);
	}
	pEssidListControl-&gt;RequestRedraw(true);
}</pre>
<p>para quem não viu até aqui, é fácil perceber que não há muito tratamento de erros. esta função, por exemplo, indica com a variável r se o Scan() teve ou não sucesso. no entanto pouca diferença faz para o código que escrevi. mais, por motivos de eficiência, o mecanismo de controlo de excepções do c++ foi completamente ignorado pela samsung, não existem excepções no bada. o compilador até me avisou que, na linha 111, estou a passar um endereço de uma variável temporária. como nunca me deu problemas, não senti necessidade de copiar os nomes para uma lista.</p>
<p>depois de listadas as redes, é possível ver a listagem no telemóvel. clicando em qualquer rede, tenta-se ligar:</p>
<pre class="brush: cpp; first-line: 149; title: ; notranslate">void
WifiSmith::OnItemStateChanged(const Osp::Ui::Control &amp;source, int index, int itemId, Osp::Ui::ItemStatus status)
{
	WifiBssInfo *pWifiBssInfo = (WifiBssInfo*)pNetworkList.GetAt(itemId);
	const WifiSecurityInfo *pWifiSecurityInfo = pWifiBssInfo-&gt;GetSecurityInfo();

	// if open and no encryption, go right ahead!
	if(pWifiSecurityInfo-&gt;GetAuthenticationType() == WIFI_AUTHENTICATION_OPEN
			&amp;&amp; pWifiSecurityInfo-&gt;GetEncryptionType() == WIFI_ENCRYPTION_NONE)
	{
		pWifiManager.Connect(*pWifiBssInfo);
	}
}</pre>
<p>lembre-se que, na linha 111, dei um itemId a cada elemento da List igual ao índice dessa rede na lista de redes. no fim da tentativa de ligação à rede, posso informar o utilizador:</p>
<pre class="brush: cpp; first-line: 116; title: ; notranslate">void
WifiSmith::OnWifiConnected(const Osp::Base::String &amp;ssid, result r)
{
	MessageBox vMessageBox;
	int modalResult;

	if(r == E_SUCCESS)
	{
		vMessageBox.Construct(&quot;Connected:&quot;, ssid, MSGBOX_STYLE_OK, 0);
	}
	else
	{
		vMessageBox.Construct(&quot;Unable to connect:&quot;, ssid, MSGBOX_STYLE_OK, 0);
	}

	vMessageBox.ShowAndWait(modalResult);
}</pre>
<p>por vários motivos, neste código só me ligo a redes abertas. o primeiro é o facto de ainda não ter tratado disso. o segundo é que, quando fui a testar o caso dos routers thomson, por exemplo, acabei por descobrir que a resolução das chaves é um tanto ou quanto probabilística, e nem sequer funcionou para alguns casos que testei. o terceiro motivo é o facto de subscrever um aditivo internet, como faz todo o sentido, com este telemóvel, e até porque não frequento sítios atulhados de redes vulneráveis.</p>
<p>no entanto acrescentar esta funcionalidade, para mim, faz-se do seguinte modo: começa-se por criar uma classe que recebe um WifiBssInfo e, com essa informação (provavelmente só ssi e bssid), identifica o tipo de router com que está a lidar e devolve, de acordo, a chave a utilizar. pode ainda disponibilizar um método booleano do tipo CanSolve() o que permitirá, no tempo da listagem, mostrar apenas as redes com que é possível lidar. por último, uma vez que alguns algoritmos devolvem mais que uma chave, a função OnWifiConnected() deve implementar uma máquina de estados que permita tentar a chave seguinte para a mesma rede, caso a ligação tenha falhado, e até que não existam mais chaves. nada mais!</p>
<p>algumas capturas:</p>
<p style="text-align: center;"><a href="http://bugflux.org/wp/wp-content/uploads/2010/07/20100716205002.jpg"><img class="alignnone size-thumbnail wp-image-1294" title="20100716205002" src="http://bugflux.org/wp/wp-content/uploads/2010/07/20100716205002-150x150.jpg" alt="" width="150" height="150" /></a> <a href="http://bugflux.org/wp/wp-content/uploads/2010/07/20100716205019.jpg"><img class="alignnone size-thumbnail wp-image-1296" title="20100716205019" src="http://bugflux.org/wp/wp-content/uploads/2010/07/20100716205019-150x150.jpg" alt="" width="150" height="150" /></a> <a href="http://bugflux.org/wp/wp-content/uploads/2010/07/20100716205009.jpg"><img class="alignnone size-thumbnail wp-image-1295" title="20100716205009" src="http://bugflux.org/wp/wp-content/uploads/2010/07/20100716205009-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>(uau, this sucks! é preciso mesmo clicar nas imagens, parece que os thumbnails do wordpress cortam a imagem&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://bugflux.org/blog/1211:na-crista-da-onda-parte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>na crista da onda</title>
		<link>http://bugflux.org/blog/1208:na-crista-da-onda/</link>
		<comments>http://bugflux.org/blog/1208:na-crista-da-onda/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 20:49:07 +0000</pubDate>
		<dc:creator>nDray</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[pt]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://bugflux.org/?p=1208</guid>
		<description><![CDATA[uns dias depois, cá comecei a olhar para o bada numa perspectiva de utilizador avançado. o objectivo não passou de ver simplesmente se seria muito complicado desenvolver qualquer tipo de programa para a plataforma. o primeiro passo foi obter o &#8230; <a href="http://bugflux.org/blog/1208:na-crista-da-onda/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>uns dias depois, cá comecei a olhar para o bada numa perspectiva de utilizador avançado. o objectivo não passou de ver simplesmente se seria muito complicado desenvolver qualquer tipo de programa para a plataforma.</p>
<p><span id="more-1208"></span>o primeiro passo foi obter o <a title="bada sdk/ide @ bada.com" href="http://developer.bada.com/apis/tools/sdk/list.do?categoryID=FC02040100" target="_blank">ide/sdk</a>. nada a assinalar, trata-se do eclipse. o problema é que as tralhas da samsung exigem windows, e logo aqui desmoralizo fortemente. felizmente não estou sozinho, há <a title="linux favourite bada developmen platform @ badadev.com" href="http://www.badadev.com/poll-ends-linux-would-be-the-preffered-bada-development-platform/" target="_blank">mais</a> quem gostasse de desenvolver para bada em linux, vamos confiar nos rumores que tendem a nosso favor! é um pouco estranho ter de esperar, uma vez que o próprio bada é baseado em linux, e o eclipse é até dos poucos ambientes decentes para este sistema operativo.</p>
<p>ligeiramente relutante, lá avancei à descoberta da documentação. o primeiro projecto seria colmatar a falha da loja: não existe uma lanterna. melhor, existe, mas usa o ecrã para iluminar, com um led tão bom do outro lado, junto à câmara.</p>
<p>depressa relembro como não sou grande fã de programação por eventos. o que vale é que c++ permite herança múltipla, e então é mais fácil atulhar a classe principal de métodos para atender eventos desde a bateria ao flash. a minha ideia de aplicação seria que o próprio programa fosse o botão de flash. isto é, ligar o flash seria tão simples como ligar o programa, que saía de imediato. desligar seria iniciar novamente a aplicação. um <em>toggle</em>!</p>
<p>neste caso de utilização não precisava de mais do que criar um objecto de acesso à câmara, que me dá controlo sobre o flash. se o IsFlashOn(), SetFlash(false), senão SetFlash(true). o IsFlashOn() funciona, o problema é que o SetFlash(true) liga o flash, mas não inicia a iluminação, <em>per se</em>. a iluminação é feita apenas ao utilizar a câmara, provavelmente com a focagem/captura. talvez por este motivo não tenha aparecido a aplicação na loja&#8230;</p>
<p>além desta característica do sistema, tive outro problema. se não libertar a câmara quando a aplicação terminar, azar, tenho de reiniciar o telemóvel! nas funções que o ide cria automaticamente têm o cuidado de dizer na rotina OnAppTerminating(), em comentário, que se deve libertar a memória e os recursos. pergunto-me se o sistema operativo limpa a memória não libertada pelo programador???, caso contrário seria muito problemático deixar qualquer pessoa programar para o bada!</p>
<p>sobre este aspecto, <a title="time until certification @ badadev.com" href="http://forums.badadev.com/viewtopic.php?f=3&amp;t=755&amp;start=0&amp;view=viewpoll" target="_blank">parece</a> que demora muito tempo até que uma aplicação seja admitida na loja. talvez seja esse o motivo para ainda não haver muitas aplicações (sinceramente não estou a ver lugar para muitas mais úteis&#8230;). por um lado é bom saber que as aplicações à disposição foram vistas e revistas, por outro deve ser altamente desmotivante para o programador&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://bugflux.org/blog/1208:na-crista-da-onda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>no comment</title>
		<link>http://bugflux.org/blog/1199:no-comment/</link>
		<comments>http://bugflux.org/blog/1199:no-comment/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 09:17:09 +0000</pubDate>
		<dc:creator>nDray</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[en]]></category>
		<category><![CDATA[pt]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://bugflux.org/?p=1199</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://bugflux.org/wp/wp-content/uploads/2010/07/trends.png"><img class="aligncenter size-full wp-image-1200" title="trends" src="http://bugflux.org/wp/wp-content/uploads/2010/07/trends.png" alt="" width="585" height="217" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://bugflux.org/blog/1199:no-comment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>mouro na costa</title>
		<link>http://bugflux.org/blog/1192:mouro-na-costa/</link>
		<comments>http://bugflux.org/blog/1192:mouro-na-costa/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 10:44:08 +0000</pubDate>
		<dc:creator>nDray</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[pt]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://bugflux.org/?p=1192</guid>
		<description><![CDATA[dizem que um silêncio confortável entre duas pessoas é revelador de uma grande amizade. que maior silêncio do que aquele que dura dias, semanas, meses, mas, chegada uma certa altura, quebra-se como se durasse um instante. é um silêncio à distância &#8230; <a href="http://bugflux.org/blog/1192:mouro-na-costa/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>dizem que um silêncio confortável entre duas pessoas é revelador de uma grande amizade. que maior silêncio do que aquele que dura dias, semanas, meses, mas, chegada uma certa altura, quebra-se como se durasse um instante. é um silêncio à distância de um telefonema ou mensagem; 10 a 100 quilómetros de passeio; 1o minutos a 1 hora de viagem.</p>
<p>podia considerar-me preguiçoso por não despender esse tempo com mais frequência? os amigos com quem hoje estou diariamente ficarão um dia esses contactos esporádicos. não são amizades maiores ou menores, melhores ou piores, mas têm papéis diferentes. relações desiguais que marcam fases da vida. os cheiros, olhares, sorrisos, vozes, que me permitem reviver o passado e ansiar o futuro.</p>
]]></content:encoded>
			<wfw:commentRss>http://bugflux.org/blog/1192:mouro-na-costa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

