João Medeiros em 28/02/12

Para aqueles que gostam da linha de comandos, uma dica para atualizar seu mac é executar


sudo softwareupdate -i -a

João Medeiros em 15/11/11

Quem usa o vim para desenvolver programas ou mesmo editar vários arquivos ao mesmo tempo, especialmente a versão do vim com interface gráfica, pode achar interessante a possibilidade de reabrir todas as janelas que estava trabalhando anteriormente.

Você pode usar o conceito de sessão no vim. Para salvar uma sessão utilize

:mksession! /caminho/arquivo

Para restaurar uma sessão, utilize

:source /caminho/arquivo

Para automatizar o processo acima adicione o conteúdo abaixo no seu arquivo .vimrc

"salvar e fechar todos os arquivos e salvar a sessão
nnoremap <leader>q :mksession! ~/.vim/Session.vim<CR>:wqa<CR>
"fechar todos os arquivos sem salvar e salvar a sessão
nnoremap <leader>www :mksession! ~/.vim/Session.vim<CR>:qa!<CR>

function! RestoreSession()
  if argc() == 0 "vim called without arguments
    execute 'source ~/.vim/Session.vim'
  end
endfunction
autocmd VimEnter * call RestoreSession()

Agora, sempre que for sair do vim, digite \q.

 

Como todo sistema operacional, o MacOS inicia uma série de programas durante o boot. Inicialmente, apenas os que vêm nativamente. Mas, com o passar do tempo e com as eventuais instalações que fazemos de novos programas, essa quantidade de programas que são carregados durante o boot pode aumentar bastante.

Você pode controlar facilmente quais programas serão carregados durante o boot em Preferências do Sistema / Contas / Itens de In. de Sessão.

  • Desabilite os programas que você não precisa usar rotineiramente. Lembre que cada programa iniciado consome recursos da máquina: CPU, Memória, etc.

 

João Medeiros em 12/08/11

Quem administra um servidor www necessita, eventualmente, criar um novo banco mysql e um usuário para esse novo banco. Aqui vão os comando básicos:

  • Faça um login como usuário root
    $ mysql -u root -p
    
  • Crie um novo banco (nesse caso estamos chamando o banco de trinca)
    mysql> CREATE DATABASE trinca;
    
  • Crie um usuário trinca_user para o banco com a senha password
    mysql> GRANT ALL ON trinca.* TO trinca_user@localhost IDENTIFIED BY 'password';
    exit
    
  • Teste se o usuário consegue se conectar ao banco com a senha
    $ mysql -u trinca -p
    
João Medeiros em 04/08/11

Em um post anterior falamos sobre a utilização do git para sincronizar diretórios com o git. Tudo estava funcionando bem até que comecei a trabalhar em diretórios que já utilizavam algum controle de versão, no caso o svn. O problema é que o git não leva diretórios vazios na sua estrutura e o svn tem alguns diretórios vazios dentro dos .svn.

Uma solução seria ter os diretórios com svn separados. Realmente fica meio estranho um controle de versão dentro do outro. Mas, após algumas buscas, achei uma solução de contorno para o problema. Que consiste basicamente em criar um arquivo qualquer dentro dos diretórios vazios. Para isso, vá para o diretório inicial do git e execute o comando abaixo

find . -type d -empty -exec touch {}/.gitignore \;

Após isso, adicione os arquivos com o

git add .

João Medeiros em 04/08/11

Usando o Ubuntu, ao tentar compilar um arquivo no Latex com o pdflatex, ocorrem mensagens de erro tais como

kpathsea: Running mktexmf pplr7t
! I can't find file `pplr7t'.

A solução para isso é instalar as fontes recomendadas para o Latex com o comando

$ sudo apt-get install texlive-fonts-recommended

João Medeiros em 01/08/11

O SparkleShare é uma alternativa livre para o Dropbox e já comentamos sobre eles anteriormente. Mas o uso do SparkleSahe em máquinas com arquiteturas diferentes (Linux e Mac) não tem se mostrado muito viável, pelo menos para o meu caso, onde estou sincronizando diretórios bem grandes > 2 GB. Assim, decidi tentar utilizar diretamente o git para realizar a sincronização.

O procedimento é basicamente o mesmo utilizado no SparkleShare, mas agora o próprio usuário fica “encarregado” de realizar as atualizações.

Instalação no Servidor

Considerando que o servidor é uma máquina Linux com Ubuntu/Debian, instale o openssh-server e o git-core com os comando abaixo, onde git é o nome do diretório a ser sincronizado.


$ sudo apt-get install git-core openssh-server
$ git init --bare git

O primeiro comando acima vai instalar o git juntamente com o serviço ssh. O segundo comando irá criar um repositório, chamado git, onde serão armazenados os arquivos.

Configuração de acesso sem senha para o servidor

  1. Execute o comando abaixo e aceite as opções default


$ ssh-keygen

  1. Copie sua chave para o servidor remoto com o comando, substituia USUARIO e SERVIDOR.COM pelos respectivos nomes que você está usando


$ ssh-copy-id USUARIO@SERVIDOR.COM

Primeiro clone do repositório remoto

Execute o comando abaixo em uma das máquinas clientes.

$ git clone USUARIO@SERVIDOR.COM:/home/USUARIO/git

Trabalhando com o repositório

A partir desse ponto, você pode trabalhar normalmente no diretório, seja adicionando arquivos, alterando-os, etc. Para efeitos de testes, vamos adicionar um arquivo qualquer. Vá para o diretório de trabalho e crie um arquivo com os comandos abaixo:

$ cd git
$ echo "teste" > teste.txt

Em seguida, adicione o arquivo ao controle do git com os comandos

$ echo "teste" > teste.txt
$ git commit -m "carga inicial"

Os comandos acima incluiram um arquivo no controle de versão local. Para enviar para o servidor central, execute o comando

$ git push USUARIO@SERVIDOR.COM:/home/USUARIO/git HEAD

Se quiser utilizar esse mesmo repositório em outra máquina basta executar o comando abaixo na outra máquina.

$ git clone USUARIO@SERVIDOR.COM:/home/USUARIO/git

A partir dai, a rotina de trabalho consiste basicamente em:

  1. Atualizar o diretório corrente com o repositório central com “git pull”
  2. adicionar arquivos com “git add .”,
  3. realizar commits com “git commit -m …”
  4. enviar as alterações para o repositório central com “git push”

Certamente o procedimento acima é mais “trabalhoso” que usar o SparkleShare ou DropBox, mas tem a vantagem de termos mais controle sobre o que está ocorrendo. Uma possível melhoria é desenvolver alguns scripts que sejam executado via crontab para realizar as atualizações automaticamente.

João Medeiros em 19/07/11

Para instalar o compilador java da Sun (Oracle) no Ubuntu 10.04, execute os comandos abaixo


$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
$ sudo update-java-alternatives -s java-6-sun

João Medeiros em 15/07/11

Para aqueles que usam o nomachine.com juntamente com o freenx. O nomachine permite que acessemos uma máquina remotamente no modo tela cheia, quando estamos nesse modo podemos sair dele clicando no “pixel mágico” que fica no canto superior direito da tela.

Outra alternativa é usar as teclas Ctrl + Alt + M para minimizar/maximizar a tela remota. A descrição de mais teclas de atalho pode ser encontradas aqui.

João Medeiros em 12/07/11

O Dropbox é uma excelente ferramenta de compartilhamento de arquivos, seja entre a mesma pessoa em vários computadores ou entre pessoas diferentes. Algumas desvantagens dela são a limitação de espaço disponível na versão gratuita e o fato que seus arquivos ficam na mão de terceiros, o que pode ser um incômodo se você tem arquivos com informações sensíveis.

Ultimamente, tem aparecido algumas alternativas para o DropoBox, veja aqui e aqui. Entres as várias opções disponíveis, iremos mostrar como criar nosso próprio servidor de compartilhamento de arquivos com o sparkleshare, que oferece clientes para os ambientes Linux e MAC. Para isso, precisaremos de alguma máquina com um IP visível na internet, pode ser um VPS (recomendo o tektonic que oferece VPSs a partir de U$15.00 ao mês) ou qualquer máquina visível na internet.

O sparkleshare utiliza por trás o GIT, que é uma ferramenta de versionamento. Assim, o servidor precisará basicamente de um acesso ssh e o GIT instalados lá.

Instalação no Servidor

Considerando que o servidor é uma máquina Linux com Ubuntu/Debian, instale o openssh-server e o git-core com os comando abaixo, onde REPONAME deve ser substituído pelo nome do repositório que você deseja utilizar.


$ sudo apt-get install git-core openssh-server
$ git init --bare REPONAME.git

Instalação no cliente

Clientes Linux

O Sparkleshare já tem binários prontos para a distribuição Fedora na própria página de download. Abaixo seguem instruções para quem está usando o Ubuntu.

  1. Adicione o repositório

  2. $ sudo add-apt-repository ppa:warp10/sparkleshare

  3. Atualize o repositório com o comando

  4. $ sudo apt-get update

  5. Instale os pacotes com o comando abaixo

  6. $ sudo apt-get install sparkleshare libwebkit1.1-cil git-core

Após a instalação você deve configurar o acesso sem senha no servidor remoto, faça o seguinte no micro cliente

  1. Execute o comando abaixo e aceite as opções default

  2. $ ssh-keygen

  3. Copie sua chave para o servidor remoto com o comando, substituia USUARIO e SERVIDOR.COM pelos respectivos nomes que você está usando

  4. $ ssh-copy-id USUARIO@SERVIDOR.COM

Agora você já pode iniciar o Sparklesahre, execute

$ sparkleshare start

Deve aparecer uma tela inicial, preencha seu nome e email

A seguir, informe o nome do seu servidor a pasta onde está armazenado seu repositório remoto. Na caixa “No meu próprio servidor”, preencha com seu USUARIO@SERVIDOR.COM e na pasta remota o caminho onde está armazenado, normalmente /home/USUARIO/REPONAME.git.

Se deu tudo certo, deve aparecer uma tela como esta

Sua pasta compartilhada deve estar no caminho ~/SparkleShare/REPONAME . Agora você pode utilizá-la normalmente como faz com as pastas compartilhadas do DropBox.