logo-color

1.    INTRODUCÃO

Este documento explica como fazer a instalação do serviço Taiga (este modulo é parte da plataforma Taiga).

A plataforma Taiga consiste em três componentes:

taiga-back (backend/api)
taiga-font-dist(fontend)
taiga-events(websockets gateway) (opcional)

Cada parte tem suas próprias dependências. Estes componentes também podem ser instalados em uma único equipamento ou em equipamentos diferentes. Neste tutorial serão instalados todos em um único equipamento.

2.    REQUISITOS PARA INSTALAÇÃO

Este tutorial é para instalação do Taiga em um debian 8.3 (jessie) com o seguintes repositórios e com a lista de pacote atualizada.

Segue sequência para atualizar repositórios e atualizar lista:

# nano /etc/apt/sources.list

Repositórios:

deb http://security.debian.org/ jessie/updates main contrib
deb-src http://security.debian.org/ jessie/updates main contrib

#Official repos
deb http://ftp.us.debian.org/debian jessie main contrib non-free
deb-src http://ftp.us.debian.org/debian jessie main contrib non-free

apt-get update

Se preferir instale o sudo no Debian:

apt-get install sudo

sudo usermod -a -G sudo $USER

A instalação deve ser realizada com um usuário padrão e não como root.

Ip: 127.0.0.1 (ip da sua máquina)
Nome da máquina: localhost (nome da máquina que responde pelo ip informado).
Usuário: taiga

3.    INSTALAÇÃO DO BACKEND

Esta seção é um guia para instalação do backend(api) serviço Taiga

3.1.    Instalar Dependências

O backend é desenvolvido em python (3.4) porém devido a necessidades de algumas bibliotecas é necessário instalar um compilador C.

Execute os comando abaixo como super usuário:
apt-get install -y build-essential binutils-doc autoconf flex bison libjpeg-dev

apt-get install -y libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev

apt-get install -y automake libtool libffi-dev curl git tmux gettext

3.2.    Instalar o banco de dados local

3.2.1.    Banco de dados local (na mesma máquina)

O taiga-back usa como banco o postgresql versão 9.3 ou superior.

Instale o portgresql como super usuário:
apt-get install -y postgresql-9.4 postgresql-contrib-9.4

apt-get install -y postgresql-doc-9.4 postgresql-server-dev-9.4

Configure o usuário inicial do banco de dados:

Crie usando o usuário postgres, Caso tenha o sudo use:

sudo -u postgres createuser taiga
sudo -u postgres createdb taiga -O taiga

Caso não tenha o sudo, como usuário root execute:

#su postgres
$createuser taiga
$createdb taiga -O taiga
$exit

3.3.    Instalar o python

Para instalar o taiga-back é necessário ter o python (3.4) instalado com algumas bibliotecas de terceiros. Para iniciar instale o puthon e o virtualenvwrapper:

apt-get install -y python3 python3-pip python-dev python3-dev python-pip virtualenvwrapper

apt-get install libxml2-dev libxslt-dev

Nota: O virtualenvwrapper ajuda a manter o Sistema limpo em relação a bibliotecas de terceiros instaladas com o gerenciador de pacotes da linguagem, instalando estas em uma área virtual isolada.

Reinicie o shell ou rode o bash novamente, para recarregar o bash com as variáveis e funções do virtualenvwrapper.

O próximo passo é baixar o código do github e instalar as dependências:

Baixando o código:

Use para tal o usuário taiga se tiver como root use #exit:

cd ~
git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout stable

Ainda como usuário taiga crie a virtualenv com o nome taiga:

mkvirtualenv –p /usr/bin/python3.4 taiga

Nota: caso o comando mkvirtualenv não funcione executar os seguintes passos:

No terminal execute:

export WORKON_HOME=”/opt/virtual_env/”
source “/usr/bin/virtualenvwrapper.sh”

Caso necessário acrescentes as linhas acima no ~/.bashrc

Instale as dependencies:

pip install –r requirements.txt (em caso de erro remova as bibliotecas com pip uninstall –r requirements.txt e reinstale).

Nota: Caso algo der errado reexecute os dois últimos comandos.

Popule o banco de dados com os dados inicias:

python manage.py migrate –noinput
python manage.py loaddata initial_user
python manage.py loaddata initial_project_templates
python manage.py loaddata initial_role
python manage.py compilemessages
python manage.py collectstatic –noinput

Isto irá criar um novo usuário com o nome admin e senha 123123.

Caso necessário instale os módulos solicitados exemplo:

pip install cssselect e pip install html5lib

Para dados de exemplo, execute o seguinte comando. Este comando irá popular o banco de dados com projetos e dados de exemplo como demonstração:

python manage.py sample_data

Para finalizar a Configuração do taiga-back, devemos criar a configuração inicial para os repositórios de arquivos static/media e para envio de email:

Crie o arquivo e deixe com os dados a seguir:

nano ~/taiga-back/settings/local.py

Banco de dados na Máquina:

from .common import *

MEDIA_URL = “http://localhost/media/”
STATIC_URL = “http://localhost/static/”
ADMIN_MEDIA_PREFIX = “http://localhost/static/admin/”
SITES[“front”][“scheme”] = “http”
SITES[“front”][“domain”] = “localhost”

SECRET_KEY = “suaSenhaAqui”
DEBUG = False
TEMPLATE_DEBUG = False
PUBLIC_REGISTER_ENABLED = True

DEFAULT_FROM_EMAIL = “no-reply@example.com”
SERVER_EMAIL = DEFAULT_FROM_EMAIL

# Uncomment and populate with proper connection parameters
# for enable email sending. EMAIL_HOST_USER should end by @domain.tld
#EMAIL_BACKEND = “django.core.mail.backends.smtp.EmailBackend”
#EMAIL_USE_TLS = False
#EMAIL_HOST = “localhost”
#EMAIL_HOST_USER = “”
#EMAIL_HOST_PASSWORD = “”
#EMAIL_PORT = 25

# Uncomment and populate with proper connection parameters
# for enable github login/singin.
#GITHUB_API_CLIENT_ID = “yourgithubclientid”
#GITHUB_API_CLIENT_SECRET = “yourgithubclientsecret”

Banco de dados Remoto:

from .common import *

MEDIA_URL = “http://localhost/media/”
STATIC_URL = “http://localhost/static/”
ADMIN_MEDIA_PREFIX = “http://localhost/static/admin/”
SITES[“front”][“scheme”] = “http”
SITES[“front”][“domain”] = “localhost”

SECRET_KEY = “suaSenhaAqui”
DEBUG = False
TEMPLATE_DEBUG = False
PUBLIC_REGISTER_ENABLED = True

DATABASES = {
“default”: {
“ENGINE”: “transaction_hooks.backends.postgresql_psycopg2”,
“NAME”: “taiga”,
‘USER’: ‘taiga’,
‘PASSWORD’: ‘SuaSenha’,
‘HOST’: ‘localhost’,
‘PORT’: ‘5432’,
}
}

DEFAULT_FROM_EMAIL = “no-reply@example.com”
SERVER_EMAIL = DEFAULT_FROM_EMAIL

# Uncomment and populate with proper connection parameters
# for enable email sending. EMAIL_HOST_USER should end by @domain.tld
#EMAIL_BACKEND = “django.core.mail.backends.smtp.EmailBackend”
#EMAIL_USE_TLS = False
#EMAIL_HOST = “localhost”
#EMAIL_HOST_USER = “”
#EMAIL_HOST_PASSWORD = “”
#EMAIL_PORT = 25

# Uncomment and populate with proper connection parameters
# for enable github login/singin.
#GITHUB_API_CLIENT_ID = “yourgithubclientid”
#GITHUB_API_CLIENT_SECRET = “yourgithubclientsecret”

3.4.    VERIFICAR INSTALAÇÃO

Para verificar se a instalação do backend ocorreu com sucesso inicie em modo de desenvolvimento:

workon taiga
python manage.py runserver

Faça o testes acessando o endereço http://localhost:8000/api/v1/ deverá retornar um json representando com a lista de endpoints.

Nota: Este estágio do backend já foi instalado com sucesso. Porém, a instalação ainda não está completa. Aplicações em produção com o python precisam roda em um servidor de aplicação. Os detalhes serão explicados no final deste documento.

4.    INSTALAÇÃO DO FRONTEND

Baixaremos o código do github:
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
cd taiga-front-dist
git checkout stable

Agora podemos configurar copiando ~/taiga-front-dist/dist/conf.example.json para  ~/taiga-front-dist/dist/conf.json

cp ~/taiga-front-dist/dist/conf.example.json  ~/taiga-front-dist/dist/conf.json

nano ~/taiga-front-dist/dist/conf.json

Copie e edite as configurações iniciais:

{
“api”: “http://localhost:8000/api/v1/”,
“eventsUrl”: null,
“eventsMaxMissedHeartbeats”: 5,
“eventsHeartbeatIntervalTime”: 60000,
“debug”: true,
“debugInfo”: false,
“defaultLanguage”: “pt-br”,
“themes”: [“taiga”],
“defaultTheme”: “taiga”,
“publicRegisterEnabled”: true,
“feedbackEnabled”: true,
“privacyPolicyUrl”: null,
“termsOfServiceUrl”: null,
“maxUploadFileSize”: null,
“contribPlugins”: []
}

Agora temos o taiga-front-dist baixado e configurado. O próximo passo é expor o código (do diretório dist) em um servidor web. Usaremos o nginx.

5.    EXPONDO SUA APLICAÇÃO EM UM SERVIDOR WEB

Após a instalação e configuração do taiga-back e do taiga-front-dist devemos configurar o servidor para expor nossas aplicações.

O taiga-back deve roda e ser monitorado por um gerenciador de processos. Para isso usaremos o gunicorn e o circus. respectivamente.

5.1.    Circus e Gunicorn

O Circus é um gerenciador de processos desenvolvido pela Mozilla que usaremos para executar o gunicorn. Circus não apenas executa processo, também é útil para monitora-los, coletar logs, reiniciar processos se algo der errado e iniciar processo com o sistema operacional.

Instalar circus

#pip2 install circus

Ou sudo pip2 install circus

Criar a pasta para configuração

mkdir –p ~/conf/

Adicione as configurações iniciar no arquivo:

nano ~/conf/circus.ini

[circus]
check_delay = 5
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
statsd = true

[watcher:taiga]
working_dir = /home/taiga/taiga-back
cmd = gunicorn
args = -w 3 -t 60 –pythonpath=. -b 127.0.0.1:8001 taiga.wsgi
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/gunicorn.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 4
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/gunicorn.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 4

[env:taiga]
PATH = /home/taiga/.virtualenvs/taiga/bin:$PATH
TERM=rxvt-256color
SHELL=/bin/bash
USER=taiga
LANG=en_US.UTF-8
HOME=/home/taiga
PYTHONPATH=/home/taiga/.virtualenvs/taiga/lib/python3.4/site-packages

Crie a pasta para receber os logs do Taiga:

mkdir –p ~/logs

Configurar o Circus para iniciar com o sistema operacional em

nano /etc/init/circus.conf

start on filesystem and net-device-up IFACE=lo
stop on runlevel [016]

respawn
exec /usr/local/bin/circusd /home/taiga/conf/circus.ini

Crie o circus service:

nano /etc/systemd/system/circus.service

[Unit]
Description=Circus process manager
After=syslog.target network.target nss-lookup.target

[Service]
Type=simple
ExecReload=/usr/local/bin/circusctl reload
ExecStart=/usr/local/bin/circusd /home/taiga/conf/circus.ini
Restart=always
RestartSec=5

[Install]
WantedBy=default.target

Finalizando execute os comandos:

systemctl daemon-reload

systemctl enable circus

service circus start

5.2.    Nginx

Nginx é um servidor web para páginas estáticas que é utilizado para prover o taiga-front-dist e enviar proxy requests para o taiga-back.

Para instalar o nginx execute o comando:

apt-get install –y nginx

Configurando o nginx

Adicionando as configurações especificas para taiga-fron-dist e taiga-back:

server {
listen 80 default_server;
listen 8000
server_name _;

large_client_header_buffers 4 32k;
client_max_body_size 50M;
charset utf-8;

access_log /home/taiga/logs/nginx.access.log;
error_log /home/taiga/logs/nginx.error.log;

# Frontend
location / {
root /home/taiga/taiga-front-dist/dist/;
try_files $uri $uri/ /index.html;
}

# Backend
location /api {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001/api;
proxy_redirect off;
}

# Django admin access (/admin/)
location /admin {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001$request_uri;
proxy_redirect off;
}

# Static files
location /static {
alias /home/taiga/taiga-back/static;
}

# Media files
location /media {
alias /home/taiga/taiga-back/media;
}
}

Desabilite o site padrão do nginx(virtualhost).

rm /etc/nginx/sites-enabled/default

Habilite a configuração do taiga.

ln -s /etc/nginx/sites-available/taiga /etc/nginx/sites-enabled/taiga

reinicie o servidor nginx

systemctl reload nginx

6.    OPCIONAIS

6.1.    Funcionalidades Assíncronas

O funcionamento padrão do Taiga é realizar todas as tarefas de maneira síncrona. Para conseguir tal comportamento e necessário instalar e configurar o as dependências do serviço celery.

Instale rabbitmq-server e redis-server:

sudo apt-get install -y rabbitmq-server redis-server

Para rodar o celery com o taiga é necessário acrescentar as linhas abaixo no arquivo local.py:

nano ~/taiga-back/setting/local.py

from .celery import *

BROKER_URL = ‘amqp://guest:guest@localhost:5672//’
CELERY_RESULT_BACKEND = ‘redis://localhost:6379/0’
CELERY_ENABLED = True

E as seguintes linhas no arquivo ~/conf/circus.ini

nano ~/conf/circus.ini

[watcher:taiga-celery]
working_dir = /home/taiga/taiga-back
cmd = celery
args = -A taiga worker -c 4
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/celery.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 4
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/celery.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 4

[env:taiga-celery]
PATH = /home/taiga/.virtualenvs/taiga/bin:$PATH
TERM=rxvt-256color
SHELL=/bin/bash
USER=taiga
LANG=en_US.UTF-8
HOME=/home/taiga
PYTHONPATH=/home/taiga/.virtualenvs/taiga/lib/python3.4/site-packages

Como usuário root rode os comando abaixo para carregar as novas configurações e iniciar o taiga-celery:

circusctl reloadconfig
circusctl restart taiga
circusctl start taiga-celery

6.2.    EVENTOS

Taiga-events é o websocket server do taiga, ele permite que o taiga-font mostre alterações em tempo rela no backlog, quadro de tarefas, kanban e na lista de casos.

O taiga-events precisa do rabbitmq:

apt-get install rabbitmq-server

Com o root rode os comandos:

rabbitmqctl add_user taiga SenhaDoTaiga
rabbitmqctl add_vhost taiga
rabbitmqctl set_permissions -p taiga taiga “.*” “.*” “.*”

Acrescente as linhas abaixo no arquivo local.py:

nano ~/taiga-back/setting/loca.py

EVENTS_PUSH_BACKEND = “taiga.events.backends.rabbitmq.EventsPushBackend”
EVENTS_PUSH_BACKEND_OPTIONS = {“url”: “amqp://taiga:SuaSenha@localhost:5672/taiga”}

Baixe o código do taiga-events do github:

cd ~
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events

Instale as dependências necessárias para javascript:

apt-get install -y nodejs nodejs-legacy npm
npm install
npm install -g coffee-script

Edite o conf.json do taiga-events e acrescente as linhas abaixo:

cd ~/taiga-events
cp conf.exemplo.json conf.json
nano ~/taiga-events/conf.json

{
“url”: “amqp://taiga:SuaSenha@localhost:5672/taiga”,
“secret”: “SuaSenha”,
“webSocketServer”: {
“port”: 8888
}
}

Adicione o taiga-events nas configurações no circus:

nano ~/conf/circus.ini

[watcher:taiga-events]
working_dir = /home/taiga/taiga-events
cmd = /usr/local/bin/coffee
args = index.coffee
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/taigaevents.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 12
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/taigaevents.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 12

Carregue as configurações do circus e inicie o serviço taiga-events:

Como usuário root;

circusctl reloadconfig
circusctl restart taiga
circusctl restart taiga-celery
circusctl start taiga-events

Adicione as configurações abaixo para o taiga-events no nginx:

nano /etc/nginx/sites-avaliable/taiga

server {

location /events {
proxy_pass http://127.0.0.1:8888/events;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}

}

Reinicie o servidor nginx:

service nginx reload

6.3.    CONFIGURAR E-MAIL

A configuração do e-mail deve ser feita no arquivo local.py:

nano ~/taiga-back/settings/local.py

descomente ao acrescente as linhas abaixo:

EMAIL SETTINGS EXAMPLE#EMAIL_BACKEND = ‘django.core.mail.backends.smtp.EmailBackend’
EMAIL_USE_TLS = False
EMAIL_HOST = ‘localhost’
EMAIL_PORT = 25
EMAIL_HOST_USER = ‘seuUsuario’
EMAIL_HOST_PASSWORD = ‘suaSenha’
DEFAULT_FROM_EMAIL = john@doe.com

Reinicie o servidor nginx:

service nginx reload

6.4.    AUTENTICAÇÃO COM LDAP

Para realizar configuração do LDAP no taiga é utilizado o plugin ldap Auth.

Instalação:

No virtualenv do taiga-back instale o pacote com o pip:

pip install  taiga-contrib-ldap-auth

Configure o local.py:

INSTALLED_APPS += [“taiga_contrib_ldap_auth”]

LDAP_SERVER = ‘ldap://ldap.example.com’
LDAP_PORT = 389

# Full DN of the service account use to connect to LDAP server and search for login user’s account entry
# If LDAP_BIND_DN is not specified, or is blank, then an anonymous bind is       attempated
LDAP_BIND_DN = ‘CN=SVC Account,OU=Service Accounts,OU=Servers,DC=example,DC=com’
LDAP_BIND_PASSWORD = ‘replace_me’   # eg.
# Starting point within LDAP structure to search for login user
LDAP_SEARCH_BASE = ‘OU=DevTeam,DC=example,DC=net’
# LDAP property used for searching, ie. login username needs to match value in sAMAccountName property in LDAP
LDAP_SEARCH_PROPERTY = ‘sAMAccountName’
LDAP_SEARCH_SUFFIX = None # ‘@example.com’

# Names of LDAP properties on user account to get email and full name
LDAP_EMAIL_PROPERTY = ‘mail’
LDAP_FULL_NAME_PROPERTY = ‘name’

No taiga-front altere dist/js/conf.json acrescente a linha:


“loginFormType”: “ldap”,

Reinicie o servidor nginx:

service nginx reload

Realizada configuração do seu ambiente Taiga.

7.    ATUALIZAR TAIGA PARA ÚLTIMA VERSÃO ESTÁVEL

Frontend
cd ~/taiga-front-dist
git checkout stable
git pull

Backend

Como usuário “taiga” ou outro usado na instalação, não execute como root.

cd ~/taiga-back
git checkout stable
workon taiga
git pull
pip install –upgrade -r requirements.txt
python manage.py migrate –noinput
python manage.py compilemessages
python manage.py collectstatic –noinput

circusctl reload taiga

Caso use o celery:

circusctl reload taiga

Segui tutorial disponível em:

https://taigaio.github.io/taiga-doc/dist/upgrades.html

8.    PERGUNTAS E RESPOSTAS (FAQS)

Perguntas frequentes disponível em:

https://taigaio.github.io/taiga-doc/dist/setup-faqs.html#faq-maintain-update

Este tutorial é baseado no disponível em:

https://taigaio.github.io/taiga-doc/dist/setup-production.html

Criado e Testado por Thiago Santos de Amorim

Até que em fim encontrei uma distribuição linux que roda muito bem, completamente estável no notebook 2 em 1 hp pavilion x360.

A distribuição é o OpenSuse LEAP 42.1, vamos direto ao ponto, baixe a iso e coloque em um pendrive maior que 4 gigas.

Link https://pt.opensuse.org

Para os que estão acostumados com instalação do linux, não será tão diferente, para os que estão com ubuntu instalado em dual boot será mais fácil ainda, porém muito cuidado nesta hora!

Realize o particionamento técnico e marque para formatação a partição que está o ubuntu, inclusive o boot. Instalado o sistema, verá que não temos problemas com inicialização como tínhamos no ubuntu, além disso, estou mudando porque o ubuntu começou a apresentar o seguinte problema; ao hibernar o teclado tava parando de funcionar.

Por fim, apenas usar o acelerômetro para rotação automática da tela crie um arquivo com o seguinte conteúdo:

#!/bin/bash

old=”0-normal”
orientacao=”normal”
rotation=”NONE”
xrot=”normal”

while true; do
if [ -e /sys/devices/platform/lis3lv02d/position ]; then
new=`cat /sys/devices/platform/lis3lv02d/position`
if [ $new == “0” ]; then
rotation=”NONE”
xrot=”normal”
else
POS=`cat /sys/devices/platform/lis3lv02d/position | awk -F “(” ‘{print$2}’`
X=`echo “$POS” | awk -F “,” ‘{print$1}’`
Y=`echo “$POS” | awk -F “,” ‘{print$2}’`
Z=`echo “$POS” | awk -F “,” ‘{print$3}’ | awk -F “)” ‘{print$1}’`
# echo “<“$X,$Y,$Z”>”

if [[ $Y -le -500 ]]; then
rotation=”NONE”
xrot=”normal”
elif [[ $Y -ge 500 ]]
then
rotation=”HALF”
xrot=”inverted”
elif [[ $X -le -350 && $X -ge -950 ]]
then
rotation=”CCW”
xrot=”left”
elif [[ $X -ge 350 && $X -le 950 ]]
then
rotation=”CW”
xrot=”right”
fi
fi

# echo $rotation, $xrot

new=$new”-“$xrot

if [[ $new != $old && $orientacao != $xrot ]]
then
xrandr -o $xrot
sleep 1s

old=$new
orientacao=$xrot
fi
fi
sleep 0.5s
done

 

copie este arquivo para /usr/bin

cp auto-rotacionar /usr/bin

em seguida acesse a pasta autostart:

cd .config/autostart

e crie o arquivo: auto-rotacionar.desktop

nano auto-rotacionar.desktop

informações dentro do arquivo

[Desktop Entry]
Name=auto-rotacionar
GenericName=auto-rotacionar
Comment=Rotacionar tela automaticamente
Exec=/usr/bin/auto-rotacionar
Terminal=False
Type=Application
X-GNOME-Autostart-enabled=true

uma outra coisa interessante é instalar os software através
do site do opensuse e 1clikinstall

instalei o steam para jogar e rodou muito jogos bacana.

desculpem o rascunho, fiquei ansioso para compartilhar.

qualquer dúvida mandem comentário que vamos melhorando o post. 



HP pavilion x360

HP pavilion x360

Desde 2004, estava usando notebooks da ACER com dual boot, windows que vinha na máquina e linux. Cheguei a usar três equipamentos diferentes neste período, tive apenas problema com um deles que era a instalação do adaptador WIFI da broadcom, os demais hardwares eram plug and play.

Depois de todo este tempo resolvi mudar para um notebook com um bom custo beneficio, acabei comprando um hp pavilion x360, imagem ao lado.  As primeiras impressões são boas, consegui usar o GNU/Linux neste equipamento de forma satisfatória, com tudo funcionando, como touch e acelerômetro, já que este note é 2 em 1, ou seja, pode ser usado como notebook e como tablet.

Abaixo estão as dicas de instalação e configuração.

As distribuições que mais se adaptaram e que a instalação não é um pouco problemática forma; Fedora, Ubuntu e OpenSuse. Porém a que ficou melhor na minha opinião principalmente pela facilidade na instalação e configuração posterior foi a Ubuntu.

A versão 15.04 lançada em abril de 2015 está com um suporte bem interessante quanto ao touch, o multitouch está funcionando nesta versão, porém, por ser uma versão de aprimoramento  e com suporte de apenas 9  meses, prefiro usar versões mais estáveis, sendo assim uso a versão LTS 14.04 que é estável e com suporte de 5 anos (entenda aqui suporte como as correções enviadas, atualizações).

Para realizar a instalação baixe no site do Ubuntu uma das duas versões, recomendo a 14.04 LTS

http://ubuntu.com

Para instalação em dual boot veja o final do artigo.

Resolver problema de falha na inicialização e no desligamento (não desliga).

Referência: http://askubuntu.com/questions/580666/ubuntu-14-10-startup-shutdown-issues-w-hp-pavilion-x360

Para o desligamento funcione  é necessário executar o seguinte:

No terminal digitar os comandos (recomendado):

echo "blacklist dw_dmac" | sudo tee -a /etc/modprobe.d/blacklist.conf
echo "blacklist dw_dmac_core" | sudo tee -a /etc/modprobe.d/blacklist.conf

ou altere o arquivo blacklist.conf

sudo gedit /etc/modprobe.d/blacklist.conf

no final deste documento acrescente as seguintes linhas:

blacklist dw_dmac

blacklist dw_dmac_core

Rotacionar sistema automaticamente com o acelerômetro (ainda testando):

Referências: http://ubuntuforums.org/showthread.php?t=996830&s=57a708bbf2fc5e4f850f64c253392934&p=6274392#post6274392

http://doc.opensuse.org/documentation/html/openSUSE_114/opensuse-reference/cha.tablet.html#sec.tablet.trouble

http://www.techradar.com/news/software/operating-systems/install-linux-on-your-x86-tablet-five-distros-to-choose-from-1162825/5

Acelerômetro

https://blog.jam.net.ve/2010/11/21/acelerometro-y-ubuntu/

Meus scripts (crie um arquivo na sua pasta local do tipo sh Ex: rotacionar.sh) e coloque o conteúdo a seguir neste arquivo, salve e execute no terminal:

#!/bin/bash

old=0
while true; do
    if [[ -e /sys/devices/platform/lis3lv02d/position ]]; then
        new=`cat /sys/devices/platform/lis3lv02d/position | awk -F , '{print$1}' | awk -F "(" '{print$2}'`
        if [[ $new != $old ]]; then
            if [[ $new -ge 350 && $new -le 950 ]]; then
                ##echo "rotação para Direita."
                xrandr -o right
                ##xinput --list
            elif [[ $new -le -350 && $new -ge -950 ]]; then
                ##echo "rotação para esquerda."
                xrandr -o left
                ##xinput --list
            elif [[ $new -le -50 && $new -ge -349 ]]; then
                ##echo "rotação normal paisagem."
                xrandr -o normal
                ##xinput --list
            elif [[ $new -ge 50 && $new -le 349 ]]; then
                ##echo "rotação normal paisagem."
                xrandr -o normal
                ##xinput --list
            #elif [[ $new -le -350 && $new -ge -450 ]]; then
                ##echo "rotação invertida paisagem."
            #    xrandr -o inverted
                       
            fi
        fi
        old=$new
        # sleep 1s
    fi
done

Altere as permissões do arquivo para poder executar:

chmod u+x rotacionar.sh  ou chmod 777 rotacionar.sh

Para executar no terminal digite:

./rotacionar.sh

Adicionar script na inicialização do gnome:

abra um terminal (você sabe o que é né?) e digite:

 

PS. Se não sabe o que um terminal, tecle ‘Alt + F2’ e rode o que mencionei.

Instalando em dual boot com windows 8.1.

A pedido do Diego via comentários, indicarei como realizar a instalação em dual boot com o windows.

Primeiro instale o windows, (eu prefiro deixar a versão que vem no equipamento lá no canto dela). então, partindo do principio de que o windows já está instalado no equipamento vamos executar o seguinte:

Com o UEFI ativo, inicie a instalação, no particionamento entre o modo personalizado e crie as seguintes partições:

Entre no modo LiveCD (Experimentar), abra pelo terminal o gparted, diminua a partição do windows e crie as partições abaixo:

1. / (partição raiz) do tipo EXT4

2. /boot (partição de boot) do tipo EXT4 500mb é o suficiente;

3. SWAP com o dobro da memória ram, do tipo SWAP;

4. Opcional: Crie a partição /home se achar interessante

Criadas as partições feche o gparted e realize a instalação.

Iniciando pelo GRUB – Iniciar Ubuntu automaticamente sem o f9

No final reinicie a máquina e mantenha a tecla F9 pressionada para iniciara gerenciador de boot, deve aparecer o ubuntu na tela, selecione esta opção e entre.

boot_manager

outra opção é entrar em um liveCD, conectar a internet e executar os comando abaixo.

Instale o boot- repair para instalar o gerenciador de boot no UEFI, no terminal digite:

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update

em seguinda o comando:

sudo apt-get install -y boot-repair && boot-repair &

Escolha a opção Recommend Repair como na imagem abaixo:

1335260967

Pronto! é só reiniciar e ver se está funcionando.

Notei que as vezes com atualização do kernel o sistema pode não iniciar, é só executar o comando:

sudo boot-repair

Dual boot UEFI

pelo ubuntu

http://www.vivaolinux.com.br/dica/Boot-Repair-Como-recuperar-o-GRUB-facilmente

http://sitjunior.com.br/blog/solucao-final-para-dual-boot-uefi-com-windows-8-e-ubuntu/

Revista Espírito Livre - Ed. #061 - Abril 2014

Revista Espírito Livre – Ed. #061 – Abril 2014

Revista Espírito Livre - Ed. n #061
Revista Espírito Livre - Ed. n #061

O mês de Abril foi bastante especial. Especial pois tivemos a oportunidade de participar de uma iniciativa bastante ousada e ao mesmo tempo promissora. Mas como assim? Vamos lá: você consegue imaginar um FISL fora de Porto Alegre? Pois é nesta direção que caminhou o Pré FISL Amazônia. Mas antes que alguns pensem que o evento mudará de local, acalmem os ânimos. A proposta é fazer um evento irmão. Isso mesmo! Um evento que se comunicará com a edição do sul do nosso grandioso Brasil. E foi com essa premissa que aconteceu nos dias 10 e 11 de Abril em Belém/PA o primeiro passo para realização desta ousada tarefa.

O evento aconteceu, em dois dias, dentro de uma unidade do Instituto Federal e contou com a participação de um grande número de pessoas nas mais variadas atividades. Houve apresentações culturais, debates sobre temas importantes, encontro com os amigos distantes, roda de conversa e tudo que um bom evento deve oferecer.

A Rede Espírito Livre esteve presente durante o evento, traçando estratégias para as regiões Norte e Nordeste. Ministramos uma palestra e um minicurso sobre Produção Editorial com Software Livre, onde demonstrou-se a produção da Revista Espírito Livre. Conforme a palestra foi sendo apresentada, dúvidas dos participantes iam surgindo e eram prontamente solucionadas.

Várias atividades ocorreram simultaneamente e como sempre, não deu pra participar de tudo. O que é uma pena, já que este é um bom momento para se reciclar e aprender novas coisas.

Aos realizadores do Pre FISL Amazônia, deixamos o nosso muitíssimo obrigado pelo convite e em especial a Antônio Carlos e ao Davis Victor. Vocês mostraram que é possível a realização de um evento de qualidade no Norte. Que venham novos projetos e novos FISLs. A comunidade de Software Livre agradece!

Estamos de volta com as postagens, espero que sejam frequentes, tanto quando nos tempos que ainda estava no CEULP-ULBRA. O primeiro projeto será subir à rede todo conteúdo acumulado nos anos que passei fazendo o curso de sistemas de informação, desde as disciplinas de introdução até as disciplinas finas e no final serão postados os trabalhos realizados no estágio supervisionado e no trabalho de conclusão de curso.

Como dito no meu discurso de colação de grau, foram anos não apenas de acumulo de conhecimento mas que também contribuíram para o meu crescimento como pessoa de um modo geral, por isso vou comentar tanto as partes técnicas, o que foi apreendido na disciplina quanto a parte pessoal, um tanto subjetiva, por isso podem dar um desconto para esta parte quando encontrar historias e estorias no meio das postagens.

Sem mais delongas vamos para o conteúdo das disciplinas, vou tentar comentar a ementa da disciplina e seguir a ordem da tabela abaixo que retirei da matriz de sistemas de informação de 2006 quando iniciei o curso, existe uma equivalência de disciplinas com relação a matriz que está sendo utilizada atualmente, então recomendo verificar a disciplina por conteúdo não pelo titulo da postagem que será o nome da disciplina da minha época.

 

DISCIPLINA

Fundamentos de Sistemas de Informação *
Conceitos Básicos da Computação *
Algoritmos e Programação I *
Algoritmos e Programação I *
Fundamentos de Sistemas de Informação *
Conceitos Básicos da Computação *
Matemática I
Cultura Religiosa
Estatística I
Lógica de Predicados
Algoritmos e Programação II
Arquitetura de Equipamentos para Informática
Metodologia Científica
Estruturas de Dados I
Matemática Discreta
Linguagem de Programação Orientada a Objetos I
Engenharia de Software I
Banco de Dados I
Linguagem de Programação Comercial
Análise Organizacional
Banco de Dados II
Estruturas de Dados II
Engenharia de Software II

DISCIPLINA

Gerência de Projetos
Sistemas de Informação I
Paradigmas de Linguagens de Programação
Interface Homem-Computador
Modelagem de Sistemas de Informação
Redes de Computadores I
Sistemas Operacionais
Sistemas de Informação II
Inteligência Artificial I
Desenvolvimento de Sistemas de Informação
Estágio Supervisionado em Sistemas de Informação
Optativa I
Segurança de Sistemas
Redes de Computadores II
Direito e Legislação em Informática
Empreendedorismo e Gestão
Trabalho de Conclusão de Curso em Sistemas de Informação I
Informática e Sociedade
Tópicos Avançados em Informática (redes 3)
Qualidade e Auditoria de Software
Psicologia nas Organizações
Optativa II
Trabalho de Conclusão de Curso em Sistemas de Informação II

 

Revista Espírito Livre - Ed. #026 - Maio 2011

Revista Espírito Livre - Ed. n #026 - Maio 2011

 

Crowdsourcing é uma nomenclatura recente para algo que todos conhecemos bem. A construção colaborativa através da rede já vem sendo feita a muito tempo. Vários projetos de código aberto foram produzidos e se tornaram o que são justamente por causa da construção coletiva de vários entes, vários nós, pontos interligados em uma grande teia. E o que antes era um passatempo nerd, se tornou o motor de muitos projetos.

Alguém aí já pensou em como seria as nossas vidas sem a construção coletiva, responsável por exemplo, pela criação, manutenção e crescimento da Wikipédia? E as mobilizações que hoje são feitas através das redes sociais com os mais diversos propósitos? Projetos são criados, mantidos, remunerados e atingem maturidade através de vários pares de mãos, dezenas de dedos, milhares de IPs, espalhados mundo a fora. Compartilhar e constribuir com o outro são valores que aprendemos desde criança. “Reparta o seu lanche com o seu coleguinha”, ou “divida o seu biscoito com seu amigo”; você certamente já ouviu estas frases proferidas por entes queridos, pessoas que se importavam com você. Uma pena que tais valores, com o passar do tempo foram sendo esquecidos. Em uma sociedade como a nossa, o inteligente não é quem compartilha, mas sim aquele que esconde. Convido-o a reflitir os novos valores da sociedade…

Onde erramos?! Erramos? Ou tudo não passa de uma evolução (ou regressão)? Devaneios que esta edição apresenta em diversos artigos, ora técnicos, hora reflexivos e que nos leva a pensar, tentar entender o que hoje vivemos. E para nos ajudar a entender um pouco mais sobre este tema conversamos com Carl Esposti, criador do site Crowsdsourcing.org. Esposti clarifica o termo, com exemplos reais e palpáveis. Outros colaboradores como Alexandre Oliva, João Carlos Caribé, Ana Brambilla, entre outros, igualmente tratam o tema, com rigor e foco. Além do tema em questão, contribuições diversas e que merecem destaque! Várias matérias sobre programação, internet, eventos. Redes, segurança e vários outros temas também estão disponíveis.

A partir desta edição a Revista Espírito Livre também incluirá uma seção exclusiva sobre LibreOffice, a suíte de escritório líder e que certamente você utiliza. Se ainda não a instalou, não perca tempo. Existem versões para GNU/Linux e outros sistemas operacionais disponíveis no mercado. Diversas distribuições GNU/Linux, como Ubuntu, Fedora, OpenSuSE, Linux Mint, Debian e tantas outras já trazem o LibreOffice ou em suas mídias de instalação ou repositórios, bem como várias empresas que também sinalizaram positivamente quanto a suas migrações para o LibreOffice, logo, nada mais natural acompanharmos tal ascensão.

O sorteio da caneca personalizada da série Warning Zone ainda está valendo. Então se você gosta de desenhar, não perca tempo e nos envie sua proposta. Quem sabe você ganha?!

A partir da última semana de Abril, tivemos mais uma vitória: agora a Revista Espírito Livre conta com um servidor dedicado, cedido pelos parceiros da HostGator. O aumento no número de visitas e downloads acabou nos levando a este caminho, o que me alegra muito. E além de estar de casa nova, o site também conta com mais um jornalista a frente das notícias. José Moutinho, está empenhado em turbinar o site da revista com notícias recentes e relevantes. E se você quiser se juntar ao time e contribuir, não perca tempo!

Partimos rumo ao terceiro ano, com a ajuda de muitos colaboradores dedicados, parceiros que nos ajudam de alguma forma e dos leitores que sempre estão nos acompanhando. Um abraço a todos que ajudam a construir esta incrível publicação.

Quanto mais gente resistir,
mais gente será Livre, e
mais gente será livre para ser Livre.

Para teu próprio bem e
em solidariedade a todos,
escolhe a liberdade.

Sê Livre!

FSF (Fundação Software Livre América Latina)
http://www.fsfla.org/svnwiki/selibre/

O texto acima me faz refletir sobre a comodidade e a prisão da convicção que a maioria das pessoas se encontram. Comodidade pois o medo da mudança as mantêm estagnadas, e na maioria das vezes convicções muitas vezes não fundamentadas ajudam a mantê-las   em seu estado de inércia.

Porém, muitos entendem que tudo nos afeta e tudo pode ser alterado com os nossos atos. Os abolicionistas, muitos brancos e em alguns casos, boa condição financeira, poderiam seguir seus antepassados e até mesmo a maioria absoluta dos seus contemporâneos, mas preferiram lutar pela liberdade.

Esta luta por liberdade, é importante que esteja sempre presente na mente de todos os indivíduos e que as pessoas percebam que a coletividade, mesmo que pequena pode fazer grandes transformações e nos manter livres no futuro. É importante frisar que quando digo coletividade não estou defendendo grupos isolados com convicções contrárias a liberdade de alguma forma.

Muitos devem ter percebido que a frase utilizada no início deste texto foi retirada do site da Fundação de Software Livre América Latina, que trabalham para assegurar liberdades na utilização dos softwares. Agora o que tem a ver o texto introdutório com o que escrevi até aqui? talvez você esteja se perguntando isso, então explico.

O uso do software proprietário nos tornou reféns dos programas de computador no sentido de que tal licença pode dizer o que você pode ou não fazer com um software que você pagou por ele. é certo que a maioria das pessoas não querem e nem irão desenvolver seu próprios devices drivers, ou alterar os programas que adquirem de alguma forma, mas ,  vetar esta possibilidade é algo que nem se quer deveria ser considerado, e esta é uma liberdade que nos foi tirada porém como a maioria das pessoas não sabem o que é um programa de computador não se acham prejudicadas.

Está bem até aqui, mas, e se alguém resolver fazer um programa personalizado para seu microondas com atualizações a cada 2 meses por um valor que você não gostaria de pagar? isso soa estranho? dê uma olhada aqui. agora e se você pensar o seguinte, seu neto ou bisneto sabe programar e pode arrumar para você seu microondas sua geladeira ou seu carro, porém ele não tem como pois você comprou o objeto, mas o programa que veio nele não é seu, então, ou você compra outro programa ou manda a empresa modificar.

Podem até achar que eu estou exagerado , mas é esta a verdade, ou lutamos para manter as liberdades mínimas hoje, ou no futuro que tivermos software em todo lugar na será realmente nosso.

Para finalizar, reapresento o poema de Bertold Brecht, que acredito ter muito em comum com o que eu estou pensando ao escrever este texto. Não deixem nossa liberdade ser retiradas por causa de comodismos.

Bertold Brecht

Primeiro levaram os negros
Mas não me importei com isso
Eu não era negro
Em seguida levaram alguns operários
Mas não me importei com isso
Eu também não era operárioDepois prenderam os miseráveis
Mas não me importei com isso
Porque eu não sou miserável 

Depois agarraram uns desempregados
Mas como tenho meu emprego
Também não me importei

Agora estão me levando
Mas já é tarde.
Como eu não me importei com ninguém
Ninguém se importa comigo

Mais uma edição da revista espírito livre, degustem o PDF. segue integra do editorial
Revista Espírito Livre - Ed. #021 - Dezembro 2010 

Revista Espírito Livre - Ed. n #021 - Dezembro 2010
Revista Espírito Livre - Ed. n #021 - Dezembro 2010

Natal e Ano Novo. Duas importantes datas em um mês que vem recheado de novidades e esperanças quanto ao novo ano que se aproxima.

Esta edição da Revista Espírito Livre leva a você leitor, um tema que tira o sono de muita gente: Segurança. Fizemos questão de observar o tema numa ótica bastante abrangente, pois quando se fala em segurança, não se fala apenas em redes ou arquivos, mas também informações, mecanismos, métricas e tantos outros subtemas que o conceito de segurança envolve. Conversamos com diversos especialistas no assunto para elucidar algumas questões que envolvem o conceito e para entender um pouco mais sobre este mundo.

Como entrevista internacional, conversamos com Andrew Lewman, criador do Projeto TOR, que tem como objetivo proteger usuários contra a análise de tráfego, possibilitando assim uma solução que permite navegação anônima na internet. Como entrevistas nacionais, conversamos com Aderbal Botelho, profissional da área de segurança e perícia forense que nos ajuda a entender um pouco mais diversas questões cotidianas de um perito forense. Também conversamos com o profissional Rafael S. Ferreira, que também trabalha com análise forense e ferramentas que facilitam análise de dados e recuperação de informação. Albino Biasutti e Guilherme Chaves falam sobre segurança para leigos, apresentando de forma clara como estes podem se munir de métricas a favor da segurança de seus dados e computadores. Edgard Costa fala sobre segurança de documentos, um tema que merece atenção, ainda mais em tempos de certificações digitais e outros mecanismos que visam assegurar autenticidade em documentos.

Cesar Taurion traça uma linha do tempo do Open Source a partir de 2004 e revela algumas informações bastante pertinentes. Álvaro Justen apresenta o Arduino, projeto que engloba software e hardware e tem como objetivo fornecer uma plataforma fácil para prototipação de projetos interativos, utilizando um microcontrolador. Carlos Donizete apresenta na seção de Games, o Frogatto, um jogo no estilo plataforma, bem divertido e disponível em diversas arquiteturas.

Ricardo Ogliari prossegue com sua série de artigos sobre o Android e desta vez fala sobre a criação de aplicativos com o uso de banco de dados nesta plataforma. Aracele Torres fala sobre o WikiLeaks, tema em voga na mídia especializada e popular. Estes e tantos outros colaboradores fizeram, cada um em sua especialidade, o melhor de si para disponibilizarmos uma excelente edição para fechar o ano.

Como vocês poderão ver, a edição está recheada de ótimas contribuições. Gostaria aqui de deixar o meu agradecimento não somente aos parceiros que nos ajudaram nesta edição, mas em todas as edições da Revista Espírito Livre. Agradecimento extendido a nossa equipe de revisores e tradutores que também ajudam na medida do possível neste processo nada fácil. Aos colunistas que nos acompanham a cada edição, bem como tantos outros amigos que fazem da Revista Espírito Livre um projeto magnífico que já caminha para o seu segundo aniversário.

Para os leitores da Revista Espírito Livre, me resta desejar Boas Festas, e que todos tenham um ano de 2011 assim como o pintaram em seus sonhos: repleto de magia, mas envolto a muita realidade.
Um abraço a todos!

Olá a todos e a todas, e um ótimo 2011!

nesta primeira postagem de 2011, gostaria de comentar uma entrevista do fundador do wikileaks, Julian Assange, uma das personagens mais citadas em 2010. Assange publicou no wikilieaks documentos tidos como sigilosos por vários governos ao redor do mundo, inclusive a respeito do Brasil.

Na entrevista (bate-papo) concedida a Chris Anderson no evento independente TED, Julian comenta porque o mundo precisa de iniciativas como o wikileaks, ou melhor porque precisamos vigiar o bigbrother.

Você confere a entrevista no vídeo a seguir. Ative a legenda em view subtitles.

 

Lançada a edição número 20 da revista espírito livre. Um dos melhores periódicos de tecnologia da informação da atualidade, e o mais interessante é sobre liberdade. Segue integra do editorial e boa leitura.

 

Revista Espírito Livre - Ed. #020 - Novembro 2010 

Revista Espírito Livre - Ed. n #020 - Novembro 2010
Revista Espírito Livre - Ed. n #020 - Novembro 2010

Pirataria. Um tema polêmico que divide opiniões, levanta questões éticas/morais, sem falar que eleva ânimos de muitos enquanto causa tumulto e prisões em certas situações. Isto tudo talvez porque os elementos necessários para a fundamentação do conceito da palavra “pirata” tenham sido distorcidos ao longo dos anos e atribuições indevidas foram feitas. Claro que, dadas as devidas proporções, e também a certos interesses, muita coisa já foi falada por entendidos (e desentendidos). Isso ajudou a disseminar uma imagem que muito provavelmente não é a que encontramos nestes “novos piratas”. A Revista Espírito Livre tenta apresentar nessa edição, diversas visões, apresentadas por vários colaboradores que aproveitam este veículo de informação para fazer justamente o que ele se propõe a fazer: informar!

Muitos são levados a acreditar em significados distorcidos, julgamentos prematuros e muitas vezes inconscistentes. Fique atento.

A edição 20 também traz a seus leitores uma matéria extensa e bastante completa sobre Zabbix e seus agentes, sob a condução de Aécio Pires e André Déo. William Stauffer Telles fala sobre segurança, mas sob uma ótica não muito discutida pelos entendidos do assunto. Cezar Taurion levanta um tema bastante interessante e que inclusive foi tema de palestra na Latinoware 2010, ocorrida neste mês em Foz do Iguaçu: a Internet das Coisas, um conceito que visa mudar completamente a forma como temos acesso a certas informações.

Entrevistamos o jornalista e professor da UFV, Carlos d’Andréa, que fala sobre a influência do conceito wiki no jornalismo como conhecemos, sua vantagens e itens a serem analisados. Carlisson Galdino, além de sua coluna mensal, onde narra a Warning Zone, esta edição ainda publica dois de seus cordéis, ambos sobre pirataria. Vale a pena conferir!

Uma nova colaboração é feita por Aline Abreu, que levanta a questão do respeito dentro da comunidade, um fato nem sempre levado em consideração por certos usuários. Waney Vasconcelos fala das dificuldades de comunidades a que está inserido e como o Ubuntu – e o seu significado etimológico – pode representar uma mudança de realidade. Hailton David Lemos encontra similaridades entre o genoma humano e o conceito de software livre, relação que merece ser conhecida.

Além dos colaboradores citados, vários colunistas e diversas contribuições não somente através de artigos, mas em revisões e buscando novos materiais, são realizados por vários bravos e respeitados parceiros. A todos estes, o meu obrigado.

Nossos sorteios continuam e se você ainda não participou, esta é a chance. Quem sabe o próximo não seja você?! Além das promoções, se você tem algo a nos dizer – sugestões, relatos, casos de sucesso ou simplesmente um obrigado – não deixe de entrar em contato. A Revista Espírito Livre busca os mais diversos tipos de colaborações, onde o agradecimento, a simples leitura, a divulgação entre os amigos e muitas atitudes fáceis de serem feitas são percebidas como contribuição! Então, vamos fazer da Revista Espírito Livre um veículo de qualidade com cada vez mais participações dos leitores com o único propósito de devolver a estes, material de qualidade e de excelência. Um abraço a todos!