segunda-feira, 24 de novembro de 2014

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();

}

onde o valor que queremos salvar é exatamente

valor = jsonObj.value;
pois bem, para poder pegarmos esse valor, basta termos três elementos : uma variável global e duas funções:
var x;

function getX(){
    return x;
}

function setX(valor){
    x = valor;
}

E então só fazermos

...
        if( http_request.readyState == 4  ){
            var jsonObj = JSON.parse(http_request.responseText);
            setX(jsonObj.value);
        }
...

e finalmente poderemos pegar o valor de nossa requisição com a função 'getX()' :


É bem mais simples do que se imaginava não ?.

quarta-feira, 20 de agosto de 2014

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 na BIOS )

E pronto.

A instalação vai ser finalizada normalmente e você já poderá usar o Windows 8 onde quiser. Literalmente.

Fiz essa instalação num velho HD de notebook e testei ele na USB em vários PCs e notebooks e o Windows 8 rodou em todos normalmente.

Espero que tenham gostado dessa dica.

quarta-feira, 5 de março de 2014

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 '/'

domingo, 2 de março de 2014

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
require valid-user



onde aqui só é preciso colocar o 'meuauthname' e o caminho completo do arquivo de senhas.
O 'authname' é apenas um nome de identificação da autenticação e pode ser qualquer um que você quiser.

E pronto, crie uma página html na pasta com o '.htaccess' e você verá uma caixa de login suspensa, e fornecer o usuário e senhas registrados no arquivo de senhas.


Referências: http://www.rahul.net/howto/basicauth.html

domingo, 23 de fevereiro de 2014

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 usar o sistema, boa pedida para evitar que ele use antes de confirmar cadastro.

quinta-feira, 2 de janeiro de 2014

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' , como por exemplo, usar dois monitores e definir uma área de trabalho extendida com eles


$ xrandr --auto --output VGA1 --mode 1024x768 --left-of VGA2


com esse comando, criamos uma área de trabalho com resolução 1024x768 para o monitor 1, e estendemos a área de trabalho com o monitor 2 à direita dele ( '--left-of' indica que o monitor 1 está a esquerda do monitor 2 ).


Mais informações : $ man xrandr

sexta-feira, 22 de novembro de 2013

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 servidor e executar os comandos para enviar ao repositório o projeto:



$ cd meuprojeto
$ git init
$ git add .
$ git commit -m 'meu primeiro commit'
$ git remote add origin user@meu.server.br:/pasta/repo/meuprojeto.git
$ git push origin master



E caso tenha outros desenvolvedores, basta eles fazerem uma clonagem do proejto e começarem a participar do desenvolvimento assim



$ git clone usuario@meu.server.br:/pasta/repo/meuprojeto.git


...
após algumas alterações do projeto
...
$ git commit -am 'eu fiz umas alterações ! LOL'
$ git push origin master