<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-14452038</id><updated>2011-11-27T16:22:02.732-08:00</updated><category term='ssl'/><category term='debian'/><category term='cx88xx'/><category term='subversion'/><title type='text'>Davi</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14452038.post-5977297524551374757</id><published>2008-03-05T07:52:00.000-08:00</published><updated>2008-03-05T07:58:02.755-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><title type='text'>Criando um certificado com autenticação própria para uso em SSL</title><content type='html'>&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;/span&gt;Aqui iremos gerar um certificado do qual você mesmo é a autoridade certificadora (sigla do inglês CA). Este certificado é extremamente útil para o símples caso que queremos usar SSL, o certificado serve apenas para dizer que você é você. Existem empresas que funcionam como verdadeiros cartórios virtuais, e podem gerar um certificado dito mais confiável para o visitante do seu site. Este certificado pode ser usado para casos onde se deseja apenas criptografar um "canal" entre os visitantes e um certo serviço na web. Eu utilizei este certificado para disponibilizar Trac e Subversion de forma segura na internet para que os colaboradores possam baixar, atualizar e gerenciar os projetos.&lt;br /&gt;&lt;br /&gt;Como não posso supôr qual distribuição de Gnu/Linux você está usando, vou assumir aqui que você já tem o OpenSSL instalado.&lt;br /&gt;&lt;br /&gt;Gerando a chave privada (sem criptografia):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;openssl genrsa -out ssl.key 1024&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Generating RSA private key, 1024 bit long modulus&lt;br /&gt;........++++++&lt;br /&gt;.++++++&lt;br /&gt;e is 65537 (0x10001)&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;Gerando o certificado:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;openssl req -new -key ssl.key -x509 -out ssl.crt -days 999&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;You are about to be asked to enter information that will be incorporated&lt;br /&gt;into your certificate request.&lt;br /&gt;What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;There are quite a few fields but you can leave some blank&lt;br /&gt;For some fields there will be a default value,&lt;br /&gt;If you enter '.', the field will be left blank.&lt;br /&gt;-----&lt;br /&gt;Country Name (2 letter code) [AU]:&lt;span style="font-weight: bold;"&gt;&lt;sigla-país&gt;&lt;/sigla-país&gt;&lt;/span&gt;&lt;br /&gt;State or Province Name (full name) [Some-State]:&lt;span style="font-weight: bold;"&gt;&lt;nome-estado&gt;&lt;/nome-estado&gt;&lt;/span&gt;&lt;br /&gt;Locality Name (eg, city) []:&lt;span style="font-weight: bold;"&gt;&lt;nome-cidade&gt;&lt;/nome-cidade&gt;&lt;/span&gt;&lt;br /&gt;Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;span style="font-weight: bold;"&gt;&lt;nome-empresa&gt;&lt;/nome-empresa&gt;&lt;/span&gt;&lt;br /&gt;Organizational Unit Name (eg, section) []:&lt;span style="font-weight: bold;"&gt;&lt;setor-empresa&gt;&lt;/setor-empresa&gt;&lt;/span&gt;&lt;br /&gt;Common Name (eg, YOUR name) []:&lt;span style="font-weight: bold;"&gt;&lt;endereço-site&gt;&lt;/endereço-site&gt;&lt;/span&gt;&lt;br /&gt;Email Address []:&lt;span style="font-weight: bold;"&gt;&lt;e-mail&gt;&lt;br /&gt;&lt;/e-mail&gt;&lt;/span&gt;&lt;/blockquote&gt;O campo &lt;span style="font-style: italic;"&gt;Common Name&lt;/span&gt; é Endereço do qual receberá o certificado, suponhamos o endereço &lt;span style="font-weight: bold;"&gt;http://www.davirtavares.com&lt;/span&gt;, eu colocaria &lt;span style="font-weight: bold;"&gt;davirtavares.com&lt;/span&gt; aqui. No caso de eu ter vários subdomínios, eu poderia criar um "certificado-curinga" ao qual servirá para todos os meus subdomínios, basta trocar/adicionar o subdomínio "*" (asterísco), ficando, neste caso, &lt;span style="font-weight: bold;"&gt;*.davirtavares.com&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Respondidas as perguntas (das quais algumas são opcionais, e são identificadas por valores-padrão em branco), o certificado será gerado para o período de 999 dias (argumento &lt;span style="font-weight: bold;"&gt;-days 999&lt;/span&gt;, mude para outro valor se quiser).&lt;br /&gt;&lt;br /&gt;Você pode (opcionalmente) empacotar esses dois arquivos em um só:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cat ssl.key ssl.crt &gt; ssl.pem&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;E é só. Em outros artigos eu pretendo mostrar como configurar SSL no Apache e também Trac e Subversion, para você poder ter um ambiente de trabalho em equipe pela internet.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-5977297524551374757?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/5977297524551374757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=5977297524551374757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/5977297524551374757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/5977297524551374757'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2008/03/criando-um-certificado-com-autenticao.html' title='Criando um certificado com autenticação própria para uso em SSL'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14452038.post-3717041715449570854</id><published>2008-01-04T04:22:00.000-08:00</published><updated>2008-01-21T18:21:10.987-08:00</updated><title type='text'>Bancos de Dados</title><content type='html'>Definição:&lt;br /&gt;&lt;br /&gt;Um Banco de Dados é um conjunto de dados estruturados e, habitualmente, gerenciados por um software. Essas estruturas são definidas de acordo com o tipo de banco de dados, veremos aqui o mais comum, o banco de dados Relacional. O banco de dados Relacional trabalha somente com tabelas e relacionamentos entre elas, também são definidas várias outras estruturas mantidas pelo fabricante do software (Funções, Procedimento e Visões, por exemplo).&lt;br /&gt;&lt;br /&gt;Uma tabela é uma matriz bidimensional. Compondo linhas e colunas. A forma como os dados (linhas) são organizados é definida pelas colunas. Uma coluna tem basicamente 4 propriedades:&lt;br /&gt;&lt;br /&gt;- Nome;&lt;br /&gt;- Tipo;&lt;br /&gt;- Tamanho;&lt;br /&gt;- Se pode assumir valores Nulos;&lt;br /&gt;&lt;br /&gt;O Nome de uma coluna é uma seqüência de letras e números que são limitados segundo normas seguidas ou definidas pelo software. Em geral podemos usar a mesma idéia de identificadores em C e Java: composto por letras e números ou "_" e não pode começar com número.&lt;br /&gt;&lt;br /&gt;O Tipo de uma coluna especifica o que esta coluna irá guardar. Se é um número, uma seqüência de caractéres ou um valor lógico (1 ou 0). Existem vários tipos, que são basicamente variações de tipos como número inteiro, número com ponto flutuante, seqüências numéricas. O software responsável pelo banco de dados, que é conhecido como SGBD, mantém outros tipos de dados diversos, como tipos Espaciais, usados para guardar informações geométricas sobre uma área, relevo, clima etc.&lt;br /&gt;&lt;br /&gt;Além do Banco de Dados Relacional, existe outro nem tão conhecido mas com significativo aumento de uso nos últimos anos, o Banco de Dados Orientado a Objetos, para quem teve a chance de estudar Java (e aprender) isso soa familiar. Basicamente passamos a tratar os dados como instâncias e não mais como símples linhas em uma tabela, os relacionamentos passam a ser melhor tratados por relacionamentos de composição, herança etc.&lt;br /&gt;&lt;br /&gt;Meios de Acesso:&lt;br /&gt;&lt;br /&gt;Para atualizar ou acessar os dados contidos em um banco de dados, precisamos nos comunicar com o SGBD que  mantém, isso era feito de inúmeras. Os fabricantes dos SGBD's criaram e documentavam uma API (Application Programming Interface) de funções e rotinas para acesso ao banco de dados deste fabricante. Isso para um mundo de poucos SGBD's era razoável, mas o mercado cresceu e surgiram várias opções e avanços significativos nos softwares que os utilizavam para aproveitar os benefícios deles (SGBD's).&lt;br /&gt;&lt;br /&gt;Como cada fabricante mantinha sua própria API (que faziam a mesma coisa, cada qual com seu respectivo SGBD), foi proposta uma linguagem única de acesso, uma forma que fosse possível acessar qualquer banco de dados em qualquer SGBD que a implementasse, essa linguagem era a SQL (Structured Query Language). Uma linguagem símples e direta, que efetuava as operações básicas de um banco de dados (Inserir, Modificar, Excluir e Consultar). Esta linguagem se tornou um padrão para a indústria do segmento e já foi melhorada diversas vezes e adotada como padrão ANSI.&lt;br /&gt;&lt;br /&gt;A linguagem SQL:&lt;br /&gt;&lt;br /&gt;Para começar vou começar com algo que sempre vejo associado ao aprendizado de uma nova linguagem... não, não é "Hello, World!"...&lt;br /&gt;&lt;br /&gt;Vou começar com um exemplo:&lt;br /&gt;&lt;blockquote&gt;SELECT * FROM contato&lt;/blockquote&gt;Esse último trecho efetua um comando bastante comum em SQL, ele recupera dados (efetua uma consulta, do inglês, query). Neste caso uma tabela contato retornará TODOS os dados para quem estiver solicitando, mas essa consulta tem um problema: posso não querer todos os dados, posso querer somente um que satisfaça uma certa condição:&lt;br /&gt;&lt;blockquote&gt;SELECT * FROM contato&lt;br /&gt;WHERE data_nascimento &gt;= "1990-01-01"&lt;/blockquote&gt;Agora eu usei uma outra expressão, a cláusula "WHERE", que significa, do inglês, "ONDE". Neste caso eu quero todos os registros cujo campo "data_nascimento" seja maior-ou-igual a 01/01/1990 (em SQL, as datas se escrevem da forma AAAA-MM-DD).&lt;br /&gt;&lt;br /&gt;As seleções da cláusula WHERE são feitas linha-a-linha, ou seja, para uma linha ser retornada, aquela condição tem que ser satisfeita.&lt;br /&gt;&lt;blockquote&gt;SELECT * FROM contato&lt;br /&gt;WHERE data_nascimento &gt;= "1990-01-01"&lt;br /&gt;ORDER BY data_nascimento DESC&lt;/blockquote&gt;Agora fiz diferente, além dos registros da tabela contato que satisfaçam a condição dada, adicionei mais uma expressão, o "ORDER BY". O "ORDER BY" ordena os registros obtidos pelo SELECT tomando como referência um campo. Neste caso eu solicitei esta ordenação pela data de nascimento (campo data_nascimento). Logo após o "ORDER BY" veio o "DESC", que diz "em ordem decrescente". Eu poderia omitir o "DESC", neste caso seria assumido o "ASC", logo, os registros seriam retornados em ordem ascendente.&lt;br /&gt;&lt;br /&gt;A SQL é um assunto bastante extenso e não caberia neste espaço, ficarei devendo para um outro tutorial mais completo. Por enquanto, existem ferramentas em seu próprio computador que você poderia treinar SQL, o Microsoft Access é (quem diria) um SGBD com cara de Excel. Fuçando por lá você poderia achar uma forma de criar tabelas e colocar dados nelas (como no Excel), após isso feito, tabela com dados, tente executar estas contultas que eu mostrei aqui.&lt;br /&gt;&lt;br /&gt;Segue a estrutura da tabela que você poderia usar:&lt;br /&gt;&lt;br /&gt;Nome: contato&lt;br /&gt;Coluna(1): codigo, tipo inteiro, não-nulo&lt;br /&gt;Coluna(2): nome, texto&lt;br /&gt;Coluna(3): data_nascimento, data&lt;br /&gt;Coluna(4): telefone, texto&lt;br /&gt;&lt;br /&gt;Procurem mais sobre SQL no grande portal do saber: &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt;. Também recomendo os tutoriais (todos, mas neste caso...) de SQL: &lt;a href="http://www.w3schools.com"&gt;www.w3schools.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-3717041715449570854?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/3717041715449570854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=3717041715449570854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/3717041715449570854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/3717041715449570854'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2008/01/bancos-de-dados.html' title='Bancos de Dados'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14452038.post-5610606405266364410</id><published>2007-11-23T05:00:00.000-08:00</published><updated>2007-11-27T08:00:44.971-08:00</updated><title type='text'>Configurando um ambiente de desenvolvimento Verilog no Windows</title><content type='html'>&lt;span style="font-size:100%;"&gt;Mostrarei como ter um ambiente pronto para desenvolvimento em Verilog utilizando versões de conhecidos programas que desempenham o mesmo papel no GNU/Linux.&lt;br /&gt;&lt;br /&gt;Softwares necessários:&lt;br /&gt;&lt;br /&gt;Eclipse;&lt;br /&gt;&lt;a href="http://veditor.sourceforge.net/"&gt;VEditor&lt;/a&gt; (plugin para edição de Verilog e VHDL no Eclipse);&lt;br /&gt;&lt;a href="http://www.icarus.com/eda/verilog/"&gt;Icarus Verilog&lt;/a&gt; (compilador Verilog);&lt;br /&gt;&lt;a href="http://home.nc.rr.com/gtkwave/"&gt;GTKWave&lt;/a&gt; (visualização das ondas geradas nas simulações- arquivos VCD);&lt;br /&gt;&lt;a href="http://gimp-win.sourceforge.net/"&gt;GTK+&lt;/a&gt; (Necessário para o GTKWave)&lt;br /&gt;&lt;a href="http://www.mingw.org/"&gt;MinGW&lt;/a&gt; (conjunto de ferramentas GNU portadas para Windows);&lt;br /&gt;&lt;br /&gt;As versões usadas nesse tutorial foram: Eclipse (3.2.2); VEditor &lt;a href="http://ufpr.dl.sourceforge.net/sourceforge/veditor/net.sourceforge.veditor_0.5.1.zip"&gt;0.5.1&lt;/a&gt;; Icarus Verilog (&lt;a href="ftp://ftp.icarus.com/pub/eda/verilog/v0.8/Windows/iverilog-0.8-setup.exe"&gt;0.8&lt;/a&gt;); GTKWave (&lt;a href="http://www.dspia.com/gtkwave.exe.gz"&gt;3.1.1&lt;/a&gt;); GTK+ (&lt;a href="http://ufpr.dl.sourceforge.net/sourceforge/gimp-win/gtk+-2.10.13-setup.exe"&gt;2.10.13&lt;/a&gt;); MinGW (&lt;a href="http://ufpr.dl.sourceforge.net/sourceforge/mingw/MinGW-5.1.3.exe"&gt;5.1.3&lt;/a&gt;). Na dúvida, use exatamente estas versões.&lt;br /&gt;&lt;br /&gt;Instale o Eclipse (não falarei como fazer isto aqui), descompacte o VEditor dentro do diretório do Eclipse. Você já poderá editar arquivos do Verilog/VHDL. Porém você ainda não configurou um compilador apropriado.&lt;br /&gt;&lt;br /&gt;Faça o download do MinGW e o execute. Nas telas abaixo são mostradas as opções que devem ser selecionadas. Nas outras janelas, deixe a opção padrão.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MSBGqlA6xVA/R0bVny18HFI/AAAAAAAAAAU/yx3qkHF1Q7U/s1600-h/i1.JPG"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MSBGqlA6xVA/R0bV0S18HGI/AAAAAAAAAAc/MuUo1hcn0G0/s1600-h/i1.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_MSBGqlA6xVA/R0bV0S18HGI/AAAAAAAAAAc/MuUo1hcn0G0/s320/i1.JPG" alt="" id="BLOGGER_PHOTO_ID_5136027519450618978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Selecione "Download and install"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MSBGqlA6xVA/R0bWRi18HHI/AAAAAAAAAAk/IP6wkKSWAi0/s1600-h/i2.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_MSBGqlA6xVA/R0bWRi18HHI/AAAAAAAAAAk/IP6wkKSWAi0/s320/i2.JPG" alt="" id="BLOGGER_PHOTO_ID_5136028021961792626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Selecione "Current"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MSBGqlA6xVA/R0bW0S18HII/AAAAAAAAAAs/GURkXE_oOPQ/s1600-h/i3.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_MSBGqlA6xVA/R0bW0S18HII/AAAAAAAAAAs/GURkXE_oOPQ/s320/i3.JPG" alt="" id="BLOGGER_PHOTO_ID_5136028618962246786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Marque "MinGW base tools" e "MinGW Make"&lt;br /&gt;&lt;br /&gt;Agora instale o Icarus Verilog, mantenha as opções padrão que ele oferecer.&lt;br /&gt;O GTKWave vem com uma extensão um tanto incomum no ambiente Windows: a GZ. É um tipo de compactação, como o ZIP. Se não me engano o WinRAR é capaz de descompacta-la, eu sei que o 7-Zip suporta este tipo de arquivo. Resolvido o problema, descompacte este arquivo em um lugar qualquer (sugiro C:\GTKWave). Em seguida, instale o GTK+.&lt;br /&gt;&lt;br /&gt;Agora coloque os diretórios do GTKWave e o do Icarus Verilog ("DIRETORIO_IVERILOG\bin") no seu PATH (Botão direito em Meu computador -&gt; Propriedades -&gt; aba "Avançado" -&gt; parte inferior, em "Variáveis de Ambiente". Em "Variáveis do sistema", procure por PATH (ou crie uma nova caso não exista), nesta variável se encontra uma seqüência de diretórios separados por ";". Acrescente os diretórios do GTKWave e do Icarus Verilog e confirme).&lt;br /&gt;&lt;br /&gt;Normalmente seu Makefile seria alguma coisa parecida com isso:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;compilar:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;[TAB]&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;tab&gt;iverilog tb.v ff_jk.v cont_4b.v -o tb&lt;/tab&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;[TAB]&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;tab&gt;&lt;/tab&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;./tb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;[TAB]&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;tab&gt;&lt;/tab&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;gtkwave wave.vcd&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;No Windows, deve ser:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;compilar:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;[TAB]&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;tab&gt;&lt;/tab&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;iverilog -o tb tb.v ff_jk.v cont_4b.v&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;[TAB]&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;tab&gt;&lt;/tab&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;vvp tb&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;[TAB]&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;tab&gt;&lt;/tab&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;gtkwave wave.vcd&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;Nem deveria dizer, mas vou: [TAB] &lt;tab&gt; é um caractere de tabulação - tecla TAB do seu teclado...&lt;br /&gt;&lt;br /&gt;Note que "./tb" passou a ser "vvp tb". Isto se deve ao fato de "tb" ser um script reconhecido nativamente pelo GNU/Linux. Esse script chama automaticamente o "vvp" para iniciar a simulação de "tb". O Windows não reconhece tal recurso, então você terá que chamar o "vvp" passando como argumento o "tb". Este mesmo Makefile funcionará sem problemas no GNU/Linux.&lt;br /&gt;&lt;br /&gt;Após criado o Makefile resta apenas configurar o Eclipse para executa-lo.&lt;br /&gt;&lt;br /&gt;Na configuração "External Tools", no campo "Location", &lt;/tab&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;clique em "Browse File System..." e procure pelo executável "mingw32-make.exe" em "DIRETÓRIO_MINGW\bin". Conforme figura abaixo:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;tab&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MSBGqlA6xVA/R0bhDi18HJI/AAAAAAAAAA0/KHdWMNiVuZ8/s1600-h/i4.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_MSBGqlA6xVA/R0bhDi18HJI/AAAAAAAAAA0/KHdWMNiVuZ8/s320/i4.JPG" alt="" id="BLOGGER_PHOTO_ID_5136039876071529618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Acho que é isso. Se não esqueci nada, você poderá realizar simulações em Verilog no Windows.&lt;br /&gt;&lt;br /&gt;PS. Notei que nas versões mais recentes do Icarus Verilog o comando $stop() não finaliza apropriadamente a simulação, para resolver este problema, use o comando $finish() no lugar do $stop().&lt;/tab&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-5610606405266364410?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/5610606405266364410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=5610606405266364410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/5610606405266364410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/5610606405266364410'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2007/11/configurando-um-ambiente-de.html' title='Configurando um ambiente de desenvolvimento Verilog no Windows'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MSBGqlA6xVA/R0bV0S18HGI/AAAAAAAAAAc/MuUo1hcn0G0/s72-c/i1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14452038.post-7484797010158800053</id><published>2007-10-17T18:26:00.000-07:00</published><updated>2007-10-17T19:36:10.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='cx88xx'/><title type='text'>Configurando a Pixelview PlayTV Pro Ultra.</title><content type='html'>Adquiri uma placa de captura de TV modelo Pixelview PlayTV Pro Ultra que funciona rasoavelmente bem no GNU/Linux (Debian 4). Vou mostrar como configura-la.&lt;br /&gt;Esse modelo não tem EEPROM, logo o GNU/Linux não consegue saber que placa ela é... Talvez saiba o chip, mas não sabe exatamente o modelo. Por isso assim que o Debian iniciar surgirá um série de mensagens informando sobre o fato e instruindo um meio de informar exatamente qual é a placa, com uma lista de modelos suportados.&lt;br /&gt;&lt;br /&gt;No meu caso o modelo é definido pelo código 27.&lt;br /&gt;&lt;br /&gt;Então dando uma olhada em /etc/modprobe.d eu criei um arquivo chamado cx88xx com o seguinte conteúdo:&lt;br /&gt;&lt;br /&gt;options cx88xx card=27 tuner=69 i2c_scan=1&lt;br /&gt;&lt;br /&gt;E é só... Basta executar esta seqüência de comandos:&lt;br /&gt;&lt;br /&gt;rmmod cx88xx&lt;br /&gt;modprobe cx88xx&lt;br /&gt;&lt;br /&gt;Ou reiniciar todo o sistema se estiver tendo outros problemas ou simplesmente está sem saco :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-7484797010158800053?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/7484797010158800053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=7484797010158800053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/7484797010158800053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/7484797010158800053'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2007/10/configurando-pixelview-playtv-pro-ultra.html' title='Configurando a Pixelview PlayTV Pro Ultra.'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14452038.post-116221628650223880</id><published>2006-10-30T05:49:00.000-08:00</published><updated>2006-10-31T09:13:30.236-08:00</updated><title type='text'>Patch da salvação</title><content type='html'>Um patch para quem não acredita em Deus mas teme ir pro inferno. Fiz em pascal por motivos de clareza.&lt;br /&gt;&lt;br /&gt;procedure TPessoa.BeforeDie(Sender: TObject);&lt;br /&gt;var&lt;br /&gt;..I: Integer;&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;..try&lt;br /&gt;....with (Sender as TPessoa).Religiao do&lt;br /&gt;....begin&lt;br /&gt;......for I := 0 to Deuses.Count - 1 do&lt;br /&gt;......begin&lt;br /&gt;........Deuses[I].SeArrepender();&lt;br /&gt;........Deuses[I].Acreditar();&lt;br /&gt;......end;&lt;br /&gt;....end;&lt;br /&gt;..except&lt;br /&gt;....{ fudeu }&lt;br /&gt;..end;&lt;br /&gt;end;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-116221628650223880?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/116221628650223880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=116221628650223880' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/116221628650223880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/116221628650223880'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2006/10/patch-da-salvao.html' title='Patch da salvação'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14452038.post-115611748061215460</id><published>2006-08-20T16:13:00.000-07:00</published><updated>2006-08-22T06:20:23.723-07:00</updated><title type='text'>Slackware + Bluetooth + Palm -&gt; Internet</title><content type='html'>Continuando minha insana busca pelo acesso à internet via Bluetooth no meu Palm eu descobri milhares de links. Cada link que achei mostrava uma maneira um pouco diferente e algumas vezes totalmente controversa.&lt;br /&gt;&lt;br /&gt;No meu post &lt;a href="http://dmhome.blogspot.com/2006/07/bluetooth-no-slackware.html"&gt;Bluetooth no Slackware&lt;/a&gt; eu mostrei como configurar o Bluetooth para ficar funcional. Agora eu consegui acessar a internet pelo Palm usando o Bluetooth. Eu uso um Tungsten E2 (que vem com Bluetooth embutido).&lt;br /&gt;&lt;br /&gt;Faça seu Bluetooth funcionar tanto no Palm quanto no teu PC (dê uma olhada no meu post &lt;a href="http://dmhome.blogspot.com/2006/07/bluetooth-no-slackware.html"&gt;Bluetooth no Slackware&lt;/a&gt;, se não souber como).&lt;br /&gt;&lt;br /&gt;O BlueZ traz um daemon chamado &lt;span style="font-weight: bold;"&gt;dund&lt;/span&gt;, que implementa a capacidade do Palm "discar" para o PC via Bluetooth. Ele usa o PPP (que você deve configurar também) para levar teu Palm até a internet. Também é necessário o daemon sdpd que capacita o teu Linux a servir o protocolo SDP. Ative-o com o comando &lt;span style="font-weight: bold;"&gt;sdpd&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Após ativar o &lt;span style="font-weight: bold;"&gt;sdpd&lt;/span&gt;, você deve executar o comando &lt;span style="font-weight: bold;"&gt;sdptool add SP&lt;/span&gt;. Isso faz teu Linux habilitar o serviço SP, que faz ele usar uma serial virtual para se conectar ao PC. Para a serial é necessário um arquivo em /dev chamado rfcommX, onde X é a variação. Verifique se esse(s) arquivo(s) existe(m). Caso não exista, crie com &lt;b&gt;mknod -m 666 /dev/rfcomm0 c 216 X&lt;/b&gt;. Eu nem preciso repetir que X é a variação, em geral execute este comando apenas uma vez , com o valor de X igual a 0 (zero).&lt;br /&gt;&lt;br /&gt;Agora a configuração do rfcomm. Abra o arquivo /etc/bluetooth/rfcomm.conf e atente para duas seções da configuração do arquivo: &lt;span style="font-style: italic;"&gt;device&lt;/span&gt;, coloque aqui o endereço físico do teu Palm (execute &lt;span style="font-weight: bold;"&gt;hcitool scan&lt;/span&gt;, para ver uma lista de todos os dispositivos nas proximidades - com seus endereços físicos). Veja também a seção &lt;span style="font-style: italic;"&gt;comment&lt;/span&gt;, nela você coloca algum nome qualquer, eu coloquei o nome do meu Palm. Note que o nome da configuração é &lt;span style="font-weight: bold;"&gt;rfcomm0&lt;/span&gt;, o mesmo nome do arquivo que representa a linha serial virtual entre teu Palm e teu PC, caso consiga conectar mais de um dispositivo à internet usando este tutorial, este poderia ter sido o seu ponto de partida: incluir mais configurações.&lt;br /&gt;&lt;br /&gt;Você quase pode acessar a internet agora... Só não pode acessar por que não iniciou o dund, que vamos fazer após configurá-lo. Procure o diretório &lt;span style="font-style: italic;"&gt;/etc/ppp/peers&lt;/span&gt;, se não existir o diretório &lt;span style="font-style: italic;"&gt;peers&lt;/span&gt;, não tenha medo de criá-lo... Dentro dele, tu vai definir um arquivo com as opções para usar no pppd, o daemon que serve o PPP no teu Linux.&lt;br /&gt;&lt;br /&gt;O meu está configurado assim:&lt;br /&gt;&lt;br /&gt;115200&lt;br /&gt;AAA.AAA.AAA.AAA:BBB.BBB.BBB.BBB&lt;br /&gt;local&lt;br /&gt;ms-dns XXX.XXX.XXX.XXX&lt;br /&gt;noauth&lt;br /&gt;debug&lt;br /&gt;&lt;br /&gt;Observe que o A e o B são dois endereços de IP, o primeiro é o endereço do teu Linux, o segundo será o endereço atribuido ao Palm. O X é endereço de algum servidor DNS, use o do teu ISP...&lt;br /&gt;&lt;br /&gt;Salve esse arquivo em &lt;span style="font-style: italic;"&gt;/etc/ppp/peers/dun&lt;/span&gt;. Quase lá... Agora vamos ligar o dund. Rode o daemon dund desta forma: &lt;span style="font-weight: bold;"&gt;dund --listen --persist --msdun call dun&lt;/span&gt;. Ela irá executar e se soltar do terminal, indo para o plano de fundo.&lt;br /&gt;&lt;br /&gt;Vamos ao Palm... Detecte e faça &lt;span style="font-style: italic;"&gt;pairing&lt;/span&gt; entre teu Palm e o Linux. Agora configure o Palm para se concetar ao PC para uso da internet, da forma mais convenitente... No meu Palm existe um assistente, nas opções de Bluetooth tem uma opção chamada "Configurar dispositivos" ou alguma coisa assim, meu Palm tá em inglês. Esse assistente deixa teu Palm pronto para se conectar. Então faça isso logo! Se conecte.&lt;br /&gt;&lt;br /&gt;Quando conectar verá um diálogo de progresso, alguns ícones bonitinhos e então... &lt;span style="font-style: italic;"&gt;Established&lt;/span&gt;. Agora tu está conectado ao PC, mas só isso, nem tente dar &lt;span style="font-style: italic;"&gt;Ping&lt;/span&gt; ou abrir o Blazer para ver e-mails, não funciona ainda...&lt;br /&gt;&lt;br /&gt;O Linux não ia deixar qualquer coisa que chegue à ele usar a conexão de rede, sabe lá o que pode ser, então o iptables bloqueia. Alén disso tem a opção ip_forward, que aqui estava desativada...&lt;br /&gt;&lt;br /&gt;Ative o ip_forward:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;echo '1' &gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Converse com o iptables:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;iptables -A FORWARD -i ppp0 -j ACCEPT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Olha que tem uma referência a tua placa de rede (eth0), mude caso seja diferente disto. Também observe uma referência à ppp0, não sei não, mas acho que pode ser diferente em cada configuração, aqui é apenas um velho Celeron me servindo por meio de SSH, então só existe ppp0 mesmo. Existindo ADLS ou Dial-up podem exister mais... Lembre-se disso.&lt;br /&gt;&lt;br /&gt;Agora a coisa ta feita, se eu não esqueci de nada, acho que é tudo. Tenta &lt;span style="font-style: italic;"&gt;ping&lt;/span&gt;, tenta ler e-mail, tenta MSN etc. Acho que você deve ter ficado feliz da vida... Eu fiquei... Em meus defecos não levo mais revistas INFO Exame (eu sei, mas ganhei de presente), levo meu Palm e fico secando o W3Schools, Google e outras ricas fontes do saber.&lt;br /&gt;&lt;br /&gt;Nem preciso dizer, mas vou: Coloque tudo que for comando repetitivo (Acho que tudo exceto o mknod que cria o rfcommX) em teu rc.local (&lt;span style="font-style: italic;"&gt;/etc/rc.d/rc.local&lt;/span&gt;). Assim num vai ficar escrevendo isso a cada vez que reiniciar o PC...&lt;br /&gt;&lt;br /&gt;Seguem toneladas de links:&lt;br /&gt;&lt;br /&gt;(Palm)&lt;br /&gt;&lt;a href="http://www.harbaum.org/till/palm/bluetooth/index.html"&gt;http://www.harbaum.org/till/palm/bluetooth/index.html&lt;/a&gt;&lt;br /&gt;(Syncing the Treo 650 with Bluetooth)&lt;br /&gt;&lt;a href="http://www.linuxjournal.com/article/8185"&gt;http://www.linuxjournal.com/article/8185&lt;/a&gt;&lt;br /&gt;(Configuração)&lt;br /&gt;&lt;a href="http://www.linuxquestions.org/linux/answers/Applications_GUI_Multimedia/Bluetooth_in_Slackware_HOWTO"&gt;http://www.linuxquestions.org/.../Bluetooth_in_Slackware_HOWTO&lt;/a&gt;&lt;br /&gt;(Bluetooth HOWTO's)&lt;br /&gt;&lt;a href="http://www.holtmann.org/linux/bluetooth/"&gt;http://www.holtmann.org/linux/bluetooth/&lt;/a&gt;&lt;br /&gt;(Bluetooth Adapter)&lt;br /&gt;&lt;a href="http://www.nslu2-linux.org/wiki/Peripherals/BluetoothAdapter"&gt;http://www.nslu2-linux.org/wiki/Peripherals/BluetoothAdapter&lt;/a&gt;&lt;br /&gt;(Internet Access via Bluetooth on Linux)&lt;br /&gt;&lt;a href="http://www.metacon.ca/bcs/view.php?page=bluetooth"&gt;http://www.metacon.ca/bcs/view.php?page=bluetooth&lt;/a&gt;&lt;br /&gt;(Surf the Web with Bluetooth)&lt;br /&gt;&lt;a href="http://howto.pilot-link.org/bluesync/ga.html"&gt;http://howto.pilot-link.org/bluesync/ga.html&lt;/a&gt;&lt;br /&gt;(Connecting your PalmOS® handheld device to the Internet via PPP)&lt;br /&gt;&lt;a href="http://howto.pilot-link.org/ppp/"&gt;http://howto.pilot-link.org/ppp/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-115611748061215460?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/115611748061215460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=115611748061215460' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/115611748061215460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/115611748061215460'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2006/08/slackware-bluetooth-palm-internet.html' title='Slackware + Bluetooth + Palm -&gt; Internet'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14452038.post-115496898353948250</id><published>2006-08-07T09:42:00.000-07:00</published><updated>2006-08-07T09:54:29.833-07:00</updated><title type='text'>Destaques em ancomarcio.com</title><content type='html'>Uma abordagem prática ao uso de opções de destaques em sites.&lt;br /&gt;&lt;br /&gt;A idéia seria fazer com que o usuário não precisasse definir todos os dias os items que aparecem em destaque. Seria mostrada uma lista (tabela) informando o que está em destaque em cada posição. Essa lista seria preenchida com os itens mais atuais de cada posição, ou seja, quando uma posição for alterada, será criada uma nova entrada informando a data e a posição do novo item.&lt;br /&gt;&lt;br /&gt;Uma consulta desta maneira, traria os itens mais atuais de cada posição:&lt;br /&gt;&lt;br /&gt;select *&lt;br /&gt;from destaque d&lt;br /&gt;where (&lt;br /&gt; d.data = (&lt;br /&gt;     select max(destaque.data)&lt;br /&gt;     from destaque&lt;br /&gt;     where (d.tipo = destaque.tipo)&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;order by d.tipo&lt;br /&gt;&lt;br /&gt;Outra consulta usando o comando &lt;b&gt;replace &lt;/b&gt;(presente somente no MySQL, até onde eu sei), mantém atualizado a posição do destaque, alterando o item selecionado, ou criando caso não exista.&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;replace into destaque&lt;br /&gt;set item = 110, data = '2006-08-08', tipo = 2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-115496898353948250?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/115496898353948250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=115496898353948250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/115496898353948250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/115496898353948250'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2006/08/destaques-em-ancomarciocom.html' title='Destaques em ancomarcio.com'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14452038.post-115340116469774090</id><published>2006-07-20T05:59:00.000-07:00</published><updated>2006-07-20T08:59:00.026-07:00</updated><title type='text'>Bluetooth no Slackware</title><content type='html'>Tenho um Palm TE2 e ele tem suporte interno para Bluetooth Classe 1, nunca consegui acessar a internet por ele quando usava um adaptador usb para Bluetooth (Dongle). Sofri um bocado para saber como configurar o Bluetooth do Slackware 10.2 (Não usei nenhum software adicional, apenas o suporte que vem junto com o kernel original).&lt;br /&gt;&lt;br /&gt;O Bluetooth é provido ao Linux pelo Bluez (&lt;a href="http://www.bluez.org/"&gt;http://www.bluez.org/&lt;/a&gt;), e atualmente faz parte do kernel. Vou mostrar passo-a-passo como carregar os módulos (sem Hotplug, usei ele apenas para saber quais eram os módulos necessários). Tudo o que você irá precisar é de uma conta root e um adaptador Bluetooth compatível (veja se seu dispositivo é compatível em &lt;a href="http://www.bluez.org/hardware.html"&gt;http://www.bluez.org/hardware.html&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Os módulos necessários são &lt;span style="font-weight: bold;"&gt;hci_usb&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;l2cap&lt;/span&gt;, adicionalmente eu tive que carregar o módulo para USB (no meu caso, o &lt;span style="font-weight: bold;"&gt;usb-ohci&lt;/span&gt;, acho que na maioria das vezes é este mesmo). Depois de carregar os módulos é hora de configurar. Antes de carregar os módulos não me lembro se havia o diretório &lt;span style="font-weight: bold;"&gt;/etc/bluetooth&lt;/span&gt;. Mas quando carregar os módulos você deve ir para este diretório e realizar algumas configurações.&lt;br /&gt;&lt;br /&gt;No arquivo &lt;span style="font-weight: bold;"&gt;/etc/bluetooth/pin&lt;/span&gt; estará o PIN que você usará para o &lt;span style="font-style: italic;"&gt;pairing &lt;/span&gt;entre seu dispositivo e o PC. Esta chave por padrão é 1234, você pode mudar para alguma coisa mais confiável. Em seguida, abra o arquivo &lt;span style="font-weight: bold;"&gt;/etc/bluetooth/hcid.conf&lt;/span&gt;. Neste arquivo você irá definir coisas como o nome externo do seu Dongle, vá até a seção "device" e procure por "name" (lembre-se do ponto-e-vírgula no final), deixe o nome padrão se não quiser se preocupar com isso agora.&lt;br /&gt;&lt;br /&gt;Agora é preciso iniciar o daemon responsável pelo Bluetooth. Execute o comando &lt;span style="font-weight: bold;"&gt;hcid&lt;/span&gt;. O daemon irá iniciar todos os dispositivos dongle que estiverem conectados ao computador automaticamente, caso não seja iniciado por algum motivo (ou você tenha conectado o dispositivo após iniciar o daemon) execute o comando &lt;span style="font-weight: bold;"&gt;hciconfig hciX up&lt;/span&gt;, onde o X seria o número que diferencia cada dispositivo conectado. (para ver uma lista completa, execute &lt;span style="font-weight: bold;"&gt;hciconfig -a&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Após esses passos, você deve ser capaz de detectar o seu dispositivo pelo seu PC, usando o utilitário &lt;span style="font-weight: bold;"&gt;hcitool&lt;/span&gt;, você encontrará todos os dispositivos que estiverem no alcance do dongle (lembre-se de acionar o Bluetooth de seu dispositivo e torna-lo detectável).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt; hcitool scan&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Scanning ...&lt;br /&gt;     xx:xx:xx:xx:xx:xx       davi&lt;br /&gt;&lt;br /&gt;Será mostrado um texto no lugar de xx:xx:xx:xx:xx:xx, este é o endereço físico  do seu dispositivo, anote pois você precisará dele ainda. Você pode também tentar o processo inverso, detectar seu PC apartir do seu dispositivo.&lt;br /&gt;&lt;br /&gt;Este breve tópico apenas mostra até onde eu consegui, espero conseguir agora conectar-me à internet atravéz do PC, aqui você aprendeu somente o necessário para ativar o Bluetooth e fazer uso (ainda que não muito útil) de seu dongle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-115340116469774090?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/115340116469774090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=115340116469774090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/115340116469774090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/115340116469774090'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2006/07/bluetooth-no-slackware.html' title='Bluetooth no Slackware'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14452038.post-114805669303323961</id><published>2006-05-19T09:31:00.000-07:00</published><updated>2006-07-20T06:41:35.123-07:00</updated><title type='text'>Clima distorcido e barras de cereal</title><content type='html'>Chegando o fim de mais um dia gratificante* de trabalho aqui na empresa, vários bug corrigidos*, várias telas bonitas* e em pleno funcionamento*.&lt;br /&gt;E a frente fria que não vai embora, a mulher do tempo disse, na televisão, que isso passa, mas não passou. O mundo nunca irá para frente com mentiras, mesmo assim pouca gente consegue ver isso.&lt;br /&gt;João Pessoa tem a incrível capacidade de ficar mais quente que um vulcão, derretendo o asfalto e tirando a água de nossos corpos de uma maneira preocupante. João Pessoa também pode ficar terrivelmente frio, algo tão frio que pessoas que vivem em climas mais frios de todo o mundo não teria chances de sobrevivência nessas terras. A tal cidade não tem a menor chance de sobrevivência humana, é um lugar de clima(s) hostil(s) e muita desilusão no emprego.&lt;br /&gt;Ao menos tenho tenho as minhas barras de cereal e meus cookies, realmente depois de um dia de trabalho eles revigoram como um tônico dos deuses.&lt;br /&gt;Então voltarei ao trabalho, por que ainda não acabou...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-114805669303323961?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/114805669303323961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=114805669303323961' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/114805669303323961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/114805669303323961'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2006/05/clima-distorcido-e-barras-de-cereal.html' title='Clima distorcido e barras de cereal'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14452038.post-113507988087769579</id><published>2005-12-20T03:48:00.000-08:00</published><updated>2005-12-20T03:58:33.233-08:00</updated><title type='text'>Exemplo de caixas flutuantes</title><content type='html'>Neste exemplo eu mostro como fazer componentes que flutuem uns com os outros, dessa maneira eles podem se alojar automaticamente em um formulário. Me baseei no (X)HTML, mais especificamente o CSS (float).&lt;br /&gt;&lt;br /&gt;Para quem nao sabe, os componentes dentro de caixas são, inicialmente, sem flutuação, isso quer dizer que eles simplesmente são colocados um abaixo do outro. Com a flutuação à esquerda, eles tendem a se alinhar da esquerda para a direita enquanto houver espaço horizontal no formulário.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ancomarcio.com/dead_mouse/float.zip"&gt;Download&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-113507988087769579?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/113507988087769579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=113507988087769579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/113507988087769579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/113507988087769579'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2005/12/exemplo-de-caixas-flutuantes.html' title='Exemplo de caixas flutuantes'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14452038.post-112961509997905268</id><published>2005-10-17T22:56:00.000-07:00</published><updated>2006-07-20T06:42:02.723-07:00</updated><title type='text'>Clichê?</title><content type='html'>Já fiz 4 banners pro site do meu pai. A coisa não é pior do que eu pensava... ruim mesmo é não conseguir a logomarca de todos os anunciantes. De pensar que em outros cantos os anunciantes que têm obrigação de fazer os banners.&lt;br /&gt;Tenho um sono terrível! Já é o segundo dia consecutivo que não consigo dormir até de manhã. Acordo no meio da madrugada (entre 00:00 e 02:00) e não consigo mais dormir, vou pro comuputador e a coisa piora... fico acordado até a hora de ira trabalhar, um saco!&lt;br /&gt;&lt;br /&gt;Termineti o protótipo do componentes TSearchGrid. Falta pouco para que ele faça tudo o que deverisa fazer (quem sabem=...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-112961509997905268?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/112961509997905268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=112961509997905268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/112961509997905268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/112961509997905268'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2005/10/clich.html' title='Clichê?'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14452038.post-112920492551573027</id><published>2005-10-13T04:54:00.000-07:00</published><updated>2006-07-20T06:44:58.596-07:00</updated><title type='text'>Muito se fala, pouco se escuta</title><content type='html'>Primeiramente gostaria de informar que fui assaltado. Estava "fuçando" nas opções do meu telefone (MSN, ICQ) e constatei que sumiram quase R$6,00. Entrei em contato com a operadora (Oi, da Telemar) e fui informado (veja bem, informado) que enviei 37 SMS's. O pior é que na maioria das vezes estes servições existem apenas por existir, não funcionam ou são ruins (Como os da operadora Claro, que já fui cliente). Eu não queria comprar outro celular por causa de coisas desse tipo. A comunicação aqui no Brasil é horrível: tudo é caro, ruim e burocrático.&lt;br /&gt;Aqui na empresa os aplicativos estão sofrendo "pequenas"  alterações, por questões legais e melhorias a pedido dos clientes. Mesmo sendo pequenas, as alterações exigirão dias de trabalho por se tratar de uma metodologia lenta de desenvolvimento a adotada atualmente pela empresa.&lt;br /&gt;O site do meu pai está indo lento, como sempre foi. Sem muito tempo, eu o faço por partes. Por falar neste site, o servidor caiu e não voltou faz 1 dia inteiro (que eu tenha notado) o site da empresa que o hospeda também está fora do ar, provavelmente terei problemas.&lt;br /&gt;O dia vai ser longo...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14452038-112920492551573027?l=blog.davirtavares.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.davirtavares.com/feeds/112920492551573027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14452038&amp;postID=112920492551573027' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/112920492551573027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14452038/posts/default/112920492551573027'/><link rel='alternate' type='text/html' href='http://blog.davirtavares.com/2005/10/muito-se-fala-pouco-se-escuta.html' title='Muito se fala, pouco se escuta'/><author><name>Davi R. Tavares</name><uri>http://www.blogger.com/profile/15184090257252758229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
