quarta-feira, 12 de dezembro de 2012

Remoção de submódulos usando Git

Olá!

Tive alguma dificuldade para fazer isso até que, garimpando na internet, cheguei ao seguinte passo a passo:

  1. Remova ou modifique o arquivo oculto .gitmodules
  2. Caso já tenha rodado o comando git submodule init, modifique o arquivo .git/config retirando as referências ao seu submódulo
  3. Remova o caminho/diretório criado para o submódulo usando git rm --cached [caminho] e sem colocar a última / no final
  4. Remova todas os diretórios locais com rm -rf [caminho] 
Para essa anotação, estou presumindo o conhecimento prévio e básico do Git
Depois é somente associar novamente os submódulos necessários. Se ainda assim der bug, como por exemplo baixar um submódulo ao invés de outro, recomendo que delete o projeto todo e clone novamente desde o começo e depois insira os submódulos.

É só.

segunda-feira, 19 de novembro de 2012

Dicas Rápidas: CSS

Retirar a cor de borda do campo input definida pelo browser (no caso Chrome)

input:focus { outline:none; }

Sombreamento no Texto com CSS

.text { text-shadow:1px 1px 1px #333; }

Borda Arredondada

.roundborder { 
-webkit-border-radius: 4px; 
-moz-border-radius: 4px; 
border-radius: 4px; 
}

Box Shadow

.shadow { -moz-box-shadow: 3px 3px 5px 6px #ccc; -webkit-box-shadow: 3px 3px 5px 6px #ccc; box-shadow: 3px 3px 5px 6px #ccc; }
.inner_shadow { -moz-box-shadow: inset 0 0 10px #ccc; -webkit-box-shadow: inset 0 0 10px #ccc; box-shadow: inset 0 0 10px #ccc; }
.one_edge_shadow { -moz-box-shadow: 0 8px 6px -6px #000; -webkit-box-shadow: 0 8px 6px -6px #000; box-shadow: 0 8px 6px -6px #000; }

Background Gradient:

.gradient {

  background-image: linear-gradient(bottom, rgb(2,75,121) 0%, rgb(53,147,194) 100%);
  background-image: -o-linear-gradient(bottom, rgb(2,75,121) 0%, rgb(53,147,194) 100%);
  background-image: -moz-linear-gradient(bottom, rgb(2,75,121) 0%, rgb(53,147,194) 100%);
  background-image: -webkit-linear-gradient(bottom, rgb(2,75,121) 0%, rgb(53,147,194) 100%);
  background-image: -ms-linear-gradient(bottom, rgb(2,75,121) 0%, rgb(53,147,194) 100%); 
}





Fontes e Referências:




sábado, 17 de novembro de 2012

Resolvendo o erro de não determinação do ServerName no Apache2

Erro bem simples de resolver, deixando aqui para possíveis consultas futuras. Lembrando que meu ambiente de desenvolvimento atual é Ubuntu/Linux.

Quando reinicio o Apache2, recebo o erro: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName. Pesquisando rapidamente na internet, encontrei no artigo de Thiago Régis a solução pro meu problema:
1. Abra como sudo o arquivo /etc/apache2/apache2.conf
2. Insira o texto ServerName localhost em qualquer parte do arquivo (geralmente coloco ou no início ou no final)
3. Reinicie o servidor do apache com o comando sudo service apache2 restart e confira que o erro sumiu :)


É só.

domingo, 11 de novembro de 2012

Formatando Macbook usando Mac OS X (Snow Leopard)

Deixando um passo-a-passo rápido de como formatar um Macbook. Nesse caso, foi um Macbook White usando um DVD do Snow Leopard.

  1. Insira o DVD de instalação e reinicie a máquina
  2. Deixe a tecla Alt/Option pressionada assim que ele ligar para o surgimento da tela de boot 
  3. Selecione o DVD de instalação e aguarde a tela de seleção de idioma
  4. Na tela de instalação, pressione continuar e aceite os Termos de Licença na tela seguinte
  5. Quando aparecer a tela onde deseja instalar o Mac OS, selecione na barra superior a opção de Utilitário de Disco (Disk Utility)
  6. No Utilitário, selecione o HD na coluna esquerda, clique na aba Apagar (Erase), selecione a opção de formato "Mac OS Expandido (Reg. Cronologicamente)", nomeie como quiser o HD e clique finalmente no botão "Apagar..." (Erase...)
  7. Confirme que deseja apagar o HD e aguarde a finalização do processo - nesse caso é para ser uma formatação limpa, ou seja, o Macbook vai inicializar como se fosse a primeira vez.
  8. Feche o Utilitário de Disco, volte para a tela de instalação e selecione o recém formatado e nomeado HD para a instalação do Mac OS X. O resto segue o padrão NNF (next-next-finish), sem maiores complicações.
Eu acredito que o procedimento seja parecido para versões posteriores do Snow Leopard, mas como não testei, não afirmo isso. Quem testar, é só deixar um comentário aí.

É só.


domingo, 21 de outubro de 2012

Configuração de ambiente de desenvolvimento no Ubuntu 12.04

Opa!

Resolvi voltar as origens e desenvolver em ambiente Linux/Ubuntu (enquanto não compro um Mac) e deixar o Windows para o que ele faz de melhor: jogo. Resumindo, esse é um passo a passo para configurar um ambiente de desenvolvimento mínimo, voltado para PHP (symfony) e Ruby On Rails, usando PostgreSQL e MySQL como bancos de dados e GIT como controle de versão. Para começar, abra o terminal e vamos lá!


A primeira coisa que faço é verificar se o aptitude está instalado e se não estiver providencio isso imediatamente através do comando abaixo. Minhas razões para isso estão esclarecidas nesse artigo do Viva o Linux, em um dos comentários.
$ sudo apt-get install aptitude


Depois digito os seguintes comandos para instalar o resto:
$ sudo aptitude install git-core$ sudo aptitude install php5
$ sudo aptitude install apache2
$ sudo a2enmod rewrite
$ sudo service apache2 restart
$ sudo aptitude install postgresql
$ sudo aptitude install mysql-server
$ sudo aptitude install phpmyadmin phppgadmin
$ sudo ln -s /usr/share/phpmyadmin/ /var/www/
$ sudo ln -s /usr/share/phppgadmin/ /var/www/
$ sudo aptitude ruby1.9.3
$ sudo gem install rails


Comentando rapidamente a sequencia de comandos:
1. Instalação do GIT
2. Instalação do apache2
3. Habilita o mod rewrite do apache, fundamental para o symfony
4. Reiniciando o apache para pegar o rewrite
5. Instalação do PHP5
6. Instalação do PostgreSQL
7. Instalação do MySQL
8. Instalação dos auxiliares de gerenciamento dos bancos; notar que instalo de uma vez só dois programas aqui, isso poderia ter sido feito com as outras instalações, mas eu prefiro instalar de um por um
9. Criação de link em /var/www/ do phpmyadmin para que seja possível acessar do caminho http://localhost/phpmyadmin
10. Mesma coisa do de cima, porém para phppgadmin
11. Instalação do Ruby1.9.3
12. Instalação do Ruby On Rails


A senha do MySQL é configurada durante a instalação, entretanto a do postgreSQL não. Para isso, executamos os seguintes comandos abaixo:
$ sudo su postgres
$ psql -d postgres -U postgres
# ALTER USER postgres with PASSWORD 'sua-senha-do-postgreSQL';
# \q
$ exit 


Os passos abaixo são opcionais, uma vez que cada um usa a IDE que quiser e instala os programas que quiser. No meu caso, utilizo a IDE Aptana Studio que me serve bem tanto para Rails como para PHP e que precisa da instalação do java/JDK da Oracle (não serve o OpenJDK). Orientada pelo artigo do Tiago Hillebrandt, executo os seguintes passos:
$ sudo add-apt-repository ppa:webupd8team/java 
$ sudo aptitude update
$ sudo aptitude install oracle-java8-installer

Fora o Aptana, instalo também o GIMP...
$ sudo add-apt-repository ppa:otto-kesselgulasch/gimp
$ sudo aptitude update 
$ sudo aptitude install gimp


... e o Google Chrome, baixando do site oficial e instalando com ajuda da Central de programas do Ubuntu.


É só.

terça-feira, 4 de setembro de 2012

Instalando Ruby On Rails no Win7

Depois edito isso aqui e mostro o passo a passo. Quero deixar registrado mesmo como resolvi o erro do JSON que estava dando. Acabei achando a solução no próprio site do GitHub do Development Kit, no StackOverflow e, para quem não gosta de inglês, no Ciclano Host.

Basicamente é o seguinte:
1. Baixe o executável do Development Kit e extraia para seu diretório do Ruby (eg C:\Ruby193)
2. Acesse usando o terminal a pasta C:\Ruby193\DevKit
3. Execute o comando: ruby dk.rb init
4. Depois o comando: ruby dk.rb review
5. E então: ruby dk.rb install
6. Agora pode executar sem problemas o comando: gem install json --platform=ruby

E pronto!
É só.

domingo, 2 de setembro de 2012

Configurando PostgreSQL com o WampServer

Bem, essa dica é bem rápida e serve para evitar muita dor de cabeça, principalmente para quem quer integrar o PostgreSQL com o WampServer para utilizar com PHP ou algum framework em PHP. Pois bem, vamos a ela.

Assumo que já estejam instalados o WampServer e o PostgreSQL no computador (Windows 7, lembrando), o que é muito fácil visto que ambos são instalados rapidamente através do modo "Next until it ends". Com o WampServer rodando, habilite as extensões do PHP: php_pdo_pgsql, php_pgsql. Reinicie o WampServer e verifique que no log de erro do Apache os módulos não foram carregados e nada funciona :D (tente fazer uma conexão simples com o PostgreSQL e verá que não funciona, uma forma rápida é colocando o phpPgAdmin em www).

Precisamos fazer uma das opções abaixo para que tudo funcione corretamente:
- Ou inserir a instrução LoadFile "C:/Program Files/PostgreSQL/9.1/bin/libpq.dll" ou LoadFile "C:/wamp/bin/php/php5.3.10/libpq.dll" preferencialmente na última linha do arquivo httpd.conf do Apache; 
- Ou copiar a biblioteca libpq.dll para "C:\wamp\bin\apache\Apache2.2.17\bin"

Qualquer uma das opções é válida e é uma questão de gosto decidir entre uma delas. Eu particularmente estou usando a primeira. Após isso, reinicie o WampServer novamente e confira que está tudo funcionando como deveria :)

segunda-feira, 6 de agosto de 2012

Deploy automatizado com GIT

Procurando um jeito de automatizar a atualização do servidor de produção usando GIT, me deparei com os seguintes artigos que me ajudaram a fazer esse resumo: artigo de Akita, artigo de Thiago Belém, artigo de Abhijit Menon-Sen e artigo de Daniel Miesser. Resumi e modifiquei ligeiramente para meu próprio entendimento posterior e escrevi esse guia-lembrete. Notar que a minha configuração de ambiente é um Windows 7 como máquina local, um programa de SSH disponível (uso o GIT for Windows, mas pode ser o Putty), servidor remoto Linux hospedado no Uol Host. Mas deixemos de conversa e vamos pros comandos!

Criação de um repositório git vazio no servidor usando SSH:
mkdir home/meu_usuario/repos/meu_projeto.git
cd home/meu_usuario/repos/meu_projeto.git
git init --bare
 
Adicionando na máquina local o novo repositório remoto: 
cd meu_projeto
git remote add origin ssh://meu_usuario@meu_dominio/home/meu_usuario/repos/meu_projeto.git 
 
Ou com um outro nome diferente de origin:
cd meu_projeto
git remote add nome ssh://meu_usuario@meu_dominio/home/meu_usuario/repos/meu_projeto.git 
 
Escrevendo o git-hook responsável pela atualização:
cd ~/repos/meu_projeto.git/hooks
nano post-receive
#!/bin/sh
GIT_WORK_TREE=/home/meu_usuario/meu_projeto git checkout -f
(crtl+X para salvar)
chmod +x post-receive  
 

Dando o primeiro push:
git push nome +master:refs/heads/master
 
Remoção de um repositório remoto:
git remote rm nome

Configurando SSH no UolHost com GIT

Usando o GIT para Windows (link aqui), consegui configurar meu acesso automático ao SSH do meu servidor no UolHost. Usando um tutorial próprio do UolHost e alguns comando aprendidos num curso de administração em redes usando Linux, cheguei a esses passos para a configuração (lembrando que usei como prompt o Git for Windows e estou rodando no Windows 7). E vamos ao que interessa!

No cliente, usar a linha de comando para gerar a chave:
ssh-keygen -t dsa

É interessante notar que, caso modifique o nome do arquivo, a chave será salva na pasta na qual foi executado o comando. É recomendável deixar o nome padrão que acompanha a recomendação, no caso id_dsa. No fim da execução desse comando, dois arquivos deverão ter sido criados, preferencialmente no caminho padrão C:/Users/usuario/.ssh (no caso do Windows 7 - isso pode ser diferente a depender da versão do Windows utilizada), o arquivo id_dsa e id_dsa.pub, sendo o último a sua chave pública e que deverá ser compartilhada.

Antes do envio da chave, é necessário se logar via SSH e criar na pasta raiz do servidor a pasta .ssh, se esta não existir. Os comandos para isso são: 

Logar no servidor (a senha será pedida e no caso do UolHost é a mesma senha usada para FTP):
ssh usuario-servidor@servidor

Criação da pasta e configuração de permissão:
mkdir .ssh
chmod 700 .ssh

Sem estar logado no servidor, enviamos o arquivo id_dsa.pub do computador local para a pasta .ssh do servidor, neste caso usando SCP.

Envio da chave pública para o servidor via SCP:
scp ~/.ssh/id_dsa.pub usuario-servidor@servidor:/home/usuario-servidor/.ssh

Depois da transferência, logamos novamente no servidor e de lá executamos os seguintes comandos que correspondem na cópia do conteúdo do arquivo id_dsa.pub para o arquivo authorized_keys2 e configuração de permissão:
cd ~/.ssh
cat id_dsa.pub >> authorized_keys2
chmod 644 authorized_keys2

No caso o nome do arquivo deve ser authorized_keys2 por uma determinação do UolHost, segundo seu tutorial de configuração de chave pública do SSH, mas poderia ser somente authorized_keys em qualquer outro servidor Linux, a depender da configuração do mesmo. 

E pronto! Deslogue e logue via SSH e confirmará que não irá precisar digitar novamente a senha :)
É só.

quarta-feira, 18 de julho de 2012

Usando mysqldump: Backup no MySQL

Comando simples e muito útil para fazer backup de um banco mysql. 
Sem mais, vamos as alternativas:


Backup de todos bancos (parâmetro -A) do host passado, travando as bases de dados no momento em que cada uma é copiada (parâmetro -x) com otimização que permite ao mysqldump combinar argumentos INSERT dentro das tabelas (parâmetro -e):
mysqldump --host=host_do_seu_bd -u nome_do_usuario -pSENHA -x -e -A > backup.sql


Backup somente dos dados de um determinado banco (parâmetro -B) :

mysqldump -u usuario -pSENHA -B database_escolhido --no-create-info > backup.sql


Backup exportando somente a estrutura ou o esquema da base de dados (parâmetro -d):

mysqldump -u usuario -pSENHA -d -B database_escolhido > backup.sql

quarta-feira, 4 de julho de 2012

Git: Branch e Merge

Sempre acabo esquecendo como fazer um novo branch e depois dar um merge.
Então esse rápido post é para isso. Vamos lá!

Para criar um branch no diretório do projeto:
git branch novobranch 

Mostrar em que branch está:
git branch

Mudar para o branch recém-criado:
git checkout novobranch 

Relembrando como adicionar todos os arquivos alterados:
git add . 

Relembrando como dar commit:
git commit -m "Mensagem do commit"

Fazendo o push para o novo branch:
git push origin novobranch:novobranch

Merge do branch com o master:
git checkout master
git merge novobranch
git push origin master

Deletar o branch:
git branch -d novobranch