<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8064044870137572595</atom:id><lastBuildDate>Fri, 01 Nov 2024 08:21:17 +0000</lastBuildDate><category>Dicas</category><category>Linux</category><category>Programação</category><category>C/C++</category><category>Outros</category><category>Ubuntu</category><category>Multimidia</category><category>Gnome</category><category>Kde</category><category>Musica</category><category>Banco de dados</category><category>Games</category><category>Internet</category><category>Java</category><category>Mac</category><category>Nerd</category><category>PHP</category><category>Shell script</category><category>Apple</category><category>Computação gráfica</category><category>Android</category><category>Apache</category><category>CSS</category><category>HTML</category><category>Joomla</category><category>MySQL</category><category>OpenGL</category><category>PostgreSQL</category><category>Redes sociais</category><category>Star Wars</category><category>Xperia</category><category>Zend</category><category>iPod/iPhone</category><title>Blog do Vinicius Senna</title><description></description><link>http://viniciussenna.blogspot.com/</link><managingEditor>noreply@blogger.com (Unknown)</managingEditor><generator>Blogger</generator><openSearch:totalResults>67</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-6361402625045745452</guid><pubDate>Mon, 19 Aug 2013 22:52:00 +0000</pubDate><atom:updated>2013-08-19T20:00:28.250-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CSS</category><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">HTML</category><title>HTML/CSS: Estilizando input do tipo file</title><description>Estilizar um input do tipo file é bem fácil e rápido, basta seguir os seguintes passos:&lt;br /&gt;&lt;br /&gt;

1 - Vamos criar uma classe para nossa div:
&lt;pre class=&quot;brush: css; ruler: false&quot;&gt;
    .divExemplo{
      cursor:pointer;
      background-color:rgb(155,155,155);
      width:100px;
      height:100px;
    }
&lt;/pre&gt;
Basicamente estamos dizendo que nossa div renderizará o cursor como um pointer (a mãozinha que aparece quando colocamos o ponteiro do mouse em cima de um link, por exemplo) em toda a sua área, que é de 100px de largura e altura com um background cinza.&lt;br /&gt;&lt;br /&gt;

2 - Agora vamos para o nosso HTML:
&lt;pre class=&quot;brush: text; ruler: false&quot;&gt;
&lt;label&gt;
    &lt;div class=&quot;divExemplo&quot;&gt;
      
      &lt;input id=&quot;my_file_input&quot; type=&quot;file&quot;  style=&quot;display:none;&quot;&gt;
      
    &lt;/div&gt;
&lt;/label&gt;
&lt;/pre&gt;

Agora nós envolvemos nossa div com um label, e dentro da nossa div terá nosso input do tipo file com um &quot;display:none&quot;, pois não queremos que ela apareça para o usuário. Em qualquer área da div que você clicar, a ação do input file será disparada.&lt;br /&gt;&lt;br /&gt;

O Código final fica da seguinte maneira(adicionei também um texto para nossa div):&lt;br /&gt;
&lt;pre class=&quot;brush: text; ruler: false&quot;&gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;title&amp;gt;Estilizando input file&amp;lt;/title&amp;gt;
  &amp;lt;style&amp;gt;
    .divExemplo{
      cursor:pointer;
      background-color:rgb(155,155,155);
      width:100px;
      height:100px;
    }
    
    p.alignText{
      text-align:center;
    }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &lt;label&gt;
    &lt;div class=&quot;divExemplo&quot;&gt;
      
      &lt;p class=&quot;alignText&quot;&gt;Adicionar foto&lt;/p&gt;
      &lt;input id=&quot;my_file_input&quot; type=&quot;file&quot;  style=&quot;display:none;&quot;&gt;
      
    &lt;/div&gt;
  &lt;/label&gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;

Veja em ação abaixo: 

&lt;style&gt;
    .divExemplo{
      cursor:pointer;
      background-color:rgb(155,155,155);
      width:100px;
      height:100px;
    }
    
    p.alignText{
      text-align:center;
    }
&lt;/style&gt;
&lt;div&gt;
&lt;label&gt;
    &lt;div class=&quot;divExemplo&quot;&gt;
      
      &lt;p class=&quot;alignText&quot;&gt;Adicionar foto&lt;/p&gt;
      &lt;input id=&quot;my_file_input&quot; type=&quot;file&quot;  style=&quot;display:none;&quot;&gt;
      
    &lt;/div&gt;
&lt;/label&gt;
&lt;/div&gt;

&lt;br /&gt;
&lt;strong&gt;UPDATE&lt;/strong&gt;
&lt;br /&gt;
Também podemos fazer da seguinte maneira, com o mesmo efeito:
&lt;pre class=&quot;brush: text; ruler: false&quot;&gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;title&amp;gt; Estilizando input file&amp;lt;/title&amp;gt;
  &amp;lt;style&amp;gt;
    p.style{
      text-align:center;
      cursor:pointer;
      background-color:rgb(155,155,155);
      width:100px;
      height:100px;
    }
  &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &lt;label for=&quot;my_file_input&quot; &gt;
      &lt;p class=&quot;style&quot;&gt;Adicionar foto&lt;/p&gt;
  &lt;/label&gt;
  &lt;input id=&quot;my_file_input&quot; type=&quot;file&quot;  style=&quot;display:none;&quot;&gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;</description><link>http://viniciussenna.blogspot.com/2013/08/htmlcss-estilizando-input-do-tipo-file.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-2499333875974206378</guid><pubDate>Sun, 11 Aug 2013 17:18:00 +0000</pubDate><atom:updated>2013-08-11T10:26:50.022-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Ubuntu</category><title>Ubuntu: como acessar uma partição exFAT</title><description>Para acessar uma partição &lt;strong&gt;exFAT&lt;/strong&gt; no Ubuntu ou outras distribuições Debian-like basta seguir os seguintes passos:

1 - Adicione o seguinte repositório pelo terminal:
&lt;pre class=&quot;brush: text; ruler: false&quot;&gt;
sudo add-apt-repository ppa:relan/exfat
&lt;/pre&gt;

2 - Atualize a lista de pacotes:
&lt;pre class=&quot;brush: text; ruler: false&quot;&gt;
sudo apt-get update
&lt;/pre&gt;

3 - Instale o pacote exFAT:
&lt;pre class=&quot;brush: text; ruler: false&quot;&gt;
sudo apt-get install fuse-exfat
&lt;/pre&gt;

Pronto, agora você já conseguirá acessar partições exFAT no Ubuntu.</description><link>http://viniciussenna.blogspot.com/2013/08/ubuntu-como-acessar-uma-particao-exfat.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-6986509414161276673</guid><pubDate>Sun, 14 Apr 2013 16:47:00 +0000</pubDate><atom:updated>2013-04-14T09:47:12.061-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">Kde</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Ubuntu</category><title>Kubuntu: Firefox não sabe com qual programa abrir arquivos baixados</title><description>Para resolver este problema, basta abrir o &lt;strong&gt;firefox&lt;/strong&gt; e fazer o download de algum arquivo. 
Após o término do download, irá aparece uma janela pedindo que você escolha com qual programa abrir o arquivo. Navegue até o seguinte local:

&lt;pre class=&quot;brush: java; ruler: true&quot;&gt;
/usr/bin/xdg-open
&lt;/pre&gt;

Após isso, é só marcar para lembrar sua escolha.</description><link>http://viniciussenna.blogspot.com/2013/04/kubuntu-firefox-nao-sabe-com-qual.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-5442193652736418605</guid><pubDate>Mon, 29 Oct 2012 16:02:00 +0000</pubDate><atom:updated>2012-10-29T09:02:14.514-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Java</category><category domain="http://www.blogger.com/atom/ns#">Programação</category><title>Criando seu primeiro applet Java</title><description>Para criar o seu primeiro &lt;strong&gt;applet Java&lt;/strong&gt;, você precisará ter o &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/index.html&quot;&gt;Java SE&lt;/a&gt; já instalado e também um editor de texto qualquer.
Primeiramente, vamos criar a nossa classe:
&lt;pre class=&quot;brush: java; ruler: true&quot;&gt;
//importanto a classe Applet do pacote java.applet
import java.applet.Applet; 
import java.awt.*;

public class PrimeiroApplet extends Applet {
     //JLabel que conterá a mensagem a ser exibida
     String mensagem;
     //Método init, que é carregado na inicialização do applet
     public void init(){
        mensagem = &quot;Meu Primeiro Applet!&quot;;
     }
     //Método paint, a classe Graphics no parâmetro serve para
     //definir características da janela durante a execução do applet   
     public void  paint(Graphics g){
        //desenha um retângulo
        g.drawRect(0,0,299,299);
        //escreve a mensagem
        g.drawString(mensagem,90,130); 
     }
 } 
&lt;/pre&gt;
Salve o arquivo com o nome PrimeiroApplet.java.
Agora vamos criar o arquivo HTML(PrimeiroApplet.html), que chamará a nossa applet no navegador:
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
        &amp;lt;title&amp;gt;Meu Primeiro Applet!&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
         &amp;lt;applet code=&quot;PrimeiroApplet.class&quot; width=&quot;300&quot; height =&quot;300&quot;&amp;gt;&amp;lt;/applet&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
Observe que a tag applet do código HTML carrega o arquivo PrimeiroApplet.class, que é gerado na compilação do arquivo .java. Para compilar, basta executar o seguinte comando:
&lt;pre class=&quot;brush: java; ruler: true&quot;&gt;
 javac PrimeiroApplet.java 
&lt;/pre&gt;
Lembre-se de realizar os passos descritos dentro do mesmo diretório, caso contrário, você terá de alterar a propriedade code da tag applet para o caminho aonde estiver o arquivo .class.&lt;br /&gt;
Agora você pode executar o applet, basta abrir o arquivo html em seu navegador.</description><link>http://viniciussenna.blogspot.com/2012/10/criando-seu-primeiro-applet-java.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-4830744751342680470</guid><pubDate>Wed, 03 Oct 2012 17:53:00 +0000</pubDate><atom:updated>2013-05-01T14:37:15.323-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Apache</category><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">Zend</category><title>Configurando vhost da sua aplicação Zend</title><description>Para seguir esta dica, é necessário que você já tenha criado o seu projeto Zend e esteja utilizando o servidor &lt;strong&gt;Apache&lt;/strong&gt;. 
Basicamente você terá que editar 2 arquivos: httpd.conf e hosts, que em distribuições Debian-like ficam nas seguintes localizações(Se você usa outra distribuição, veja &lt;a href=&quot;http://framework.zend.com/manual/1.12/en/learning.quickstart.create-project.html#learning.quickstart.create-project.vhost&quot;&gt;este link&lt;/a&gt;):  

&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;
/etc/apache2/sites-available/default
&lt;/pre&gt;

&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;
/etc/hosts
&lt;/pre&gt;

Primeiramente, vamos editar o arquivo /etc/hosts:

&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;
sudo nano /etc/hosts
&lt;/pre&gt;

Provavelmente o arquivo virá com este conteúdo:
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;
127.0.0.1       localhost
127.0.1.1       nome_da_sua_maquina
&lt;/pre&gt;

Agora, vamos adicionar mais uma linha a este arquivo, ficando assim:
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;
127.0.0.1       localhost
127.0.1.1       nome_da_sua_maquina
127.0.0.2       zendapp
&lt;/pre&gt;

Onde zendapp é o nome da sua aplicação, que vai ser acessada pelo endereço indicado.&lt;br/&gt;
Agora, editando o arquivo default:
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;
sudo nano /etc/apache2/sites-available/default
&lt;/pre&gt;

Coloque o seguinte conteúdo:
&lt;pre class=&quot;brush: xml; ruler: false&quot;&gt;
&amp;lt;VirtualHost zendapp&amp;gt;
ServerName zendapp
DocumentRoot /var/www/zendapp/public/
&amp;lt;Directory /var/www/zendapp/public&amp;gt;
AllowOverride All

Options All
&amp;lt;/Directory&amp;gt;
&amp;lt;/VirtualHost&amp;gt;
&lt;/pre&gt;

Reinicie os serviços com os comandos:
&lt;pre class=&quot;brush: xml; ruler: false&quot;&gt;
sudo /etc/init.d/networking restart
sudo service apache2 restart
&lt;/pre&gt;

Feito isso, você poderá acessar sua aplicação pelo endereço http://zendapp, se quiser acessar uma action em específico, basta digitar na barra de endereço como no exemplo: http:/zendapp/auth/login (Neste caso estou acessando a action login da controller auth).
&lt;br /&gt;&lt;br /&gt;
Referências: 
&lt;br /&gt;
&lt;a href=&quot;http://framework.zend.com/manual/1.12/en/learning.quickstart.create-project.html#learning.quickstart.create-project.vhost&quot;&gt;Zend Manual&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&quot;http://httpd.apache.org/docs/1.3/vhosts/examples.html&quot;&gt;Apache docs&lt;/a&gt;</description><link>http://viniciussenna.blogspot.com/2012/10/configurando-vhost-da-sua-aplicacao-zend.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-6477907949870003056</guid><pubDate>Sun, 22 Jul 2012 16:10:00 +0000</pubDate><atom:updated>2013-07-27T20:45:10.700-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Banco de dados</category><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">MySQL</category><title>Linux: Instalando MySQL Workbench no Ubuntu 12.04</title><description>Para instalar o &lt;strong&gt;Mysql Workbench&lt;/strong&gt; no Ubuntu 12.04 basta seguir os seguintes passos:&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;1-Instalar libzip1&lt;/b&gt;&lt;br/&gt;
Caso use i386, baixe no seguinte link:&lt;br /&gt;
&lt;a href=&quot;https://launchpad.net/ubuntu/precise/i386/libzip1/0.9.3-1&quot;&gt;https://launchpad.net/ubuntu/precise/i386/libzip1/0.9.3-1&lt;/a&gt;&lt;br /&gt;
Caso use amd64, baixe no seguinte link:&lt;br /&gt;
&lt;a href=&quot;https://launchpad.net/ubuntu/precise/amd64/libzip1/0.9.3-1&quot;&gt;https://launchpad.net/ubuntu/precise/amd64/libzip1/0.9.3-1&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;Após baixar, apenas clique duas vezes no .deb para instalar.&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;2-Instalar libctemplate0 python-paramiko python-pysqlite2&lt;/b&gt;&lt;br /&gt;
Abra o terminal e faça o seguinte comando:
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;sudo apt-get install libctemplate0 python-paramiko python-pysqlite2&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;3-Instalar o MySQL Workbench&lt;/b&gt;
&lt;br /&gt;Vá no seguinte endereço e baixe o .deb da versão que você utilize:
&lt;br /&gt;&lt;a href=&quot;http://www.mysql.com/downloads/workbench/#downloads&quot;&gt;http://www.mysql.com/downloads/workbench/#downloads&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
Depois de baixar, clique duas vezes no .deb e instale.</description><link>http://viniciussenna.blogspot.com/2012/07/como-instalar-mysql-workbench-no-ubuntu.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-5234483112446014014</guid><pubDate>Tue, 22 May 2012 01:53:00 +0000</pubDate><atom:updated>2012-05-21T19:07:40.013-07:00</atom:updated><title>PostgreSQL: Guia rápido com PHP</title><description>Neste post irei mostrar um guia rápido de como conectar e realizar queries simples utilizando o &lt;strong&gt;PostgreSQL&lt;/strong&gt; e o &lt;strong&gt;PHP&lt;/strong&gt;.&lt;br /&gt;
O primeiro passo é definir os dados da conexão, que são o endereço da conexão (que neste caso, é o localhost), o banco de dados que iremos nos conectar, usuário e senha:
&lt;pre class=&quot;brush: php; ruler: true&quot;&gt;
$host = &quot;localhost&quot;;//host
$db = &quot;Pgtest&quot;;  //nome do banco de dados
$user = &quot;postgres&quot;; //usuario do banco de dados
$passwd = &quot;pass&quot;; //senha do banco de dados
&lt;/pre&gt;
Para conectarmos ao PostgreSQL, utilizamos a função pgconnect, utilizando as variáveis que colocamos os dados da conexão:
&lt;pre class=&quot;brush: php; ruler: true&quot;&gt;
//Conectando ao banco de dados utilizando a funcao pg_connect
$conn = pg_connect(&quot;host=$host dbname=$db user=$user password=$passwd&quot;);
&lt;/pre&gt;
Agora com a conexão estabelecida, vamos rodar algumas queries! Primeiro criaremos uma tabela simples contendo id e nome de um usuário, depois vamos inserir 1 registro, e por fim, iremos listar os dados da tabela. Vamos guardar as queries nas seguintes variáveis:
&lt;pre class=&quot;brush: php; ruler: true&quot;&gt;
//Query para criar uma tabela no banco de dados
$table_query = &quot;CREATE TABLE usuarios(id serial NOT NULL,nome VARCHAR(64), PRIMARY KEY(id));&quot;;
//Query para inserir 1 registro na tabela
$reg_query = &quot;INSERT INTO usuarios (nome) VALUES (&#39;Vinicius&#39;);&quot;;
//Query para listar registros da tabela
$show_query = &quot;SELECT * FROM usuarios&quot;;
&lt;/pre&gt;
Para a execução das queries é utilizada a função pg_query, como mostrada a seguir:
&lt;pre class=&quot;brush: php; ruler: true&quot;&gt;
//Executando query para criar a tabela no banco de dados
$res = pg_query($conn, $table_query) or die(&quot;Nao foi possivel executar a query: $table_query\n&quot;);
//Executando query para inserir o registro na tabela
$res = pg_query($conn, $reg_query) or die(&quot;Nao foi possivel executar a query: $reg_query\n&quot;);
//Executando query para listar os registros da tabela
$res = pg_query($conn, $show_query) or die(&quot;Nao foi possivel executar a query: $reg_query\n&quot;);
&lt;/pre&gt;
Para terminar, vamos listar os dados:
&lt;pre class=&quot;brush: php; ruler: true&quot;&gt;
//Exibindo dados
while ($linha = pg_fetch_row($res)) {
 foreach($linha as $dado)
   echo $dado . &quot;\n&quot;;
}
&lt;/pre&gt;
Abaixo segue o código por completo:
&lt;pre class=&quot;brush: php; ruler: true&quot;&gt;
&amp;lt;?php
 $host = &quot;localhost&quot;;//host
 $db = &quot;Pgtest&quot;;  //nome do banco de dados
 $user = &quot;postgres&quot;; //usuario do banco de dados
 $passwd = &quot;pass&quot;; //senha do banco de dados

 //Conectando ao banco de dados utilizando a funcao pg_connect
 $conn = pg_connect(&quot;host=$host dbname=$db user=$user password=$passwd&quot;);
 //Query para criar uma tabela no banco de dados
 $table_query = &quot;CREATE TABLE usuarios(id serial NOT NULL,nome VARCHAR(64), PRIMARY KEY(id));&quot;;
 //Query para inserir 1 registro na tabela
 $reg_query = &quot;INSERT INTO usuarios (nome) VALUES (&#39;Vinicius&#39;);&quot;;
 //Query para listar registros da tabela
 $show_query = &quot;SELECT * FROM usuarios&quot;;

 //Executando query para criar a tabela no banco de dados
 $res = pg_query($conn, $table_query) or die(&quot;Nao foi possivel executar a query: $table_query\n&quot;);
 //Executando query para inserir o registro na tabela
 $res = pg_query($conn, $reg_query) or die(&quot;Nao foi possivel executar a query: $reg_query\n&quot;);
 //Executando query para listar os registros da tabela
 $res = pg_query($conn, $show_query) or die(&quot;Nao foi possivel executar a query: $reg_query\n&quot;);

 //Exibindo dados
 while ($linha = pg_fetch_row($res)) {
  foreach($linha as $dado)
     echo $dado . &quot;\n&quot;;
 }
?&amp;gt;
&lt;/pre&gt;</description><link>http://viniciussenna.blogspot.com/2012/05/postgresql-guia-rapido-com-php.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-4295341842167771080</guid><pubDate>Wed, 09 May 2012 00:31:00 +0000</pubDate><atom:updated>2012-05-08T17:31:56.056-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">Programação</category><title>md5 em PHP</title><description>Quando desenvolvemos &lt;strong&gt;aplicações web&lt;/strong&gt;, é necessário que algumas informações sejam de certa forma escondidas, como, por exemplo, as &lt;strong&gt;senhas&lt;/strong&gt; dos usuários dentro do sistema.
Uma forma de realizar isto é utilizando o &lt;a href=&quot;http://pt.wikipedia.org/wiki/MD5&quot;&gt;hash md5&lt;/a&gt;, que no &lt;strong&gt;PHP&lt;/strong&gt; é criado por meio da função md5(), como mostrada a seguir:
&lt;pre class=&quot;brush: php; ruler: true&quot;&gt;md5($str);&lt;/pre&gt;
Onde $str é alguma string que você deseja que o hash md5 seja calculado. Confira o exemplo abaixo:
&lt;pre class=&quot;brush: php; ruler: true&quot;&gt;
&amp;lt;?php
   $str = &quot;Hello World&quot;;
   $md5Str = md5($str);
  
   echo $md5Str; 
?&amp;gt;
&lt;/pre&gt;</description><link>http://viniciussenna.blogspot.com/2012/05/md5-em-php.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-1077703347534926188</guid><pubDate>Mon, 23 Apr 2012 01:15:00 +0000</pubDate><atom:updated>2012-04-22T18:17:38.414-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Computação gráfica</category><title>Os primórdios da computação gráfica</title><description>&lt;p&gt;Nos dias atuais, temos ótimas e avançadas ferramentas de computação gráfica para desenvolvimento de animações como &lt;strong&gt;Blender&lt;/strong&gt;, &lt;strong&gt;3ds Max&lt;/strong&gt;, entre outros.
Mas, para que chegássemos no nível de qualidade atual, muitas pessoas trabalharam muito há algumas décadas atrás. Criaram ferramentas bem rudimentares, mas que ajudaram na evolução da computação gráfica.&lt;/p&gt;
&lt;iframe width=&quot;640&quot; height=&quot;480&quot; src=&quot;http://www.youtube.com/embed/EPIE_h8jf6E&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;O vídeo acima é de 1971 e mostra a ferramenta keyframe produzido pelo Conselho Nacional de Pesquisa do Canadá. O próximo vídeo mostra a renderização em tempo real de uma face humana, produzido pela universidade de Utah em 1974:&lt;/p&gt;
&lt;iframe width=&quot;640&quot; height=&quot;480&quot; src=&quot;http://www.youtube.com/embed/SPMFhcC4SvQ&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;</description><link>http://viniciussenna.blogspot.com/2012/04/os-primordios-da-computacao-grafica.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/EPIE_h8jf6E/default.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-6313258589544014844</guid><pubDate>Wed, 15 Feb 2012 04:19:00 +0000</pubDate><atom:updated>2012-02-14T20:35:12.406-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C/C++</category><category domain="http://www.blogger.com/atom/ns#">Computação gráfica</category><category domain="http://www.blogger.com/atom/ns#">OpenGL</category><category domain="http://www.blogger.com/atom/ns#">Programação</category><title>Cohen–Sutherland em C/C++</title><description>&lt;strong&gt;Cohen–Sutherland&lt;/strong&gt; é um algoritmo de recorte de linhas, que divide um espaço 2D em nove regiões, sendo que a região central é a parte visível, ou seja tudo que estiver fora da área central é descartado. O programa disponibilizado aqui em &lt;strong&gt;C/C++&lt;/strong&gt; com &lt;strong&gt;OpenGL&lt;/strong&gt;, basicamente captura os pontos clicados através do mouse, desenha a linha, recorta e reseta tudo, como podemos observar na imagem abaixo:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;http://i621.photobucket.com/albums/tt292/vsenna/conhen12.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;264&quot; src=&quot;http://i621.photobucket.com/albums/tt292/vsenna/conhen12.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
A implementação segue abaixo, e para mais informações sobre o algoritmo &lt;a href=&quot;http://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland_algorithm&quot; target=&quot;_blank&quot;&gt;clique aqui&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: c; ruler: true&quot;&gt;/*
 * Implementacao do algoritmo de Cohen-Sutherland
 *      para o recorte de segmentos de reta
 *
 * Implementacao baseada no livro:
 * Computer Graphics: Principles and Practice
 *
 * COMANDOS:
 *          r - recorta
 *          espaco - apaga vertices e linha
 *
 */

//diretivas de compilacao condicional
#ifdef _WIN32
#include &amp;lt;windows.h&amp;gt;
#endif
#ifdef __APPLE__
#include &amp;lt;GLUT/glut.h&amp;gt;
#else
#include &amp;lt;GL/glut.h&amp;gt;
#endif

//macro que define numero de vertices
#define N_VERTEX 2
//macros que definem as posicoes das regioes
#define TOP     8
#define BOTTOM  4
#define LEFT    1
#define RIGHT   2
//macros que definem os limites para a regiao 0000
#define X_MAX  0.5 //xmax
#define X_MIN -0.5 //xmin
#define Y_MAX  0.5 //ymax
#define Y_MIN -0.5 //ymin

GLint currentVertex = 0; //Vertice corrente
GLdouble modelview[16]; //matriz modelview
GLdouble projection[16]; //matriz projecao
/*
    Dados do vetor viewport:
    viewport[0]=x
    viewport[1]=y
    viewport[2]=width
    viewport[3]=height
*/
GLint viewport[4];
//variaveis utilizadas para pegar as coordenadas do mouse
GLfloat winX, winY, winZ;
GLdouble posX, posY, posZ;
//Matriz que guarda as coordenadas dos vertices
GLfloat vertexes[6][3] = {
  {0.0,  0.0, 0.0},
  {0.0, 0.0,  0.0},
  {0.0,  0.0, 0.0},
  {0.0,  0.0, 0.0},
  {0.0,  0.0, 0.0},
  {0.0,  0.0, 0.0}
};
typedef int outcode;
outcode code;

//Desenha pontos
void
drawPoints(){
    glPointSize(5.0);//Definindo expessura do ponto
    glBegin(GL_POINTS);
        if(currentVertex &amp;gt; 0){
            for (int i = 0; i &amp;lt; currentVertex; i++)
                glVertex3fv(&amp;amp;vertexes[i][0]);//desenha
        }
    glEnd();
}

//verifica posicao
outcode
CompOutCode (double x, double y){
    code = 0;//dentro de 0000

    if (y &amp;gt; Y_MAX){
        code = TOP; //topo
    }
    else{
        if(y &amp;lt; Y_MIN){
            code = BOTTOM; //baixo
        }
        if(x &amp;gt; X_MAX){
            code = RIGHT; //direita
        }
        if(x &amp;lt; X_MIN){
            code = LEFT; //esquerda
        }
    }

    return code;
}

//Algoritmo de Cohen-Sutherland
void
CohenSutherlandLineClipAndDraw(double x0, double y0, double x1,double y1, double xmin, double xmax, double ymin, double ymax){
    bool accept, done;//variaveis de verificacao
    outcode outcode0, outcode1, outcodeOut;//declaracao das variaveis do tipo outcode

    accept = done = false;//inicializando variaveis de verificacao

    outcode0 = CompOutCode(x0, y0);//pega posicao a qual o ponto1 se encontra
    outcode1 = CompOutCode(x1, y1);//pega posicao a qual o ponto2 se encontra

    while (!done){
        if (!outcode0 &amp;amp;&amp;amp; !outcode1){
            accept = done = true;//aceita e sai do loop
        }
        else{
            if(outcode0 &amp;amp; outcode1){//quanto esta totalmente fora de  0000
                done = true;//termina o loop
                currentVertex = 0;//zera a quantidade de vertices
            }
            else{
                    //Houve falha em ambos dos testes, entao e&#39; calculado o segmento da linha
                    //a partir de um ponto fora de uma intersecção com a borda do retangulo.

                    //Pelo menos um ponto de extremidade está fora do retângulo, aqui e&#39; pego esse ponto
                    outcodeOut = outcode0 ? outcode0 : outcode1;

                    double x,y;
                    //Agora achando o ponto de interseccao
                    if(outcodeOut &amp;amp; TOP){//Divide linha ao topo do retangulo
                        x = x0 + (x1 - x0) * (ymax - y0) / (y1 - y0);
                        y = ymax;
                    }
                    else{
                        if(outcodeOut &amp;amp; BOTTOM){//Divide linha na parte de baixo do retangulo
                            x = x0 + (x1 - x0) * (ymin - y0) / (y1 - y0);
                            y = ymin;
                        }
                        else{
                            if(outcodeOut &amp;amp; RIGHT){//Divide linha na borda direita do retangulo
                                y = y0 + (y1 - y0) * (xmax - x0) / (x1 - x0);
                                x = xmax;
                            }
                            else{
                                if(outcodeOut &amp;amp; LEFT){//Divide linha na borda esquerda do retangulo
                                    y = y0 + (y1 - y0) * (xmin - x0) / (x1 - x0);
                                    x = xmin;
                                }
                            }
                        }
                    }

                    //Agora movemos o ponto que esta fora p/ a interseccao do retangulo
                    if (outcodeOut == outcode0) {
                            x0 = x;
                            y0 = y;
                            outcode0 = CompOutCode(x0, y0);
                    } else {
                            x1 = x;
                            y1 = y;
                            outcode1 = CompOutCode(x1, y1);
                    }

            }
        }

    }

    if(accept){//Atribui novos valores para os vertices
        vertexes[0][0] = x0;//Coordenada x do ponto 1
        vertexes[0][1] = y0;//Coordenada y do ponto 1
        vertexes[1][0] = x1;//Coordenada x do ponto 2
        vertexes[1][1] = y1;//Coordenada y do ponto 2
    }
}

//Imprime strings com o codigo de 4 bits de cada regiao
//parametros:   float posStrX: posicao x da string
//              float posStrY: posicao y da string
//              const char *str: string a ser exibida
void
printStrings(float posStrX, float posStrY, const char *str){
    //mudando cor da linha para verde
    glColor3f (0.0, 1.0, 0.0);
    //posicionando string na tela
    glRasterPos2f(posStrX, posStrY);

    //String exibida na tela
    char* p = (char*) str; //atribui da variavel *p

    while (*p != &#39;\0&#39;) {//percorre string ate o final
        //funcao da glut que imprime char por char na tela
        glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18,*p++);
    }
}

//Desenha linhas que delimitam as regioes
void
drawRegionLines(){
    glBegin(GL_LINES);
        //mudando cor da linha para branco
        glColor3f (1.0, 1.0, 1.0);

        //desenha linhas das regioes
        for(float i = -0.5;i &amp;lt;= 0.5; i = i + 1)
        {
            glVertex2f( -1, i);//coordenada inicial da linha
            glVertex2f( 1, i);//coordenada final da linha
        }

        //desenha linhas das regioes
        for(float i = -0.5;i &amp;lt;= 0.5; i = i + 1){
            glVertex2f( i, -1);//coordenada inicial da linha
            glVertex2f( i, 1);//coordenada final da linha
        }
    glEnd();
}

//linha entre os vertices e&#39; desenhada aqui
void
drawLineBetweenVertexes(){
    glBegin(GL_LINE_STRIP);
        //Setando a cor da linha para amarelo
        glColor3f(1.0f, 1.0f, 0.0f);
        //se a quantidade de vertices for satisfeita
        if(currentVertex == N_VERTEX){//entao as linhas entre os vertices sao desenhadas
            for (int i = 0; i &amp;lt; N_VERTEX; i++)
                glVertex3fv(&amp;amp;vertexes[i][0]); //a linha e&#39; desenhada com a funcao glVerte3fv
        }
    glEnd();
}

//rotina callback de display OpenGL
void
renderScene(){
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    //Define valores p/ glClear
    glClearColor(0.0, 0.0, 0.0, 0.0);

    // Mudando a cor para vermelho
    //          R     G     B
    glColor3f(1.0f, 0.0f, 0.0f);

    glGetDoublev( GL_MODELVIEW_MATRIX, modelview );
    glGetDoublev( GL_PROJECTION_MATRIX, projection );
    glGetIntegerv( GL_VIEWPORT, viewport );

    //Aqui sao desenhados os pontos(mostrados a partir do clique do mouse)
    drawPoints();

    //linha entre os vertices e&#39; desenhada aqui
    drawLineBetweenVertexes();

    printStrings(-0.8,  0.7, &quot;1001&quot;);//imprimindo string 1001
    printStrings(-0.05, 0.7, &quot;1000&quot;);//imprimindo string 1000
    printStrings( 0.7,  0.7, &quot;1010&quot;);//imprimindo string 1010
    printStrings(-0.8,  0.0, &quot;0001&quot;);//imprimindo string 0001
    printStrings(-0.05, 0.0, &quot;0000&quot;);//imprimindo string 0000
    printStrings( 0.7,  0.0, &quot;0010&quot;);//imprimindo string 0010
    printStrings(-0.8, -0.8, &quot;0101&quot;);//imprimindo string 0101
    printStrings(-0.05,-0.8, &quot;0100&quot;);//imprimindo string 0100
    printStrings( 0.7, -0.8, &quot;0110&quot;);//imprimindo string 0110

    drawRegionLines();//Desenha linhas que delimitam as regioes
    glutSwapBuffers();//Fazendo troca de Buffers
}

//Funcao callback p/ teclado
void
keyboard (unsigned char key, int x, int y){
    switch (key){
        case 27://se pressionar ESC
            exit(0);//sai do programa
        break;

        case &#39;r&#39;://Faz chamada ao algoritmo Cohen-Sutherland para recorte
            CohenSutherlandLineClipAndDraw(vertexes[0][0], vertexes[0][1], vertexes[1][0], vertexes[1][1], X_MIN, X_MAX, Y_MIN, Y_MAX);
            glutPostRedisplay();//faz redisplay
        break;

        case &#39; &#39;://comando que apaga linhas e vertices
            currentVertex = 0;//zera quantidade de vertices
            glutPostRedisplay();//faz redisplay
        break;
    }
}

//funcao callback para mouse
void
mouse(int button, int state, int x, int y){
    //caso botao do mouse seja pressionado
    if (state == GLUT_DOWN){
        //passando para coordenadas do mundo real
        winX = (float)x; //passando o valor de x por cast, pois a variavel winX e&#39; do tipo GLfloat
        winY = (float)viewport[3] - (float)y; //viewport[3] e y sao inteiros, por isso sao passados por cast p/ winY que e&#39; GLfloat
        //funcao que pega as coordenadas de x, y
        gluUnProject( winX, winY, winZ, modelview, projection, viewport, &amp;amp;posX, &amp;amp;posY, &amp;amp;posZ);
        //guardando a posicao de x quando pressiona o botao direito do mouse
        vertexes[currentVertex][0] = posX;
        //guardando a posicao de y quando pressiona o botao direito do mouse
        vertexes[currentVertex][1] = posY;
        //incrementa a quantidade de vertices para o desenho dos pontos do
        //vertice e para o desenho da linha
        if(currentVertex &amp;lt; N_VERTEX){
            currentVertex++;//incrementando
        }
        //fazendo redisplay
        glutPostRedisplay();
    }
}

//Funcao principal
int
main(int argc, char *argv[]){
    //inicializando glut
    glutInit(&amp;amp;argc, argv);
    //definindo tamanho da tela
    glutInitWindowSize(800,600);
    //definindo posicao inicial da janela
    glutInitWindowPosition(100,15);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    //definindo nome da janela
    glutCreateWindow(&quot;Algoritmo Cohen-Sutherland&quot;);
    //rotina callback de display OpenGL
    glutDisplayFunc(renderScene);
    //Rotina callback para teclado
    glutKeyboardFunc(keyboard);
    //rotina callback para o mouse
    glutMouseFunc(mouse);
    //loop principal do glut
    glutMainLoop();

    return EXIT_SUCCESS;
}

&lt;/pre&gt;</description><link>http://viniciussenna.blogspot.com/2012/02/cohensutherland-em-cc.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-4533614352074254678</guid><pubDate>Wed, 25 Jan 2012 02:27:00 +0000</pubDate><atom:updated>2012-01-24T18:28:46.674-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C/C++</category><category domain="http://www.blogger.com/atom/ns#">Programação</category><category domain="http://www.blogger.com/atom/ns#">Shell script</category><title>Shell script: compilar e executar programa em C/C++ com OpenGL</title><description>&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;
#!/bin/sh

# Script que compila programa em C/C++ que utiliza OpenGL/glut

# verificando se o argumento foi passado
if [ $# -ne 1 ]; then
    echo 1&gt;&amp;2 &quot;Missing argument. Use: ./glMake.sh [filename].cpp&quot;
else
    #compilando
    g++ -lglut -lGL -lGLU -lGLEW $1
    #executando
    ./a.out
fi
&lt;/pre&gt;</description><link>http://viniciussenna.blogspot.com/2012/01/shell-script-compilar-e-executar.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-8265587810751477847</guid><pubDate>Tue, 15 Nov 2011 02:28:00 +0000</pubDate><atom:updated>2012-05-08T17:32:41.130-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">Programação</category><title>Ler arquivo em PHP</title><description>&lt;pre class=&quot;brush: php; ruler: true&quot;&gt;
&amp;lt?php
 function leArquivo($nomeArquivo){
  //abrindo o arquivo com a funcao fopen
  if($file = fopen($nomeArquivo, &#39;r&#39;)){
   //Enquanto nao chegar ao fim do arquivo
   while(!feof($file)){
    //extraindo linha do arquivo
    $conteudo = fgets($file);
    //exibindo conteudo 
    echo $conteudo . &quot;&amp;lt;br / &amp;gt;&quot;;
   }
   fclose($fp);//fechando o ponteiro para arquivo
  }
  else{
   echo &quot;Nao foi possivel ler o arquivo!&quot;;
  }
 }
 //chamando a funcao que le o arquivo
 leArquivo(&quot;arquivo.txt&quot;);
?&amp;gt
&lt;/pre&gt;</description><link>http://viniciussenna.blogspot.com/2011/11/ler-arquivo-em-php.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-1800651685025169497</guid><pubDate>Wed, 31 Aug 2011 01:41:00 +0000</pubDate><atom:updated>2011-08-30T18:41:55.541-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">Joomla</category><title>Problema no configuration.php - Joomla</title><description>Durante a instalação do &lt;strong&gt;Joomla&lt;/strong&gt; pode ocorrer de ele acusar o seguinte erro: &lt;strong&gt;&quot;configuration.php file not writable&quot;&lt;/strong&gt;. Para resolver isto basta seguir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
1- Crie o arquivo configuration.php dentro do diretório do Joomla.&lt;br /&gt;
2- Modifique as permissões do arquivo com o seguinte comando:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;chmod 777 configuration.php&lt;/pre&gt;
&lt;br /&gt;
Fonte: &lt;a href=&quot;http://edutechwiki.unige.ch/en/Joomla_installation_and_configuration#The_configuration.php_file&quot;&gt;edutechwiki&lt;/a&gt;</description><link>http://viniciussenna.blogspot.com/2011/08/problema-no-configurationphp-joomla.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-4348170630224650293</guid><pubDate>Mon, 01 Aug 2011 13:07:00 +0000</pubDate><atom:updated>2011-08-02T06:47:58.184-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Banco de dados</category><category domain="http://www.blogger.com/atom/ns#">Dicas</category><title>Povoando um banco de dados facilmente</title><description>Às vezes é necessário povoar um &lt;strong&gt;banco de dados&lt;/strong&gt; para realizar testes em algum sistema que está sendo desenvolvido. Essa tarefa pode ser realmente muito trabalhosa, se cada informação for inserida manualmente. Para isso, criaram o site &lt;a href=&quot;http://www.generatedata.com/#generator&quot;&gt;generatedata.com&lt;/a&gt;, que possui um script que gera as queries para serem &amp;nbsp;inseridas no banco de dados, é só nomear as colunas de acordo com o tipo de dado desejado, clicar em &quot;Generate&quot; e pronto!</description><link>http://viniciussenna.blogspot.com/2011/08/povoando-um-banco-de-dados-facilmente.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-7923343928668253815</guid><pubDate>Wed, 15 Jun 2011 23:11:00 +0000</pubDate><atom:updated>2011-08-02T06:48:52.131-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Ubuntu</category><title>Instalar VirtualBox guest additions no Ubuntu 11.04</title><description>Para instalar guest additions do &lt;strong&gt;VirtualBox&lt;/strong&gt; no Ubuntu 11.04, abra o terminal e siga os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
1 - Faça o update:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;sudo apt-get update&lt;/pre&gt;&lt;br /&gt;
2 - Instale:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;sudo apt-get install virtualbox-ose-guest-utils&lt;/pre&gt;</description><link>http://viniciussenna.blogspot.com/2011/06/instalar-virtualbox-guest-additions-no.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-1005418441768941271</guid><pubDate>Sun, 10 Apr 2011 01:43:00 +0000</pubDate><atom:updated>2013-07-27T21:03:10.813-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C/C++</category><title>C/C++: Mostrar string invertida</title><description>Abaixo temos um simples programa em &lt;strong&gt;C&lt;/strong&gt; que mostra uma string invertida. A string é passada como argumento do programa.&lt;br /&gt;
&lt;pre class=&quot;brush: c; ruler: true&quot;&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;

void mostraStringInvertida(char *str)
{
 int cont = 0;
 for (cont = strlen(str) ; cont &gt;= 0 ;cont--)
 {
  printf(&quot;%c&quot;, str[cont]);
 }
 printf(&quot;\n&quot;);
}

int main(int argc, char *argv[])
{
 /*a string passada como argumento é invertida nessa função*/
 mostraStringInvertida(argv[1]);
 return 0;
}
&lt;/pre&gt;</description><link>http://viniciussenna.blogspot.com/2011/04/mostrar-string-invertida-em-c.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-7364683624681538748</guid><pubDate>Sat, 02 Apr 2011 23:37:00 +0000</pubDate><atom:updated>2011-04-02T16:37:03.039-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Ubuntu</category><title>Ubuntu 11.04 em ação</title><description>O vídeo a seguir mostra Unity, a nova interface padrão do Ubuntu e suas novas features:&lt;br /&gt;
&lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;http://www.youtube.com/embed/kkFv5jwbNq8&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
Via &lt;a href=&quot;http://www.omgubuntu.co.uk/2011/03/ubuntu-11-04-beta-released-reviewed/&quot;&gt;OMG! Ubuntu!&lt;/a&gt;</description><link>http://viniciussenna.blogspot.com/2011/04/ubuntu-1104-em-acao.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/kkFv5jwbNq8/default.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-3616867649385791202</guid><pubDate>Mon, 14 Mar 2011 06:05:00 +0000</pubDate><atom:updated>2011-08-02T06:46:45.136-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">Kde</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Gerenciador de rede desativado no Kubuntu</title><description>Caso o gerenciador de rede for por algum motivo desativado no seu &lt;strong&gt;kubuntu&lt;/strong&gt;, siga as instruções abaixo para reativá-lo:&lt;br /&gt;
&lt;br /&gt;
edite o seguinte arquivo:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;sudo kate /var/lib/NetworkManager/NetworkManager.state&lt;/pre&gt;
&lt;br /&gt;
mude a seguinte linha:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;NetworkingEnabled=false&lt;/pre&gt;
para:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;NetworkingEnabled=true&lt;/pre&gt;
&lt;br /&gt;
Agora salve e reinicie.</description><link>http://viniciussenna.blogspot.com/2011/03/gereciador-de-rede-desativado-no.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-5554644298406858321</guid><pubDate>Thu, 03 Mar 2011 02:57:00 +0000</pubDate><atom:updated>2011-03-02T18:57:52.788-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Kde</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Ubuntu</category><title>Kubuntu 10.04 e o flash player</title><description>Há alguns anos atrás eu usava o KDE como minha interface gráfica padrão no linux, mas quando sairam as primeiras versões do KDE 4.x, acabei adotando o Gnome como interface gráfica padrão, por causa de alguns bugs que me incomodavam nesse &quot;novo&quot; KDE. De alguns dias pra cá, tenho testado o kubuntu 10.04 e tenho ficado muito satisfeito.&lt;br /&gt;
Os bugs sumiram(pelo menos os que eu tinha percebido), além de novas features (a que mais gostei foi a utilizacao de programas em abas).&lt;br /&gt;
Tudo funcionou muito bem, mas só o flash insistia em não funcionar direito. Instalei, reinstalei e sempre os vídeos em flash continuavam sem som. Mas fazendo algumas pesquisas, &lt;br /&gt;
consegui achar uma solução para isso.&lt;br /&gt;
A solução que funcionou comigo foi a seguinte:&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
1-Vamos criar o seguinte arquivo na pasta /etc:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;sudo kate /etc/asound.conf
&lt;/pre&gt;&lt;br /&gt;
2-Dentro dele insira o seguinte conteúdo:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}
&lt;/pre&gt;&lt;br /&gt;
Referência: &lt;a href=&quot;https://wiki.ubuntu.com/PulseAudio&quot;&gt;Ubuntu wiki&lt;/a&gt;</description><link>http://viniciussenna.blogspot.com/2011/03/kubuntu-1004-e-o-flash-player.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-8937889353628037354</guid><pubDate>Wed, 26 Jan 2011 21:49:00 +0000</pubDate><atom:updated>2011-01-26T13:59:08.003-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Games</category><title>History of gaming</title><description>&lt;center&gt;&lt;iframe src=&quot;http://player.vimeo.com/video/18743950&quot; width=&quot;500&quot; height=&quot;281&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href=&quot;http://vimeo.com/18743950&quot;&gt;History of Gaming&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user5708268&quot;&gt;Florian Smolka&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;/center&gt;</description><link>http://viniciussenna.blogspot.com/2011/01/history-of-gaming.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-8876148210727652599</guid><pubDate>Thu, 13 Jan 2011 23:24:00 +0000</pubDate><atom:updated>2011-08-02T06:42:25.810-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android</category><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">Xperia</category><title>Root no android - Xperia X10</title><description>Bom, esse é um tutorial de como obter root(super-user) no android. Neste tutorial foi usado o celular Xperia X10 mini pro rodando Android 2.1 da Sony Ericsson, mas também deve servir para outros celulares da família &lt;strong&gt;Xperia&lt;/strong&gt;.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Primeiro passo:&lt;br /&gt;
Baixe o app &quot;ES File Explorer&quot; no Android Market(ou outro explorador de arquivos de sua preferência).&lt;br /&gt;
&lt;br /&gt;
Segundo passo:&lt;br /&gt;
Baixe o app Z4root, passe cara o cartão SD do celular, e, usando o ES File Explorer, instale o Z4root. É só clicar no no botão que o app faz o resto!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;a href=&quot;http://s621.photobucket.com/albums/tt292/vsenna/?action=view&amp;amp;current=CAP201101131944.png&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Photobucket&quot; border=&quot;0&quot; src=&quot;http://i621.photobucket.com/albums/tt292/vsenna/CAP201101131944.png&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
Lembrando que este procedimento é por sua conta e risco!&lt;br /&gt;
&lt;br /&gt;
Download do z4root &lt;a href=&quot;http://handheld.softpedia.com/get/System-Utilities/Enhancements/z4root-110178.shtml&quot;&gt;aqui&lt;/a&gt;.</description><link>http://viniciussenna.blogspot.com/2011/01/root-no-android-xperia-x10.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-509651065184835927</guid><pubDate>Sat, 18 Dec 2010 21:25:00 +0000</pubDate><atom:updated>2011-08-02T06:43:39.387-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">Gnome</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Ubuntu</category><title>Personalizando seu Ubuntu ao máximo com Ubuntu Tweak</title><description>&lt;strong&gt;Ubuntu tweak&lt;/strong&gt; é uma das ferramentas mais fáceis de utilizar para personalizar o ubuntu. A instalação é bem fácil, basta ir para o site oficial clicando &lt;a href=&quot;http://ubuntu-tweak.com/&quot;&gt;aqui&lt;/a&gt;, baixe o pacote .deb, e o instale apenas dando dois cliques nele. &lt;br /&gt;
Feito isso, é só acessá-lo em &quot;Applications-&amp;gt;System Tools-&amp;gt;Ubuntu Tweak&quot;.&lt;br /&gt;
&lt;br /&gt;
Dentro dele, temos as seguintes telas:&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;Applications&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;a href=&quot;http://s621.photobucket.com/albums/tt292/vsenna/?action=view&amp;amp;current=applications.png&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Photobucket&quot; border=&quot;0&quot; src=&quot;http://i621.photobucket.com/albums/tt292/vsenna/applications.png&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
Nesta seção podemos gerenciar os aplicativos instalados, instalar novos aplicativos, fazer updates, além de editar os repositórios do sistema&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Startup&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;a href=&quot;http://s621.photobucket.com/albums/tt292/vsenna/?action=view&amp;amp;current=Startup.png&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Photobucket&quot; border=&quot;0&quot; src=&quot;http://i621.photobucket.com/albums/tt292/vsenna/Startup.png&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
Aqui você edita as configurações da tela de login, e outras informações referentes à inicialização&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Desktop&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;a href=&quot;http://s621.photobucket.com/albums/tt292/vsenna/?action=view&amp;amp;current=Desk.png&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Photobucket&quot; border=&quot;0&quot; src=&quot;http://i621.photobucket.com/albums/tt292/vsenna/Desk.png&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
Aqui é possível editar configurações do Compiz, dos ícones da área de trabalho, fazer backup das suas configurações, editar configurações do Gnome e do gerenciador de janelas.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Personal&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;a href=&quot;http://s621.photobucket.com/albums/tt292/vsenna/?action=view&amp;amp;current=Personal.png&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Photobucket&quot; border=&quot;0&quot; src=&quot;http://i621.photobucket.com/albums/tt292/vsenna/Personal.png&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
Nesta seção você pode configurar configurações pessoais como as pastas do seu diretório Home, além de gerenciar templates de seus documentos.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;System&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;a href=&quot;http://s621.photobucket.com/albums/tt292/vsenna/?action=view&amp;amp;current=system.png&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Photobucket&quot; border=&quot;0&quot; src=&quot;http://i621.photobucket.com/albums/tt292/vsenna/system.png&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
E por último, nesta seção você pode editar seu Hostname, modificar informações do Nautilus, gerenciamento de energia e algumas configurações de segurança.</description><link>http://viniciussenna.blogspot.com/2010/12/personalizando-seu-ubuntu-ao-maximo-com.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-2716610224821529539</guid><pubDate>Wed, 22 Sep 2010 23:41:00 +0000</pubDate><atom:updated>2011-02-09T19:29:52.704-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">Gnome</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Como instalar globalmenu no Ubuntu 10.04</title><description>Para instalar o global menu applet, basta abrir o terminal e seguir as seguintes instruções:&lt;br /&gt;
&lt;br /&gt;
1-Adicione o repositório:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;sudo add-apt-repository ppa:globalmenu-team/ppa
&lt;/pre&gt;&lt;br /&gt;
2-Faça o update e instale:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;sudo apt-get update
sudo apt-get install gnome-globalmenu
&lt;/pre&gt;&lt;br /&gt;
Depois da instalação, faça logout e faça logon novamente, clique com o botão direito do mouse em algum painel e adicione o &quot;global menu panel applet&quot;.&lt;br /&gt;
&lt;br /&gt;
Via &lt;a href=&quot;http://www.ubuntugeek.com/how-to-install-globalmenu-in-ubuntu-10-04lucid9-10karmic.html&quot;&gt;Ubuntu Geek&lt;/a&gt;.</description><link>http://viniciussenna.blogspot.com/2010/09/como-instalar-globalmenu-no-ubuntu-1004.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-3929192783836804919</guid><pubDate>Mon, 06 Sep 2010 18:44:00 +0000</pubDate><atom:updated>2011-02-09T19:28:30.580-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Xorg.conf para o notebook Sony Vaio vpccw14fx (Ubuntu)</title><description>&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;Section &quot;Screen&quot;
 Identifier &quot;Default Screen&quot;
 DefaultDepth 24
 Option         &quot;TwinView&quot; &quot;1&quot;
     Option         &quot;TwinViewXineramaInfoOrder&quot; &quot;DFP-0&quot;
     Option         &quot;metamodes&quot; &quot;CRT: NULL, DFP-0: 1366x768_60 +0+0, DFP-1: NULL&quot;
     SubSection     &quot;Display&quot;
         Depth       24
     EndSubSection
EndSection

Section &quot;Module&quot;
 Load &quot;glx&quot;
EndSection

Section &quot;Device&quot;
 Identifier &quot;Default Device&quot;
 Driver &quot;nvidia&quot;
 Option &quot;NoLogo&quot; &quot;True&quot;
 Option  &quot;ConnectedMonitor&quot; &quot;DFP-0, DFP-1, CRT&quot;
        Option  &quot;CustomEDID&quot; &quot;DFP-0: /proc/acpi/video/NGFX/LCD/EDID&quot;
 Option &quot;RegistryDwords&quot; &quot;EnableBrightnessControl=1&quot;
EndSection
&lt;/pre&gt;&lt;br /&gt;
&lt;a href=&quot;http://ubuntuforum-br.org/index.php?PHPSESSID=1af16a7350f3057cc34e5b6f9fbf9b78&amp;/topic,66348.0.html&quot;&gt;Fonte&lt;/a&gt;.</description><link>http://viniciussenna.blogspot.com/2010/09/xorgconf-para-o-notebook-sony-vaio.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8064044870137572595.post-4212678840171495858</guid><pubDate>Mon, 06 Sep 2010 18:18:00 +0000</pubDate><atom:updated>2011-02-09T19:30:59.218-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dicas</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Multimidia</category><title>Como converter video OGV para AVI no Ubuntu</title><description>Se você possui algum vídeo *.ogv e queira converter para *.avi, basta seguir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
1-Instalar o mencoder:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;sudo apt-get install mencoder&lt;/pre&gt;&lt;br /&gt;
2-Após instalar o mencoder, usando o terminal, vá até a pasta onde está salvo o arquivo *.ogv e digite o seguinte comando:&lt;br /&gt;
&lt;pre class=&quot;brush: js; ruler: false&quot;&gt;mencoder -idx video_in.ogv -ovc lavc -oac mp3lame -o video_out.avi&lt;/pre&gt;Onde video_in.ogv será o nome do seu arquivo .ogv e video_out.avi será o nome do arquivo convertido para avi.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.vivaolinux.com.br/dica/Convertendo-formato-de-video-*.ogv-para-*.avi-no-Linux&quot;&gt;Referência&lt;/a&gt;.</description><link>http://viniciussenna.blogspot.com/2010/09/como-converter-video-ogv-para-avi-no.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item></channel></rss>