<?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>Oraculum Blog</title>
	<atom:link href="http://oraculum.blog.br/blogoraculum/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://oraculum.blog.br/blogoraculum</link>
	<description>Um blog que tem de tudo !</description>
	<lastBuildDate>Mon, 30 Jan 2012 04:37:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Google Task via Desktop no Ubuntu</title>
		<link>http://oraculum.blog.br/blogoraculum/index.php/2012/01/06/google-task-via-desktop-no-ubuntu/</link>
		<comments>http://oraculum.blog.br/blogoraculum/index.php/2012/01/06/google-task-via-desktop-no-ubuntu/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 22:18:24 +0000</pubDate>
		<dc:creator>oraculum</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google tarefas]]></category>
		<category><![CDATA[google task]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://oraculum.blog.br/blogoraculum/?p=1420</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  array_keys() [<a href='function.array-keys'>function.array-keys</a>]: The first argument should be an array in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>2026</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>2026</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>2398</b><br />
<br />
<b>Warning</b>:  implode() [<a href='function.implode'>function.implode</a>]: Argument must be an array in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3351</b><br />
<br />
<b>Warning</b>:  array_keys() [<a href='function.array-keys'>function.array-keys</a>]: The first argument should be an array in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3374</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3374</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3415</b><br />
<br />
<b>Warning</b>:  array_keys() [<a href='function.array-keys'>function.array-keys</a>]: The first argument should be an array in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3467</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3467</b><br />
<br />
<b>Warning</b>:  array_keys() [<a href='function.array-keys'>function.array-keys</a>]: The first argument should be an array in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3612</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3612</b><br />
Eu usava antes o Wunderlist que até é uma boa app para Manager Task mas eu achava ele meio pesado para a minha necessidade, precisava de algo mais clean então resolvi usar o Google Task (Google Tarefas), veja como rodá-lo no seu linux em uma versão &#8220;desktop&#8221; Para isso vamos precisar de ter o Chrome [...]]]></description>
			<content:encoded><![CDATA[<br />
<b>Warning</b>:  array_keys() [<a href='function.array-keys'>function.array-keys</a>]: The first argument should be an array in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>2026</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>2026</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>2398</b><br />
<br />
<b>Warning</b>:  implode() [<a href='function.implode'>function.implode</a>]: Argument must be an array in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3351</b><br />
<br />
<b>Warning</b>:  array_keys() [<a href='function.array-keys'>function.array-keys</a>]: The first argument should be an array in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3374</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3374</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3415</b><br />
<br />
<b>Warning</b>:  array_keys() [<a href='function.array-keys'>function.array-keys</a>]: The first argument should be an array in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3467</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3467</b><br />
<br />
<b>Warning</b>:  array_keys() [<a href='function.array-keys'>function.array-keys</a>]: The first argument should be an array in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3612</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>F:\inetpub\vhosts\oraculum.blog.br\httpdocs\blogoraculum\wp-content\plugins\wp-syntax\geshi\geshi.php</b> on line <b>3612</b><br />
<p>Eu usava antes o <a href="http://www.wunderlist.com/" target="_blank">Wunderlist</a> que até é uma boa app para Manager Task mas eu achava ele meio pesado para a minha necessidade, precisava de algo mais clean então resolvi usar o Google Task (Google Tarefas), veja como rodá-lo no seu linux em uma versão &#8220;desktop&#8221;</p>
<p>Para isso vamos precisar de ter o Chrome instalado na sua maquina se não tiver vá até a central de programas do ubuntu e mande instalar por lá, se tiver dúvida nesse processo veja <a href="http://wiki.ubuntu-br.org/Chromium#Instala.2BAOcA4w-o" target="_blank">aqui</a> como fazer.</p>
<p>Depois é só você acessar pelo chrome essa url especial do Google Task &gt;&gt; <a href="https://mail.google.com/tasks/ig" target="_blank">https://mail.google.com/tasks/ig</a></p>
<p>Daí vamos fazer um atalho para ela no nosso desktop, clique em:</p>
<p>- Tools (ferramentas)</p>
<p>- Create applications shortcuts (criar atalho de aplicações)</p>
<div id="attachment_1421" class="wp-caption aligncenter" style="width: 310px"><a href="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/pEqIf.png" rel="fancybox-gallery"><img class="size-medium wp-image-1421" title="salvar app" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/pEqIf-300x76.png" alt="salvar app" width="300" height="76" /></a><p class="wp-caption-text">salvar app</p></div>
<p>na tela seguinte deixe apenas &#8220;Desktop&#8221; marcada e não marque &#8220;Applications menu&#8221; ele vai salvar um arquivo no seu desktop abra esse arquivo no editor de texto de sua preferencia, por exemplo gedit e cole o texto abaixo.</p>

<div class="wp_syntax"><div class="code"><pre class="" style="font-family:monospace;">#!/usr/bin/env xdg-open
&nbsp;
<span class="br0">&#91;</span>Desktop Entry<span class="br0">&#93;</span>
Version=<span style="">1.0</span>
Name=Google Tarefas
Exec=/usr/bin/chromium-browser --app=https://mail.google.com/tasks/ig
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/usr/share/icons/gtask.png
Categories=Network;WebBrowser;
StartupNotify=true
StartupWMClass=mail.google.com__tasks_ig
Name<span class="br0">&#91;</span>en_US<span class="br0">&#93;</span>=GTask</pre></div></div>

<p>&nbsp;</p>
<p>você pode renomear o arquivo para um nome de sua preferencia eu usei GTask, mas isso fica a seu critério.</p>
<p>O campo Icon você vai indicar o caminho do ícone que você quer usar no app, se não tiver nenhum em mente use esse abaixo é só salvar essa imagens no seu pc e aplicar as permissões, mais a frente mostro como se faz isso no arquivo.</p>
<p><a href="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/gtask.png" rel="fancybox-gallery"><img class="aligncenter size-full wp-image-1422" title="gtask" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/gtask.png" alt="" width="64" height="64" /></a>Você pode salvar essa imagem na pasta padrão de ícones do sistema que é onde eu coloquei o meu, lembrando que você deve copiar ele para lá como root (logo a seguir vou fazer um exemplo parecido com o arquivo que foi salvo pelo chrome)</p>
<p>Voltando ao nosso arquivo é só você pressionar ALT+f2 para abrir no ubuntu o run command ali você digita</p>
<p><strong>gksu nautilus</strong></p>
<p>ele vai abrir o nautilus em modo root só digitar a sua senha de root.</p>
<p>copie esse nosso arquivo com as configurações da app para essa pasta:</p>
<p>/usr/share/applications</p>
<p>Depois de copiar você precisa dar acesso a todos usuários a esse arquivo, clique com o botão direito sobre ele e vá em propriedades &gt; permissions (permissões) e deixe conforme a imagem abaixo:</p>
<div id="attachment_1423" class="wp-caption aligncenter" style="width: 310px"><a href="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/ss.png" rel="fancybox-gallery"><img class="size-medium wp-image-1423" title="Permissão para os arquivos" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/ss-300x264.png" alt="Permissão para os arquivos" width="300" height="264" /></a><p class="wp-caption-text">Permissão para os arquivos</p></div>
<p>Faça essa atribuição de permissões no ícone e depois é só você digitar no dash GTask.</p>
<p>Veja ele funcionando logo abaixo:</p>
<p>&nbsp;</p>
<div id="attachment_1424" class="wp-caption aligncenter" style="width: 204px"><a href="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/ss2.png" rel="fancybox-gallery"><img class="size-medium wp-image-1424" title="Google Task no ubuntu via Desktop" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/ss2-194x300.png" alt="Google Task no ubuntu via Desktop" width="194" height="300" /></a><p class="wp-caption-text">Google Task no ubuntu via Desktop</p></div>
]]></content:encoded>
			<wfw:commentRss>http://oraculum.blog.br/blogoraculum/index.php/2012/01/06/google-task-via-desktop-no-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FatRat melhor gerenciador de download para Ubuntu</title>
		<link>http://oraculum.blog.br/blogoraculum/index.php/2012/01/05/fatrat-melhor-gerenciador-de-download-para-ubuntu/</link>
		<comments>http://oraculum.blog.br/blogoraculum/index.php/2012/01/05/fatrat-melhor-gerenciador-de-download-para-ubuntu/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 09:31:25 +0000</pubDate>
		<dc:creator>oraculum</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[fatrat]]></category>
		<category><![CDATA[gerenciador de download]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://oraculum.blog.br/blogoraculum/?p=1413</guid>
		<description><![CDATA[Se está em busca de um bom gerenciado de Download para linux uma boa opção é o FatRat. Open Source e escrito em C++ com QT4 ele é rico em recursos e é considerado um dos melhores gerenciadores de downloads para ubuntu. FatRat suporte quase todos os protocolos de download direto (HTTP / HTTPS), proxy, [...]]]></description>
			<content:encoded><![CDATA[<p>Se está em busca de um bom gerenciado de Download para linux uma boa opção é o FatRat.</p>
<p>Open Source e escrito em C++ com QT4 ele é rico em recursos e é considerado um dos melhores gerenciadores de downloads para ubuntu. FatRat suporte quase todos os protocolos de download direto (HTTP / HTTPS), proxy, FTP, torrents, feed RSS e RapidShare.</p>
<ul>
<li>Segmentada * HTTP (S) / FTP downloads</li>
<li> Imagens FTP</li>
<li> Suporte para proxies HTTP e SOCKS5</li>
<li> RSS feed apoio + funções especiais para programas de TV e podcasts</li>
<li> Suporte BitTorrent (incluindo a criação de torrent, DHT, UPnP, criptografia, etc)</li>
<li> Torrent search nos principais sites de torrent incl.  The Pirate Bay, EZTV, BitTorrentMonster &#8230;</li>
<li> RapidShare.com downloads grátis e premium</li>
<li> Imagens RapidShare.com</li>
<li> Verificação RapidShare.com link e extração de pasta</li>
<li> RapidSafe ligação decodificação</li>
<li> MD4/MD5/SHA1 computação de hash</li>
<li> Controle remoto via Jabber (!)</li>
<li> Controle remoto através de uma interface web AJAX *</li>
<li> Subtitle pesquisa</li>
<li> RAR / ZIP unpacker arquivo</li>
<li> Scheduler</li>
<li> Monitor de área de transferência</li>
</ul>
<h2></h2>
<h2>Instalação:</h2>
<p><span id="more-1413"></span></p>
<pre>
sudo apt-get install fatrat
</pre>
<p>&nbsp;</p>
<p>Para o Firefox, o <a href="https://addons.mozilla.org/en-US/firefox/addon/flashgot/" target="_blank">FlashGot extensio</a> é integrado com FatRat.  Para o Chrome / Chromium, instalar o<a href="http://translate.googleusercontent.com/translate_c?rurl=translate.google.com&amp;sl=auto&amp;tl=pt&amp;twu=1&amp;u=http://fatrat.dolezel.info/browser-integration&amp;usg=ALkJrhhT_SCW5AEh6US4M5FOd-POTVXqaA" target="_blank"> FatRat</a></p>
<h2>Uso</h2>
<p>Sempre que você quiser fazer o download, basta selecionar a opção &#8220;FlashGot -&gt; FatRat&#8221; a partir do pop-up download.  O link para download será enviado para FatRat onde você pode escolher o local para salvar o arquivo.</p>
<div id="attachment_1415" class="wp-caption aligncenter" style="width: 310px"><a href="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/fatrat-save-with-flashgot.png" rel="fancybox-gallery"><img class="size-medium wp-image-1415" title="fatrat-save-with-flashgot" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/fatrat-save-with-flashgot-300x103.png" alt="fatrat-save-with-flashgot" width="300" height="103" /></a><p class="wp-caption-text">fatrat-save-with-flashgot</p></div>
<div id="attachment_1414" class="wp-caption aligncenter" style="width: 310px"><a href="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/fatrat-download-link.png" rel="fancybox-gallery"><img class="size-medium wp-image-1414" title="fatrat-download-link" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/fatrat-download-link-300x238.png" alt="fatrat-download-link" width="300" height="238" /></a><p class="wp-caption-text">fatrat-download-link</p></div>
<p>Uma coisa que me chamou muito atenção no FatRat é um widget onde você pode arrastar qualquer coisa da web para ele e automaticamente ele já inicia o download do arquivo.</p>
<div id="attachment_1416" class="wp-caption aligncenter" style="width: 200px"><a href="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/fatrat-drop-box.jpg" rel="fancybox-gallery"><img class="size-full wp-image-1416" title="fatrat-drop-box" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2012/01/fatrat-drop-box.jpg" alt="fatrat-drop-box" width="190" height="139" /></a><p class="wp-caption-text">fatrat-drop-box</p></div>
<p>Veja mais informações aqui <a href="http://fatrat.dolezel.info/" target="_blank">FatRat</a></p>
]]></content:encoded>
			<wfw:commentRss>http://oraculum.blog.br/blogoraculum/index.php/2012/01/05/fatrat-melhor-gerenciador-de-download-para-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mascara de CEP BR para campos EditText do Android</title>
		<link>http://oraculum.blog.br/blogoraculum/index.php/2011/11/20/mascara-de-cep-br-para-campos-edittext-do-android/</link>
		<comments>http://oraculum.blog.br/blogoraculum/index.php/2011/11/20/mascara-de-cep-br-para-campos-edittext-do-android/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 14:40:03 +0000</pubDate>
		<dc:creator>oraculum</dc:creator>
				<category><![CDATA[Android SDK]]></category>
		<category><![CDATA[Frameworks / DBAs]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[br]]></category>
		<category><![CDATA[cep]]></category>
		<category><![CDATA[edittext]]></category>
		<category><![CDATA[mascara]]></category>

		<guid isPermaLink="false">http://oraculum.blog.br/blogoraculum/?p=1402</guid>
		<description><![CDATA[Bem se você quiser mais informações sobre como implementar essas mascaras pegue nesse primeiro artigo que escrevi sobre como criar a mascara de Telefone neste post. Aqui vou postar só o código: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [...]]]></description>
			<content:encoded><![CDATA[<p>Bem se você quiser <a href="http://oraculum.blog.br/blogoraculum/index.php/2011/08/28/mascara-de-telefone-br-para-campos-edittext-no-android/">mais informações</a> sobre como implementar essas mascaras pegue nesse primeiro artigo que escrevi sobre como criar a mascara de Telefone<a href="http://oraculum.blog.br/blogoraculum/index.php/2011/08/28/mascara-de-telefone-br-para-campos-edittext-no-android/"> neste post</a>.</p>
<p>Aqui vou postar só o código:</p>
<p><span id="more-1402"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">oraculum.droid.util</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Context</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.text.Editable</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.text.InputType</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.text.TextWatcher</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.text.method.NumberKeyListener</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.util.AttributeSet</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.EditText</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> CepEditText <span style="color: #000000; font-weight: bold;">extends</span> EditText <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">boolean</span> isUpdating<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/*
	 * Maps the cursor position from phone number to masked number... 1234567890
	 * =&gt; 12345-678
	 */</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> positioning<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">3</span>, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">6</span>, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">9</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> CepEditText<span style="color: #009900;">&#40;</span><span style="color: #003399;">Context</span> context, <span style="color: #003399;">AttributeSet</span> attrs, <span style="color: #000066; font-weight: bold;">int</span> defStyle<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span>context, attrs, defStyle<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		initialize<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> CepEditText<span style="color: #009900;">&#40;</span><span style="color: #003399;">Context</span> context, <span style="color: #003399;">AttributeSet</span> attrs<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span>context, attrs<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		initialize<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> CepEditText<span style="color: #009900;">&#40;</span><span style="color: #003399;">Context</span> context<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span>context<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		initialize<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getCleanText<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">String</span> text <span style="color: #339933;">=</span> CepEditText.<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		text.<span style="color: #006633;">replaceAll</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;[^0-9]*&quot;</span>, <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> text<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> initialize<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">int</span> maxNumberLength <span style="color: #339933;">=</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setKeyListener</span><span style="color: #009900;">&#40;</span>keylistenerNumber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;     -   &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setSelection</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">addTextChangedListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> TextWatcher<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> afterTextChanged<span style="color: #009900;">&#40;</span>Editable s<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #003399;">String</span> current <span style="color: #339933;">=</span> s.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #666666; font-style: italic;">/*
				 * Ok, here is the trick... calling setText below will recurse
				 * to this function, so we set a flag that we are actually
				 * updating the text, so we don't need to reprocess it...
				 */</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>isUpdating<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					isUpdating <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
					<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #009900;">&#125;</span>
&nbsp;
				<span style="color: #666666; font-style: italic;">/* Strip any non numeric digit from the String... */</span>
				<span style="color: #003399;">String</span> number <span style="color: #339933;">=</span> current.<span style="color: #006633;">replaceAll</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;[^0-9]*&quot;</span>, <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>number.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span>
					number <span style="color: #339933;">=</span> number.<span style="color: #006633;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">int</span> length <span style="color: #339933;">=</span> number.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #666666; font-style: italic;">/* Pad the number to 10 characters... */</span>
				<span style="color: #003399;">String</span> paddedNumber <span style="color: #339933;">=</span> padNumber<span style="color: #009900;">&#40;</span>number, maxNumberLength<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #666666; font-style: italic;">/* Split phone number into parts... */</span>
				<span style="color: #003399;">String</span> part1 <span style="color: #339933;">=</span> paddedNumber.<span style="color: #006633;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #003399;">String</span> part2 <span style="color: #339933;">=</span> paddedNumber.<span style="color: #006633;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">5</span>, <span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #666666; font-style: italic;">/* build the masked phone number... */</span>
				<span style="color: #003399;">String</span> cep <span style="color: #339933;">=</span> part1 <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;-&quot;</span> <span style="color: #339933;">+</span> part2<span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #666666; font-style: italic;">/*
				 * Set the update flag, so the recurring call to
				 * afterTextChanged won't do nothing...
				 */</span>
				isUpdating <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
				CepEditText.<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span>cep<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				CepEditText.<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setSelection</span><span style="color: #009900;">&#40;</span>positioning<span style="color: #009900;">&#91;</span>length<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> beforeTextChanged<span style="color: #009900;">&#40;</span>CharSequence s, <span style="color: #000066; font-weight: bold;">int</span> start, <span style="color: #000066; font-weight: bold;">int</span> count,
					<span style="color: #000066; font-weight: bold;">int</span> after<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onTextChanged<span style="color: #009900;">&#40;</span>CharSequence s, <span style="color: #000066; font-weight: bold;">int</span> start, <span style="color: #000066; font-weight: bold;">int</span> before,
					<span style="color: #000066; font-weight: bold;">int</span> count<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #003399;">String</span> padNumber<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> number, <span style="color: #000066; font-weight: bold;">int</span> maxLength<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">String</span> padded <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#40;</span>number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> maxLength <span style="color: #339933;">-</span> number.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
			padded <span style="color: #339933;">+=</span> <span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> padded<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">final</span> KeylistenerNumber keylistenerNumber <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> KeylistenerNumber<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">class</span> KeylistenerNumber <span style="color: #000000; font-weight: bold;">extends</span> NumberKeyListener <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> getInputType<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> InputType.<span style="color: #006633;">TYPE_CLASS_NUMBER</span>
					<span style="color: #339933;">|</span> InputType.<span style="color: #006633;">TYPE_TEXT_FLAG_NO_SUGGESTIONS</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #009900;">&#125;</span>
&nbsp;
		@Override
		<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">char</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> getAcceptedChars<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">char</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">'0'</span>, <span style="color: #0000ff;">'1'</span>, <span style="color: #0000ff;">'2'</span>, <span style="color: #0000ff;">'3'</span>, <span style="color: #0000ff;">'4'</span>, <span style="color: #0000ff;">'5'</span>, <span style="color: #0000ff;">'6'</span>, <span style="color: #0000ff;">'7'</span>, <span style="color: #0000ff;">'8'</span>,
					<span style="color: #0000ff;">'9'</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://oraculum.blog.br/blogoraculum/index.php/2011/11/20/mascara-de-cep-br-para-campos-edittext-do-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Site compara tarifas bancárias e lhe mostra as mais baratas</title>
		<link>http://oraculum.blog.br/blogoraculum/index.php/2011/11/19/site-compara-tarifas-bancarias-e-lhe-mostra-as-mais-baratas/</link>
		<comments>http://oraculum.blog.br/blogoraculum/index.php/2011/11/19/site-compara-tarifas-bancarias-e-lhe-mostra-as-mais-baratas/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 09:04:40 +0000</pubDate>
		<dc:creator>oraculum</dc:creator>
				<category><![CDATA[Artigos de Destaque]]></category>
		<category><![CDATA[Desorientação Financeira]]></category>
		<category><![CDATA[Finanças]]></category>
		<category><![CDATA[bancos]]></category>
		<category><![CDATA[comparativo taxas]]></category>
		<category><![CDATA[economizar]]></category>
		<category><![CDATA[finanças]]></category>
		<category><![CDATA[tarifas]]></category>

		<guid isPermaLink="false">http://oraculum.blog.br/blogoraculum/?p=1396</guid>
		<description><![CDATA[Essa história de que não temos que escolher o banco pelo valor de suas tarifas que temos que olhar o leque de serviços e benefícios, blá blá blá&#8230; isso é papo de gerente pra enrolar correntista. Na verdade minha decisão de escolha para bancos é sempre o que oferecer as menores taxas, pois todos eles [...]]]></description>
			<content:encoded><![CDATA[<p>Essa história de que não temos que escolher o banco pelo valor de suas tarifas que temos que olhar o leque de serviços e benefícios, blá blá blá&#8230; isso é papo de gerente pra enrolar correntista.</p>
<p>Na verdade minha decisão de escolha para bancos é sempre o que oferecer as menores taxas, pois todos eles oferecem os mesmos serviços e benefícios e na hora que você mais precisar deles eles NUNCA estarão lá para ajuda-los, sem antes morder o seu bolso, não se engane quanto a isso.</p>
<p>Existe um site na internet que traz a lista das principais instituições e suas tarifas, assim facilita na hora de identificar o mais barato. Além disso é possível escolher duas ou mais instituições e compará-las para ver quem pratica a melhor taxa nos produtos lhe interessa mais.</p>
<p>&nbsp;</p>
<p>Acesse o site da <a href="http://www.febraban-star.org.br/" target="_blank">FERBRABAN</a> ou clique sobre a imagem abaixo</p>
<p>&nbsp;</p>
<div id="attachment_1397" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.febraban-star.org.br/" target="_blank"><img class="size-medium wp-image-1397" title="compare tarifas bancárias" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/11/ss-300x188.png" alt="compare tarifas bancárias" width="300" height="188" /></a><p class="wp-caption-text">compare tarifas bancárias</p></div>
<p>Infelizmente eles só trazem as tarifas para pessoas físicas <img src='http://oraculum.blog.br/blogoraculum/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  tive que perder um tempo para levantar as taxas da jurídica quando fui trocar o banco se tivessem PJ lá teria economizado um bom tempo, mas mesmo assim me ajudou muito princialmente a um tempo atrás quando precisei de trocar de banco.</p>
<p>&nbsp;</p>
<p>Hoje atualmente quando escrevo esse artigo o que me ofereceu as menores taxas foi a Caixa Econômica, já tenho conta lá a um tempo e realmente não vejo nenhuma diferença do outro banco que tinha conta (Itau) além do fato de que lá as gerentes  não ficam pressionando para você fazer um seguro, ou previdência ou qualquer merda que eles sempre inventam pra você toda vez que vai à agencia.</p>
<p>&nbsp;</p>
<p>A Caixa pra mim só teve um empecilho, que é não ter um Home Broker mas geralmente os outros bancos nunca conseguem chegar nas taxas de compra/venda que as corretoras especializadas no ramo oferecem, para essa necessidade eu escolhi a <a href="https://www.mycap.com.br/" target="_blank">Mycap</a> que tem custo fixo por operação na bolsa e literalmente não cobra taxa de custodia para as uas ações (mesmo que você não faça operação alguma no mês).</p>
]]></content:encoded>
			<wfw:commentRss>http://oraculum.blog.br/blogoraculum/index.php/2011/11/19/site-compara-tarifas-bancarias-e-lhe-mostra-as-mais-baratas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 Coisas que nunca queremos ouvir dos clientes</title>
		<link>http://oraculum.blog.br/blogoraculum/index.php/2011/11/16/5-coisas-que-nunca-queremos-ouvir-dos-clientes/</link>
		<comments>http://oraculum.blog.br/blogoraculum/index.php/2011/11/16/5-coisas-que-nunca-queremos-ouvir-dos-clientes/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 06:20:38 +0000</pubDate>
		<dc:creator>oraculum</dc:creator>
				<category><![CDATA[Artigos de Destaque]]></category>
		<category><![CDATA[Freelance]]></category>
		<category><![CDATA[contrato]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[freelancer]]></category>

		<guid isPermaLink="false">http://oraculum.blog.br/blogoraculum/?p=1369</guid>
		<description><![CDATA[Um mundo perfeito para um freelancer é não ter problemas no relacionamento com seus clientes, infelizmente não estamos em um mundo perfeito. Como freelancer você deve ter histórias de terror para contar. Segue abaixo 5 coisas que você nunca quer ouvir do seu cliente mas eles insistem em dizer: &#160; 1 &#8211; Nós realmente precisamos [...]]]></description>
			<content:encoded><![CDATA[<p>Um mundo perfeito para um freelancer é não ter problemas no relacionamento com seus clientes, infelizmente não estamos em um mundo perfeito. Como freelancer você deve ter histórias de terror para contar. Segue abaixo 5 coisas que você nunca quer ouvir do seu cliente mas eles insistem em dizer:</p>
<p>&nbsp;</p>
<h2>1 &#8211; Nós realmente precisamos de um contrato?</h2>
<p>&nbsp;</p>
<p>Você negocia com seu cliente uma proposta ele lhe envia a aprovação e você diz que vai lhe enviar o contrato para iniciar o serviço, ele diz:<br />
&#8220;Um contrato? não precisamos disso apenas confie em mim que vou lhe enviar o pagamento corretamente&#8221;</p>
<p>Você naturalmente deve dizer algo como: &#8220;Não&#8230; não é uma questão de desconfiança, é assim que eu trabalho e isso me deixa organizado.&#8221;</p>
<p>Cliente: &#8220;Escute, eu não tenho tempo para analisar um contrato, vamos começar a trabalhar e depois você me envia o seu contrato que eu assino ele&#8221;.</p>
<h3>SOLUÇÃO</h3>
<p>Se o cliente recusar a assinar o contrato primeiramente você deverá usar o seu próprio critério para analisar se a oportunidade em potencial vale o risco. É altamente recomendável que você use um contrato. Se o cliente ainda ficar inflexível você pode considerar rejeitar o projeto porque certamente você corre o risco do projeto se tornar num desastre e você não ser pago.</p>
<p>Para facilitar a situação faça um contrato curto e objetivo sem clausulas desnecessárias. O proposito de um contrato basicamente é abordar os termos, o prazo de entrega, os valores e formas de pagamento e evitar mal-entendidos. Deixe claro para o cliente que o contrato é util para proteger tanto você quanto ele mesmo e um contrato adequadamente formulado transmite a imagem a seu cliente que você é um profissional executando um negócio sério.</p>
<p><span id="more-1369"></span></p>
<h2>2 &#8211; Esqueça o depósito!</h2>
<p>Freelancer: &#8220;Assim que você fizer o deposito eu inicio o serviço&#8221;.<br />
Cliente: &#8220;Escute, eu sei que está no contrato, mas vamos iniciar o serviço e eu no final do serviço.&#8221;<br />
Freelancer: &#8220;Com todo o respeito, eu não gostaria de iniciar o projeto assim, e peço-lhe que respeite o contrato.&#8221;</p>
<h3>SOLUÇÃO</h3>
<p>Se suas condições de pagamento está em seu contrato isso provavelmente nunca acontecerá. Mas se isso acontecer, seu cliente está em violação antes mesmo de começar.  Que é uma má notícia e uma bandeira vermelha.</p>
<p>Lembre-se, você não está vendendo um produto físico que pode ser devolvido por falta de pagamento.</p>
<p>Para garantir que seu cliente entende perfeitamente os termos de pagamento do projeto é melhor ter uma seção no seu contrato dedicada a detalhar as condições de pagamento (quanto e quando e a forma que será feito o pagamento se cheque, boleto, deposito, etc).</p>
<p>Uma dica para deixar o cliente mais confortável acerca dos pagamento é dividi-los na medida que você vai entregando partes chaves do projeto.</p>
<h2>3. &#8220;Eu não recebi sua nota fiscal&#8221;</h2>
<p>Freelancer: &#8220;Você já teve a oportunidade de dar uma olhada na nota fiscal que lhe enviei?&#8221;</p>
<p>Cliente: &#8220;Eu não recebi sua nota&#8221;</p>
<p>Freelancer: &#8220;Meus registros mostram que enviei a você a 3 semanas&#8221;</p>
<p>Cliente: &#8220;Mas eu não recebi e sem uma nota fiscal eu não posso fazer o seu cheque de pagamento&#8221;</p>
<h3>SOLUÇÃO</h3>
<p>O relacionamento que você tem com seus cliente é muito valioso. Você quer trabalhar com eles no futuro, mas você também precisa receber o pagamento.  Educadamente envie a nota novamente.  Não há nenhum ponto de discutir com o cliente.  Seja educado cada vez que você perguntar, e nunca saem como hostis ou desesperado.</p>
<h2>4. &#8220;Eu gostei disso&#8230; mas precisamos mudar algo&#8230; acho que poderíamos fazer um logotipo maior?&#8221;</h2>
<p>Freelancer: &#8220;Aqui está o projeto final entregue e suas especificações.&#8221;</p>
<p>Cliente: &#8220;É muito bom &#8230; mas temos alguns ajustes menores &#8230; você pode alterar as cores, as imagens, a cópia, oh e fazer o logotipo maior?&#8221;</p>
<h3>SOLUÇÃO</h3>
<p>Nesta situação, as mudanças vão ter de ser feitas.  A melhor maneira de se proteger de ser aproveitado é ter uma cláusula em seu contrato informando quantas revisões podem ser feitas e, em seguida, você terá que começar a cobrar as suas taxas de hora em hora.</p>
<p>Coloque no seu contrato algo que indique ao seu cliente que é preciso para o bom andamento do projeto fazer revisões periódicas (defina um período de dias melhor pra você ex 7a7 dias ou 15a15 dias). Isso permite que seu cliente para dar um feedback antes que você tenha ido muito à frente e talvez perdido o seu tempo.  Isso vai lhe poupar muito tempo.  Se eles aprovaram cada fase e foram claramente envolvidos com o progresso do projeto, que é menos provável que eles sejam surpreendidos com o resultado final e querem mudar tudo.</p>
<p>Lembre-se, é de sua responsabilidade como profissional criativo para orientar e direcionar o cliente para a melhor solução possível.</p>
<h2>5. &#8220;Eu tenho o que eu precisava. Vou terminar o resto por minha conta.&#8221;</h2>
<p>Freelancer: Olá estou enviando a ultima fatura e as partes finais que faltam do projeto&#8221;</p>
<p>Cliente: &#8220;Sobre isso &#8230; Eu devo ter esquecido de lhe dizer que o projeto foi cancelado e eu não posso pagar-lhe o resto.&#8221;</p>
<p>Freelancer: &#8220;Mas nós temos um contato?  Ele afirma claramente que vou ser pago pelo meu trabalho.&#8221;</p>
<p>Cliente: &#8220;Mer&#8230; acontecem&#8230; o que posso dizer.&#8221;</p>
<h3>SOLUÇÃO</h3>
<p>Está é a razão na qual você deve ao redigir o seu contrato colocar os pagamentos por revisões. O truque é conseguir o máximo de dinheiro possível antes do fim do projeto. Isto é complicado, mas se você tem um contrato assinado, dá-lhe uma série de opções.  Se você não tem um contrato, você pode querer consultar um advogado.</p>
<p>É sempre recomendado ter uma cláusula de cancelamento em seu contrato que estabeleça claramente que todo o trabalho pertence a você, até que o pagamento integral tenha sido feito para o projeto.</p>
]]></content:encoded>
			<wfw:commentRss>http://oraculum.blog.br/blogoraculum/index.php/2011/11/16/5-coisas-que-nunca-queremos-ouvir-dos-clientes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remover branch remoto e local no github</title>
		<link>http://oraculum.blog.br/blogoraculum/index.php/2011/10/31/remover-branch-remoto-no-github/</link>
		<comments>http://oraculum.blog.br/blogoraculum/index.php/2011/10/31/remover-branch-remoto-no-github/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 04:41:23 +0000</pubDate>
		<dc:creator>oraculum</dc:creator>
				<category><![CDATA[Atualidade]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[apagar]]></category>
		<category><![CDATA[branch]]></category>
		<category><![CDATA[branches]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[remover]]></category>

		<guid isPermaLink="false">http://oraculum.blog.br/blogoraculum/?p=1359</guid>
		<description><![CDATA[Para remover um branch local você faz: git branch -D branch_nome Se quiser que essa remoção se reproduza no remoto faça: git push origin :branch_nome Se quiser apagar o branch remoto do github sem ter o branch localmente instalado faça: git push origin --delete branch_nome Se quiser renomear um branch local faça: git branch -m [...]]]></description>
			<content:encoded><![CDATA[<p>Para remover um branch local você faz:</p>
<pre>
git branch -D branch_nome
</pre>
<p>Se quiser que essa remoção se reproduza no remoto faça:</p>
<pre>
git push origin :branch_nome
</pre>
<p>Se quiser apagar o branch remoto do github sem ter o branch localmente instalado faça:</p>
<pre>
git push origin --delete branch_nome
</pre>
<p>Se quiser renomear um branch local faça:</p>
<pre>
git branch -m branch_antigo branch_novo
</pre>
]]></content:encoded>
			<wfw:commentRss>http://oraculum.blog.br/blogoraculum/index.php/2011/10/31/remover-branch-remoto-no-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video oficial da microsoft sobre como será a tecnologia em 2019</title>
		<link>http://oraculum.blog.br/blogoraculum/index.php/2011/10/30/video-oficial-da-microsoft-sobre-como-sera-a-tecnologia-em-2019/</link>
		<comments>http://oraculum.blog.br/blogoraculum/index.php/2011/10/30/video-oficial-da-microsoft-sobre-como-sera-a-tecnologia-em-2019/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 19:18:28 +0000</pubDate>
		<dc:creator>oraculum</dc:creator>
				<category><![CDATA[Videos]]></category>
		<category><![CDATA[glass]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://oraculum.blog.br/blogoraculum/?p=1353</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://oraculum.blog.br/blogoraculum/index.php/2011/10/30/video-oficial-da-microsoft-sobre-como-sera-a-tecnologia-em-2019/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wunderlist no ubuntu 11.10</title>
		<link>http://oraculum.blog.br/blogoraculum/index.php/2011/10/22/wunderlist-no-ubuntu-11-10/</link>
		<comments>http://oraculum.blog.br/blogoraculum/index.php/2011/10/22/wunderlist-no-ubuntu-11-10/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 20:54:54 +0000</pubDate>
		<dc:creator>oraculum</dc:creator>
				<category><![CDATA[Atualidade]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[task manager]]></category>
		<category><![CDATA[to do app]]></category>
		<category><![CDATA[ubuntu 11.10]]></category>
		<category><![CDATA[wunderlist]]></category>

		<guid isPermaLink="false">http://oraculum.blog.br/blogoraculum/?p=1348</guid>
		<description><![CDATA[Veja como instalar um dos melhores task manager que existe para desktop. Para instalar o Wunderlist siga os passos abaixo: 1 &#8211; baixe o pacote de instalação no site do aplicativo. 2 &#8211; descompacte o arquivo dentro da pasta &#8216;/opt&#8217; (aqui é onde colocamos aplicativos de terceiro no ubuntu) 3 &#8211; para facilitar eu renomeei [...]]]></description>
			<content:encoded><![CDATA[<p>Veja como instalar um dos melhores task manager que existe para desktop.</p>
<p>Para instalar o Wunderlist siga os passos abaixo:</p>
<p>1 &#8211; baixe o pacote de instalação no <a href="http://www.6wunderkinder.com/wunderlist/">site do aplicativo</a>.</p>
<p>2 &#8211; descompacte o arquivo dentro da pasta &#8216;/opt&#8217; (aqui é onde colocamos aplicativos de terceiro no ubuntu)</p>
<p>3 &#8211; para facilitar eu renomeei a pasta de wundelist-versão para apenas Wunderlist, mas você pode deixar como o original se preferir, eu prefiro assim dai nas próximas atualizações não tenho que ficar editando os links do aplicativo pelo sistema. Vamos dar as devidas permissões:</p>
<pre>
sudo chmod 755 /opt/Wunderlist
 sudo chmod -R +r /opt/Wunderlist
 sudo chmod +x `sudo find /opt/Wunderlist -type d`
</pre>
<p>4 &#8211; agora você pode criar um atalho para acessar o wunderlist do dash, digite <strong>ctrl+f2</strong> e depois <strong>gksu gedit</strong> ele vai abrir o editor de texto em branco cole o texto abaixo:</p>
<p>Salve esse arquivo na pasta /usr/share/applications com o nome de Wunderlist.desktop</p>
<pre>
[Desktop Entry]
Name=Wunderlist
Comment=Task/To Do App
TryExec=/opt/Wunderlist/Wunderlist
Exec=/opt/Wunderlist/Wunderlist
Icon=/opt/Wunderlist/Resources/wunderlist.png
Type=Application
Categories=Office;
OnlyShowIn=GNOME;
</pre>
<p>Se você tentar executar o wunderlist ele vai retornar o seguinte error:</p>
<p><em><strong>wunderlist error while loading shared libraries: libffi.so.5: cannot open shared object file: No such file or directory</strong></em></p>
<p>Acontece que até a presente data o <a href="http://www.6wunderkinder.com/wunderlist/">Wunderlist</a> só funciona em versões anteriores ao Ubuntu 11.04 para faze-lo funcionar no ubuntu 11.10 ou posteriores até que o pessoal da 6wunderkinder resolva o problema do bug siga os passos abaixo:</p>
<p>1 &#8211; digite os comandos abaixo na ordem:</p>
<pre>
sudo ln -s /usr/lib/i386-linux-gnu/libffi.so.6 /usr/lib/i386-linux-gnu/libffi.so.5

sudo ln -s /usr/lib/i386-linux-gnu/libnotify.so.4 /usr/lib/i386-linux-gnu/libnotify.so.1

sudo ln -s /usr/lib/i386-linux-gnu/libssl.so.1.0.0 /usr/lib/i386-linux-gnu/libssl.so.0.9.8

sudo ln -s /usr/lib/i386-linux-gnu/libcrypto.so.1.0.0 /usr/lib/i386-linux-gnu/libcrypto.so.0.9.8

mv /opt/Wunderlist/runtime/1.2.0.RC3/libcurl.so.4 /opt/Wunderlist/runtime/1.2.0.RC3/libcurl.so.4.backup

sudo ln -s /usr/lib/i386-linux-gnu/libcurl.so.4 /opt/Wunderlist/runtime/1.2.0.RC3/libcurl.so.4
</pre>
<p>Agora é só aproveitar espero que tenha ajudado.</p>
]]></content:encoded>
			<wfw:commentRss>http://oraculum.blog.br/blogoraculum/index.php/2011/10/22/wunderlist-no-ubuntu-11-10/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Como &#8220;burlar&#8221; os protetores de link</title>
		<link>http://oraculum.blog.br/blogoraculum/index.php/2011/09/25/como-burlar-os-protetores-de-link/</link>
		<comments>http://oraculum.blog.br/blogoraculum/index.php/2011/09/25/como-burlar-os-protetores-de-link/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 21:09:39 +0000</pubDate>
		<dc:creator>ikaro</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[burlar]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[protetor de link]]></category>
		<category><![CDATA[protetores de link]]></category>
		<category><![CDATA[quebrar link]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://oraculum.blog.br/blogoraculum/?p=1324</guid>
		<description><![CDATA[Eae pessoal&#8230; ando na correria graças ao ano de vestibular mais achei que deveria partilhar essa &#8220;descoberta&#8221; aqui, bem vamos ao que interessa&#8230;. Fazer download de musicas, games, filmes e etc&#8230;  é algo comum na vida de qualquer internauta (eu sei internauta soa meio bizarro mas..) , recentemente os sites de download vem com uma [...]]]></description>
			<content:encoded><![CDATA[<p>Eae pessoal&#8230; ando na correria graças ao ano de vestibular mais achei que deveria partilhar essa &#8220;descoberta&#8221; aqui, bem vamos ao que interessa&#8230;.</p>
<p>Fazer download de musicas, games, filmes e etc&#8230;  é algo comum na vida de qualquer internauta (<del>eu sei internauta soa meio bizarro mas.</del>.) , recentemente os sites de download vem com uma <del>frescura</del> proteção de links, pedindo que você cadastre seu celular , o que deixa qualquer com receio de fazer isso&#8230; o link que interessava.. ou vinha no final do link gigante &#8230; ou vinha invertido ou vinha em centenas de numeros, fazendo que você caro leitor desistisse da empreitada de fazer seu download mais como diria o programa de &#8220;humor&#8221; daquela rede de televisão: &#8220;SEUS PROBLEMAS ACABARAM !!!&#8221;</p>
<p style="text-align: center"><a href="http://quebralink.algoritmizando.com/init/default/index" target="_blank"><img class="aligncenter size-large wp-image-1325" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/blog-1024x245.jpg" alt="" width="625" height="150" /></a></p>
<p>Encontrei o Quebralink que como diria meu tio, foi uma mão na roda, testei e aprovei.. para acessar o site basta clicar na imagem ou <a href="http://quebralink.algoritmizando.com/init/default/index" target="_blank">aqui</a>.</p>
<p>Um exemplo para os descrentes:</p>
<p><strong>1º) A página maldita :</strong></p>
<p style="text-align: center"><img class="size-large wp-image-1326 aligncenter" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/blog1-1024x297.jpg" alt="" width="625" height="182" /></p>
<p><strong>2º) Copie o link e cole no Quebralink :</strong></p>
<p style="text-align: center"><strong><img class="size-large wp-image-1327 aligncenter" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/blog2-1024x266.jpg" alt="" width="625" height="162" /></strong></p>
<p><strong>3º) Clique em &#8220;Quebrar !&#8221; e faça seu download:</strong></p>
<p style="text-align: center"><strong><img class="size-large wp-image-1328 aligncenter" src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/blog3-1024x229.jpg" alt="" width="625" height="140" /><br />
</strong></p>
<p>Comente se esse post te ajudou.. ou se deu errado.. oque achou&#8230; enfim de sua opnião ela é importante para nós&#8230;</p>
<p>Espero ter ajudado vocês com essa dica &#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://oraculum.blog.br/blogoraculum/index.php/2011/09/25/como-burlar-os-protetores-de-link/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Limpando sua maquina Ubuntu com Mechanig</title>
		<link>http://oraculum.blog.br/blogoraculum/index.php/2011/09/02/limpando-sua-maquina-ubuntu-com-mechanig/</link>
		<comments>http://oraculum.blog.br/blogoraculum/index.php/2011/09/02/limpando-sua-maquina-ubuntu-com-mechanig/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 14:45:24 +0000</pubDate>
		<dc:creator>oraculum</dc:creator>
				<category><![CDATA[Atualidade]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[clear ubuntu]]></category>
		<category><![CDATA[limpar maquina]]></category>
		<category><![CDATA[mechanig]]></category>
		<category><![CDATA[remover pacotes inuteis]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://oraculum.blog.br/blogoraculum/?p=1313</guid>
		<description><![CDATA[Normalmente, quando discutimos os caminhos para limpar o seu sistema Ubuntu, que será feita sempre com linhas de comando como &#8220;autoremove&#8221;, &#8220;autoclean&#8221;, &#8220;limpo&#8221;, etc Para aqueles que não são acostumados na linha de comando, uma alternativa é usar um software GUI para obter os mesmos resutlados. Um desses programas é Mechanig. Não há nada de [...]]]></description>
			<content:encoded><![CDATA[<p>Normalmente, quando discutimos os caminhos para limpar o seu sistema Ubuntu, que será feita sempre com linhas de comando como &#8220;autoremove&#8221;, &#8220;autoclean&#8221;, &#8220;limpo&#8221;, etc Para aqueles que não são acostumados na linha de comando, uma alternativa é usar um software GUI para obter os mesmos resutlados.  Um desses programas é Mechanig.</p>
<p> Não há nada de especial para Mechanig como é apenas um invólucro GUI para a maioria dos comandos de otimização comumente utilizados.  No entanto, pode ser realmente útil se você não quer se envolver com a linha de comando.</p>
<p><strong>Instalando Mechanig </strong></p>
<p> Mechanig não está disponível no repositório do Ubuntu, mas você pode instalar através do seu próprio PPA.<br />
<span id="more-1313"></span></p>
<pre>
sudo add-apt-repository ppa:kokoto-java/usu-extras
sudo apt-get update
sudo apt-get install mechanig
</pre>
<p><strong>Usando Mechanig </strong></p>
<p> Mechanig está localizado no &#8220;Ferramentas de Sistema&#8221; pasta em Aplicações.  Uma vez que você abrir o software, você deve ver uma pequena janela com as seguintes opções:<br />
<div id="attachment_1315" class="wp-caption aligncenter" style="width: 442px"><a href="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/mechanig-main-window.png" rel="fancybox-gallery"><img src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/mechanig-main-window.png" alt="mechanig-main-window" title="mechanig-main-window" width="432" height="498" class="size-full wp-image-1315" /></a><p class="wp-caption-text">mechanig-main-window</p></div></p>
<p>Existem duas partes principais do software: PC otimização e gerenciamento de software.  Dê um duplo clique no botão Optimzation e você pode optar por otimizar o PC (limpar o cache e otimizar RAM) ou remover kernels antigos (para liberar espaço de armazenamento).<br />
<div id="attachment_1314" class="wp-caption aligncenter" style="width: 442px"><a href="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/mechanig-optimization.png" rel="fancybox-gallery"><img src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/mechanig-optimization.png" alt="mechanig-optimization" title="mechanig-optimization" width="432" height="432" class="size-full wp-image-1314" /></a><p class="wp-caption-text">mechanig-optimization</p></div></p>
<p>Da mesma forma, você pode dar um duplo clique no botão Software para executar todas as tarefas relacionadas com software, como a atualização de pacotes, remover pacotes desnecessários, remover arquivos .deb inúteis, etc</p>
<div id="attachment_1317" class="wp-caption aligncenter" style="width: 442px"><a href="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/mechanig-software.png" rel="fancybox-gallery"><img src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/mechanig-software.png" alt="mechanig-software" title="mechanig-software" width="432" height="436" class="size-full wp-image-1317" /></a><p class="wp-caption-text">mechanig-software</p></div>
<p>Para fazer coisa ainda mais simples, você pode clicar duas vezes no &#8220;All Optimization&#8221; para executar todas as tarefas de otimização do PC e &#8220;All Software&#8221; botão para executar todas as tarefas relacionadas com software.  Por último, há a &#8220;All Actions&#8221; para fazer tudo em um tiro.</p>
<div id="attachment_1318" class="wp-caption aligncenter" style="width: 504px"><a href="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/mechanig-all-actions1.png" rel="fancybox-gallery"><img src="http://oraculum.blog.br/blogoraculum/wp-content/uploads/2011/09/mechanig-all-actions1.png" alt="mechanig-all-actions" title="mechanig-all-actions" width="494" height="504" class="size-full wp-image-1318" /></a><p class="wp-caption-text">mechanig-all-actions</p></div>
<p>Em suma, se você estiver procurando uma maneira rápida e fácil de limpar seu sistema sem ter que lembrar de todos os comandos do bash, Mechanig é o software ideal para você.</p>
]]></content:encoded>
			<wfw:commentRss>http://oraculum.blog.br/blogoraculum/index.php/2011/09/02/limpando-sua-maquina-ubuntu-com-mechanig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

