Pular para o conteúdo principal

Postagens

Popcorn Time : como resolver o problema de atualização dos filmes

O Popcorn Time é um aplicativo de compartilhamento de vídeos que utiliza a rede p2p torrent. Um dos problemas corriqueiros é quando abrimos o programa e vem a nefasta mensagem "Erro ao atualizar bando de dados. Tente novamente mais tarde." E você vai abrir mais tarde e possivelmente o erro vai continuar. Isso acontece porque todas as cópias do Popcorn Time , mesmo seus clones e forks usam proxy de uma base de dados. Essa base de dado é uma api que retorna em formato json os dados dos filmes, e eis aqui o endereço : http://yts.re/api/list.json Agora, para resolver o problema, ou você pega o código fonte do programa e enfia esse endereço nele ( o que não é legal, por isso se usam proxys, para não sobrecarregar o site e ficarmos de vez sem atualização ) ou outro endereço de proxy para a api, ou você faz o mais rápido : 1) Abra o arquivo "~/.config/Popcorn-Time/data/movies.db" ( pasta oculta no linix que o programa cria, existe uma pasta oculta "applicatio...

Javascript : como salvar qualquer tipo de valor de uma requisição ajax

Uma das coisas que mais batem a cabeça de quem trabalha com ajax é conseguir salvar os valores retornados numa requisição do tipo var xmlhttp; function myRequestFunction(){ var http_request = new XMLHttpRequest(); try{ // Opera 8.0+, Firefox, Chrome, Safari http_request = new XMLHttpRequest(); } catch(e){ // Internet Explorer Browsers try{ http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e){ try{ http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e){ alert("Your browser broke!"); return false; } } } http_request.onreadystatechange = function f(){ if( http_request.readyState == 4 ){ var jsonObj = JSON.parse(http_request.responseText); valor = jsonObj.value; } } http_request.open("GET", data_file, false); http_request.send(); } ...

Instalando e rodando o Windows 8 em um HD externo de modo rápido e fácil

Como vocês devem ter percebido, esse blog presa pelas dicas que são rápidas e práticas. Essa daqui é uma das que mais gosto e vou compartilhar com vocês. Para instalar o Windows 8 em um HD externo ( principalmente aqueles de bolso ), você apenas precisa ter um DVD ou PENDRIVE de instalação do Windows 8 e um HD externo de preferência com suporte à USB 3.0. 1) Pegue o HD e coloque NO computador e no notebook. Sim, isso mesmo, você deve primeiro colocar o HD como se fosse outro qualquer que fosse usar na sua máquina 2) Agora, ligue sua máquina e coloque o DVD/PENDRIVE de instalação e inicie a instalação do Windows 8 normalmente no HD que você vai usar externamente. 3) A mágica se faz agora : quando a instalção pedir para reiniciar a sua máquina, reinicie, mas DESLIGUE assim que a tela inicial de BIOS aparecer. 4) Assim que desligar a máquina, TIRE o HD da mesma e conecte-o através da USB. Agora ligue a máquina e faça o boot pelo HD na USB ( talvez seja preciso configurar isso n...

Symfony2 : Como tirar o 'web/app_dev.php' da url

Dica simples e fácil. Primeiro, na raiz de sua aplicação em symfony2, crie um arquivo 'index.php' e adicione o conteudo <?php define('RUNNING_FROM_ROOT', true); include 'web/app_dev.php'; Agora, na mesma raiz, crie um arquivo '.htaccess' e adicione as linhas RewriteEngine On RewriteBase /caminho/para/seu/projeto RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] Onde o '/caminho/para/seu/projeto' é a parte da url 'http://meuhost.com.br/caminho/para/seu/projeto' . Se você não usa uma sub-pasta em seu host, basta colocar a barra vertical sozinha '/'

HTML : autenticação básica

Esta é uma dica de como fazer uma autenticação básica de uma página html apenas usando o arquivo '.htaccess' e um arquivo de senhas. Aqui supomos que tenha o comando 'htpasswd' instalado em  seu sistema. Caso não tenha, instale ele.  Agora execute : $ htpasswd -bc minhassenhas.passwd meuusuario minhasenha onde temos aqui que 'minhassenhas.passwd' é o arquivo onde você irá salvar os usuários e as senhas. 'meuusuario' é o nome do usuário para acessar a página e 'minhasenha' é a senha desse usuário. Não tente criar a senha sem esse comando, pois ele criptografa as senhas para serem armazenadas  no arquivo. Agora, mude as permissões do arquivo para que seja só de leitura para outros e para o grupo $ chmod a+r minhassenhas.passwd Agora, crie um arquivo '.htaccess' na pasta com a página e adicione as linhas: authtype basic authname meuauthname authuserfile /caminho/completo/para/arquivo/de/senhas/minhassenhas.passwd requir...

MySQL : Tabela de usuário

Aqui publico uma tabela de usuário para banco de dados MySQL que é corriqueira em zilhões de projetos pelo mundo. CREATE TABLE `users` (  `id` INT AUTO_INCREMENT PRIMARY KEY NOT NULL,  `created` DATETIME NOT NULL,  `updated` DATETIME NOT NULL,  `name` VARCHAR(255) NOT NULL,  `username` VARCHAR(16) NOT NULL UNIQUE,  `email` VARCHAR(255) NOT NULL UNIQUE,  `password` VARCHAR(255) NOT NULL,  `active` BOOLEAN NOT NULL ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; Explicando: id :   é o número de id do usuário created : é a data e hora de cadastro do usuário updated : é a data e hora em que o cadastro foi atualizado name : nome completo do usuário ( ou apelido, dependendo do tipo de projeto ) username : nome de usuário no sistema email : o email do usuário para contato, confirmação de cadastro, etc password : simplesmente a senha do usuário para acesso ao sistema active : determina se o usuário pode ou não us...

Linux : Como mudar a resolução de tela "on the fly" pela linha de comando

É possível controlar os monitores que você com seu Xorg apenas utilizando o comando 'xrandr' . Com esse comando é possível apenas com terminal, mudar resolução sem precisar abrir nenhum programa específico do Xorg. Se você digitar $ xrandr você verá como saída informações dos monitores que você está utilizando, e o mais importante, os modos de tela que você pode usar em cada um deles. Por exemplo, se você digitar 'xrandr' e sair algo como $ xrandr Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192 VGA1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm 1280x800 60.0*+ 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 Na primeira coluna você tem as resoluções permitidas para o monitor VGA1, e na segunda as frequências de cada resolução. Para utilizar uma dessas resoluções você apenas faz $ xrandr --auto --output VGA1 --mode 1024x768 Muitas outras possibilidade são possíveis de se fazer com 'xrandr...

Criando um repositorio GIT de forma fácil e rápida

Para se criar um servidor central git para salvar seus  projetos e compartilhar com outros desenvolvedores, tenha uma máquina rodando um servidor ssh  e um dominio. Caso a máquina so faça compartilhamento num rede interna, basta ter em mãos o ip dela. Configure os usuários e grupos com permissão de acesso a máquina e tenha certeza que todos conseguem acessar via ssh nela. Como exemplo, aqui o usuário será 'user' e o endereço do host servidor será 'meu.server.br' . Crie uma pasta para ser o repositório dos projetos. Aqui usaremos como exemplo a pasta '/pasta/repo' . Agora, no servidor, você vai criar uma pasta limpa para receber o projeto e executar o comando de inicialização do projeto git remoto, assim: $ cd /pasta/repo $ mkdir meuprojeto.git $ cd meuprojeto.git $ git --bare init IMPORTANTE : a pasta do projeto compartilhado DEVE terminar com ‘.git’ Em sua área de trabalho LOCAL, você irá para a pasta do projeto que quer iniciar no ...

Livros ( ebooks ) gratuitos sobre PHP Framework Symfony 2

Symfony é um dos mais populares frameworks de desenvolvimento para PHP que existe hoje no mercado, e para aqueles que desenvolvem nesse framework, uma boa documentação se faz necessário. Aqui está disponibilizado um pacote com 6 ebooks gratuitos sobre Symfony 2 - vai desde apresentação, técnicas básicas e até mesmo referências. Para evitar um flood de downloads, eu coloquei uma senha no pacote. Então você terá de baixar a senha e o pacote para conseguir descompactar os ebooks. Aproveitem. Pacote de Ebooks   Senha

Javascript : Simples Video Player usando Youtube API

Para quem não sabe, a Google disponibiliza para desenvolvedores uma APi de manipulação para vídeos do Youtube, onde você pode ter uma grande quantidade de opções de controle. Baseado nessa API, vou disponibilizar aqui um simples player que aceita opções. Crie um script de nome 'youtube.js' e coloque o seguinte conteudo // youtube.js // Aqui é incluido a API em javascript para Youtube. var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag,firstScriptTag); // Aqui é a função que carrega o vídeo. // 'vid' é o id do video do youtube. // 'playerid' é o id da tag html que vai rodar o vídeo. function loadVideo(vid,playerid){ var player = new YT.Player(playerid, { // O id do player é colocado, passado pelo parâmetro da função. height: '390', width: '640', ...

Script de instalação do Steam no Debian Wheezy

Finalmente estão pensando nos gamers que usam Linux. A novidade é que a Valve, criadora de jogos como Counter Strike e outros, lançou sua plataforma de jogos Steam para Linux. Infelizmente eles fizeram mais pensando na turma do Ubuntu, e portanto é complicado fazer uma instalação do Steam para outras distros. Felizmente, criarem um script onde toda essa complexidade é automatizada para instalar o steam, pelo menos no Debian Wheezy. Confiram o script: #!/bin/bash # # Steam installer for Debian wheezy (32- and 64-bit) # # Place into empty directory and run. # download() { local url="$1" local filename="$(basename "$url")" if [ ! -f "$filename" ]; then wget -c "$url" -O "$filename.part" mv "$filename.part" "$filename" fi } package() { local url="$1" local target="$2" download "$url" mkdir -p "$target" ar p ...

PHP : array de estados brasileiros com nomes e siglas

Esse é um simples array com os nomes dos estados e suas correspondentes siglas. Cada estado é um array numerado e e "bem comportado" : tudo em minúsculas e sem acentos, porque evita problemas de compatibilidade de codificação e você sempre pode usar um "strtoupper", "ucfirst" e "ucwords" do PHP para tratar a formatação. $estados = array( 1=>array("sigla"=>"ac","nome"=>"acre"), 2=>array("sigla"=>"al","nome"=>"alagoas"), 3=>array("sigla"=>"am","nome"=>"amazonas"), 4=>array("sigla"=>"ap","nome"=>"amapa"), 5=>array("sigla"=>"ba","nome"=>"bahia"), 6=>array("sigla"=>"ce","nome"=>"ceara"), 7=>array("sigla"=>"df","nome"=>...

PHP : Extendendo sua classe com multiplas classes ao mesmo tempo

Quem desenvolvem em PHP, principalmente utilizando orientação a objetos, uma hora tem a nescessidade de usar mais de uma classe ao mesmo tempo junto com uma classe específica. Para tornar o problema claro, se tivermos uma classe 'A' e precisarmos dos objetos de duas classes independentes 'B' e 'C', o modo mais claro de fazer isso é Problema acontece quando não podemos extender a classe B com C, seja porque ela já extende uma class D , seja porque ela é usada por outras classes que ja possuem métodos iguais aos de C , etc. Enfim, uma mão na roda seria simplesmente mantermos as classes "puras" e independentes e extende-las com a classe que quisermos. A solução para isso é a seguinte: Crie uma classe abstrata com o seguinte conteudo: Abstract class ExtensionBridge { private $_exts = array(); public function addExt($object){ $this->_exts[]=$object; } public function __get($varname){ foreach($t...

Instalando o Skype 4.1 no Debian 6 Squeeze

Como todo mundo sabe, a Micro$oft comprou a Skype e vai migrar o msn para esse serviço. Por um lado é bom, porque o skype já possue um suporte aceitável no linux - inclusive o compartilhamento de cam, que tinha sido bloqueado pela M$ em outros sistemas que não fosse Windows e MSN. Segue aqui a receita para instalar a mais nova versão com suporte a msn e facebook para Debian 6  Squeeze. No meu caso é 64bits, mas deve funcionar melhor ainda em sistemas de 32 bits. Toda a operação deve ser realizada como root .  Baixe a versão Dynamic do Skype para Linux ( http://www.skype.com/intl/pt-br/get-skype/on-your-computer/linux/downloading.dynamic ). Descompacte a pasta do Skype que você baixou em '/opt'. Eu renomeei a pasta para 'skype', porque acho mais fácil de trabalhar. Instale os seguintes pacotes: $ aptitude install lib32asound2 ia32-libs ia32-libs-gtk Agora, baixe os seguintes arquivos: $ wget http://ftp.us.debian.org/debian/pool/main/q/qt4-x11/libqt4-...

Como visualizar uma área de trabalho remota do Linux no Windows

Dica para quem precisa visualizar uma área de trabalho remota num servidor ou desktop Linux através de uma máquina rodando Windows. Para fazer isso, basta instalar dois programas no Windows: - Putty - Xming A vantagem desse método ao invés do VNC por exemplo, é o uso do ssh e uma menor carga, pois você rodará no Windows somente os programas gráficos que executar no terminal via ssh. Pois bem, para fazer isso,  instale o Putty e o Xming.  Após isso, configure uma sessão ssh no Putty numa máquina Linux com X server rodando, e salve.  Teste a conexão para ver se tudo funciona bem, e então, clique nela na lista de sessões a sua sessão salva, clique em "Load". Em seguida, clique na lateral do Putty e, "Connection" > "SSH" > "X11" Clique na caixinha "Enable X11 forwarding" Clique novamente em "Session" logo acima da lateral do Putty e clique em "Open" para sua conexão. Após isso, vai abrir um term...

Nginx - Como definir userdir com php habilitado

Para quem usa servidor Nginx, mas tá com dificuldade em habilitar o php para seus usuário, basta abrir o arquivo '/etc/nginx/sites-available/default' e logo abaixo da sessão server{ location ~ \.php$ { ... } acrescente as linhas server{ location ~ \.php$ { ... } location /~ { location ~ ^/~([^/]+)/(.+\.php)$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME /home/$1/public_html/$2; fastcgi_pass 127.0.0.1:9000; } location ~ ^/~([^/]+)(|/.*)$ { alias /home/$1/public_html/$2; index index.html index.htm index.php; } } E sim, é isso mesmo, tem um 'location' dentro do 'location'. Só seguir a lógica de que as pastas de usuários estão dentro da pasta raiz, logo, são 'location' de usuários dentro da 'location' raiz. Essa configuração foi feita num Debian Squeeze, algumas opções, diretórios e arquivos podem ser difere...

CSS : Megamenu simples em css

Megamenus são menus popups que ao invés de links, são mostrados conteudos variados. Hoje em dia está muito em voga esses menus, então vou mostrar aqui como criar rapidamente um megamenu. Primeiramente, criamos um menu simples como: Item 1 Item 2 Item 3 Agora, acrescentamos umas divs Item 1 ... conteudo 1 ... Item 2 ... conteudo 2 ... Item 3 ... conteudo 3 ... Onde os conteudos oidem ser o que você quiser, inclusive outros menus, já que o megamenu é uma expansão da idéia de menu pop-up. Escrevemos agora o CSS /* Deixa o menu na horizontal */ ul li { display: inline; /* Um pouquinho de enfeites para melhor visualização */ padding: 5px;border: 1px solid; } /* Esconde o conteudo do menu */ ul li .menu-content { display: none; /* Um pouquinho de enfeites para melhor visualização */ padding: 5px; border: 1px solid; } /* Mostra o conteudo sob o ponteiro do mouse */ ul li:hover .menu-content { position:absolute; display: block; } O essencial aqui é...

CSS : Menu horizontal com items de mesmo tamanho

Se você precisa de um menu horizontal cujos items fiquem do mesmo tamanho automaticamente sem precisar definir o 'width' deles, basta fazer assim: Crie um menu Item 1 Item 11 Item 1111 Item 11111 Item 111111 No css da página, escrevemos ul { display: table; width: 100%; table-layout: fixed; } li { display: table-cell; /* Borda para facilitar a visualização do efeito. */ border: 1px solid; text-align:center; } O truque é o uso das propriedades "display:table"e "table-layout" para a tag "ul", e "display:table-cell" para tag "li". Outras opções podem ser acrescentadas, mas essa é o mínimo que vai precisar para o efeito desejado. Até a próxima.

Jquery : um simples slider de imagens com mouse hover

Temos nesse esquema, uma imagem principal e alguns thumbnails, onde, ao passar o mouse por cima dos thumbs, a imagem principal muda para a imagem que é apontada pelos thumbs. Assim, temos por exemplo, o html com as imagens Um css básico #main-img { width: 200px; height: 300px; overflow:hidden; } #main-img img { width: 200px; } #thumb-img { width: 200px; } #thumb-img li { margin-right: 20px; display:inline; width: 50px; height: 50px; height-overflow: hidden; } #thumb-img img { width: 50px; } O javascript então , para ter o nosso efeito será $(document).ready( function(){ $("#thumb-img img").hover( function(){ /* Pega o nome da imagem do thumbnail */ var thumbsrc = $(this).attr('src'); /* Substitue a imagem principal pela imagem do thumbnail */ $("#main-img img").attr('src',thumbsrc); }); }); devidamente colocado num script a parte ou no inicio da página junto com a versão mais atual do jquery ...