Ir para o conteúdo
ou

Software livre Brasil

Tela cheia Sugerir um artigo
 Feed RSS

Projeto Software Livre - Piauí

15 de Janeiro de 2010, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

O PSL-PI tem por objetivo incentivar o uso e a produção de software livre no Piauí como política de combate à exclusão digital. Acreditamos que a distribuição de conhecimentos proporcionada pelo Open Source/Software Livre tornará nossa sociedade mais justa e próspera, exatamente por dar a todos as mesmas condições de conhecimento e desenvolvimento.

Software Livre é uma grande oportunidade de construirmos uma sociedade produtora de ciência, independente e efetivamente competitiva. Estamos reconstruindo as bases da nossa sociedade, não mais calcados nos braços do Estado, mas sim, amparados pela iniciativa própria, pela auto-determinação. Nós somos capazes de nos auto-governar. Somos capazes de construir uma sociedade efetivamente Livre. Esta é a essência do PSL-PI.

O PSL-PI é formado pela articulação de indivíduos que atuam em instituições publicas e privadas, grupos de usuários e desenvolvedores de software livre, empresas, governos ou ONGs, e demais setores da sociedade. O importante é a consciência e disposição para propagar o uso de software livre e a cultura colaborativa nas diferentes esferas da sociedade.


Adriel Lucas: MYSQL: Replicação de Dados

21 de Novembro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

INTRODUÇÃO

O objetivo de um mecanismo de replicação de dados é permitir a manutenção de várias cópias idênticas de um ­­­­mesmo dado em vários servidores de bancos de dados (SGBD). Os principais benefícios da replicação de dados são a redundância, o que torna o sistema tolerante a falhas, a possibilidade de um balanceamento de carga do sistema, já que o acesso pode ser distribuído entre as réplicas, e finalmente, ter-ser o backup online dos dados, já que todas as replicas estariam sincronizadas. Este artigo, apresenta uma introdução ao mecanismo de replicação do MySQL, bem como as configurações básicas para realização desta tarefa.

VISÃO GERAL DA REPLICAÇÃO

O MySQL permite um tipo de replicação conhecido como Master-Slave, onde temos um servidor atuando como master e um ou mais servidores atuando como slave. O master grava em um log binário de alteração todos os comandos de atualizações da base de dados. Desta forma, todas as alterações ocorridas no master são imediatamente replicadas para os outros servidores slave.
A replicação no mysql é principalmente compatível com a anterior, isto é, um servidor mais novo pode normalmente ser um escravo de um servidor mais velho sem nenhum problema. Porém, versões mais antigas dos servidores são, freqüentemente, incapazes de servir como slaves de versões mais novas, pois eles não podem entender novas características ou a sintaxe SQL que o servidor mais novo utiliza, e pode haver diferenças no formato dos arquivos que a replicação usa, por exemplo, você não pode replicar de um master MySQL 5.0 para um slave MySQL 4.0.
Com a replicação você possui uma série de vantagens como:
  • Equilíbrio de carga: a replicação, geralmente não precisa de uma largura de banda muito intensiva, você pode inicia e parar conforme a sua vontade e o slave pode trabalhar distante do master.
  • Distribuição de dados: a replicação pode ajudar a distribuir as consultas de leitura através de diversos servidores, ou seja, o mesmo dado pode está armazenados em todos os servidores envolvidos da replicação.
  • Backup: a replicação é uma técnica valiosa para ajudar com backups, porém um slave não é nem um backup nem um substituto para backups.
  • Alta disponibilidade: se um servidor falhar tem outro servidor para suprir aquele servidor que falhou.

COMO A REPLICAÇÃO FUNCIONA

O MySQL realiza a replicação em um simples processo de três fases, a Figura 1 ilustra a replicação com mais detalhes:

  • O master registra alterações aos seus dados no seu log binário (estes registros são chamados de evento de log binário): antes de cada transação que atualiza dados no master, o mesmo registra as alterações no seu log binário, ou seja, o mysql escreve as transações no seu log binário e logo em seguida o master diz  as ferramentas de armazenamento para comitar as transações.
  • O slave copia os eventos de log binário do master no seu relay log (log de vigilância): o servidor slave, através de uma thread de I/O, abre uma conexão com o master e logo inicia o processo de esvaziamento de binlog. O esvaziamento de binlog consiste na leitura do evento a partir do log binário do master. A Thread de I/O escreve os eventos no relay log do slave.
  • O slave repete aos eventos no relay log: a thread lê e repete eventos a partir do relay log, dessa forma atualizando os dados do slave para combinarem com os do master.

CONFIGURANDO A REPLICAÇÃO

A configuração do MySQL é bem simples, mas dependendo do cenário pode ocorrer alguma variação. O cenário mais básico é um servidor master e um slave. Basicamente o processo de configuração da replicação é a seguinte:
  • Configurar contas de replicação em cada servidor
  • Configurar o master  e o slave
  • E instruir o slave para connectar ao master e replicar a partir dele também.
Obs.: Esta configuração foi feita em duas máquinas virtuais onde as mesmas tinham instaladas o sistema operacional GNU\Linux CentOS 5.7 final. Este artigo parte do principio de que você já tenha instalado o servidor mysql tanto no servidor slave quanto no servidor master.

Criando contas de Replicação

Primeiramente deve-se criar uma conta de usuário com permissão de replicação para os servidores tanto no master quanto no slave, ou seja, o mesmo usuário criado para os servidores em questão. Aqui está como criar a conta de usuário, que chamaremos de replicador:
mysql> create user replicador identified by  ‘replica’;
Query OK, 0 rows affected (0.00 sec)
mysql> grant replication slave, replication client on *.* to replicador@'192.168.56.%' identified by 'replica';
Query OK, 0 rows affected (0.00 sec)
Foi criada esta conta de usario no servidor master e no slave. Log em seguida foi dado as permissões de replicação (grant replication slave, replication client) para todas as bases de dados do SGBD MySQL (on *.*) para o usuário que acabamos de criar restringindo ao usuário o acesso somente da rede local (replicador@'192.168.56.%' identified by 'replica';).

Configurando o Master e o Slave

Depois de criado as contas o próximo passo é ativar algumas configurações no master.  É preciso ativar o log binário e especificar um ID do servidor. Este passo é feito no aquivo de configuração do mysql o “my.cnf” dentro do diretório “/etc”, para isso insira as seguintes linhas no arquivo:
log-bin = mysql-bin
server-id = 1  #pode ser qualquer identificador
Depois de realizado essa configuração no master é preciso reiniciar o mysql para o servidor ativar as configurações e criar os logs binários. Para verificar se o arquivo de log binário está criado no master execute o seguinte comando “SHOW MASTER STATUS”  a Figura 2 mostra o resultado desse comando:

Figura 2 – SHOW MASTER STATUS

Obs: O exemplo que foi citado acima eu tirei o print da tela depois que eu já tinha feito a configuração e já tinha realizado algumas instruções em sql que gerou esse log binário nessa posição. Suponho que você acabou de instalar o mysql e de configurar o master para replicação quando você digitar esse comando na coluna File irá aparecer mysql-bin.000001 e na coluna position o número 98.
Seguindo no processo de configuração da replicação de dados no mysql, o servidor slave precisa ser configurado pelo arquivo de configuração do mysql (my.cnf), para isso insira as seguintes linhas no arquivo:

log-bin = mysql-bin
server-id = 2
relay-log = mysql-relay-bin
log-slave-updates = 1

Esta configuração segue o mesmo padrão de configuração do servidor master,porém incluímos alguns parâmetros adicionais: relay-log (para especificar a localização e o nome do relay log) e o log-slave-updates (para fazer o slave logar os eventos replicados no seu próprio log binário.
Obs.: não coloque opções de configuração de replicação como master_host e master_port no arquivo my.cnf do slave, pois esta é uma maneira ultrapassada de configurar e ainda pode causar problemas.

Iniciando o servidor slave

                Para finalizar a configuração, o próximo passo é dizer ao slave como conectar-se ao master e começar a replicação. Para isso não utilize o arquivo my.cnf, use a espressão CHANGE MASTER TO. Esta expressão substitui as configurações do my.cnf correspondente e permite que você aponte o slave a um master diferente, sem parar o servidor, segue abaixo a expressão básica para iniciar a replicação:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.56.101',
    -> MASTER_USER='replicador',
    -> MASTER_PASSWORD='replica',
    -> MASTER_LOG_FILE='mysql-bin.000001',
    -> MASTER_LOG_POS=0;

                Esta configuração utilizar o usuário e a senha que foi criado no inicio da configuração. O MASTER_HOST é onde colocamos o ip ou nome do servidor master, neste exemplo utilizamos o ip ‘192168.56.191’. O MASTER_LOG_POS é configurado em 0 porque é o inicio do log.
                Depois de realizada essa configuração, basta só iniciar o slave executando o seguinte comando:
mysql> START SLAVE;
                Pronto! A partir de agora a replicação acaba de ser iniciada. Nessa configuração não é para aparecer erros, para verificar se a replicação está funcionando execute o seguinte comando:
mysql> SHOW SLAVE STATUS\G;
A Figura 3 mostra o resultado do comando digitado acima:

Figura 3 – SHOW SLAVE STATUS\G;

                Note que a replicação está funcionando perfeitamente, portanto a tudo que for feito no servidor master será replicado para o servidor slave.
                Finalizando este artigo espero que todos vocês compreendam a mensagem que eu queria passar qualquer coisa é só entrar em contato comigo. ;)




Filipe Saraiva: ROSCon 2012

17 de Novembro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

ROS (Robot Operating System) é um framework para desenvolvimento de sistemas robóticos que começou a ser desenvolvido pelo prestigiado Stanford Artificial Intelligence Laboratory e em seguida pela Willow Garage.  ROS provê vários pacotes de software para funcionalidades típicas da área, como localização espacial, mapeamento, controle de atuadores e sensores, etc. O framework é baseado em Unix e seus pacotes podem ser aplicados em sistemas operacionais da família, como Linux e OSX. ROS é software livre, distribuído sobre a licença permissiva BSD.

A comunidade em torno do ROS é bastante dinâmica, com muita pesquisa, desenvolvimento de vários pacotes e aplicações as mais distintas possíveis. Abaixo tem dois vídeos com exemplos de robôs que usam ROS: um carro autônomo e um quadcóptero que performa impressionantes manobras:

Marvin – carro autônomo

Quadcóptero

Em 2011, ROS completa 4 anos de desenvolvimento. A comemoração será realizada em maio de 2012, durante a primeira ROSCon – ROS Conference, que acontecerá durante o IEEE International Conference on Robotics and Automation – ICRA 2012 – um dos maiores encontros de pesquisa em robótica do mundo.

A chamada de trabalhos está aberta!

Saiba mais sobre a ROSCon 2012 e as novidades que a comunidade ROS está preparando neste link.



Filipe Saraiva: KDE-Edu no Latinoware

15 de Novembro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

DSC01050Palestra sobre KDE-Edu na Latinoware

Entre os dias 19 e 21 de outubro de 2011, comemoramos os 15 anos do KDE na VIII Conferência Latino-Americana de Software Livre – a Latinoware! Um evento já tradicional na cena da comunidade brasileira, acontece todo ano no centro de convenções da usina de Itaipu, em Foz do Iguaçu, bem na tríplice fronteira Argentina-Brasil-Paraguai.

Durante o evento apresentei a palestra KDE-Edu: a visão KDE dos softwares educacionais, onde apresentei os diversos softwares educativos do KDE para um público prioritariamente formado por trabalhadores da educação e desenvolvedores interessados no tema, além de mostrar como aqueles que tem vontade de contribuir podem participar do projeto KDE-Edu.

DSC01045Palestra sobre KDE-Edu na Latinoware: Demonstração de Softwares

O resultado foi muito positivo, com muita participação dos presentes através de colocações, perguntas, etc. Também achei legal a proximidade com o grupo Software Livre Educacional. Frisei que precisamos ter uma maior interação público dos softwares educativos + professores que usam software educativo + desenvolvedores de softwares educativos. Alguns desenvolvedores brasileiros do KDE-Edu se inscreveram na lista do Software Livre Educacional – vamos ver o que os próximos anos nos reservam em termos de projetos e atividades em conjunto. :)

DSC01030Stand do KDE

Além desta atividade, o KDE contou com um stand com venda de material de divulgação – cuja renda é revestida para o projeto – e várias palestras sobre outros aspectos, como sua nova interface para ambientes móveis e a própria comemoração de aniversário do projeto, com direito a post no site do evento. A programação completa do que aconteceu pode ser vista aqui.

O evento foi muito legal, sinceramente foi um dos melhores eventos de software livre que já participei, bem organizado, com grande apoio e respeito aos participantes, palestrantes e comunidades. Poucos eventos de software livre dão, de fato, apoio àqueles que fazem o evento acontecer, que são as pessoas que desenvolvem software livre, que se doam para comunidades, que enfim, são as razões de existirem eventos nessa área. Ponto para o Latinoware!

Minha única reclamação é que o evento satélite do KDE aconteceu ao mesmo tempo que o de software livre educacional. :( Acabei tendo que ficar com o KDE e perdendo o de educação, que muito me interessa. Mas enfim, apenas algo pontual.

dsc01167

No mais, reencontrar os amigos da comunidade, fazer novos, e tomar aquela cervejinha com eles é sempre recompensador. Também aproveitei e fiz uma visita à Ciudad del Este e fiz uma troca mais do que necessária de computador – finalmente posso utilizar wireless agora! E ver os efeitos gráficos do KDE, que já existem há anos! :D

O próximo Latinoware já tem data definida – de 17 a 19 de outubro de 2012. Espero mais uma vez poder participar do evento.

Quem estiver interessado, aqui estão os slides que utilizei na minha palestra.

<Atualização>Comecei a utilizar um sistema para fazer embbed de apresentações, o Speaker Deck, que utiliza html5, permite download, seguir o palestrante, compartilhar, etc. Depois digam o que vocês acharam, feedbacks serão bem vindos. :) </Atualização>



Lucas M.A.C.: ERCEMAPI 2011

14 de Novembro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda
Nos dias 7 a 12 de Novembro, aconteceu o ERCEMAPI, evento promovido pela SBC (Sociedade Brasileira de Computação).

A primeira edição da ERCEMAPI ocorreu em 2007 e foi sediada em Fortaleza – CE e houve a realização de mini-cursos sobre temas atuais na área de Ciência da Computação. Desde a primeira edição, foi sucesso total! 

Este ano não foi diferente! 

Com uma programação fenomenal, e minicursos excelentes, vários especialistas apresentaram pesquisas e descobertas que abrirão portas para vários novos pensamentos.

Durante o mesmo, além de usufruir da companhia de verdadeiros 'gurus' da tecnologia, ainda conseguimos reencontrar velhos amigos, e fazer muitas novas amizades. Em especial, agradeço a oportunidade de ter conhecido a galera do AUTOBOTS, que é um grupo de Pesquisa e  Desenvolvimento com Arduino, em Parnaíba-PI.

Segue algumas fotos do evento:

  
   
  
  

Espero ansiosamente pela edição de 2012! 

;)




Marvin Lemos: Aptitude vs Apt-Get

7 de Novembro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Being an Ubuntu/Debian user (yes, I use and advocate both), I have fallen in love with the Advanced Packaging Tool, also known as apt. Before Ubuntu, I played in the world of RPM hell, with distros such as Red Hat itself, Mandrake (as it was called back then), and even SuSE. I would find some piece of software, try to install it, only to find that it would choke, saying that it relied on some certain dependencies. I would install the dependencies, only to find conflicting versions with newer software. Hell indeed. So when I discovered the Debian way of installing software, I wondered why no one had mentioned it to me before. It was heaven. This is the way to software, I thought.

So, as any new user to the world of apt learns, apt-get is the way to install software in your system. After working on a Debian-based system that uses apt, such as Ubuntu, you also learn the various tools:

  • apt-get: Installing and removing packages from your system, as well as updating package lists and upgrading the software itself.
  • apt-cache: Search for packages in the package list maintained by apt on the local system
  • dpkg- Used for various administrative tasks to your system, such as reconfiguring Xorg.

Those are probably the first few tools that you learn while on a Debian-based distro, if you plan on getting down and dirty at any length. But the buck doesn’t stop there. You need to memorize, and learn other tools, if you are to further administrate your system. These include:

  • apt-listbugs: See what bugs are listed on a software package before you install it.
  • apt-listchanges: Same thing as apt-listbugs, but for non-bug changes.
  • apt-rdepends: Tool for viewing dependency trees on packages.
  • deborphan- Look for orphaned dependencies on the system left from removing parent packages.
  • debfoster- Helps deborphan identify what package dependencies you no longer need on your system.
  • dselect- Curses interface for viewing, selecting and searching for packages on your system.

There’s even more: apt-cdrom, apt-config, apt-extracttemplates, apt-ftparchive, apt-key, apt-mark and apt-sortpkgs.

If any of you have noticed, that is 16 different tools that you need to become familiar with, if you are to start learning about your Debian-based distro. I don’t know about you, but doesn’t that seem a bit bass-ackwards? I mean, when I’m using OpenSSH, for example, other than scp, all of the functionality of OpenSSH is filed under one tool: ssh. So, wouldn’t you think that all the functionality of apt would be under one tool, namely just ‘apt’?

Further more, apt-get has a big problem that hasn’t really been addressed until only just recently. The problem is in removing packages. You see, apt-get does a great job of indentifying what dependencies need to be installed when you want a certain package, but it fails miserably when you want to remove that package. If dependencies were required, ‘apt-get remove’ will remove your packages, but leave orphaned dependencies on your system. Psychocats.net has a great writeup on this very phenomenon, by simply installing and removing the package kword. The solution? Aptitude.

Now, before I continue, I want to say that yes, I am aware of ‘apt-get autoremove’ finally being able to handle orphaned dependencies. This is a step in the right direction, for sure. However, apt-get, with its many other tools, is an okay way of doing things, if you like to learn 16 different tools. Aptitude, as I will show you, is one tool for them all.

Aptitude is the superior way to install, remove, upgrade, and otherwise administer packages on you system with apt. For one, since it’s inception, aptitude has been solving orphaned dependencies. Second, it has a curses interface that blows the doors off of dselect. Finally, and most importantly, it takes advantage of one tool, doing many many functions. Let’s take a look:

  • aptitude: Running it with no arguments brings up a beautiful interface to search, navigate, install, update and otherwise administer packages.
  • aptitude install: Installing software for your system, installing needed dependencies as well.
  • aptitude remove: Removing packages as well as orphaned dependencies.
  • aptitude purge: Removing packages and orphaned dependencies as well as any configuration files left behind.
  • aptitude search: Search for packages in the local apt package lists.
  • aptitude update: Update the local packages lists.
  • aptitude upgrade: Upgrade any installed packages that have been updated.
  • aptitude clean: Delete any downloaded files necessary for installing the software on your system.
  • aptitude dist-upgrade: Upgrade packages, even if it means uninstalling certain packages.
  • aptitude show: Show details about a package name.
  • aptitude autoclean: Delete only out-of-date packages, but keep current ones.
  • aptitude hold: Fix a package at it’s current version, and don’t update it

Are we starting to see a pattern here? One command with different readable options (no unnecessary flags). And that’s just the tip of the ice berg. It gets better. For example, when searching for a package using aptitude, the results are sorted alphabetically (gee, imagine that) and justified in column width format. Heck, it will even tell you which one you have installed on your system already, instead of haphazardly listing the packages in some random, unreadable format, like apt-cache.

I’ve already mentioned it, but aptitude run with no options will pull up a curses application for you to navigate your apt system. If any of you have used it, you know that it is far superior to dselect- talk about a shoddy application. Aptitude makes searching for packages, updating them, removing them, getting details and other necessary tools, easy. Spend 20 minutes inside the console, and you begin to feel like this is an application done right. Spend 20 minutes in dselect, and you’ll begin to get massive headaches, and feel lost inside Pan’s Labyrinth.

Aptitude is just superior to apt-get in every way, shape, and form. Better dependency handling. Better curses application. Better options. ONE tool. Better stdout formatting. The list goes on and on. I see constantly, on forums, IRC and email, the use of apt-get. We need to better educate our brethren and sisters about the proper use of tools, and show them the enlightened way of aptitude. I’ve been using aptitude since I first learned about it, ad will continue to do so the remainder of my Debian/Ubuntu days.

Fonte: pthree.org



Tags deste artigo: projeto software livre - piauí psl-pi piauí psl-nordeste