Escrito por Helio Loureiro
Categoria:

Quando do lançamento da versão LTS do Ubuntu, a 16.04, vi várias receitas exotéricas de upgrade.  Depois do terceiro ou quarto artigo que li, tive a nítida sensação de que um copiou do outro, pois seguiam mais ou menos os mesmos passos.

Como eu não tinha tentado o upgrade, pois eu sempre espero um pouco pra fazer o upgrade já que é normal que vários bugs apareçam e depois de mais ou menos 1 mês estão corrigidos, achei que realmente essas formas de upgrade eram necessárias uma vez que o sistema de init mudou do 14.04 de sysvinit pra systemd no 16.04.

Agora finalmente fiz o upgrade e usei a forma anterior.  Não sei o motivo de ninguém ter mencionado mas... a forma de fazer upgrade é rodando o seguinte comando:

sudo do-release-upgrade

Pronto!  Upgrade será feito.  Como todo bom upgrade, vai dar umas zique-ziras que se resolve com um reboot seguido de "dpkg --configure -a" e "apt-get -f install", mas nada de muito grande.

Desculpem se foi curto, mas upgrade é coisa simples.  Sempre foi.

Escrito por Helio Loureiro
Categoria:

 

Meu novo queridinho de programação é um raspberrypi.  Tenho feito coisas interessantes com ele usando Python. E em breve teremos a PyCon Sweden acontecendo por aqui.  Então resolvi criar um robôzinho de twitter pra postar snapshots da apresentação.  Pretendo colocar minha webcam externa nele (uso pros hangouts) e deixar ele pegando as imagens da conferência e postando.

No script a mensagem é estática, mas eu pretendo alterar para algo que pegue uma lista com horários, nomes e temas pra deixar tudo junto na postagem.  Vai ficar interessante.

O código parcialmente feito, que veio o obamawatch, é esse aqui:

#! /usr/bin/python -u
# -*- coding: utf-8 -*-

"""
Based in:
http://stackoverflow.com/questions/15870619/python-webcam-http-streaming-and-image-capture
"""

SAVEDIR = "/tmp"

import pygame
import pygame.camera
import time
import sys
import os
import twitter
import ConfigParser

configuration = "/home/helio/.twitterc"

def TweetPhoto():
    """
    """
    print "Pygame init"
    pygame.init()
    print "Camera init"
    pygame.camera.init()
    # you can get your camera resolution by command "uvcdynctrl -f"
    cam = pygame.camera.Camera("/dev/video1", (1280, 720))

    print "Camera start"
    cam.start()
    time.sleep(1)
    print "Getting image"
    image = cam.get_image()
    time.sleep(1)
    print "Camera stop"
    cam.stop()

    timestamp = time.strftime("%Y-%m-%d_%H%M%S", time.localtime())
    year = time.strftime("%Y", time.localtime())
    filename = "%s/%s.jpg" % (SAVEDIR, timestamp)
    print "Saving file %s" % filename
    pygame.image.save(image, filename)
    
    cfg = ConfigParser.ConfigParser()
    print "Reading configuration: %s" % configuration
    if not os.path.exists(configuration):
        print "Failed to find configuration file %s" % configuration
        sys.exit(1)
    cfg.read(configuration)
    cons_key = cfg.get("TWITTER", "CONS_KEY")
    cons_sec = cfg.get("TWITTER", "CONS_SEC")
    acc_key = cfg.get("TWITTER", "ACC_KEY")
    acc_sec = cfg.get("TWITTER", "ACC_SEC")
    
    print "Autenticating in Twitter"
    # App python-tweeter
    # https://dev.twitter.com/apps/815176
    tw = twitter.Api(
        consumer_key = cons_key,
        consumer_secret = cons_sec,
        access_token_key = acc_key,
        access_token_secret = acc_sec
        )
    print "Posting..."
    tw.PostMedia(status = "Testing python twitter and PostMedia() for #pyconse timestamp=%s" % timestamp,
                 media = filename)
    print "Removing media file %s" % filename
    os.unlink(filename)


if __name__ == '__main__':
    try:
        TweetPhoto()
    except KeyboardInterrupt:
        sys.exit(0)

Acabei usando /dev/video1 pois estava testando a webcam no laptop, que já tem outra webcam interna e quando rebootei com a câmera externa, acabou jogando a dele pra esse device.

Outra melhoria que implementei foi a de mover os tokens de autenticação pra um arquivo externo e ler via ConfigParser().  Assim fica mais limpo o código e possível de enviar pro github (e sem mandar suas chaves privadas junto :).

Escrito por Helio Loureiro
Categoria:

Agora estou totalmente preparado para participar.

Agradeço ao Elias Lima pela montagem.  Ficou perfeito e... sem barriga!  Domo arigatô gozaimashita!

Escrito por Helio Loureiro
Categoria:

 Vou descrever aqui mais uma dica de uso que um processo ou ferramenta.  Como faz vários anos que programo em python, em certo ponto achei razoável adicionar uma variável e parâmetro pra debug.  Então todos meu programas em python em geral tem uma estrutura mais ou menos assim:

#! /usr/bin/python

def debug(msg):
print "DEBUG: %s" % msg

class MinhaClasse:
código
código
código

if __name__ == '__main__':
o = MinhaClasse()
o.main()

Então o que faço em geral é ter uma função debug(), mesmo que use classe e orientação à objetos, pra facilitar a chamada.  Porque eu uso a função?  Se eu usar como método dentro da classe, tem de chamar toda vez como self.debug().  Como não vejo muita vantagem nisso, prefiro definir sempre como função no topo do código.

Mas esse é um exemplo pra mostrar o princípio.  O que uso é um pouco mais elaborado que isso.  Vamos melhorar esse código pra entender melhor criando alguns métodos como __init__() e main().

#! /usr/bin/python

import getopt

DEBUG = False
def debug(msg):
if DEBUG:
print "DEBUG: %s" % msg

class MinhaClasse:
def __init__(self):
debug("Construtor da classe")

def fazalgo(self):
debug("Fazendo algo")

def main(self):
debug("Chamando main")
self.fazalgo()


if __name__ == '__main__':
try: opts, args = getopt.getopt(sys.argv[1:], "d") for opt, arg in opts: if opt == "-d": DEBUG = True debug("DEBUG ENABLED") except getopt.GetoptError: pass
if os.environ.has_key("DEBUG"): DEBUG = True
o = MinhaClasse()
o.main()

Primeiramente eu adicione algum tipo de verificação de opção.  Pode ser com getopt como argparse.  Como é uma opção simples, pra verificar o parâmetro "-d", de debug ativo, usei getopt.  Em seguida usei uma variável global DEBUG, que fica como padrão em False, ou seja, desligado.

Quando faço a chamada na parte de baixo, onde __name__ é '__main__', verifico a opção via flag ou via variável de shell.  Isso quer dizer que se eu usar o script de 2 formas, terei debug ativado:

> ./meuscript.py -d

ou

> env DEBUG=1 ./meuscript.py

a segunda forma ajuda no caso de ter um sistema mais complexo e um shell script chamar seu programa.  Daí se vários scripts verificarem as variáveis de shell pra buscar por DEBUG (ou $DEBUG), fica fácil ativar/desativar.

E assim até hoje eu debugo meus programas.  Claro que fiz alguns aperfeiçoamentos como uma função que imprime o nome do método que está rodando.

def __funcname__(depth=0):
    """
    To print function names like __func__ in C.
    """
    return "__function__: " + sys._getframe(depth + 1).f_code.co_name + "()"

Assim, dentro de um método, posso usar debug da seguinte forma:

class MinhaClasse:
def __init__(self):
debug(__funcname__)

E isso ajuda ao imprimir o nome da função corrente, da mesma forma que se usa a macro__FUNCTION__ em C. Essa dica eu achei recentement no StackOverflow:
http://stackoverflow.com/questions/5067604/determine-function-name-from-within-that-function-without-using-traceback
E por último, e acabei com o tempo refinando meu debug().  Ao invés de de somente aceitar string, eu fiz um seletor de tipo pra imprimir qualquer variável, inclusive dicionários no formato json pra ficar mais fácil ler.

#! /usr/bin/python
import json
import getopt

DEBUG = False

def debug(msg):
    """ Debug helper """
    if DEBUG:
        if type(msg) == type("abc"):
            # it is ok
            None
        elif type(msg) == type({}):
            msg = "%s" % json.dumps(msg, indent=4)
        elif type(msg) == type([]):
            msg = "[ %s ]" % ", ".join(msg)
        msg = "DEBUG(%s): %s" % (__file__, msg)
        print msg
        syslog.syslog(syslog.LOG_DEBUG, msg)

def __funcname__(depth=0):
    """
    To print function names like __func__ in C.
    """
    return "__function__: " + sys._getframe(depth + 1).f_code.co_name + "()"

class MinhaClasse:
    def __init__(self):
        debug(__funcname__)
        debug("Construtor da classe")
        self.nome = "Helio"
        self.sobrenome = "Loureiro"
        debug("Nome: %s" % self.nome)
        debug("Sobrenome: %s" % self.sobrenome)
        self.dados = {}

    def fazalgo(self):
        debug(__funcname__)
        debug("Fazendo algo")
        for k, v in self.dados.items():
            debug("%s => %s" % (k, v) )

    def main(self):
        debug(__funcname__)
        self.dados = { "Nome" : self.nome,
                       "Sobrenome" : self.sobrenome }
        debug(self.dados)
        self.fazalgo()

if __name__ == '__main__':
    try: 
        opts, args = getopt.getopt(sys.argv[1:], "d") 
        for opt, arg in opts: 
            if opt == "-d": 
                DEBUG = True 
                debug("DEBUG ENABLED") 
    except getopt.GetoptError: 
        pass 
    if os.environ.has_key("DEBUG"): 
        DEBUG = True 

    o = MinhaClasse()
    o.main()

Como escrevi anteriormente, não é um padrão fazer isso.  Existem módulos que ajudam a debuggar de forma até mais profunda.  Eu gosto de escrever minhas mensagens de debug pra filtrar melhor as mensagens e poder ver o que realmente importa.  Então fica aqui a dica.

Escrito por Helio Loureiro
Categoria:

O software livre é tido como um movimento social por várias pessoas.  Pelo mesmo motivo muitas outras associam software livre com socialismo ou comunismo, o que já foi desmentido pelo próprio criador do termo software livre: Richard Stallman.

Eu mesmo imaginava que a função social do software livre como a imagem acima, que peguei do projeto de uma colega de trabalho, Eduscope[1].  Era algo que tornaria o mundo melhor e menos desigual, lutando contra as grandes corporações que controlavam o mundo.  Essa última parte era outra forma de dizer "sou contra a Microsoft e tudo que ela representa".

E se foram mais de 10 anos com software livre.  Linux completou 20 anos.  Projeto GNU, 30.  E o mundo?

O mundo não ficou menos desigual.  Pela situação atual da economia americana, eu diria que até ficou muito mais desigual.  O Brasil teve uma melhoria de condição de vida das famílias em geral, olhando num panorama dos últimos 10 anos - e descartando um pouco a crise atual, mas não foi causada pelo software livre.  Enquanto isso as empresas de software livre como RedHat, Canonical e Google se tornaram uma corporação tão grande e poderosa como a própria Microsoft, com os mesmo tipos de problemas que tentávamos combater antes.

Onde está esse lado social?  Cadê???

Pensando sobre isso, comecei a olhar por outro lado: quais são as empresas de sucesso atualmente?  A Forbes lista as principais como sendo:

  1. Apple
  2. Microsoft
  3. Alphabet (Google)
  4. Coca-Cola
  5. IBM
  6. Mc Donald's
  7. Samsung
  8. Toyota
  9. General Eletric
  10. Facebook

Se filtrarmos por empresas de tecnologia somente, o ranking fica assim:

  1. Apple
  2. Microsoft
  3. Alphabet (Google)
  4. IBM
  5. Samsung
  6. Facebook
  7. Amazon
  8. Cisco
  9. Oracle
  10. Intel

Ignorando que a Microsoft disse que "ama o Linux", já que a contribuição dela com software livre é pouca e em geral cobre mais a adaptação ao seu ambiente de cloud, o Azure, todas as demais têm algum envolvimento com software livre.  Seja como parte de sua estratégia de negócios, seja como seus produtos ou serviços (o que volta à estratégia).  Então é possível ver que software livre é um sucesso no mundo dos negócios, mas ainda não tem nenhum lado social.   E no fim empresas cresceram e acabaram virando grandes corporações como anteriormente.

Mas eu pessoalmente acho que surgiu um lado social do software livre que é bem diferente desse de melhoria das condições das populações mais pobrel (continua sendo obrigação do governo) e do fim das grandes corporações.  Vou usar o mercado em que trabalho como exemplo pra isso, o de telecomunicações.

Se observar o mercado de telecom de 20 anos atrás, no surgimento do Linux, esse era um mercado dominado por grandes empresas e padrões rígidos.  Tudo era definido pela ITU-T ou IEEE com custos altíssimos de aquisição de material.  Então existiam poucos interessados - a menos que tivessem muito capital pra entrar nesse mercado - e os equipamentos eram muito caros, o que refletia diretamente nos valores cobrados dos usuários, que tinham basicamente um serviço de voz e nada mais.

Pensando em 10 anos atrás, 2006, esse mercado já tinha sofrido algumas baixas com o surgimento do Skype, que iniciou uma migração sem volta pra serviços de VoIP.  Skype não foi o único responsável por VoIP, mas arruinou boa parte das operadoras que tinham como seu negócio a venda de chamadas internacionais.  Em 2006 voz ainda era o maior gerador de receita das empresas, mas a banda larga já estava gerava uma outra boa parte e mostrava que estava crescendo.  Mas os celulares mais modernos, smartphones, ainda não eram uma realidade próxima pra muita gente.

Olhando esse mesmo mercado hoje em dia, o que aconteceu?  Grandes fornecedores de equipamentos simplesmente faliram, como foi o caso da Nortel.  Outros se juntaram pra poder sobreviver.  Mas a quantidade de fornecedores não aumentou, muito pelo contrário, apenas diminuiu.  De onde veio a concorrência que destruiu seu mercado?  Veio de IT.  Com isso o mercado de telecom se transformou em ICT, Information and Communications Technology, ou Tecnologia da informação e da telecomunicação.  Regras fixas que levavam anos, talvez décadas , pra serem definidas foram trocadas por métodos ágeis e softwares mais leves.  Normas ITU-T foram trocadas por RFCs da IETF.  Empresas que não tinham nenhum conhecimento sobre telecom começaram a tentar esse mercado.  A Apple, uma inovadora nesse sentido, simplesmente quebrou todos os paradigmas de telefonia com o lançamento do iPhone.  Junto veio o Android.  E com isso milhões de programadores começaram a lançar seus apps pra esse mundo novo.   O mundo abraçou dados e IP, e voz, antes o carro chefe de mercado, virou um acessório de pouco uso.

Onde está o lado social e software livre nisso?  Se pensar nesses momentos, de 20 anos atrás, 10 e agora, verá que o custo do uso de telefonia despencou pro usuário, permitindo mais pessoas participarem desse ambiente.  Claro que eu não me refiro a isso como o fator social.  Eu me refiro ao montante de receita, que diminuiu pra fornecedores e operadoras, mas não pro mercado como um todo.  Essa receita foi dividia com novas empresas.

O que pra mim foi o lado totalmente social proporcionado pelo software livre foi o surgimento de startups.  O mercado de telefonia foi totalmente canibalizado por empresas como Skype, Whatsapp, Google Hangout, Facebook Messenger, Viber, Actor, Telegram, etc.  O software livre permitiu que pequenas empresas - algumas viraram gigantes - o usassem como base do seu modelo de negócios e participassem de um mercado que até então era totalmente negado a elas.  Como exemplo, Whatsapp começou como uma pequena empresa com seus servidores baseados em FreeBSD e Erlang, ambos softwares livres.  E todas as startups que existem atualmente se baseiam de um jeito ou de outro em software livre.  Seja como base do seu negócio ou seja como ambiente de desenvolvimento.

E isso não foi só no mercado de telecom.  O mesmo aconteceu com outros mercados, como o Netflix nos faz lembrar.

Então esse é o lado social que o software livre trouxe em todas as áreas.  Se há 10 anos atrás todo mundo só pensava que um emprego bom, com salário razoável, era só vivendo dentro de uma grande corporação, o software livre hoje em dia permite que ele trabalhe de casa pra uma startup que combine com seu modo de vida e seu jeito de pensar, ou mesmo em empreender pra ter sua própria startup.

Software livre ensinou a pescar, e, sim, dividiu o bolo.  Que venha mais software livre.

[1] Pra quem quiser saber mais sobre esse interessante projeto de educação, o site é Eduscope. Mas basicamente foi um experimento de acesso à informação em locais muito pobres, como Paquistão.  Os sistemas rodavam Ubuntu e as pessoas o usam pra auto-aprendizado (continua funcionando).  Criado por uma ex-colega de trabalho como projeto científico de aprendizado.

Escrito por Helio Loureiro
Categoria:

Depois de quase um ano parado, resolvi colocar meu PC desktop pra funcionar.  Pelo gráfico do MRTG é possível ver como ele foi pouco utilizado nos últimos tempos (em geral uso meu laptop atualmente).

Mas como tenho um disco de 2 TB nele e com o fim do serviço de cloud storage Copy, que eu usava, resolvi reativar pra usar com OwnCloud.  Como já ia ligar mesmo, até pensei em usar no quarto como dispositivo de TV pra assistir Netflix e, quem sabe, até jogar Steam, já tinha uma placa Nvidia justamente pra isso (que comprei pra jogar com o pessoal e fiz isso umas... 3 vezes talvez).

O primeiro problema foi... que nem ligava.  Tenho uma placa PCI-E da Nvidia e a placa onboard, Intel.  Nenhuma delas dava sinal de vida.  Então iniciei o procedimento de debug do hardware, pra tentar fazer o desktop voltar à vida.  Removi o cabo de energia de todos os periféricos que tenho: HDs, unidade de DVD, etc.  Removi também a placa Nvidia.  E sem sucesso.   Sem nenhum sinal de vida (e vídeo).

Algumas placas mães têm um par de pinos para reset.  Talvez a minha tenha, mas se ficou 1 ano parado, com certeza que não tenho nem manual.  Então usei o método mais fácil de reset da configuração da BIOS: removi a bateria e deixei uns 30 segundos fora.  Com isso consegui que o computador ligasse e enviasse o sinal de vídeo pela placa onboard.

Uma vez com sinal de vídeo, foi a vez de reconectar os periféricos.  Coloquei energia nos HDs (tenho 2) e na unidade de DVD.  Como estava com o desktop no quarto, usei uma placa wifi pra ter acesso à Internet.  Tudo ok e boot funcionando.

O próximo passo?  Reconectar a placa Nvidia e fazer o sinal de vídeo funcionar por ela.  Fiz isso e... nada.  Usando um cabo HDMI no lado do PC, testei o monitor e a conexão com o cabo usand um Playstation 3.  Funcionou perfeitamente.  O que seria então da placa Nvidia?  Lembrei que existia um parâmetro na BIOS que perguntava qual placa usar como padrão.  Fiz a configuração e apontei pra placa na PCI-E.  E nada...

Seria minha placa Nvidia a outra opção, que era PCI?  Com certeza não, mas testei.  E nada.  Então removi a placa e dei uma boa limpada, aspirando todo o pó que estava por lá.  Aproveitei e limpei o PC inteiro por dentro.  Foi tanto pó que dava pra fazer tranquilamente uma duna depois.  Mas voltando ao PC... nada.  Nem sinal de vídeo pela Nvidia.  Ao conectar pela placa Onboard, tudo funcionando.

Pelo Linux eu podia ver que o sistema X tentava ativar pela placa, que era reconhecida pelo lspci, mas simplesmente ela não respondia.  Foi então que comecei a achar que a placa tinha queimado.

Mas placa de vídeo queimar ou estragar por falta de uso???  Eu descartei a parte do "queimar".  O que poderia ser?

Outra opção poderia ser... energia!  Sim, podia ser minha fonte de alimentação que não conseguia fornecer a energia necessária pra placa.  Mas como medir isso?  Tenho até um multímetro, mas eu teria de medir a tensão de alimentação do barramento PCI-E.  Fora que uma esbarrada em algum ponto energizado e... PUFF! Lá se vai o PC inteiro.

Resolvi arriscar na solução mais barata e comprar um fonte nova.  Afinal a minha era de 350W de potência, e uma nova, de 500W, não faria mal algum.  Passado alguns dias, uma vez que a compra foi via Internet, a fonte chegou e voltei à obra.

Trocada a fonte, reconectados os cabos, e...

Sim, já liguei na TV e saiu funcionando.  Era realmente a fonte de alimentação.  Melhor, gastei muito menos que comprar outra placa de vídeo (e que não iria funcionar).

Qual o motivo da fonte de alimentação ter falhado?  Em geral as fontes passam por processos de qualidades mais baixos que os outros componentes de PC.  Como usa componentes que lidam com potência mais alta que o resto do PC, usa alguns capacitores à óleo.  Se você algum dia ligou a fonte do PC de 110 V em 220 V, já viu esse óleo espirrando e fazendo fumaça.  Eu acho que com o tempo parado, alguns desses componentes ressecaram, perdendo eficiência.  Mesmo o ventilador da fonte já fazia muito barulho.

Se eu tivesse medido as saídas da fonte no conector eu descobriria isso?  Eu acho que não.  O PC ligava e funcionava, o que significa que ele enviava a voltagem esperada.  O que acontecia era que a corrente era baixa e não suficiente pra alimentar a placa Nvidia, que deve consumir bastante.  Esse tipo de falha não é tão fácil de pegar com multímetro.

Enfim meu PC está de volta e, como esperado, não fiz absolutamente nada nele.  Tem o OwnCloud, mas já recebi uma mensagem de erro de que ele não é seguro o suficiente pra estar nos repositórios :(  

Steam?  Sincronizei.  Quem sabe algum dia eu jogue.  O que preciso agora é de um teclado wireless.

Escrito por Helio Loureiro
Categoria:

Participei de um hangout sobre hardening e segurança em geral em Linux promovido pelo pessoal da Elite Linux.  Além do time da Elite Linux, que é composta pelo Felipe França, Élvis Steinbach e Alexandre Debian, estávamos eu e o Aprigio Simões.  Falamos de segurança em geral e não somente de Linux, comentando um pouco de hardening em outras plataformas e até mesmo sob o ponto de vista em desenvolvimento.

Começamos com um hangout fechado e iniciamos novamente depois para usar a funcionalidade de perguntas, pras pessoas poderem participar.

Foi bem divertido e, do meu lado, bastante etílico.

Escrito por Helio Loureiro
Categoria:

2016 já começou para mim com oportunidades de acompanhar alguns assuntos interessantes. E no caso eu pude assistir uma palestra de Richard Stallman na aula magna da universidade de Estocolmo, Suécia.  Pra quem não sabe e associa Suécia com cachorro são bernardo, chocolates e alpes para esquiar, essa é a Suíça.  Suécia é um país mais ao norte da Europa, da região que vieram os vikings.   Se já jogou Skyrim, é daquela região que é cheia de gelo quase que o ano inteiro.    Além do frio e dias escuros no inverno (assim como dias longos no verão), a Suécia é um país com bastante igualdade social.  Então a palestra do Stallman atraiu meu interesse pois eu gostaria de ver quais seriam os argumentos sobre software livre num país onde o uso do mesmo não influencia em uma mudança social.  Como falar de liberdade para um povo livre?  E não me refiro ao quesito econômico somente, mas também em igualdade de gêneros, igualdade de oportunidades, enfim igualdade em tudo!

Eu já vi várias vezes as palestras dele no Brasil, e até algumas vezes pela Internet  Então eu esperava alguns argumentos diferentes do que estou acostumado a ouvir, mas no fim a palestra foi muito interessante sob vários pontos de vista.  Infelizmente os pontos que vou descrever a seguir mostram totalmente o ponto de vista do interlocutor.  Conforme ele ia falando, meu nível de interesse aumentava com as coisas que eu realmente queria ouvir.  Assim que conseguir um link pra algum vídeo gravado da palestra, estarei disponibilizando para quem mais pessoas possam ter opiniões próprias sobre o que ele falou (ou até deixou de falar).  O que descrevo abaixo eu confirmei com alguns amigos que estavam por lá, apenas para ter certeza que não tinha sido engano meu ou algum erro de tradução do inglês que entendi dele.

BSD

Acho que nunca tinha ouvido ele mencionar BSD antes.  Dessa vez ele não só mencionou como disse que não baseou seu sistema livre em BSD pois na época, 82/83, o Unix BSD estava muito enraizado e misturado com o sistema proprietário da AT&T.  Esse foi o motivo que o levou a criar um sistema GNU: garantir que o sistema seria completamente livre de qualquer código proprietário.  Ele também disse que ajudou a incentivar a criação de um BSD totalmente livre.

Pela história dos BSD, essa época não era exatamente quando acontecia o processo da AT&T pelo uso de seu código por sistemas BSDs (na verdade contra a BSDi) e que resultou no padrão BSD4.4-Lite, de onde surgiram os BSDs modernos como FreeBSD, DragonFly, OpenBSD, Netbsd, etc.  Isso aconteceu no final dos anos 80, início dos 90.  mas eu acho que já devia estar acontecendo discussões nesse sentido, assim como algumas visitas de advogados.  Sabemos como a história termina (e graças a ela que houve uma janela de falta de sistema operacional livre que permitiu o surgimento do Linux).

Eu sabia que Stallman atuou diretamente na padronização POSIX, mas não sabia que tinha colaborado com os BSDs.  A colaboração pode até ter sido pela criação do GCC, que permitiu em muito a criação dos sistemas BSDs completamente livres da atualidade, ou mesmo pela POSIX, mas foi interessante saber quem ele participou disso.

E ele terminou dizendo que BSDs atualmente são software livre.  Talvez depois da discussão com Theo de Raadt, criador do sistema OpenBSD, ele tenha repensado seus critérios sobre software livre e sistemas operacionais, uma vez que ele nunca tinha dito isso.

Ubuntu

Claro que não poderiam faltar as críticas ao Ubuntu.  Mas ele falou algo que finalmente chegou ao ponto da questão: não existe nenhum outro sistema baseado em GNU/Linux com tantos usuários como o Ubuntu.  Sim, isso mesmo.  Stallman dirige suas críticas ao Ubuntu por conta de seu sucesso.  Não, ele não é contra o sucesso de uma distribuição de Linux (ou como ele gosta de dizer, GNU/Linux).  O problema pela visão dele é que o Ubuntu pode e está influenciando uma grande parcela de usuários e, principalmente novos usuários, sobre software livre.  Se não for passada a mensagem certa, esses usuários não entenderão a fundo o que é software livre pela visão de Stallman, onde liberdade deve vir antes de facilidade de uso.  Quem busca liberdade, tem de estar preparado para sofrer (palavras dele).

 

Qual distro usar?

Stallman é muito hábil nesse sentido.  Ele não defende nenhuma distro, assim como não recomenda nenhuma especificamente.  Deixa cada um usar a que melhor lhe servir, mas pede para que se lembre que o importante é a liberdade, de poder usar como quiser.  E que uma distro de software livre deve permitir copiar, modificar, redistribuir e não criar restrições quanto seu uso.  Sempre.  Fora isso, nem prós, nem contras.  Ele avisou que existem distros recomendadas pelas FSF e GNU, que garantem a liberdade irrestrita de seus usuários e que ele recomenda - distros em geral, não uma em específico -, mas que podem usar qualquer distro.  Sem dramas, sem ataques, só assim, tranquilamente.

Software livre vs Código aberto (ou free software vs open source)

Como eu já havia dito antes e repito, não existe esse dilema.  E assim também disse Stallman.  Não importa licença: se respeitar as 4 liberdades é software livre.  E pronto.  E ele pediu carinhosamente para não se referir mais como open source, apenas como free software para lembrar a todos como a liberdade é importante.  Um ponto interessante que ele comentou foi em relação à diferença entre o ponto de vista de free software em relação ao open source: free software se preocupa em sempre criar uma comunidade, enquanto open source não, apenas com o ponto de vista de melhoramento do software.  Não sei se concordo muito com isso, pois vejo várias comunidades de open source, inclusive mesmo com a própria Microsoft.  Perguntado sobre isso, ele apenas desconversou.

Blu-Ray e DRM

Ele recomendou o não uso de disco blu-ray, aqueles que parecem um DVD mas tem 50 GB de capacidade de armazenamento, pois os mesmo usam DRM (Digital Rights Management - Gerenciamento de direitos autorais digitais), o que significa que o disco não é seu, e que precisa de uma chave criptográfica para poder assistir seu conteúdo, chave essa que não existe em softwares livres.

Era basicamente o mesmo com o DVD, mas por descuido de uma empresa que foi à falência, essas chaves foram descobertas por um hacker e portadas como software livre.

Eu particularmente não sabia disso sobre os blu-rays, mesmo porque nem assisto blu-ray.  Foi uma geração de tecnologia de armazenamento que eu simplesmente pulei.  Exceto no meu PS3.

Amazon e Netflix

Como o assunto enveredou por DRM, chegamos ao ponto da discussão sobre Amazon e Netflix, onde todo software deles tem um componente de DRM.  Esse DRM permite que Amazon remova livros de seu HD sem ao menos pedir consentimento do usuário, violando claramente as 4 liberdades de software.  E usou como exemplo o livro 1984 de George Orwell, que apesar de estar em domínio público, foi removido de todos os dispositivos Kindle devida a uma infração de copyright alegada por uma editora.

Netfllix apareceu na mesma categoria por não permitir baixar seus filmes para assistir posteriormente, controlando o comportamento do usuário.

Pirataria

Falando de filmes e conteúdo multimídia, no fim chegamos ao tema da pirataria.  Segundo Stallman pirataria não existe pois nenhum bem é saqueado de ninguém, ninguém perde dinheiro com cópia.  Então o que se convencionou chamar como pirataria não existe.  Existe a cópia digital de conteúdo, que nunca traz danos ao seu dono, pois nada é roubado ou extraído.  Só copiado.  Ele ainda pediu para evitar o termo "pirataria" e usar o termo "cópia digital".

Vigilantismo

A parte de vigilância pela Internet tomou boa parte da palestra de 2 horas.  Segundo Stallman temos de tentar ao máximo fugir do vigilantismo que ocorre atualmente.  Infelizmente a fórmula recomendada por ele não parece lá muito fácil de seguir:

  • não usar cartões de crédito (exceto pra comprar passagem de avião)
  • não postar nada pessoal em nenhuma rede social
  • não usar sua identidade para nenhuma comunicação que não seja oficial
  • usar sempre criptografia para navegação via browser
  • usar sempre criptografia para mail
  • usar redes sociais para compartilhar informação, mas não pessoal
  • não usar telefones celulares, pois eles podem nos monitorar (nem mesmo com versão modificada do sistema)

 Então a idéia central não é não usar redes sociais, mas usar para compartilhar conhecimento, não informações pessoais.  O restante pede um tipo de vida mais frugal.  Muito mais.

Empreendedorismo com software livre

Stallman falou sobre negócios na área de software livre, para minha surpresa.  Claro que a proposta de monetização segundo ele, não soa como algo que funcione na vida real.  Disse que os sites podem sim monetizar com propaganda, mas a propaganda tem de garantir a liberdade do usuário, não fazendo nenhum tipo de "tracking".  Então o projeto GNU está preparando um framework de monetização onde todos doarão dinheiro pra plataforma e, conforme acessarmos os sites participantes, esses serão remunerados pela audiência.  Isso me fez lembrar um pouco do ECAD.  E não vi muito um modelo claro de negócio que sustente software livre dessa maneira, mas ao menos o assunto está em pauta por lá.

Também tem o fato da própria FSF estar lançando uma campanha para conseguir novos membros, pra poder pagar por sua estrutura.  Com esse tipo de problema de arrecadação financeira, não vejo um desenrolar muito brilhante num modelo de negócios que eles venham a gerir.  Mas cabe a cada um decidir experimentar e participar.  Ou não.

Kernel Linux com código não livre

Não, ele não falou nada disso.  Aliás usou o logo do Linux com pinguim preto, não o azul.  Não sei quem começou a propagar essa distorção, mas Linux não tem código proprietário.  Só sincronizar os fontes com o repositório git e verificar.

 

Em resumo

Foi uma palestra interessante com uma abordagem bem diferente da que estou acostumado a assistir.  Apesar de mostrar bastante moderação e comedimento em suas palavras, quando chegamos no tema de vigilantismo só faltou mesmo o Stallman colocar um chapéu de papel alumínio.  Ele é até coerente em suas palavras, dizendo pra não usar nenhum tipo de cartão de crédito, e só pagar em dinheiro, pois todos podem e estão sendo monitorados em suas ações.  Pura verdade.  Mas é difícil abrir mão dessas facilidades.  E muito.

Ao final de sua palestra, não vi muitos ouvintes comovidos por suas palavras.  O que ouvi foi um seco "é... foi legal", mas ninguém se empolgou em seguir totalmente o que Stallman falou.  Nem sobre vigilantismo, nem sobre software livre, já que muitas pessoas usam MacOSX para trabalhar por aqui.  E muitos usam Ubuntu também.  Talvez por isso o auditório não tenha ficado cheio, mostrando vários assentos disponíveis durante a palestra.

Mas pelo fato de ter ouvido ele dizer que BSD é software livre e que não existe open source, só software livre, pra mim isso já valeu a palestra inteira.

Ele comentou que software livre constrói também comunidades que se baseiam no respeito e, se sua comunidade tem conflito, para evitá-la ou trocar por uma com o verdadeiro espírito do software livre, de ajuda e positivismo.  Mas esse ponto da palestra dele eu deixo pra comentar em outra oportunidade.

Escrito por Helio Loureiro
Categoria:

Depois da chamada para ajuda à FSF na BR-Linux, Projeto GNU precisa da nossa contribuição – e não de brigas internas na comunidade, resolvi me associar a ela para ajudar.  Afinal nada mais prazeroso que escrever meus artigos como um membro da FSF.

E um recado que nunca pode ser esquecido: free software é software livre, não gratuito.

Também fiz uma contribuição à FreeBSD Foundation, só pra manter o equilíbrio do universo.  Ao menos do universo de software livre.

Escrito por Helio Loureiro
Categoria:

E chegou 2016.  Nada como fazer uma análise sobre o tráfego no site durante o ano de 2015.  Em geral eu fazia isso de forma fácil com o j4age, mas... resolvi atualizar o site no final de 2015 e terminei destruindo a instalação do joomla 2.5 que tinha, o que me forçou a instalação do joomla 3 e migração dos artigos.  Com isso estou na última versão do joomla 3, mas perdi algumas das ferramentas (módulos e plugins) que usava.  E entre eles o j4age.  Mas como eu faço a monitoração via google também, alguma coisa restou pra ser olhada.

Em geral tive 81 mil visualizações, sendo 2 do mesmo acesso, com 34 sessões.  São quase 9 visualizações/hora.  Pra um site que não tem divulgação nenhuma, acho que está de ótimo tamanho.  Em relação ao ano anterior, 2014, as visualizações eram da ordem de 100/dia e agora subiram para 224/dia.  Já me sinto o rei do camarote das buscas orgânicas.

As estatísticas mostram baixo engajamento, ou volta de usuário.  Eu acho que isso se deve por conta de filtros de cookies.  Continuem assim pois meu objetivo não é fazer tracking de quem lê meus posts.  Snowden approves you.

Origem

A grande maioria é brazuca (duh!).  Mas há algum crescimento de locais como Portugal, que é até compreensível, e... China!?  Isso eu não sei explicar.  Aliás a posição 5 deve ser algum bloco IP que foi alocado recentemente e não deve ter sua geo-localização ainda mapeada.  Eu acho que essa maioria de países estrangeiros acessando o site é por conta de alguns artigos em inglês, mas a maioria é mesmo pela minha assinatura de mail, que tem links pro site.

Navegadores

E novamente Chrome é o rei, com mais que o dobro do segundo colocado, o Firefox.  Interessante ter acessos de Safari no site, acima até de Internet Explorer.

Sistema operacional ou por que ainda usam windows por aqui?

Já desisti de ver essa estatística liderada por outro sistema operacional que não seja Windows.  Android já mostra metade do tráfego de Linux, mas ainda ambos juntos não chegam ao número de usuarios com Windows.  Gente, é 2016.  Criem vergonha na cara e parem de usar Windows.  Ao menos pra acessar meu site.

Os mais lidos

E durante o ano todo, o campeão foi #XGH!!!!  Artigos genéricos de opinião misturados com artigos técnicos, mas claramente uma preferência por textos não técnicos.  Escovação de bits está ficando fora de moda :(

Que venha 2016

E esse foi um pequeno resumo de meu 2015.  Como participei da organização de outras coisas como hackathons e palestras técnicas, acabei ficando sem muito tempo pra atualizar o site com informações.  Não é uma meta pra 2016 (aliás não fiz meta nenhuma, mas quando atingir, eu dobro a meta) mas espero poder escrever mais.  Vídeos no estilo VLOG?  Eu acho complicado manter a peridiocidade, por isso prefiro participar de hangouts.  Outras formas de mídia?  Acho que vou ficar mesmo com Twitter e Facebook, e talvez dar uma tentanda no Reddit.  Mas nada de muito sério.  E assim inicio meu 2016.

Escrito por Helio Loureiro
Categoria:

Por uma coincidência incrível, daquelas que ocorrem a cada alinhamento de planetas ou algo do gênero, assisti ontem a palestra do John Maddog Hall na campus party 7 cujo nome é esse do texto: fique rico com software livre.  É o tipo de assunto que gosto de accompanhar, mas eu tinha baixado a palestra pra assistir e tinha esquecido completamente.  Eis que o wifi estava ruim ontem, Netflix não funcionando, Internet intermitente e... sim, resolvi vasculhar o HD pra ver se tinha algo que eu pudesse ler ou assistir.   Incrível o poder de abandonar coisas interessantes conforme a capacidade do HD aumenta...

 Em várias listas e grupos que participo existe uma noção errada, e até um pouco ingênua, de que software livre é o que basta pro negócio dar certo.  Que com software livre já existe uma vantagem competitiva.   Nessa apresentação do Maddog, que está em inglês, ele toca nesse ponto.  Eu peguei algumas partes pra comentar.

Esse primeiro slide é bem interessante.  Ele comenta sobre as liberdades que definem um software como livre.  E coloca bem claro na parte de baixo: ninguém disse que não devia fazer dinheiro escrevendo software livre.  Sim, software livre pode ser vendido.  Pode-se ganhar dinheiro com ele.  Já comentei algumas vezes em sobre a 5a liberdade que criaram - mais acirramente no Brasil - onde transformar software livre em dinheiro virou algum tipo de pecado.  Não é.

Business as usual.  Software livre significou uma quebra de paradigma na forma de fazer software, mas não na de fazer negócios.  Para ganhar dinheiro com software livre é preciso conhecer seu mercado, seus concorrentes, seu produto, seus consumidores, enfim tratar como outro negócio qualquer.  Não existe mágica com software livre.  Software é software e negócios são negócios.

O por qual motivo as pessoas escrevem software livre?  São inumeradas as razões, que diferem em muito do software proprietário, onde somente um modelo de negócios existe.  Mas não acredite que software livre é feito somente por hobbistas.  Grandes empresas já fazem ou contribuem com a maioria dos projetos de software livre.  Em termos de negócios, abrir seu software como livre pode não trazer um benefício direto.  Pode ajudar na correção de bugs e adição de melhorias, mas não necessariamente no negócio em si (software livre não é vantagem competitiva, lembra?).

E alguém pagaria pra ter um software livre?  Sim!  Maddog inumera alguma das razões.  A maior dela é usar o software livre pra atender mais rapidamente alguma necessidade da empresa.  Então essa empresa com certeza pagaria o desenvolvedor, ou que se quiser manter o software, pra adicionar uma melhoria.  Ou mesmo criar um fork.

São consideradas outras facetas do software livre como negócio, mas não vou comentar uma por uma pois o melhor é assistir a palestra por inteiro.  Apenas lembre-se que é possível ganhar dinheiro com software livre, mas isso não significa que software livre seja uma vantagem competitiva pro negócio.

 

Escrito por Helio Loureiro
Categoria:

Colaboração: Anahuakim Skywalker

Acontecimentos recentes precisam acionar todos os alarmes do ativismo Jedi. O golpe final está muito próximo. O algoz é a saga Star Wars e a vítima é o GNU. O plano tem se baseado na repetição incansável de que o sistema intergalácticol livre, que é um marco cinematológico, se chama Star Wars, nasce em 1977 e se baseia nos conceitos revolucionários dos Jedis. E onde está o GNU que nasceu uma década depois? Não sou eu quem está fazendo uma acusação leviana, é a própria saga Star Wars quem o diz em seu documentário "O império contra-ataca". Trata-se de uma sequência em seis episódios, feita com primor e precisão cirúrgica para convencer até os velhos ativistas de que o GNU nunca existiu.

Qualquer pessoa que não conhecer a história toda e vir essa sequência da Star Wars terá certeza absoluta que tudo começou em 1977 e não saberá nem que um dia existiu o GNU.

A força da repetição, levada a uma escala galáctica é impossível de deter. Nobres significados já foram subvertidos antes, como o termo "jedi" que virou sinônimo de bandido intergaláctico pelo simples interesse de colocar todos, os bandidos e os questionadores, no mesmo balaio. Questionar, aprender, testar, compartilhar e colocar o "status quo" em uma posição incômoda não é crime. Mas incomoda. O mesmo acontece com a marca Star Wars, sendo repetida a exaustão para remover os conceitos ideológicos que o GNU carrega em si. Matar o GNU é matar a contraposição provocada pela liberdade do código. Foi exatamente com o objetivo de eliminar esse incômodo que a estrela da morte foi criada.

Mas esse é um enredo bem conhecido e, infelizmente, ignorado pela maioria dos envolvidos em Star Wars. É como se eliminar o GNU fosse algo "cool", bacana, legal, simples. Quantas vezes tive que ouvir que dizer "GNU/Jedi" era difícil, e que ajudava mais na aceitação do novato dizer apenas Jedi. Bom, hora de assumir sua parcela de culpa na
tentativa de extinção do GNU.

Alerta vermelho!

Os Jedis dizem que os Siths serão um grande parceiro

Como assim? Simples: no pensamento Jedi o que realmente importa é o acesso à força, no limite necessário, para melhorar os meios de combate com sabres de luz. Mais rápido, eficiente, com mais qualidade e muito mais barato. Trata-se de um modelo de força e se os Siths aderirem a esse modelo, que mal há? Não acredita? Leia matéria original
direto da Wookipedia.

Jedis não são Open Source

O que dirá Software Livre então? Nem pensar! O professor Masdra Narsgodi deixa isso muito claro neste episódio intitulado de "la galaxia dividida". É uma aparição pequena, fria e calculista. Ele baixa os escritos Jedis, olha os fontes e encontra códigos de conduta não livres. Simples e preciso. Nenhum lero-lero ideológico. Não deixe de conferir.

O que mais você precisa para perceber que se não fizermos algo o GNU será extinto? Se não agirmos rápido permitiremos que os valores difundidos pela Federação e pelo GNU, de que o acesso ao código deve empoderar os usuários para inverter a relação entre esses e os Jedis, serão suplantados pela outra ideologia, que defende o acesso ao sabre de luz como um pilar para meios de proteção mais eficientes.

Perceba que não se tratam de ações isoladas e desconexas. Fica cada vez mais evidente que é uma ação deliberada para extinguir a Galáxia Livre, suplantando-a pela Força. Uma pesquisa rápida demonstrará que o termo "Jedi" tem sido usado mundialmente como sinônimo de "livre". Mas não significam a mesma coisa, não tem o mesmo peso ideológico, não se baseiam nas mesmas premissas e não reagem na sociedade da mesma forma. Jedi/Sith defende meios de proteção e Federação/Livre buscam mudar a sociedade em busca de uma Galáxia melhor. Como o "status quo" não tem interesse em mudanças que alterem as relações de poder, então o Jedi/Sith é estimulado como uma versão mais suave deliberdade. Assim, subitamente parece que o mundo todo aderiu ao "Jedi": Jedi Mind, Jedi Data, Jedi Office, Jedi Temple e por ai vai.

Que fique claro: algo jedi não é necessariamente livre. E é exatamente dessa dubiedade que o "status quo" se alimenta. Vende liberdade, mas fornece prisões.

O que fazer?

Algumas ações são mais simples que outras, mas todas são possíveis e qualquer uma delas, mesmo que seja uma só, fará toda a diferença. Lembre-se que sua participação é fundamental.
* Diga somente GNU! Não se refira mais ao sistema planetário como Jedi. Minha sugestão é que você sequer diga GNU/Jedi. Mesmo que você não concorde plenamente, neste momento, ajuda muito se fizermos um esforço para reforçar o GNU. Estamos tentando virar o jogo, lembra? E depende muito apenas de você e de cada um de nós. Por que? Oras, porque quando você disser GNU, o desavisado não saberá ao que você se refere e essa é a oportunidade para falar
sobre liberdade, compartilhamento que revoluciona e como essa ação tem o poder de transformar a sociedade. Jedi? Isso é só mais um programa de proteção que nem sequer é livre.
* Não use mais o sabre de luz. Adote outros mascotes para referenciar seu apreço pelo Software Livre. O sabre de luz é o logo dos Jedi. Jedi não é livre. Portanto esqueça o sabre de luz. A fauna do Software Livre é imensa e com certeza você vai encontrar uma outra proteção que lhe agrade. Na dúvida, opte pelo próprio GNU.
* Não seja Jedi. Existe um conjunto de planetas GNU que não são Jedi: LinuxJedi é um exemplo. Esses sistemas operacionais usam um kernel chamado linux-jedi , um Jedi "desenjedixicado" e mantido pela Federação, que funciona em
qualquer outra rebelião, inclusive contra o Império.

É claro que a lista poderia ser muito mais longa, mas se você se comprometer a fazer apenas uma delas, podemos reverter o cenário e evitar a extinção do GNU.

Seja um "Jedi do GNU", seja #jediGNU!!!

Saudações Livres!

 

 

Nota: agradecimentos ao José Ferreira Neto por ter ajudado a recuperar o artigo. 
Nota 2: agradecimento ao Chiquinho (Francisco Pacheco) pelo Gates sith.
Escrito por Helio Loureiro
Categoria:

Depois de quase 3 dias fora do ar (ou intermitente), eis que o site volta ao ar.

Nada como férias pra tentar coisas arriscadas, como um upgrade do Joomla.  E não saiu como esperado.  E claro que o backup via Akeeba não deu certo.

Então nada melhor que arregaçar as mangas, pegar um café (ou cerveja) e fazer a instalação e migração na mão.  Algumas coisas ainda estão meio que quebradas, mas aparentemente o grosso do site foi migrado corretamente.  De Joomla 2.5 pro último release de 3.

Mas a luta continua!  Algumas coisas ainda apresentam erros de edição e mesmo o template ainda faltam as imagens.