Ir para o conteúdo
ou

Software livre Brasil

Tela cheia Sugerir um artigo
 Feed RSS

Blogosfera do PSL-Ba

16 de Junho de 2009, 0:00 , por Software Livre Brasil - | 2 pessoas seguindo este artigo.

O Projeto Software Livre Bahia (PSL-BA) é um movimento aberto que busca, através da força cooperativa, disseminar na esfera estadual os ideais de liberdade difundidos pela Fundação Software Livre (FSF), possibilitando assim a democratização do acesso a informação, através dos recursos oferecidos pelo Software Livre. Esta busca tem seus alicerces fundados na colaboração de todos, formando um movimento sinérgico que converge na efetivação dos ideais de Liberdade, Igualdade, Cooperação e Fraternidade.

O Projeto Software Live Bahia é formado pela articulação de indivíduos que atuam em instituições publicas e privadas, empresas, governos ou ONGs, e demais setores da sociedade. Além disso o projeto não é subordinado a qualquer entidade ou grupo social, e não estabelece nenhuma hierarquia formal na sua estrutura interna.


Existem Blobs Binários no Kernel Linux usado pelo Ubuntu?

19 de Novembro de 2017, 20:28, por Aurélio A. Heckert - 0sem comentários ainda

Recentemente, em um dos grupos de Telegram que participo foi colocado em questão: O Kernel Linux contém ou não os polêmicos Blobs binários?

O Juca afirmou que sim, baseado num processo lógico indutivo, outro participante afirmou que não baseado em... Bem, ele apenas afirmou que não. Então decidi buscar algo que ajudasse a descobrir a verdade...

Para começar, o Ubuntu segue o mesmo procedimento do Debian para publicar seus pacotes. Todo pacote .deb é fruto de um pacote original vindo do upstream (projeto de origem, como Inkscape, GNOME, Linux,...) e modificações da distro, que você encontra em packages.debian.org ou packages.ubuntu.com em um "*.debian.tar.xz" ou "*.diff.gz"

Hoje, 19/nov/2017, encontrei os pacotes linux-image-4.9 no Debian stable e o linux-image-4.13 no Ubuntu xenial. O pacote "orig.tar.xz" do Debian já veio sem o diretório "firmware", que ainda existe no pacote "orig.tar.gz" do Ubuntu. Neste diretório estão todos ou boa parte dos Blobs. Entretanto apenas essa informação não confirma que os pacotes binários do Ubuntu contenham os Blobs. Para compilar o Linux com os firmwares é preciso passar a configuração "CONFIG_FIRMWARE_IN_KERNEL=y" para o builder. Os fontes do kernel não trazem essa configuração por padrão (massa) e, como é de se esperar, o Debian não adiciona essa diretriz em seus diffs, entretanto o diff do Ubuntu sim, adiciona os firmwares para todas as arquiteturas.

$ egrep -r '^\+{3} |CONFIG_FIRMWARE_IN_KERNEL *= *[yY]' . | grep -B1 CONFIG_FIRMWARE_IN_KERNEL
...diff:+++ linux-hwe-edge-4.13.0/debian.hwe-edge/config/amd64/config.common.amd64
...diff:+CONFIG_FIRMWARE_IN_KERNEL=y
--
...diff:+++ linux-hwe-edge-4.13.0/debian.hwe-edge/config/arm64/config.common.arm64
...diff:+CONFIG_FIRMWARE_IN_KERNEL=y
--
...diff:+++ linux-hwe-edge-4.13.0/debian.hwe-edge/config/armhf/config.common.armhf
...diff:+CONFIG_FIRMWARE_IN_KERNEL=y
--
...diff:+++ linux-hwe-edge-4.13.0/debian.hwe-edge/config/i386/config.common.i386
...diff:+CONFIG_FIRMWARE_IN_KERNEL=y
--
...diff:+++ linux-hwe-edge-4.13.0/debian.hwe-edge/config/ppc64el/config.common.ppc64el
...diff:+CONFIG_FIRMWARE_IN_KERNEL=y
--
...diff:+++ linux-hwe-edge-4.13.0/debian.master/config/amd64/config.common.amd64
...diff:+CONFIG_FIRMWARE_IN_KERNEL=y
--
...diff:+++ linux-hwe-edge-4.13.0/debian.master/config/arm64/config.common.arm64
...diff:+CONFIG_FIRMWARE_IN_KERNEL=y
--
...diff:+++ linux-hwe-edge-4.13.0/debian.master/config/armhf/config.common.armhf
...diff:+CONFIG_FIRMWARE_IN_KERNEL=y
--
...diff:+++ linux-hwe-edge-4.13.0/debian.master/config/i386/config.common.i386
...diff:+CONFIG_FIRMWARE_IN_KERNEL=y
--
...diff:+++ linux-hwe-edge-4.13.0/debian.master/config/ppc64el/config.common.ppc64el
...diff:+CONFIG_FIRMWARE_IN_KERNEL=y
--
...diff:+++ linux-hwe-edge-4.13.0/zfs/zfs_config.h.in
.../Makefile:# 1. Building kernel with CONFIG_FIRMWARE_IN_KERNEL=y -- $(fw-shipped-y) should

Talvez essa informação não seja suficiente para você. Justo... Então um amigo com uma máquina Ubuntu me fez o favor de executar "dpkg -L linux-image-*" e no resultado estavam dezenas de firmwares diretamente relacionados aos arquivos de blobs que localizei no tar.gz dos fontes. Faça você mesmo esse teste. É o mais simples e direto.

Então fica claro que o Ubuntu adiciona sim blobs ao pacote compilado entregue aos seus usuários.

Não podemos afirmar, apenas com essa analise, que o Debian não adiciona blobs, mas temos a declaração do projeto (validada pela FSF) de que todos os blobs foram removidos do kernel distribuído pelo Debian em 2011 e, caso seja necessário, os firmwares baseados em blobs binários estão no repositório "non-free" da distribuição.

Sim, tem Blobs, e o que isso significa?

Para começar Blobs binários nunca deveriam ter entrado no repositório do projeto Linux simplesmente porque estes são incompatíveis com a definição de Software Livre e de Código Aberto. Especificamente na liberdade 1 "A liberdade de estudar como o programa funciona, e adaptá-lo às suas necessidades" e no critério 2 "Source Code (...) Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed."

Blobs, como qualquer software fechado, representa um limite praticamente intransponível a auditabilidade (a não ser que vc tenha MUITO tempo e dinheiro). Significa que nem você e nem o seu amigo super-mega-hacker podem afirmar que sabem exatamente o que um Blob faz, simplesmente porque você não sabe o que longas cadeias binárias como "1000 9000 0204 007C 1217 0000 0204 0080 2217 00F6" significam. E, seja lá o que for, ele faz com permissões de superusuário (isso se ele estiver limitado a userland) ou com poder total em um processador dedicado (que é o caso dos firmwares).

Blobs são uma forma de restringir a principal ação do ecossistema FOSS. Blobs impedem a validação, a colaboração e a evolução. Sabe a sua impressora que imprime melhor no Windows? Se o driver dela fosse livre poderíamos melhorar. Sabe a sua placa de vídeo que por um motivo desconhecido tem um FPS menor no Linux, ou superaquece, ou não responde adequadamente certas chamadas do OpenGL? Se o driver dela fosse livre poderíamos melhorar.

E quantos blobs temos hoje? No diretório firmware você encontra arquivos .HEX, .H16 e .ihex. Eu acabei de contar 141 deles aqui.

Poderíamos levantar algumas teorias da conspiração sobre por que a industria de hardware força a dependência dos blobs. A desculpa padrão (rápida, fácil e superficial) diz que é uma forma de garantir seu diferencial. Não... Vou me conter. A verdade é que mesmo achando essa desculpa inocente, nem eu nem ninguém, fora dos boards dessa indústria, sabe o real porquê. Independente que qual seja a verdade, ignorar, ou pior, negar o fato dos Blobs estarem presentes nas máquinas da maioria dos usuários de Linux não é só inocente ou contraprodutivo. É agir como fantoche do interesse alheio. É dificultar o processo de remoção do stack privativo/fechado que reduz a nossa autonomia, favorece oligopólios e ajuda o controle estatal.



Vídeo interessante sobre DevOps, com legenda em pt-br

1 de Outubro de 2015, 14:01, por PSL-BA Feeds - 0sem comentários ainda

Desde que comecei a estudar sobre DevOps, encontrei um vídeo que me ajudou muito a entender como funciona essa nova cultura. Como o inglês ainda é uma barreira para alguns técnicos no Brasil, resolvi criar legendas em português do Brasil para esse vídeo:

Caso não apareça a legenda, habilite na barra de configuração do vídeo.



Deixando de ser artesão – Repensando a gerência de servidores

18 de Setembro de 2015, 21:01, por PSL-BA Feeds - 0sem comentários ainda

O que seria da área de tecnologia da informação sem suas mudanças? Estamos o tempo todo nos reinventando. Repensando nossos métodos e viabilizando novas formas de melhorar nossa atuação, nossos produtos, entregando valores cada vez mais rápido.
Nesse artigo falarei um pouco de como mudamos completamente a nossa forma de lidar com gerência de servidores.

sysadmin_artesao

“Antigo” administrador de servidores, que aqui chamarei de artesão.

Em um determinado momento no “passado”, os técnicos de infraestrutura de TI atuavam de forma bem manual, eles desempenham suas tarefas de forma similar a como faziam os artesãos antes do processo de industrialização. Para levantar um novo serviço, esse profissional era responsável por realizar quase todas partes do processo.

O técnico de TI fazia cabo de rede, preparava instalação elétrica, fazia cotação e comprava o servidor, recebia o pedido, tirava ele da caixa e colocava no rack. Em seguida ele instalava seu sistema básico e então configurava os serviços a serem entregues ao usuário. Com o advento da virtualização, esse trabalho ficou menos oneroso, mas ainda assim o técnico ainda era responsável por manualmente criar as máquinas virtuais, instalar o sistema operacional e os serviços. Mesmo utilizando templates, ainda havia algum trabalho manual e repetitivo a fazer.

As melhores práticas hoje indicam o uso de ferramentas que viabilizam a automatização de quase todo processo de entrega de um novo serviço, ou seja, hoje é possível criar o servidor, instalar os pacotes, configurar os serviços, requisitar e configurar um nome para o serviço de DNS, colocar no backup, adicionar no monitoramento, configurar a VLAN correta, solicitar as regras específicas de firewall , se registrar no balanceamento de carga e até mesmo enviar e-mail para o responsável técnico avisando quando todo esse processo automático finalizar. Todo processo iniciado com o pressionar de um botão.

automação

Robôs virtuais, fazendo o trabalho manual e repetitivo.

Assim como o artesão viu seu trabalho manual ser substituído por máquinas, os técnicos de TI estão vendo seu trabalho braçal ser realizado por ferramentas de automatização. A cultura DevOps viabilizou um terreno fértil no campo das ideias e processos para que essa mudança fosse possível, pois não é somente de ferramentas que consiste uma mudança de paradigma, certo?

Mudanças de paradigmas normalmente são traumáticas e demoraram algum tempo para se popularizar, e mesmo para área de Tecnologia da Informação, que é conhecida por sua propensão a inovação, isso não é diferente.

A cultura DevOps tem como mote principal a entrega de valor, que as equipes de desenvolvimento e infraestrutura trabalhem juntas para entregar o produto. Perceba que para trabalhar junto não necessariamente indica que os desenvolvedores devem fazer o trabalho que antes era de infraestrutura e vice-versa. Estamos falando aqui de colaboração, onde ambas subáreas entendem o processo de entrega de serviço como um todo, mas tem seus papéis bem definidos.

Com a derrubada do muro imaginário que existia entre desenvolvedores e infraestrutura, ambos puderam usufruir do melhor que cada área tinham a acrescentar para a outra. Os desenvolvedores puderam ter acesso a provisionar infraestruturas de forma rápida, estável e segura. Os operadores de infraestrutura puderam ter acesso as melhores práticas de desenvolvimento para que ferramentas de provisionamento, gerência de configuração e afins pudessem ser ofertadas como solução para seus trabalhos repetitivos, ou seja, para aqueles trabalhos que fazer de forma artesanal não traziam nenhuma melhora no valor, apenas impactavam negativamente no seu tempo de entrega.

Os trabalhos manuais ainda serão necessários, porém bem menos frequentes.

Os trabalhos manuais ainda serão necessários, porém bem menos frequentes.

Os trabalhos artesanais dependem da atenção, disposição, tempo, humor e habilidade dos artesãos de TI, hoje podem ser feitos de forma automática, altamente parametrizada e até mesmo específica, caso necessário, por softwares de gerenciamento de configuração, provisionamento e afins.

Esses trabalhos não automatizados agora normalmente se restringem, ou deveriam se restringir, a atividades que demandam um cuidado maior, onde a execução manual de fato agrega valor ao produto.

Assim como no caso dos trabalhadores braçais, que no passado eram obrigados a levantar enormes peças pesadas para construir produtos, os técnicos de TI eram forçados a fazer trabalhos repetitivos por falta de uma tecnologia que pudessem lhes auxiliar.

Atenção técnico de infraestrutura! Do mesmo modo, como alguns profissionais braçais se queixavam das máquinas como vetor da falta de emprego, é necessário que os técnicos de TI façam uma autoavaliação do seu trabalho atual e percebam o quão repetitivo e pouco produtivo é seu dia a dia, caso você se encaixe como um artesão para todas as tarefas, talvez o processo industrial na área de gerência de servidores possa tirar seu sono no futuro, sendo assim fica aqui meu conselho: “Estude sobre as novidades do DevOps e caso ainda não saiba desenvolver código, corra, pois em pouco tempo seu chefe lhe cobrará a escrita de um módulo puppet ou receita chef para criação daquele servidor novo que antes você levava quase um dia inteiro para entregar”.

Fonte: http://pt.slideshare.net/randybias/architectures-for-open-and-scalable-clouds

Quer ficar antenado sobre notícias acerca essa nova cultura DevOps? Não deixe de visitar sempre (ou assinar o feed) desse site: http://devops-br.org/



Vídeo – 2º Docker Salvador

14 de Setembro de 2015, 13:06, por PSL-BA Feeds - 0sem comentários ainda

Olha como foi o nosso 2º Docker Salvador! Aconteceu no dia 12 de setembro de 2015, no Raul Hacker Club:

Evento: http://www.meetup.com/Docker-Salvador/events/224476092

Música: Biomythos (Revolution Void): https://www.jamendo.com/en/list/a2534/thread-soul



Puppet 4 e suas melhores práticas

8 de Setembro de 2015, 19:06, por PSL-BA Feeds - 0sem comentários ainda

Com o lançamento do Puppet 4, algumas práticas serão depreciadas e outras são apenas desaconselhadas, sendo assim pretendo nesse texto fazer um resumo delas, afim de indicar quais as melhores práticas para evitar problemas no futuro.

Puppet_Labs_Logo

Esse texto presume que você já sabe usar puppet, caso não saiba nada de puppet,  aconselho que leia um pouco sobre ele antes. Existe um máquina virtual com um ambiente perfeito para aprendizado. Você segue um guia PDF praticando nessa máquina, que foi projetada pra isso. Muito bom. Aconselho!

Vamos as práticas:

Herança de classe

Esse tipo de prática só é aconselhado para módulos do tipo “params”:

Má prática:

class foo {

}

class foo::baz inherits foo {

}

Prática aceitável:

class ssh (

$server = $ssh::params::server,

) inherits ssh::params {

}

class ssh::params {

server => false,

}

Chamada de módulo

Não use mais “import”. Essa função foi depreciada no Puppet 4.

Má prática:

# foo/manifests/init.pp

class foo {

import ‘bar.pp’

}

# foo/manifests/bar.pp

class foo::baz {

}

# foo/manifests/baz.pp

class foo::baz {

}

Qual classe foo::baz será usada?

Boa prática:

Use include ao invés de import

# foo/manifests/init.pp

class foo {

include ‘foo::baz’

}

# foo/manifests/bar.pp

class foo::baz {

}

Agora sabemos exatamente o que será utilizado.

Módulos remotos

Não é aconselhável alterar localmente módulos remotos (Aqueles retirados do forge e outros repositórios externos)! Caso precise modificar algo, use o módulo remoto parametrizável, crie seu próprio módulo com base nesse uso, mas caso seja uma melhoria genérica para todos, submeta sugestões ao upstream. Lembre-se, somos uma comunidade!

Lembre-se  também que você pode precisar atualizar esse módulos depois do upstream!

Variável não local

Pare de usar variável não local sem estabelecimento de escopo! É péssimo para o tratamento de problemas no futuro, pois quando existirem muitos módulos, você não terá ideia de onde esse valor é recebido.

Má prática:

class foo (

$bar = ‘baz’

){

}

class foo::baz {

notify { $bar },

}

Boa prática

class foo (

$bar = ‘baz’

){

}

class foo::baz {

notify { $foo::bar: },

}

Variável de template

Não use variável de template sem escopo, pois algumas delas conflitavam com métodos ruby e a utilização delas sem o “@” como prefixo foi depreciada.

Má prática

key = <%= var %>

Boa prática

key = <%= @var %>

Variável factor

Evite usar variável factor sem escopo superior.

Má prática:

class foo {

notify {“We are on OS: $operatingsystem”:}

}

Boa prática

class foo {

notify {“We are on OS: ${::operatingsystem}”:}

}

A sintaxe “::” especifica que a variável está no escopo superior, assim evitando que alguma variável local de um outro módulo possa afetar o seu valor.

Validação de valor

Sempre faça validação de valor da variáveis, pois dados errados podem impactar seu ambiente.

Má prática

class foo (

$server = hiera(‘server’,’localhost’)

){

notify {“We will use Server: ${server}”:}

}

Use a função “validate_string” do módulo stdlib para verificar se o valor recebido na variável de fato é uma string.

Boa prática

class foo (

$server = hiera(‘server’,’localhost’)

){

validate_string($server)

notify {“We will use Server: ${server}”:}

}

Caso tenha outras sugestões, coloque como comentário! :)

Esse texto foi feito com base nessa apresentação. A minha ideia foi descrever as melhores práticas e explicar um pouco sobre elas.



Vídeo – Palestra sobre Docker Básico

3 de Setembro de 2015, 23:29, por PSL-BA Feeds - 0sem comentários ainda

Realizei uma palestra no Calango Hacker Club, num evento denominado “Docker MeetUp Brasília”. Após algumas edições, ela ficou assim:



Coopercuc e Experimento Beer se unem para criar cerveja artesanal inédita com umbu

2 de Setembro de 2015, 15:02, por PSL-BA Feeds - 0sem comentários ainda

Sim, temos novidade no 7º Festival do Umbu: árvore da caatinga que deu de beber a Antônio Conselheiro agora dá cerveja também! Batizada de Saison Umbu, a bebida é resultado da associação de uma cooperativa baiana de agricultura familiar e uma empresa mineira especializada em cervejas com frutas e especiarias brasileiras cultivadas em comunidades nativas. A cerveja foi lançada nos dias 6 e 7 de março/2015, na sétima edição do Festival Regional do Umbu, na cidade de Uauá, na Bahia, e seus fabricantes pretendem distribuí-la em todo o país, além de destinar uma parte à exportação.

O umbu, de polpa suculenta e aromática, ganhou seu nome do tupi-guarani ymbu, “árvore que dá de beber”, por sua capacidade de armazenar água no ambiente árido da caatinga. Reconhecida nesse batismo pelos indígenas, a generosidade do umbuzeiro chega, no século XXI, aos apreciadores de cerveja, pelas artes da economia criativa.

Uauá é uma pequena cidade no Norte baiano, palco da primeira batalha da Guerra de Canudos. Antônio Conselheiro, líder de Canudos, socorria-se das reservas de água nas grossas raízes do umbuzeiro, para resistir ao cerco das tropas federais. Hoje, a Cooperativa Agropecuária Familiar de Canudos, Uauá e Curaçá (Coopercuc), exporta produtos feitos com umbu para a Europa, onde fazem sucesso nas redes de comércio justo e em feiras gastronômicas promovidas pelo Slow Food, movimento internacional de valorização da gastronomia e defesa da sociobiodiversidade.

O trabalho de beneficiamento do umbu e a divulgação dos seus produtos teve grande impulso com o apoio do Slow Food, que deu suporte à criação de minifábricas para processamento do fruto no sertão da Bahia, fortalecendo o trabalho realizado pelas comunidades integrantes da Coopercuc. O umbu é uma das Fortalezas do Slow Food no Brasil e essas ações de apoio e suporte acontecem para defender a espécie de potenciais riscos de desaparecimento.

A Coopercuc decidiu ampliar a linha de produtos Gravetero e experimentar a fruta no mercado das cervejas artesanais. Os escolhidos para a criação da receita e desenvolvimento da bebida foram os cervejeiros da Experimento Beer, de Belo Horizonte, Minas Gerais, fundada com a missão de criar cervejas especiais que valorizam a origem e a qualidade dos ingredientes nativos dos diversos biomas brasileiros. Para isso a Experimento Beer atua em parceria com cooperativas e comunidades de agricultura familiar e ecoextrativismo de todas as regiões do Brasil.

Integrantes das cooperativas Coopercuc (BA), Agreco (SC) e Coocaram (RO) visitam a sede da Experimento Beer (MG) e degustam a cerveja artesanal Saison Umbu

Integrantes das cooperativas Coopercuc (BA), Agreco (SC) e Coocaram (RO) visitam a Experimento Beer (MG), celebram parcerias e brindam com a primeira edição da cerveja artesanal Saison Umbu

Quem alinhavou a parceria da Experimento Beer com a Coopercuc foi o premiado estúdio DoDesign-s, escritório especializado em design e marketing que trabalha com comunidades no Brasil e na América do Sul desde 2003. A articulação da cervejaria com outras cooperativas seguem o mesmo caminho, tendo as costuras feitas pela DoDesign-s.

A associação da Coopercuc com a Experimento Beer é um exemplo do que vem sendo conhecido em todo mundo como “economia criativa”, termo criado pelo britânico John Hawkins para a capacidade de traduzir novas ideias e conceitos em produtos inovadores. Olhar sob um ângulo diferente e inovador, práticas às vezes milenares – como a preparação de alimentos e bebidas – é uma das formas encontradas pela economia criativa para trazer ao mundo outros tipos de produtos, de meios de produção e de consumo.



DebConf15, testing debian packages, and packaging the free software web

30 de Agosto de 2015, 19:12, por PSL-BA Feeds - 0sem comentários ainda

This is my August update, and by the far the coolest thing in it is Debconf.

Debconf15

I don’t get tired of saying it is the best conference I ever attended. First it’s a mix of meeting both new people and old friends, having the chance to chat with people whose work you admire but never had a chance to meet before. Second, it’s always quality time: an informal environment, interesting and constructive presentations and discussions.

This year the venue was again very nice. Another thing that was very nice was having so many kids and families. This was no coincidence, since this was the first DebConf in which there was organized childcare. As the community gets older, this a very good way of keeping those who start having kids from being alienated from the community. Of course, not being a parent yet I have no idea how actually hard is to bring small kids to a conference like DebConf. ;-)

I presented two talks:

  • Tutorial: Functional Testing of Debian packages, where I introduced the basic concepts of DEP-8/autopkgtest, and went over several examples from my packages giving tips and tricks on how to write functional tests for Debian packages.
  • Packaging the Free Software Web for the end user, where I presented the motivation for, and the current state of shak, a project I am working on to make it trivial for end users to install server side applications in Debian. I spent quite some hacking time during DebConf finishing a prototype of the shak web interface, which was demonstrated live in the talk (of course, as usual with live demos, not everything worked :-)).

There was also the now traditional Ruby BoF, where discussed the state and future of the Ruby ecosystem in Debian; and an in promptu Ruby packaging workshop where we introduced the basics of packaging in general, and Ruby packaging specifically.

Besides shak, I was able to hack on a few cool things during DebConf:

  • debci has been updated with a first version of the code to produce britney hints files that block packages that fail their tests from migrating to testing. There are some issues to be sorted out together with the release team to make sure we don’t block packages unecessarily, e.g. we don’t want to block packages that never passed their test suite — most the test suite, and not the package, is broken.
  • while hacking I ended up updating jquery to the newest version in the 1.x series, and in fact adopting it I guess. This allowed emeto drop the embedded jquery copy I used to have in the shak repository, and since then I was able to improve the build to produce an output that is identical, except for a build timestamp inside a comment and a few empty lines, to the one produced by upstream, without using grunt (.

Miscellaneous updates



Instalando o docker host no Windows Server

30 de Agosto de 2015, 10:07, por PSL-BA Feeds - 0sem comentários ainda

Já tínhamos divulgado no lançamento da versão 1.6 que o cliente Docker já estava disponível para instalação no Windows, agora vamos demonstrar que é possível instalar o docker host no Windows Server 16 TP3.

CM7-jobWUAAoDbZ.jpg_large-300x200

O ambiente ainda está em beta, tanto o Windows Server 16 TP3, quanto a compatibilidade do Docker para Windows. A função push por exemplo ainda não está habilitada.

Mesmo sendo beta, acho que vale a pena testar pra ao menos entender como funciona.

Caso você use GNU/Linux e não queira instalar o Windows no seu disco rígido, você pode usar o virtualbox pra isso, mas não se esqueça de instalar a versão mais nova dele. Eu precisei instalar o VirtualBox da Sun na versão 5.0.2.

Primeiro baixe o CD do Windows Server 16 TP3.

Depois crie uma nova máquina virtual do tipo “Windows” e versão “Other Windows 64-bit”

Monte a ISO que acabou de baixar e inicie a instalação.

Quando solicitar qual o tipo de instalação, instale a que não requer experiência de usuário.

A instalação será bem rápida. (Por mais incrível que pareça). Ele solicitará a mudança de senha, para alternar entre campos de senha use “tab” e não “enter”.

Quando lhe for concedido acesso ao console digite:

powershell

Depois digite:

wget -uri http://aka.ms/setupcontainers -OutFile C:\ContainerSetup.ps1

Após baixar o script, digite o comando abaixo para instalar o docker:

C:\.\ContainerSetup.ps1

Ele reiniciará sua máquina virtual e demorará um pouco nessa tela (Caso sua internet seja tão lenta quanto a minha):

Seleção_006

Essa é a tela que demonstra que o Docker foi instalado com sucesso:

Seleção_007

Obs: Caso apresente um erro de “timeout” tente o comando novamente :) Isso aconteceu comigo e logo em seguida funcionou tranquilamente. Apenas demorou um pouco

Para iniciar uma máquina é muito simples

docker.exe run -it windowsservercore cmd.exe

Infelizmente ainda não é possível executar containers do GNU/Linux no Docker Host Windows, nem vice-versa, porem é possível usar os comandos docker e Dockerfile da mesma forma, apenas usando os as chamadas de comandos “RUN” equivalentes com cada sistema operacional.

O Docker funciona no Windows de forma semelhante ao GNU/Linux, ou seja, a promessa é que ele execute os containers de forma isolada também.

Divirta-se!

Fonte:

http://www.virtualclouds.info/?p=3393

https://blog.docker.com/2015/08/tp-docker-engine-windows-server-2016/

 



Lançamento do Docker 1.8

25 de Agosto de 2015, 2:05, por PSL-BA Feeds - 0sem comentários ainda

Não para de ter novidade no Docker! Mais um lançamento e muitas novidades.

Docker Content Trust

Agora é possínotaryvel assinar as imagens com sua chave privada antes de enviar para nuvem, com isso é possível validar as imagens e evitar que aconteçam fraudes no meio. Isso torna a solução como um todo bem mais segura.

Quer ler um pouco mais sobre o assunto? Veja esse link.

 

 

Docker Toolbox

Novo pacote de instalação para Mac OS X e Windows. Que conta com Docker client, Machine, Compose(Esse só para Max OS X) e virtualbox. Tudo que você precisa.

Mais informações sobre o ToolBox? Leia aqui.

toolboxDocker Engine 1.8

Essa nova versão da engine do Docker trás as novidades mais impactantes desse lançamento! Lembra que no lançamento que divulguei aqui, foi informado que o Docker tinha suporte a logs? Então, agora esse suporte aumentou, é suportado GELF e Fluentd.

Agora está estável a possibilidade de volumes de empresas terceiras! Tal como Blockbridge, Ceph, ClusterHQ, EMC e Portworx.

O binário docker agora tem suporte a enviar arquivos para o container:

docker cp foo.txt mycontainer:/foo.txt

O parâmetro “ps” agora tem suporte a modificação de formato “–format”.

E por fim, agora as configurações de cliente docker são armazenadas em ~/.docker. No caso de precisar executar múltiplas configurações em uma só máquina, você pode usar o parâmetro –config ou a variável de ambiente DOCKER_CONFIG.



Como adicionar virtualhost aos logs do Varnish

15 de Agosto de 2015, 3:00, por PSL-BA Feeds - 0sem comentários ainda

Clone trooper segurando caneta

Há algum tempo atrás escrevi um post mostrando como configurar o Varnish para escrever logs num formato modificado do Combined Log Format do Apache, esta modificação foi feita para adicionar o virtualhost %v no início de cada registro do log e na sintaxe do Apache se parece com o seguinte:

LogFormat "%v %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined

Isto foi feito com o varnishncsa-vhost, um script que faz o Varnish armazenar logs seguindo o formato acima, este script deveria estar obsoleto já que versões recentes do Varnish suportam customizar o formato dos logs através da opção -F, mas um problema no pacote Debian impede de fazer isto do “jeito certo”™.

Este problema foi citado em Workaround for broken varnishncsa logging due to shell mishandling of spaces in LOG_FORMAT variables e algumas soluções foram sugeridas, mas todas elas tem um “ar” de armengue. O problema já foi relatado no Debian em #657449 varnishncsa: please add a config option to allow a custom logging format (patch) mas ainda não foi solucionado.

Porque estou contando esse “blá blá blá”?

Recentemente precisei alterar o formato dos logs do Varnish em um servidor de produção e acabei utilizando o varnishncsa-vhost novamente e ele funcionou muito bem, isto me salvou dos sedutores “armengues que quebram na próxima atualização”.

Então se isto for útil para você de alguma forma utilize o repositório abaixo, eu subi uma nova versão do pacote Debian do varnishncsa-vhost lá:

deb http://debian.joenio.me unstable/


c3video for debconf #5

14 de Agosto de 2015, 15:13, por PSL-BA Feeds - 0sem comentários ainda

This is a follow-up to my previous post related the DebConf videoteam using a new software stack for the next conferences: http://acaia.ca/~tiago/posts/c3video-for-dc-take-4/.

This is about the encoding step from C3TT, mostly done by the script named D-encoding.

We can have many different encoding templates in the system. They're XSLT files which will generate the XML needed to create the local encoding commands. We can have more than one encoding template assigned for a conference.

/images/c3tt_encoding.png

XSLT encoding templates

A general comment: each meta ticket (say, the original ticket with meta info about the talk) will generate two children tickets over time, a recording one and a encoding one, with their own states. If things go wrong, a ingest ticket is created. More details can be checked here.

/images/c3tt_children_tickets.png

Children tickets

So I've got the proper encoded files in my Processing.Path.Output directory. The ticket is marked as encoded by the script. There's also a postencoding step, executed by E-postencoding. As I could understand, it's intended to be a general post-processing hook for encoded files. For instance, it can produces an audio file and make it available on Auphonic service. As we won't use that, we may want to set the property Processing.Auphonic.Enable to no.

The next step starts from the operator side. Just going to the Releasing tab in the web interface, choosing the ticket to check and doing a quick review in the encoded file:

/images/c3tt_releasing.png

Releasing tab

Then, if everything looks fine, click Everthing's fine:

/images/c3tt_check.png

Check encoded file

From this point the ticket will be marked as checked and the next script (F-postprocessing) will take care of pushing the video(s)/audio(s) to the target place, as defined by Publishing.UploadTarget. I had to set myself the encoding template property EncodingProfile.Extension. We can optionally set Publishing.UploadOptions. (keep that in mind, seems not documented elsewhere)

So I have now the first DebCamp encoded video file uploaded to an external host, entirely processed using the C3TT software stack. We may also want to use a very last script to release the videos (eg. as torrents, to different mirrors and other onlive services) if needed. This is script-G-release.pl, which unlike others, won't be run by the screen UI in the sequence. It has some parameters hardcoded on it, although code is very clear and ready to be hacked. It'll also mark the ticket as Released.

/images/c3tt_released.png

Released!

That's all for now! In summary: I've been able to install and set C3TT up during a few days in DebCamp, and will be playing with it during DebConf. In case things go well we'll probably be using this system as our video processing environment for the next events.

We can access most CCC VoC software from https://github.com/voc. By having a look at what they're developing I feel that we (DebConf and CCC) share quite the same technical needs. And most important, the same spirit of community work for bringing part of the conference to those unable to attend.

DebCamp was warm!



c3video for debconf #4

13 de Agosto de 2015, 14:23, por PSL-BA Feeds - 0sem comentários ainda

This is a follow-up to my previous post related the DebConf videoteam using a new software stack for the next conferences: http://acaia.ca/~tiago/posts/c3video-for-dc-take-3/.

As mentioned before, C3TT provides a set of scripts which will work in background for most reviewing and video processing tasks. The first will just check if the talk is done and mark the related ticket as recorded.

The second script, B-mount4cut, does a nice job by mounting a custom fuse filesystem providing the following files (more detailed explanation here:

uncut.dv: full original dv file used as input file for the final trimming.

project.kdenlive: Kdenlive project file for the operator. Once it's saved with the trim marks, fuse-vdv will do a parse on it and use the marks for cutting.

cut.dv: contains only the frames between the trim marks extracted from project.kdenlive.

cut-complete.dv: contains the frames between the trim marks extracted from project.kdenlive, plus a prepended intro and an appended video. Paths for these files should be previously set in the web interface as properties Processing.Path.Outro and Processing.Path.Intros. The outro file can be, for instance, an appended video file with a common thanks for sponsors. The intro files is usually an individual frame for each talk, being a colorful presentation poster. We can also set the intro duration in the Processing.Duration.Intro property.

cut.wav: demuxed audio from cut.dv

Note: in fact, fuse-vdv provides virtual video files as a concatenation of original input files, so avoiding copying large and redundant data. Ideally, these fuse mountpoints will be shared over the network for operators via glusterFS, but I'll skip that for now.

After adding the trimming marks and saving the project using Kdenlive, the operator should go to the web interface and mark the ticket as cut:

/images/c3tt_cut.png

Mark ticket as cut

Note: I've been able to do the marks in Kdenlive using double-click in the video, then editing the crop start/end options. The buttons "[" and "]" didn't work in my Kdenlive version for some unknown reason.

In the current DebConf video environment I had to make a link builder for translating the path/file names to the C3TT format. So, for the Amsterdam/2015-08-13/09:57:02.dv we should have a amsterdam-2015.08.13-09_57_02.dv symlink.

From now the system will delivery the next tasks to C-cut-postprocessor script. This script will just check the marks from the Kdenlive project file and do the cutting job. So far it has worked perfectly here for the first video sessions in DebCamp, with zero hack in the original code, wow!

Next post will be about the encoding script, named D-encoding.



c3video for debconf #3

12 de Agosto de 2015, 22:07, por PSL-BA Feeds - 0sem comentários ainda

This is a follow-up to my previous post related the DebConf videoteam using a new software stack for the next conferences: http://acaia.ca/~tiago/posts/c3video-for-dc-take-2/.

An outdated documentation for current subject is available at https://wiki.fem.tu-ilmenau.de/streaming/projekte/c3/28c3/crs/pipeline. Although the system may work differently nowadays, the basic idea remains the same. A newer, but incomplete documentation can be found in https://repository.fem.tu-ilmenau.de/trac/c3tt/wiki. Btw, CCC people from #voc at hackint.eu have been very kind and supportive.

I've set an instance of C3TT for DebConf15 in http://c3tt.acaia.ca/. If you want to play with it just ping me in #debconf-video at oftc. As you can see, we can keep a single external C3TT server for all Debian events, without much work left to the local side, doesn't it sound amazing?

Setting a new conference

Go to Projects, then Create.

In the project area we'll need to import the Tickets. Tickets will come from the schedule file, which is a XML as generated from frab. With a minor hack we've been able to make the schedule XML from DebConf Summit quite compatible to it (kudos cate!):

/images/import_tickets.png

Importing tickets

By importing the schedule from https://summit.debconf.org/debconf15.xml we'll be asked from which rooms we want to import the events. Usually those that have video coverage will be selected:

/images/chosing_rooms.png

Choosing rooms

Then, we may want to exclude some talks that we won't provide video:

/images/chosing_talks.png

Choosing talks

We're also required to adjust some Properties for a given conference. An example with some explanation of these properties is availabe at https://c3voc.de/wiki/c3tracker. For my initial tests the ones below seem to be enough:

/images/c3tt_properties.png

Setting properties

The backend: basic understand

The screen UI mentioned above will run a set of scripts in background which will automate most of the tasks, preparing videos for cutting to deploying them in different online services.

Tab 0: A-recording-scheduler

Each 30 seconds it will check if there's any ticket in the state scheduled or recording. It's based in the start/end datetime of the talk, so the ticket will be kept as scheduled (current < talk start), or marked as recording (start => current =< end) or recorded (current > end).

Tab 1: B-mount4cut

Each 30 seconds it will check if there's any ticket in the state recorded. That means the talk is already finished, and the raw video file is available in the path which has previously been set as a property (Path.Capture) in the web interface.

For each ticket marked as recorded it will try to find the related video file in the capture path. The file format should be <room>-YYYY-MM-DD_HH-MM-SS.<extension>. The script will then use fuse-vdv to create a custom filesystem with some needed files for human interaction (fancy stuff!).

Here's an example of talks in a room called Heidelberg, after being recorded and auto-mounted by the B-mount4cut script:

/images/c3tt_fuse.png

Mounting custom fuse FS

The human interaction is just a short review process using Kdenlive. The reviewers will access these files via a glusterFS network share. There's even a Debian Virtualbox image provided for that, including all the necessary tools. I'm going into this right now and will report what I get in the next hours.

Hopefully the following scripts will also be covered, very soon-ish :)

Tab 2: C-cut-postprocessor

Tab 3: D-encoding

Tab 4: E-postencoding (auphonic)

Tab 5: F-postprocessing(upload)

DebCamp is fun.



c3video for debconf #2

11 de Agosto de 2015, 19:33, por PSL-BA Feeds - 0sem comentários ainda

This is a follow-up to my previous post related the DebConf videoteam using a new software stack for the next conferences: http://acaia.ca/~tiago/posts/c3video-for-dc-take-1/.

Installing C3TT scripts

There's a video (in German) which gives an idea about how the C3TT works: https://www.youtube.com/watch?v=K-KHbAcTo9I

It basically gives the volunteers a web interface to cut and review the recordings, wich communicates with a set of scripts running in background which will automate some tasks.

"Installing" the set of scripts is just a matter of placing them in a common directory and installing some Perl dependencies, mostly which are already packaged for Debian.

First check it out from the svn repository (fun fact: the web interface is coded in php in a git repository, the scripts are mostly written in perl with a little of bash, in a subversion repository. Both the conference and media system is are in ruby :)

$ svn co https://subversion.fem.tu-ilmenau.de/repository/cccongress
$ mkdir /opt/crs; mv cccongress/trunk/tools /opt/crs/

A few libraries required:

$ apt-get install libboolean-perl libmath-round-perl libdatetime-perl libwww-curl-perl libconfig-inifiles-perl libxml-simple-perl
$ perl -MCPAN -e 'install XML::RPC::Fast'

In the web tracker create a project, go to all projects => workers and create a worker (I'll try to explain it later). Go edit the worker and we'll see the token and secret that should be used in the scripts to talk to the interface.

cd  /opt/crs/tools/tracker3.0

Create a file tracker-profile.sh with the follow lines (using our correct values):

export CRS_TRACKER=http://localhost/rpc
export CRS_TOKEN=2q24M7LW4Rk31YNW4tWKv8koNvyM3V4s
export CRS_SECRET=5j8SyCS35W2SBk2XIM4IWeDUqF9agG1x

We also need to build and install the fuse-vdv package from trunk/tools (if working with dv files, otherwise fuse-ts package).

Next step is run the scripts. Fortunatelly a nice UI has been done using screen with multiple tabs, which can be alternated using a <Ctrl+a> <number> combination.

cd  /opt/crs/tools/tracker3.0 && /start-screenrc-dv.sh

We'll get the following:

/images/screen-c3tt-dv.png

Screen tabs from C3TT

In a next post I'll try to explain a bit of how the web system work together with the scripts and how to do a basic setup for a real conference. I hope to get there soon!



Tags deste artigo: nordeste psl bahia