Terminator
Não… não é o robô do futuro que voltou para defender Sarah Connor.
Esse Terminator que vou falar agora, trata-se de um gerenciador de terminais para linux.
Achei ele muito útil para quem acessa vários servidores e serviços via terminal, pois vc pode organizar as janelas de várias formas, por nomes, por grupos e etc.
Para os usuários de Ubuntu/Debian, basta digitar:
$ sudo aptitude install terminator
E para maiores detalhes, screenshots e bla bla bla, acesse:
http://www.tenshu.net/terminator/
E é isso!

Não… não é um robô do futuro que voltou para defender Sarah Connor.
Esse Terminator que vou falar agora, trata-se de um gerenciador de janelas de terminais para linux.
Achei ele muito útil para quem acessa vários servidores e serviços via terminal, pois vc pode organizar as janelas de várias formas, por nomes, por grupos e etc.

Para os usuários de Ubuntu/Debian, basta digitar:
$ sudo aptitude install terminator

E para maiores detalhes, screenshots e bla bla bla, acesse:
http://www.tenshu.net/terminator/

E é isso!

março 10, 2010 | In: Carreira

XGH – Extreme Go Horse

Um amigo aqui do trabalho me indicou uma nova/velha metodolodia de trabalho muito interessante.
E o mais interessante ainda, é que, enquanto estava lendo, fui percebendo que já utilizamos ela a muito tempo e não sabíamos.
Extreme Go Horse é o nome, segue abaixo o texto:
eXtreme Go Horse (XGH)
1- Pensou, não é XGH.
XGH não pensa, faz a primeira coisa que vem à mente. Não existe segunda opção, a única opção é a mais rápida.
2- Existem 3 formas de se resolver um problema, a correta, a errada e a XGH, que é igual à errada, só que mais rápida.
XGH é mais rápido que qualquer metodologia de desenvolvimento de software que você conhece (Vide Axioma 14).
3- Quanto mais XGH você faz, mais precisará fazer.
Para cada problema resolvido usando XGH, mais uns 7 são criados. Mas todos eles serão resolvidos da forma XGH. XGH tende ao infinito.
4- XGH é totalmente reativo.
Os erros só existem quando aparecem.
5- XGH vale tudo, só não vale dar o toba.
Resolveu o problema? Compilou? Commit e era isso.
6- Commit sempre antes de update.
Se der merda, a sua parte estará sempre correta.. e seus colegas que se fodam.
7- XGH não tem prazo.
Os prazos passados pelo seu cliente são meros detalhes. Você SEMPRE conseguirá implementar TUDO no tempo necessário (nem que isso implique em acessar o BD por um script malaco).
8- Esteja preparado para pular fora quando o barco começar a afundar… ou coloque a culpa em alguém ou algo.
Pra quem usa XGH, um dia o barco afunda. Quanto mais o tempo passa, mais o sistema vira um monstro. O dia que a casa cair, é melhor seu curriculum estar cadastrado na APInfo, ou ter algo pra colocar a culpa.
9- Seja autêntico, XGH não respeita padrões.
Escreva o código como você bem entender, se resolver o problema, commit e era isso.
10- Não existe refactoring, apenas rework.
Se der merda, refaça um XGH rápido que solucione o problema. O dia que o rework implicar em reescrever a aplicação toda, pule fora, o barco irá afundar (Vide Axioma 8).
11- XGH é totalmente anárquico.
A figura de um gerente de projeto é totalmente descartável. Não tem dono, cada um faz o que quiser na hora que os problemas e requisitos vão surgindo (Vide Axioma 4).
12- Se iluda sempre com promessas de melhorias.
Colocar TODO no código como uma promessa de melhoria ajuda o desenvolvedor XGH a não sentir remorso ou culpa pela cagada que fez. É claro que o refactoring nunca será feito (Vide Axioma 10).
13- XGH é absoluto, não se prende à coisas relativas.
Prazo e custo são absolutos, qualidade é totalmente relativa. Jamais pense na qualidade e sim no menor tempo que a solução será implementada, aliás… não pense, faça!
14- XGH é atemporal.
Scrum, XP… tudo isso é modinha. O XGH não se prende às modinhas do momento, isso é coisa de viado. XGH sempre foi e sempre será usado por aqueles que desprezam a qualidade.
15- XGH nem sempre é POG.
Muitas POG’s exigem um raciocínio muito elevado, XGH não raciocina (Vide Axioma 1).
16- Não tente remar contra a maré.
Caso seus colegas de trabalho usam XGH para programar e você é um coxinha que gosta de fazer as coisas certinhas, esqueça! Pra cada Design Pattern que você usa corretamente, seus colegas gerarão 10 vezes mais código podre usando XGH.
17- O XGH não é perigoso até surgir um pouco de ordem.
Este axioma é muito complexo, mas sugere que o projeto utilizando XGH está em meio ao caos. Não tente por ordem no XGH (Vide Axioma 16), é inútil e você pode jogar um tempo precioso no lixo. Isto fará com que o projeto afunde mais rápido ainda (Vide Axioma 8). Não tente gerenciar o XGH, ele é auto suficiente (Vide Axioma 11), assim como o caos.
18- O XGH é seu brother, mas é vingativo.
Enquanto você quiser, o XGH sempre estará do seu lado. Mas cuidado, não o abandone. Se começar um sistema utilizando XGH e abandoná-lo para utilizar uma metodologia da moda, você estará fudido. O XGH não permite refactoring (vide axioma 10), e seu novo sistema cheio de frescurites entrará em colapso. E nessa hora, somente o XGH poderá salvá-lo.
19- Se tiver funcionando, não rela a mão.
Nunca altere, e muito menos questione um código funcionando. Isso é perda de tempo, mesmo porque refactoring não existe (Vide Axioma 10). Tempo é a engrenagem que move o XGH e qualidade é um detalhe desprezível.
20- Teste é para os fracos.
Se você meteu a mão num sistema XGH, é melhor saber o que está fazendo. E se você sabe o que está fazendo, vai testar pra que? Testes são desperdício de tempo, se o código compilar, é o suficiente.
21- Acostume-se ao sentimento de fracasso iminente.
O fracasso e o sucesso andam sempre de mãos dadas, e no XGH não é diferente. As pessoas costumam achar que as chances do projeto fracassar utilizando XGH são sempre maiores do que ele ser bem sucedido. Mas sucesso e fracasso são uma questão de ponto de vista. O projeto foi por água abaixo mas você aprendeu algo? Então pra você foi um sucesso!
22- O problema só é seu quando seu nome está no Doc da classe.
Nunca ponha a mão numa classe cujo autor não é você. Caso um membro da equipe morra ou fique doente por muito tempo, o barco irá afundar! Nesse caso, utilize o Axioma 8.
Fonte: http://gohorseprocess.wordpress.com/

Um amigo aqui do trabalho me indicou uma nova/velha metodolodia de trabalho muito interessante.
E o mais interessante ainda, é que, enquanto estava lendo, fui percebendo que já utilizamos ela a muito tempo e não sabíamos.
Segue abaixo os princípios do XGH – Extreme Go Horse:

eXtreme Go Horse (XGH)

1- Pensou, não é XGH.
XGH não pensa, faz a primeira coisa que vem à mente. Não existe segunda opção, a única opção é a mais rápida.

2- Existem 3 formas de se resolver um problema, a correta, a errada e a XGH, que é igual à errada, só que mais rápida.
XGH é mais rápido que qualquer metodologia de desenvolvimento de software que você conhece (Vide Axioma 14).

3- Quanto mais XGH você faz, mais precisará fazer.
Para cada problema resolvido usando XGH, mais uns 7 são criados. Mas todos eles serão resolvidos da forma XGH. XGH tende ao infinito.

4- XGH é totalmente reativo.
Os erros só existem quando aparecem.

5- XGH vale tudo, só não vale dar o toba.
Resolveu o problema? Compilou? Commit e era isso.

6- Commit sempre antes de update.
Se der merda, a sua parte estará sempre correta.. e seus colegas que se fodam.

7- XGH não tem prazo.
Os prazos passados pelo seu cliente são meros detalhes. Você SEMPRE conseguirá implementar TUDO no tempo necessário (nem que isso implique em acessar o BD por um script malaco).

8- Esteja preparado para pular fora quando o barco começar a afundar… ou coloque a culpa em alguém ou algo.
Pra quem usa XGH, um dia o barco afunda. Quanto mais o tempo passa, mais o sistema vira um monstro. O dia que a casa cair, é melhor seu curriculum estar cadastrado na APInfo, ou ter algo pra colocar a culpa.

9- Seja autêntico, XGH não respeita padrões.
Escreva o código como você bem entender, se resolver o problema, commit e era isso.

10- Não existe refactoring, apenas rework.
Se der merda, refaça um XGH rápido que solucione o problema. O dia que o rework implicar em reescrever a aplicação toda, pule fora, o barco irá afundar (Vide Axioma 8).

11- XGH é totalmente anárquico.
A figura de um gerente de projeto é totalmente descartável. Não tem dono, cada um faz o que quiser na hora que os problemas e requisitos vão surgindo (Vide Axioma 4).

12- Se iluda sempre com promessas de melhorias.
Colocar TODO no código como uma promessa de melhoria ajuda o desenvolvedor XGH a não sentir remorso ou culpa pela cagada que fez. É claro que o refactoring nunca será feito (Vide Axioma 10).

13- XGH é absoluto, não se prende à coisas relativas.
Prazo e custo são absolutos, qualidade é totalmente relativa. Jamais pense na qualidade e sim no menor tempo que a solução será implementada, aliás… não pense, faça!

14- XGH é atemporal.
Scrum, XP… tudo isso é modinha. O XGH não se prende às modinhas do momento, isso é coisa de viado. XGH sempre foi e sempre será usado por aqueles que desprezam a qualidade.

15- XGH nem sempre é POG.
Muitas POG’s exigem um raciocínio muito elevado, XGH não raciocina (Vide Axioma 1).

16- Não tente remar contra a maré.
Caso seus colegas de trabalho usam XGH para programar e você é um coxinha que gosta de fazer as coisas certinhas, esqueça! Pra cada Design Pattern que você usa corretamente, seus colegas gerarão 10 vezes mais código podre usando XGH.

17- O XGH não é perigoso até surgir um pouco de ordem.
Este axioma é muito complexo, mas sugere que o projeto utilizando XGH está em meio ao caos. Não tente por ordem no XGH (Vide Axioma 16), é inútil e você pode jogar um tempo precioso no lixo. Isto fará com que o projeto afunde mais rápido ainda (Vide Axioma 8). Não tente gerenciar o XGH, ele é auto suficiente (Vide Axioma 11), assim como o caos.

18- O XGH é seu brother, mas é vingativo.
Enquanto você quiser, o XGH sempre estará do seu lado. Mas cuidado, não o abandone. Se começar um sistema utilizando XGH e abandoná-lo para utilizar uma metodologia da moda, você estará fudido. O XGH não permite refactoring (vide axioma 10), e seu novo sistema cheio de frescurites entrará em colapso. E nessa hora, somente o XGH poderá salvá-lo.

19- Se tiver funcionando, não rela a mão.
Nunca altere, e muito menos questione um código funcionando. Isso é perda de tempo, mesmo porque refactoring não existe (Vide Axioma 10). Tempo é a engrenagem que move o XGH e qualidade é um detalhe desprezível.

20- Teste é para os fracos.
Se você meteu a mão num sistema XGH, é melhor saber o que está fazendo. E se você sabe o que está fazendo, vai testar pra que? Testes são desperdício de tempo, se o código compilar, é o suficiente.

21- Acostume-se ao sentimento de fracasso iminente.
O fracasso e o sucesso andam sempre de mãos dadas, e no XGH não é diferente. As pessoas costumam achar que as chances do projeto fracassar utilizando XGH são sempre maiores do que ele ser bem sucedido. Mas sucesso e fracasso são uma questão de ponto de vista. O projeto foi por água abaixo mas você aprendeu algo? Então pra você foi um sucesso!

22- O problema só é seu quando seu nome está no Doc da classe.
Nunca ponha a mão numa classe cujo autor não é você. Caso um membro da equipe morra ou fique doente por muito tempo, o barco irá afundar! Nesse caso, utilize o Axioma 8.

Fonte: http://gohorseprocess.wordpress.com/

fevereiro 22, 2010 | In: Zend

Helper Truncate para Zend Framework

Dias atrás tive a necessidade de truncar strings que vinham do banco de dados e populavam uma combo select.
Como estou utilizando Zend Framework, tinha certeza que acharia algo que me ajudasse, e para não reinventar a roda comecei a pesquisar no oráculo e eis que encontrei um Helper(Truncate) que faz o que eu queria mas com um pequeno probleminha que só acontece em países que fazem uso de acentuação… encoding! =/

Fucei, procurei, estressei até que o Wellaton(Leandro), um companheiro de trabalho indicou o uso da função mb_substr ao invés da substr, e não é que resolveu o problema com a acentuação??!!!

Então tá aí a dica, caso precise truncar strings, existe um helper pronto, fácil de usar e bom pra isso:

<?php
class Virgen_View_Helper_Truncate
{
    public function truncate($string, $start = 0, $length = 100, $prefix = '...', $postfix = '...')
    {
        $truncated = trim($string);
        $start = (int) $start;
        $length = (int) $length;
        // Return original string if max length is 0
        if ($length < 1) return $truncated;
        $full_length = iconv_strlen($truncated);
        // Truncate if necessary
        if ($full_length > $length) {
            // Right-clipped
            if ($length + $start > $full_length) {
                $start = $full_length - $length;
                $postfix = '';
            }
            // Left-clipped
            if ($start == 0) $prefix = '';
            // Do truncate!
            $truncated = $prefix . trim(substr($truncated, $start, $length)) . $postfix;
        }
        return $truncated;
    }
}

E caso tenha problema com os caracteres, utilize a função mb_substr no lugar de substr, alterando na linha 22:

$truncated = $prefix . trim(mb_substr($truncated, $start, $length)) . $postfix;

E é isso ae!

;-)

O PlayOnLinux é um software que facilita instalar e utilizar em ambiente linux, games e programas desenvolvidos para rWindow$.

Alguns prós do PlayOnLinux:
- Não é necessário possuir uma licensa do Micro$oft rWindow$ para usar PlayOnLinux;
- PlayOnLinux é baseado no Wine, e se beneficia de todas suas utilidades, evitando ao usuário final enfrentar alguma complexidade e oferecendo algumas funcionalidades avançadas;
- PlayOnLinux é um software livre e gratuito;
- PlayOnLinux foi desenvolvido em Bash e Python;

Alguns contras do PlayOnLinux:
- Em alguns casos o resultado não é o esperado e mostra-se um pouco baixo(Imagens menos nítidas, gráficos menos detalhados);
- Não tem suporte a todos os jogos, mas pode-se usar o módulo de instalação manual;

Estou testando e até agora estou gostando do desempenho do PlayOnLinux, caso não conheça e queira experimentar, basta executar as linhas abaixo em seu terminal(como root):

$ wget http://deb.playonlinux.com/playonlinux_karmic.list -O /etc/apt/sources.list.d/playonlinux.list
$ aptitude update
$ aptitude install playonlinux

E para rodar basta executar:
$ playonlinux

É isso, espero que seja útil para você como está sendo pra mim.

;-)

janeiro 3, 2010 | In: Ubuntu

Codecs de vídeo no Ubuntu 9.10

Codecs de vídeo no Ubuntu 9.10
Sempre em uma nova instalação do Ubuntu quando vamos assistir algum vídeo nos deparamos com a falta de codecs, e isso é irritante, falaí!?
Pesquisando na grande rede encontrei uma maneira simples de instalar os principais codecs para videos no Ubuntu.
Como root ou sudo execute as linhas abaixo no seu terminal:
$ wget –output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list
$ sudo apt-get –quiet update && sudo apt-get –yes –quiet –allow-unauthenticated install medibuntu-keyring && sudo apt-get –quiet update
Logo após, basta executar:
$ aptitude install non-free-codecs w32codecs
E voilá… Agora é só assistir seus vídeos numa boa!!!
;-)

Sempre em uma nova instalação do Ubuntu quando vamos assistir algum vídeo nos deparamos com a falta de codecs, e isso é irritante, falaí!?

Pesquisando na grande rede encontrei uma maneira simples de instalar os principais codecs para videos no Ubuntu.
Como root ou sudo execute as linhas abaixo no seu terminal:

$ wget –output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list
$ sudo apt-get –quiet update && sudo apt-get –yes –quiet –allow-unauthenticated install medibuntu-keyring && sudo apt-get –quiet update

Logo após, basta executar:

$ aptitude install non-free-codecs w32codecs

E voilá… Agora é só assistir seus vídeos numa boa!!!

;-)

Instalando Ruby on Rails no Ubuntu 9.10
Resolvi brincar um pouco com RoR(Ruby on Rails), fui instala a pacoteira toda que é preciso e tive alguns problemas.
Mas pesquisando na grande rede encontrei as soluções e posto aqui já tudo mastigadinho para quem precisar.
Vamos começar instalando o Ruby, Rubygems e o Rails, digite no terminal:
$ sudo aptitude install ruby rubygems rails
A partir de agora podemos usar o Gem para instalar o restante.
O Gem é uma espécie de apt-get para RoR, uma “mão na roda” diga-se de passagem.
Agora digite digite no terminal:
$ sudo gem install rails
Agora vamos instalar o Mongrel, um servidor rápido, simples de instalar e usar para rodar aplicações Rails.
Mas antes de instalar no Mongrel é necessário instalar o pacote de desenvolvimento do Ruby, caso contrário não instala.
Então vamos para o terminal e digite:
$ sudo aptitude install ruby1.8-dev
$ sudo gem install mongrel
Falta agora o suporte ao mysql para poder brincar né, mas o Mysql também tem um probleminha e antes temos que instalar a lib client.
No terminal digite:
$ sudo aptitude install libmysqlclient16-dev
$ sudo gem install mysql
Pronto!
Tudo bonitinho e funcionando…
Agora é só começar a brincar com o Rails e ser feliz!

Resolvi brincar um pouco com RoR(Ruby on Rails), fui instalar a pacoteira toda que é preciso e tive alguns problemas.
Mas pesquisando na grande rede encontrei as soluções e posto aqui já tudo mastigadinho para quem precisar.

Vamos começar instalando o Ruby, Rubygems e o Rails, digite no terminal:
$ sudo aptitude install ruby rubygems rails

A partir de agora podemos usar o Gem para instalar o restante.
O Gem é uma espécie de apt-get para RoR, uma “mão na roda” diga-se de passagem.
Agora digite digite no terminal:
$ sudo gem install rails

Agora vamos instalar o Mongrel, um servidor rápido, simples de instalar e usar para rodar aplicações Rails.
Mas antes de instalar o Mongrel é necessário instalar o pacote de desenvolvimento do Ruby, caso contrário não instala.
Então vamos para o terminal e digite:
$ sudo aptitude install ruby1.8-dev
$ sudo gem install mongrel

Falta agora o suporte ao Mysql para que a brincadeira fique melhor né, mas o Mysql também tem um probleminha e antes temos que instalar a lib client.
No terminal digite:
$ sudo aptitude install libmysqlclient16-dev
$ sudo gem install mysql

Pronto!
Tudo bonitinho e funcionando…
Agora é só começar a brincar com o Rails e ser feliz!

Estava testando o Mysql Workbench fazendo um modelo de dados simples e quando fui sincronizar o modelo com o banco, não consegui devido a um erro de biblioteca. Crei a conexão, tudo ok, e quando mandava sincronizar dava o seguinte erro:

Couldn’t load library libmysqlclient_r.so: libmysqlclient_r.so: cannot open shared object file: No such file or directory

Pesquisei na internet, não achei nada em português mas em inglês encontrei várias ocorrencias do mesmo problema.
E derrepente em um forum não me lembro de onde, achei a solução. Muito simples!
Pois o Ubuntu instala as libs com seus respectivos nomes que já vem dos respositórios, por tanto basta você criar um link para a lib com o nome correto.
Navegue até a pasta das suas libs: cd /usr/lib/
Agora crie o link digitando: ln -s libmysqlclient_r.so.15.0.0 libmysqlclient_r.so

Lembrando que podem existir várias versões da mesma lib no seu sistema, 15 ou 16 ou qualquer outra versão… De um comando ls na pasta lib e veja quais versões você possui e faça o link para a lib mais nova!

E pronto… só isso!

Na semana passada instalei o esperado Ubuntu 9.10 Karmic Koala.
Estava indo tudo bem quando um amigo me enviou um link de um vídeo do youtube para que eu assistisse.
Cliquei no link, o Firefox pediu o plugin do flash, instalei tudo certinho e aí dei o play e…

o som não saía!!! =/

Futriquei, fucei e até que achei… uma simples lib!!!
Se passar pelo mesmo problema, apenas digite no seu console:
$ aptitude install flashplugin-nonfree-extrasound

Pronto!!!
Reinicie seu Firefox e ouça os sons dos vídeos do youtube!!!

Aos valentes e persistentes usuáios de Linux que sofrem com a utilização de SVN por falta de um software bom, “seus problemas se acabaram-se”

Navagando na grande rede me deparei com o Nautilus SVN, um software semelhante ao conhecido Tortoise for rWindow$. Caso queira testar o software, segue o link abaixo:

http://code.google.com/p/nautilussvn/wiki/Installation

Basta baixar, instalar e reiniciar o seu sistema e pronto!

Seja feliz apenas clicando com o botão direito e Checkout!!!

\o/

Não sei por que, mas o Ubunto 9 não vem com o acesso a VPN habilitado. Se você clicar no computadorzinho perto do relógio na barra  superior e for em Conexões VPN, e em Configurar VPN, abrirá a janela com as opções de redes mas, você não poderá configurar uma VPN por que o botão de adicionar está desabilitado.
Então procurei até encontrar uma solução e é muito, mas muito simples mesmo.
Segue instruções abaixo…

$ sudo aptitude update
$ sudo aptitude install pptp-linux
$ sudo aptitude install network-manager-pptp

Pronto, ao voltar naquela mesma janelinha que citei anteriormente, já estará habilitado o botão de adicionar uma nova conexão VPN.

Mais uma dica:
Ao adicionar uma VPN, preencha os dados exigidos, como Gateway(IP), Usuário e Senha, então clique no botão Avançado e nessa nova janela, marque a opção Usar Criptografia ponto a ponto (MPPE) e na combo Segurança, escolha a opção 128 bits.

Agora sim, pronto, é só conectar e usar.

Categorias

Últimas Twittadas!!!

Posting tweet...

Powered by Twitter Tools

Calendário

setembro 2010
S T Q Q S S D
« ago    
 12345
6789101112
13141516171819
20212223242526
27282930  

Reflexão

Deixo meu suor no campo de treinamento, para não deixar meu sangue no campo de batalha" - Sun Tzu