Ir para o conteúdo
ou

Software livre Brasil

Tela cheia
 Feed RSS

Blog

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.
cover do http://fernandoike.com

Sua nuvem cai?

18 de Dezembro de 2013, 13:36, por Software Livre Brasil - 0sem comentários ainda

Você acha que Cloud Computing são nuvens bonitinhas como essas?

Ou ela está mais para isso?

Existe um falso mito que hospedar os servidores ou aplicação na nuvem (ou cloud se preferir…). Não é mais necessário se preocupar com problemas de disponibilidade como: geradores de energia elétrica, banco de baterias (nobreak), circuitos redundantes de rede lógica e elétrica, segurança patrimonial, etc. Entretanto ao usar algum serviço de nuvem, você está delegando essas preocupações para outra empresa.

Nesse mês (Dezembro de 2013) muitas empresas que hospedam suas aplicações na nuvem foram surpreendidas porque um datacenter teve uma indisponibilidade do tipo citada acima. O datacenter, bem conhecido, teve um problema de energia elétrica e praticamente tornou indisponível todos os sistemas que estão ali hospedados, dentre eles alguns dos principais fornecedores de cloud e consequentemente todos os clientes deles também tiveram seus sistemas indisponíveis.

Um problema deste tipo num datacenter é difícil de acontecer mas acontece, aconteceu e acontecerá. É como um acidente de avião, são várias pequenas coisas que aparentemente não poderiam derrubar uma avião mas elas encadeadas derrubam. No caso de um datacenter são um conjunto de pequenos incidentes/problemas que podem torná-lo indisponível.

O falso mito que ao colocar uma aplicação/sistema na nuvem, ele nunca ficará indisponível porque na nuvem as coisas funcionam automagicamente é mais comum que possa imaginar. Pense um pouco, todo sistema precisa estar armazenado em algum lugar, se não está na empresa precisa estar em outro lugar mesmo na nuvem. A nuvem (IaaS, SaaS, PaaS, etc) facilita muito porque muito coisa é entregue praticamente pronta e com um pouco de ajuste já é possível disponibilizar um serviço rapidamente. Entretanto mesmo na nuvem, um sistema estará alocada num ou mais datacenters. Portanto ao considerar hospedar seu sistema numa infraestrutura na nuvem, considere pensar no contingenciamento dele.

Veja alguns exemplos de incidentes de indisponibilidades:

Geralmente ao colocar um sistema ou site num fornecedor de nuvem como AWS, a maioria esquece de considerar o contigenciamento no custo operacional. A necessidade somente é percebida posteriormente após uma indisponibilidade como as citadas acima. Uma grande vantagem da nuvem é permitir ter um plano de contingência mantendo quase todos serviços de contingência desligado, mantendo somente o necessário para fazer a sincronização dos dados de um infraestrutura para outra (de uma região para outra no caso do AWS).

Alguns sites adotam como parte secundário do plano de contingência ter as partes principais em cache numa CDN (Content Delivery Network), tendo como o ponto principal da contingência a redundância dos serviços numa região geograficamente distante. Exemplo: Numa região diferente do AWS ou num datacenter numa região diferente no caso da Rackspace.

O caso do Netflix é bem interessante como estudo de alta disponibilidade e contingência usando AWS, leitura recomendadíssima.

Se você estiver considerando migrar suas aplicações para a nuvem, considere um plano de contingência. Se puder, construa a arquitetura de seu site, sistema, aplicação, etc. considerando tecnologias que permitam trabalhar de forma distribuída e com redundância. Afinal, uma empresa com o seu negócio parado pode ser muito custoso do que alocar mais recursos computacionais para melhorar o SLA da sistema que suporta o negócio.

Imagens de Charles Rondeau e MALIZ ONG, elas podem ser encontradas em Public Domain Pictures.



Skype e computadores com duas placas de video

16 de Dezembro de 2013, 14:08, por Software Livre Brasil - 0sem comentários ainda

Infelizmente uso muito Skype no trabalho e estava com um problema com ele ao participar de videoconferências, ele simplesmente caia (famoso segment fault). Depois de um tempo ele automagicamente voltou a funcionar.

Conversando com o Euler e tentando ajudá-lo a fazer o Skype funcionar, percebi que esse problema acontece em computadores que tem duas placa de vídeos e os drivers do kernel linux estão carregados na memória. Se você está com um problema como esse e tem duas placas de vídeo (no meu caso, a segunda placa é uma Nvidia), pode usar o bumblebee para contornar o problema.

O projeto Bumblebee permite usar a tecnologia Nvidia Optimus. O principal ganho em instalar o bumblebee é melhorar o gerenciamento de energia e ganhar alguns minutos a mais ao usar a bateria do notebook.

Para instalá-lo no Debian é relativamente simples, basta:

1
#aptitude bumblebee

Se quiser executar o Skype pela placa de vídeo Nvidia:

1
$optirun skype


Recuperando os podcasts perdidos

12 de Dezembro de 2013, 13:41, por Software Livre Brasil - 0sem comentários ainda

Um pouco de arqueologia, recuperei alguns episódios de alguns podcasts que participei algum tempo atrás. O GDHcast que participei pontualmente com o @Leandro Santos nos episódios que participei. Originalmente o GDHCast foi criado pelo @Carlos Morimoto, famoso pelo Guia do Hardware e o Kurumin Linux.

Os episódios do GDHCast que participei podem ser ouvidos aqui.

O Navaranda Podcast foi experimentação fantástica realizada por @Emerson Luis, César Cardoso, Guto Carvalho, eu e muitos outras pessoas. Ele começou numa brincadeira falando sobre assuntos que gostávamos de conversar e foi crescendo até entrevistar os então Ministro do Planejamento (@Paulo Bernardo) e Ministro das Relações Instituicionais (@Alexandre Padilha). O legal era realizar os episódios literalmente na varanda do Emerson.

Ah claro, era uma delícia pesquisar músicas com licenças em Creative Commons. ;)

Infelizmente, não consegui recurperar as entrevistas dos ministros mas os registros anteriores estão todos aqui.

Fonte da imagem: Wikipedia



Convertendo arquivos de música para Ogg com avconv

23 de Novembro de 2013, 3:09, por Software Livre Brasil - 0sem comentários ainda

Eu estava recuperando os arquivos do Navaranda Podcast para deixar disponível na internet. A versão original estava no formato [WAV][] e minha intenção era converter todos para o formato [OGG][]. Para fazer isso, usei o [avconv][] (um fork do [ffmpeg][]) e diminiu o bitrate para 6kbits/s.

Primeiramente instalando o avconv.

lang=bash
1
#aptitude install avconv

Agora, a conversão em si:

lang=bash
1
$for i in $(echo Music/*.wav); do avconv -i $i -acodec libvorbis -b:a 64k ${i%%.wab}.ogg; done

Ah, já ia esquecendo! Isso foi feito no Debian. ;)



DatabaseCast 38: Vagas de MySQL e PostgreSQL

22 de Outubro de 2013, 1:51, por Software Livre Brasil - 0sem comentários ainda

Euler, um dos desenvolvedores brasileiros do PostgreSQL está no podcast DatabaseCast, neste episódio o tema é vagas de trabalho em PostgreSQL e MySQL. As vagas de trabalho em MySQL são comentados pelo Airton Lastori.

Para ouvir, pode ir na página do episódio por aqui.

O podcast é feito pelo Mauro Pichiliani e Wagner Crivelini que já está em sua edição 38, os episódios anteriores são recomendadíssimos de ouvir. ;)



Um box vagrant para o cacic 3.0

8 de Outubro de 2013, 17:01, por Software Livre Brasil - 0sem comentários ainda

Se quiser ajudar no desenvolvimento ou teste, pode usar um boxe vagrant que criei com a versão 3.0 beta que está disponibilizado no Portal do Software Público.

O Vagrant permite criar ambientes de desenvolvimento, teste, etc. muito facilmente e sem precisar usar a interface gráfica do virtualbox para isso. Lembrando que a VM criada pelo template nunca deve ser usado em produção, até porque ela não tem grandes recursos configurados. Mas pode usar alguma coisa como chef, puppet, etc. para envir para um ambiente de produção do jeito certo. ;)

Vagrant está disponível para várias distribuições linux, no Debian é bem fácil porque já tem no repositório oficial. No site do Vagrant tem pacotes para instalar para diferentes sistemas operacionais e distribuições linux, pode dar uma olhada lá.

Depois de instalado e baixado o arquivo box (cacic-server-3.0b.box), os passos seguintes são bem simples.

lang=bash
1
2
3
4
5
6
7
$vagrant box add base cacic-server-3.0b.box

$vagrant init

$vagrant up

$vagrant ssh

Estes box está configurado com uma segunda placa de rede em modo bridge, então pode usá-la para que vm fique disponível na rede.

A instalação está exatamente como a documentação cita: diretórios do cacic, serviços, pacotes, etc. Exceto por duas coisas diferentes.

1 - Ao inveś de editar o php.ini para alterar o fuso horário do PHP, incluí um arquivo

$cat /etc/php5/apache2/conf.d/30-timezone.ini date.timezone = America/Sao_Paulo

2 - Ao invés do Proftpd, usei o Vsftpd. Ele é mais simples de usar.

Para acessar, basta usar o IP da eth1 que você configurar. http://ip-servidor/cacic/app.php

Obs. Esse VM é Debian Wheezy 7.0 AMD64 (64 bits)



Obrigado, Agile Trends!

7 de Outubro de 2013, 2:43, por Software Livre Brasil - 0sem comentários ainda

Participei do Agile Trends e gostei bastante do que vi, conversei e debati. O que aprendi em dois dias foi multo valioso!

Os keynotes foram sensacionais e o Sílvio Meira no fechamento do primeiro dia foi assombroso. Se publicarem o vídeo da apresentação dele, posto aqui.

Porém, creio que faltou abordagens em outras áreas além da acadêmica e desenvolvimento de software.

Um destaque em especial foi a apresentação da Fabiana Ruas e Herbert Parente falando sobre ”Governo Ágil 3.0: é possível?”. Achei muito relevante a informação que existe um acordão sobre desenvolvimento ágil do TCU (Ácordão 2314/2013 TCU/Plenário).

Ah, claro. Dos eventos que participei nos últimos quatro anos, sem dúvida esse foi o melhor de todos. :)

Referências:



Linux e o Internet Banking do Santander

23 de Setembro de 2013, 14:12, por Software Livre Brasil - 0sem comentários ainda

Praticamente todos os grandes banco comerciais neste último ano começaram usar uma solução que impossibilita usar o internet banking deles num Linux (Debian) com OpenJDK.

Exceto o internet banking do Banco do Brasil (funciona perfeitamente) os outros que conheço é necessário fazer alguma solução de contorno (gambiarra) para usar adequadamente.

Já estava decidido a fechar a minha conta no Santander mas antes abri uma reclamação no SAC (Serviço de Atendimento ao Cliente). Para minha surpresa, ligaram para mim e perguntei se tinha alguma previsão do internet banking voltar a funcionar para Linux.

A resposta? Infelizmente não tinha previsão mas eles iriam alterar o meu cadastro para modificar o plugin do internet banking deles para funcionar no Linux.

Surpresa de novo! Alterado o cadastro e voltei usar normalmente. :)

Obs. Essa forma que os plugins dos navegadores dos bancos estão funcionando é muito parecido com um vírus ou um técnica de Spoofing. Essa técnica é muito discutível para proteger os usuários mas isso fica para outro texto. ;)



Pbuilder and pdebuild to sign deb package automagically

20 de Setembro de 2013, 22:21, por Software Livre Brasil - 0sem comentários ainda

To create a deb package (debian way) it is hard work. After spending some time working on that, you will feel more comfortable but the package building still is a little bit complex. Mainly if you add tests.

A good tool to create a deb package automatically is pbuilder. It creates a chroot jail and it allows to build deb packages for Debian and Ubuntu.

Create chroot jails environment

Debian Sid/Unstable em AMD64

1
2
$sudo pbuilder create --basetgz /var/cache/pbuilder/base-sid-amd64.tgz \
    --distribution sid

Debian Wheezy (Stable) I386 (ia32)

1
2
$sudo pbuilder create --basetgz /var/cache/pbuilder/base-stable-i386.tgz \
    --distribution stable --architecture i386

If you are using Debian and you want to build a deb package to Ubuntu. It can be done adding the Ubuntu repository public key in apt keyring before pbuilder use. Bellow is an example with Ubuntu Raring Ringtail (13.04).

1
2
3
4
5
$sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32

$sudo pbuilder create --basetgz /var/cache/pbuilder/base-raring-amd64.tgz \
    --distribution raring --mirror http://ftp.ubuntu.com/ubuntu \
    --debootstrapopts --keyring=/etc/apt/trusted.gpg

Building packages

pbuilder

1
2
3
4
5
6
7
8
9
10
11
#Debian Sid
$sudo pbuilder build --basetgz /var/cache/pbuilder/base-sid-amd64.tgz \
    --distribution sid foobar*.dsc

#Debian Stable 
$sudo pbuilder build --basetgz /var/cache/pbuilder/base-stable-i386.tgz \
    --distribution stable foobar*.dsc

#Ubuntu Raring
$sudo pbuilder build --basetgz /var/cache/pbuilder/base-raring-amd64.tgz \
    --distribution raring foobar*.dsc

When you try to use pbuilder is very common to sign .dsc and .changes files automatically.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Sid
$sudo pdebuild --auto-debsign --debsign-k XXXXXXXX --  \
    --basetgz /var/cache/pbuilder/base-sid-amd64.tgz --distribution sid \
    foobar*.dsc

# Stable i386
$sudo pdebuild --auto-debsign --debsign-k XXXXXXXX --  \
    --basetgz /var/cache/pbuilder/base-stable-i386.tgz \
    --distribution stable --architecture i386 foobar*.dsc

# Ubuntu Raring
$sudo pdebuild --auto-debsign --debsign-k XXXXXXXX --  \
    --basetgz /var/cache/pbuilder/base-raring-amd64.tgz \
    --distribution raring  --mirror http://ftp.ubuntu.com/ubuntu \
    foobar*.dsc

Updating chroot environment

If one needs to update these created chroots, it can be done as the examples bellow.

1
2
3
4
5
6
7
8
9
10
11
# Debian Sid
$pbuilder update --basetgz /var/cache/pbuilder/base-sid-amd64.tgz \
    --distribution sid

# Debian Stable i386
$pbuilder update --basetgz /var/cache/pbuilder/base-stable-i386.tgz \
    --distribution stable --architecture i386

# Ubuntu Raring
$pbuilder update --basetgz /var/cache/pbuilder/base-raring-amd64.tgz \
    --distribution raring

The files and deb packages built are at ”/var/cache/pbuilder/result/”. But it can easly be changed using –buildresult option, take a look at pbuilder manual for more details.

Conclusion

Pbuilder and pdebuild are good tools that can be used in many ways, mainly to build tests automation. If you want to know more, take a look at manuals ($man pbuilder, man pdebuild) and you can find good tips about automation building in Debian and Ubuntu wiki.



Using vagrant with bridge network

20 de Setembro de 2013, 21:10, por Software Livre Brasil - 0sem comentários ainda

<p>I needed to use vagrant with bridge network in a project and the official documentation isn’t clear about it.</p> <p>Well, it&#8217;s simple, you should change the <em>&#8220;Vagrangfile&#8221;</em> in &#8221;<strong>config.vm.network</strong>&#8221; parameter. E.g. using bridge on wlan0.</p> <div><table><tr><td><pre><span>1</span> </pre></td><td><pre><code><span>config.vm.network :public_network, :bridge => 'wlan0'</span></code></pre></td></tr></table></div>



Pbuilder e Pdebuilder

14 de Setembro de 2013, 2:00, por Software Livre Brasil - 0sem comentários ainda

Criar pacotes deb (do jeito certo) é trabalhoso. Depois que pega o jeito é bem mais fácil mas ainda sim trabalhoso, principalmente quando é necessário fazer algum teste. Uma das formas de automatizar isso é usar o pbuilder. Ele permite gerar pacotes usando uma ambientes de jaula (chroot) e gerar pacotes para diferentes versões do Debian, (Ubuntu) e outros. Por exemplo, criando alguns ambientes chroot com versões diferentes de Linux (GNU/Linux) e arquitetura de hardware.

Criando os ambientes chroots

Debian Sid/Unstable em AMD64

1
2
$sudo pbuilder create --basetgz /var/cache/pbuilder/base-sid-amd64.tgz \
      --distribution sid

Debian Wheezy (Stable) em I386 (ia32)

1
2
$sudo pbuilder create --basetgz /var/cache/pbuilder/base-stable-i386.tgz \ 
      --distribution stable --architecture i386

Caso esteja usando Debian e queirar gerar um pacote para Ubuntu. Pode fazer também mas terá que adicionar a chave pública do Ubuntu no apt antes de criar. No exemplo abaixo é o Ubuntu Raring Ringtail (13.04).

1
2
3
4
5
$sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32

$sudo pbuilder create --basetgz /var/cache/pbuilder/base-raring-amd64.tgz \ 
      --distribution raring --mirror http://ftp.ubuntu.com/ubuntu \
      --debootstrapopts --keyring=/etc/apt/trusted.gpg

Gerando os pacotes

pbuilder

1
2
3
4
5
6
7
8
9
10
11
#Debian Sid
$sudo pbuilder build --basetgz /var/cache/pbuilder/base-sid-amd64.tgz \
      --distribution sid foobar*.dsc

#Debian Stable 
$sudo pbuilder build --basetgz /var/cache/pbuilder/base-stable-i386.tgz \
      --distribution stable foobar*.dsc

#Ubuntu Raring
$sudo pbuilder build --basetgz /var/cache/pbuilder/base-raring-amd64.tgz \
      --distribution raring foobar*.dsc

Nas primeiros vezes que você usa o pbuilder é comum assinar com gpg (um tipo de programa de criptografia) os arquivos gerados manualmente como o debsign.

1
2
$debsign -kfoo@bar.io /var/cache/pbuilder/result/foobar*.dsc
$debsign -kfoo@bar.io /var/cache/pbuilder/result/foobar*.changes

Ou usar um pdebuild para gerar o pacote e assinar os arquivos .dsc e .changes automagicamente. =)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Sid
$sudo pdebuild --auto-debsign --debsign-k XXXXXXXX --  \ 
      --basetgz /var/cache/pbuilder/base-sid-amd64.tgz --distribution sid \ 
      foobar*.dsc

# Stable i386
$sudo pdebuild --auto-debsign --debsign-k XXXXXXXX --  \
      --basetgz /var/cache/pbuilder/base-stable-i386.tgz \ 
      --distribution stable --architecture i386 foobar*.dsc

# Ubuntu Raring
$sudo pdebuild --auto-debsign --debsign-k XXXXXXXX --  \
      --basetgz /var/cache/pbuilder/base-raring-amd64.tgz \ 
      --distribution raring  --mirror http://ftp.ubuntu.com/ubuntu \
      foobar*.dsc

Atualizando ambientes chroot

Se precisar atualizar esses ambientes criados, pode fazê-los como os exemplos abaixo.

1
2
3
4
5
6
7
8
9
10
11
# Debian Sid
$pbuilder update --basetgz /var/cache/pbuilder/base-sid-amd64.tgz \
      --distribution sid

# Debian Stable i386
$pbuilder update --basetgz /var/cache/pbuilder/base-stable-i386.tgz \ 
      --distribution stable --architecture i386

# Ubuntu Raring
$pbuilder update --basetgz /var/cache/pbuilder/base-raring-amd64.tgz \ 
      --distribution raring

Os arquivos e o pacotes depois de gerados pelo pdebuild ou pbuilder estarão em ”/var/cache/pbuilder/result/”. Mas você pode mudar isso facilmente usando a opção –buildresult, olhe o manual do pbuilder.

Conclusão

O pbuilder e pdebuild são excelentes ferramentas que podem ser utilizadas de muitas formas diferentes, principalmente para automação de testes. Se quiser saber mais, leia manuais dos dois ($man pbuilder, man pdebuild) ou se quiser automatizar pode ler as wiki do Debian e Ubuntu (recomendadíssmo).



Adicionando legenda ao vídeo por linha de comando

13 de Setembro de 2013, 14:36, por Software Livre Brasil - 0sem comentários ainda

O libav é um fork do ffmpeg e tem a maioria das funcionalidades do ffmpeg. Como libav é um pacote oficial do Debian, ele será usado como a ferramenta para adicionar as legendas mas a sintaxe funciona com o ffmpeg.

Para adicionar uma legenda é necessário usar o avconf que está includo no pacote libav-tools.

1
$sudo aptitude install libav-tools

Para adicionar, basta executar o avconv com a opção -vf subtitles.

1
$avconv -i foobar.ogv -vf subtitles=foobar.srt foobar-subtitle.ogv


Adding subtitles to video using shell

13 de Setembro de 2013, 14:36, por Software Livre Brasil - 0sem comentários ainda

The libav is a ffmpeg fork and it has the most ffmpeg features. As libav is an official debian package, it will be used like a tool to add subtitles but it works like a ffmpeg.

To add a subtitle to video, it’s needed to use avconv that is included in libav-tools package. So, let’s install it.

1
$sudo aptitude install libav-tools

So, it’s simple to add subtitles to a video.

1
$avconv -i foobar.ogv -vf subtitles=foobar.srt foobar-subtitle.ogv


Review: Roteador TP-Link TL-WR841N

10 de Setembro de 2013, 13:07, por Software Livre Brasil - 0sem comentários ainda

Meu velho e antigo roteador wifi decidiu que estava chegando a hora de se aposentar. Ao procurar um substituto, perguntei nas “rede sociais” se alguém tinha alguma recomendação. Aliás, agradeço à todos que responderam, as respostas foram importantes para ganhar tempo na procura de um modelo.

Minha procura restringiu-se aos modelos com suporte 802.11n, compatível ao DD-WRT, se possível com operação também no 5 Ghz (além do 2,4 GHz).

Desconsiderado o 802.11ac porque é muito novo e posteriormente também desconsiderei os modelos com suporte ao 5 Ghz porque o preço era praticamente o dobro.

Um pouco mais de procura encontro o TP-Link TL-WR841N por menos de 100 dilmas! Apesar de na comparação técnica com outros modelos ele é levemente inferior em potência da rede (2 dbi) mas é mais do que o roteador que se aposentou.

Comprado, instalado e configurado. O alcance não é lá muito grande mas é razoável para que os gadgets conectados ao wifi usem sem muita perda de desempenho. Principalmente no extremo oposto da minha residência que anteriormente precisava de um repetidor.

Claro que minha pesquisa inicial, eu queria um modelo com suporte ipv6 e 5 Ghz mas o preço eram bem superiores ao comparar com TL-WR841N. Se tiver interesse em comprar um roteador wifi com suporte ao ipv6, recomendo ler o texto do Antonio M. Moreiras que faz uma comparação dos modelos dos principais fabricantes.

Ah! Estava esquendo. Em um dos manuais do TL-WR841N encontro a licença GPL-2. :)



Debian: 20 anos!

16 de Agosto de 2013, 15:21, por Software Livre Brasil - 0sem comentários ainda

Hoje o Debian faz 20 anos. É muito legal ver um projeto como ele ter bastante tempo e continuar com seu plano ambicioso de dominação mundial. Ops, dominação do universo.

Eu sou muito grato pelas oportunidades, conhecimento e contribuição esses anos todos que fui (ops, estou) voluntário. Claro que alguns momentos mais ativo que outros mas é admirável olhar um projeto que suporta tantas arquiteturas de hardware diferentes e principalmente, com suporte à tantos idiomas diferentes.

Fui olhar quando foi criado meu login no Alioth e ele é de 2004. :)

Ah, claro! Uma projeto que batiza as versões lançados com os nomes dos personagens do Toy Story, tinha que durar muito tempo.