quarta-feira, 30 de julho de 2014
Scaffold User
rails g scaffold nome email password_digest
Gemfile
gem 'bcrypt-ruby', '~> 3.0.0'
user.rb
• Remover a validação de presença de senha
• Remover a validação de confirmação de senha
• Adicionar a class macro has_secure_password
has_secure_password
_form.html.erb
<%= f.password_field :password %>
<%= f.password_field :password_confirmation %>
user_session.rb
class UserSession
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
extend ActiveModel::Translation
attr_accessor :email, :password
validates_presence_of :email, :password
end
routes.rb
resource :user_sessions, :only => [:create, :new, :destroy]
user_sessions_controller.rb
class UserSessionsController < ApplicationController
def new
@session = UserSession.new
end
def create
end
def destroy
end
end
segunda-feira, 9 de junho de 2014
Html to Haml
quinta-feira, 9 de agosto de 2012
Malditos espaços em branco
Mas, como fala um amigo, para toda problemática existe uma solucionática, o melhor uma stringByAddingPercentEscapesUsingEncoding, aqui entre nós, o cara que colocou o nome a este método merece pelo menos uma pizza.
NSString* nome = @"Federico Neoapps";
Try to Catch the error
terça-feira, 31 de julho de 2012
Ruby + Mysql + OSX com MAMP
Building native extensions. This could take a while...
ERROR: Error installing dbd-mysql:
ERROR: Failed to build gem native extension.
[....]
checking for mysql_ssl_set()... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. Blá, blá, blá, blá, blá....
Solução:
1 - Instalar Macports https://distfiles.macports.org/MacPorts/
2 - # port install mysql5-devel
And that's it
#!/usr/bin/ruby -w
# simple.rb - simple MySQL script using Ruby DBI module
require "dbi"
begin
# connect to the MySQL server
# dbh = DBI.connect("DBI:Mysql:host=192.168.1.102;port=8889;database=federico", "root", "root")
con = DBI.connect("DBI:Mysql:federico:127.0.0.1", "root", "root")
# get server version string and display it
row = con.select_one("SELECT VERSION()")
puts "Server version: " + row[0]
rescue DBI::DatabaseError => e
puts "An error occurred"
puts "Error code: #{e.err}"
puts "Error message: #{e.errstr}"
ensure
# disconnect from server
con.disconnect if con
end
e agora é só matar a saudades desta maravilhosa liguagem ;)
quinta-feira, 23 de fevereiro de 2012
Instalando app no Playbook
sexta-feira, 30 de setembro de 2011
Colorindo os Domingos no jQuery-UI Datepicker
beforeShowDay:function(date){
if(date.toString().indexOf('Sun ')!=-1)
return [1,'red'];else
return [1];
}
}
css:
.ui-datepicker td.red a{
color:#ff0000 !importat;
}
!important é para dar prioridade ante um conflito no CSS
quarta-feira, 10 de agosto de 2011
Executar um Toast dentro de uma Thread
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(MinhaClasse.this, "Tracking number is invalid", Toast.LENGTH_LONG).show();
}
});
}
}).start();
}
});
terça-feira, 29 de março de 2011
segunda-feira, 2 de agosto de 2010
CRON - Tarefas agendas no Linux
quarta-feira, 19 de maio de 2010
Jquery - Checkboxes
quarta-feira, 12 de maio de 2010
domingo, 4 de abril de 2010
Compartilhar pastas entre Mac OS X e Ubuntu Linux
- Selecione a máquina e vá em Dispositivos > Pastas compartilhadas
- Adicione um new folder, em Folder Path coloque o caminho da pasta que está na máquina host. Em Folder Name dê um nome para a pasta
- Clique em OK e inicialize a máquina virtual
- No ubuntu, crie uma pasta para montar o share.
- Abra o terminal e digite sudo mount -t vboxsf [ nome do compartilhamento ] [ path para o diretorio ]
- [ nome do compartilhamento ] é o nome que foi escolhido para a pasta no segundo passo e [ path para o diretorio ] é o caminho do folder criado no Ubuntu.
quinta-feira, 25 de fevereiro de 2010
terça-feira, 8 de dezembro de 2009
VirtualBox - Clonar um disco virtual
Isso ocorre porque cada disco virtual criado recebe um número de identificação (UUID) específico, o qual é armazenado dentro da própria imagem do disco. O VirtualBox somente carrega discos virtuais unitários, o que significa que se você usou a técnica Ctrl+c/Ctrl+v, você terá criado uma cópia com o mesmo UUID do disco original e, portanto, o VirtualBox se recusará a carregar uma das imagens.
Para poder realizar uma clonagem de um disco virtual, o VirtualBox disponibiliza o utilitário VBoxManage, o qual possui diversas funcionalidades, e é chamado por meio da linha de comando. Para clonar um disco virtual você deverá seguir os seguintes passos:
1. acesse a pasta do VirtualBox com o comando no terminal:
cd /home/seu_login/.VirtualBox/HardDisks
2. chame o programa VBoxManage seguido dos parâmentros necessários:
VBoxManage clonehd nome_disco_a_ser_clonado nome_do_clone
No meu caso, se eu desejar clonar meu disco virtual do Windows XP, os comandos seriam:
cd /home/trinity/.VirtualBox/HardDisks
VBoxManage clonehd WinXP.vdi WinXP_backup.vdi
Note que:
VBoxManage = nome do utilitário
clonehd = tarefa (copiar o hd)
WinXP.vdi = nome do meu disco virtual que desejo clonar
WinXP_backup.vdi = nome que será dado ao clone
Assim que o disco começar a ser clonado, você poderá acompanhar o seu andamento pelo próprio terminal por meio da indicação da porcentagem de trabalho concluído. Ao terminar, vá até a pasta onde os discos são armazenados:
/home/seu_login/.VirtualBox/HardDisks
Fonte: http://ubuntulinuxbr.blogspot.com
domingo, 6 de setembro de 2009
domingo, 23 de agosto de 2009
segunda-feira, 10 de agosto de 2009
quarta-feira, 29 de julho de 2009
Backup MySQL
#!/bin/bash
U_PASTA="/home/user/backup" # < -- substitua pelo caminho onde vai salvar o backup
U_DATA=$(/bin/date +%Y%m%d%H%M%S)
U_CAMINHO="backup-$U_DATA.sql"
U_HOST="localhost"
U_USER="root"
U_PASSWORD="********"
U_DATABASE="minha_base_mysql"
U_EMAIL="meuemail@meudominio.com.br"
#
erro=""
#
cd $U_PASTA
#
#
# Faz o backup do MySQL
#
mysqldump -h $U_HOST -u $U_USER -p$U_PASSWORD $U_DATABASE > $U_CAMINHO
if [ $? -ne 0 ]
then
erro="Erro na geracao do SQL"
fi
#
#
# Compacta o arquivo
#
if [ "$erro" == "" ]
then
gzip $U_CAMINHO
if [ $? -ne 0 ]
then
erro="Erro ao compactar o SQL"
fi
fi
#
# Apaga arquivos antigos e mantem apenas os 'n' ultimos
#
n=10
c=0
for i in *.sql.gz
do
let c=$c+1
done
if [ $c -gt $n ]
then
for i in *.sql.gz
do
if [ $c -le $n ]
then
break
fi
rm $i
let c=$c-1
done
fi
#
if [ "$erro" == "" ]
then
erro="Backup efetuado com sucesso!"
subject="[Sucesso]"
else
subject="[Erro]"
fi
echo "$erro => $U_CAMINHO.gz" | mail -s "$subject Backup em $(/bin/date +'%d/%m/%Y %H:%M:%S')" $U_EMAIL
#
# Volta para a pasta anterior
cd -
Para agendar a execução, digite:
$ crontab -e
Vai abrir um editor de texto com o arquivo de configuração da cron. Daí você pode digitar algo como:
# m h dom mon dow command 00 02 * * * /home/user/backup_bd.sh Onde backup_bd.sh é o arquivo do script que passei acima.
Melhorando a performance do Firefox
A partir da versão 3, o Firefox guarda os favoritos, histórico e mais um punhado de coisas em sqlite. Por isso, manter essa base otimizada pode ser muito saudável ao seu Firefox.
No Ubuntu (testei no 9.04), instale o sqlite3.
Abra o terminal e digite:
sudo aptitude install sqlite3
Depois, ainda no terminal, acesse a pasta de seu perfil (profile) do Firefox:
cd ~/.mozilla/firefox/alguma_coisa_estranha.default
Varia de acordo com o computador. No meu, esse alguma_coisa_estranha.default é 73cm0ffy.default.
Você vai ver que essa pasta possui vários arquivos com a extensão .sqlite, que é o que queremos otimizar. Para isso, feche o Firefox (não antes de terminar de ler esse post ou copiá-lo ), depois simplesmente digite, para cada arquivo:
sqlite3 nome_do_arquivo.sqlite vacuum
Tem como fazer em todos os arquivos de uma vez? Claro. Você está mexendo em um terminal Linux! Para fazer todos de uma vez, digite:
for i in *.sqlite; do sqlite3 $i vacuum; done

