Docker on Bluemix with services

Docker on Bluemix with automated full-stack deploys and delivery pipelines

Introduction

This document explains working examples on how to use Bluemix platform advanced features such as:

  • Docker on Bluemix, integrated with Bluemix APIs and middleware
  • Full stack automated and unattended deployments with DevOps Services Pipeline, including Docker
  • Full stack automated and unattended deployments with cf command line interface, including Docker

For this, I’ll use the following source code structure:

github.com/avibrazil/bluemix-docker-kickstart

The source code currently brings to life (as an example), integrated with some Bluemix services and Docker infrastructure, a PHP application (the WordPress popular blogging platform), but it could be any Python, Java, Ruby etc app.

This is how full stack app deployments should be

Before we start: understand Bluemix 3 pillars

I feel it is important to position what Bluemix really is and which of its parts we are going to use. Bluemix is composed of 3 different things:

  1. Bluemix is a hosting environment to run any type of web app or web service. This is the only function provided by the CloudFoundry Open Source project, which is an advanced PaaS that lets you provision and de-provision runtimes (Java, Python, Node etc), libraries and services to be used by your app. These operations can be triggered through the Bluemix.net portal or by the cf command from your laptop. IBM has extended this part of Bluemix with functions not currently available on CloudFoundry, notably the capability of executing regular VMs and Docker containers.
  2. Bluemix provides pre-installed libraries, APIs and middleware. IBM is constantly adding functions to the Bluemix marketplace, such as cognitive computing APIs in the Watson family, data processing middleware such as Spark and dashDB, or even IoT and Blockchain-related tools. These are high value components that can add a bit of magic to your app. Many of those are Open Source.
  3. DevOps Services. Accessible from hub.jazz.net, it provides:
    • Public and private collaborative Git repositories.
    • UI to build, manage and execute the app delivery pipeline, which does everything needed to transform your pure source code into a final running application.
    • The Track & Plan module, based on Rational Team Concert, to let your team mates and clients exchange activities and control project execution.

This tutorial will dive into #1 and some parts of #3, while using some services from #2.

The architecture of our app

Docker on Bluemix with services

When fully provisioned, the entire architecture will look like this. Several Bluemix services (MySQL, Object store) packaged into a CloudFoundry App (bridge app) that serves some Docker containers that in turns do the real work. Credentials to access those services will be automatically provided to the containers as environment variables (VCAP_SERVICES).

Structure of Source Code

The example source code repo contains boilerplate code that is intentionally generic and clean so you can easily fork, add and modify it to fit your needs. Here is what it contains:

bridge-app folder and manifest.yml file
The CloudFoundry manifest.yml that defines app name, dependencies and other characteristics to deploy the app contents under bridge-app.
containers
Each directory contains a Dockerfile and other files to create Docker containers. In this tutorial we’ll use only the phpinfo and wordpress directories, but there are some other useful examples you can use.
.bluemix folder
When this code repository is imported into Bluemix via the “Deploy to Bluemix” button, metadata in here will be used to set up your development environment under DevOps Services.
admin folder
Random shell scripts, specially used for deployments.

Watch the deployment

The easiest way to deploy the app is through DevOps Services:

  1. Click to deploy

    Deploy to Bluemix

  2. Provide a unique name to your copy of the app, also select the target Bluemix space
    Deploy to Bluemix screen
  3. Go to DevOps Services ➡ find your project clone ➡ select Build & Deploy tab and watch
    Full Delivery Pipeline on Bluemix

Under the hood: understand the app deployment in 2 strategies

Conceptually, these are the things you need to do to fully deploy an app with Docker on Bluemix:

  1. Instantiate external services needed by your app, such as databases, APIs etc.
  2. Create a CloudFoundry app to bind those services so you can handle them all as one block.
  3. Create the Docker images your app needs and register them on your Bluemix private Docker Registry (equivalent to the public Docker Hub).
  4. Instantiate your images in executable Docker containers, connecting them to your backend services through the CloudFoundry app.

The idea is to encapsulate all these steps in code so deployments can be done entirely unattended. Its what I call brainless 1-click deployment. There are 2 ways to do that:

  • A regular shell script that extensively uses the cf command. This is the admin/deploy script in our code.
  • An in-code delivery pipeline that can be executed by Bluemix DevOps Services. This is the .bluemix/pipeline.yml file.

From here, we will detail each of these steps both as commands (on the script) and as stages of the pipeline.

  1. Instantiation of external services needed by the app…

    I used the cf marketplace command to find the service names and plans available. ClearDB provides MySQL as a service. And just as an example, I’ll provision an additional Object Storage service. Note the similarities between both methods.

    Deployment Script
    cf create-service \
      cleardb \
      spark \
      bridge-app-database;
    
    cf create-service \
      Object-Storage \
      Free \
      bridge-app-object-store;
    Delivery Pipeline

    When you deploy your app to Bluemix, DevOps Services will read your manifest.yml and automatically provision whatever is under the declared-services block. In our case:

    declared-services:
      bridge-app-database:
        label: cleardb
        plan: spark
      bridge-app-object-store:
        label: Object-Storage
        plan: Free
    
  2. Creation of an empty CloudFoundry app to hold together these services

    The manifest.yml file has all the details about our CF app. Name, size, CF build pack to use, dependencies (as the ones instantiated in previous stage). So a plain cf push will use it and do the job. Since this app is just a bridge between our containers and the services, we’ll use minimum resources and the minimum noop-buildpack. After this stage you’ll be able to see the app running on your Bluemix console.

    Deployment Script
    Delivery Pipeline
    Stage named “➊ Deploy CF bridge app” simply calls cf push;
  3. Creation of Docker images

    The heavy lifting here is done by the Dockerfiles. We’ll use base CentOS images with official packages only in an attempt to use best practices. See phpinfo and wordpress Dockerfiles to understand how I improved a basic OS to become what I need.

    The cf ic command is basically a clone of the well known docker command, but pre-configured to use Bluemix Docker infrastructure. There is simple documentation to install the IBM Containers plugin to cf.

    Deployment Script
    cf ic build \
       -t phpinfo_image \
       containers/phpinfo/;
    
    cf ic build \
       -t wordpress_image \
       containers/wordpress/;
    
    
    Delivery Pipeline

    Stages handling this are “➋ Build phpinfo Container” and “➍ Build wordpress Container”.

    Open these stages and note how image names are set.

    After this stage, you can query your Bluemix private Docker Registry and see the images there. Like this:

    $ cf ic images
    REPOSITORY                                          TAG     IMAGE ID      CREATED     SIZE
    registry.ng.bluemix.net/avibrazil/phpinfo_image     latest  69d78b3ce0df  3 days ago  104.2 MB
    registry.ng.bluemix.net/avibrazil/wordpress_image   latest  a801735fae08  3 days ago  117.2 MB
    

    A Docker image is not yet a container. A Docker container is an image that is being executed.

  4. Run containers integrated with previously created bridge app

    To make our tutorial richer, we’ll run 2 sets of containers:

    1. The phpinfo one, just to see how Bluemix gives us an integrated environment
      Deployment Script
      cf ic run \
         -P \
         --env 'CCS_BIND_APP=bridge-app-name' \
         --name phpinfo_instance \
         registry.ng.bluemix.net/avibrazil/phpinfo_image;
      
      
      IP=`cf ic ip request | 
          grep "IP address" | 
          sed -e "s/.* \"\(.*\)\" .*/\1/"`;
      
      
      cf ic ip bind $IP phpinfo_instance;
      Delivery Pipeline

      Equivalent stage is “➌ Deploy phpinfo Container”.

      Open this stage and note how some environment variables are defined, specially the BIND_TO.

      Bluemix DevOps Services default scripts use these environment variables to correctly deploy the containers.

      The CCS_BIND_APP on the script and BIND_TO on the pipeline are key here. Their mission is to make the bridge-app’s VCAP_SERVICES available to this container as environment variables.

      In CloudFoundry, VCAP_SERVICES is an environment variable containing a JSON document with all credentials needed to actually access the app’s provisioned APIs, middleware and services, such as host names, users and passwords. See an example below.

    2. A container group with 2 highly available, monitored and balanced identical wordpress containers
      Deployment Script
      cf ic group create \
         -P \
         --env 'CCS_BIND_APP=bridge-app-name' \
         --auto \
         --desired 2 \
         --name wordpress_group_instance \
         registry.ng.bluemix.net/avibrazil/wordpress_image
      
      
      cf ic route map \
         --hostname some-name-wordpress \
         --domain $DOMAIN \
         wordpress_group_instance

      The cf ic group create creates a container group and runs them at once.

      The cf ic route map command configures Bluemix load balancer to capture traffic to http://some-name-wordpress.mybluemix.net and route it to the wordpress_group_instance container group.

      Delivery Pipeline

      Equivalent stage is “➎ Deploy wordpress Container Group”.

      Look in this stage’s Environment Properties how I’m configuring container group.

      I had to manually modify the standard deployment script, disabling deploycontainer and enabling deploygroup.

See the results

At this point, WordPress (the app that we deployed) is up and running inside a Docker container, and already using the ClearDB MySQL database provided by Bluemix. Access the URL of your wordpress container group and you will see this:

WordPress on Docker with Bluemix

Bluemix dashboard also shows the components running:

Bluemix dashboard with apps and containers

But the most interesting evidence you can see accessing the phpinfo container URL or IP. Scroll to the environment variables section to see all services credentials available as environment variables from VCAP_SERVICES:

Bluemix VCAP_SERVICES as seen by a Docker container

I use these credentials to configure WordPress while building the Dockerfile, so it can find its database when executing:

.
.
.
RUN yum -y install epel-release;\
	yum -y install wordpress patch;\
	yum clean all;\
	sed -i '\
		         s/.localhost./getenv("VCAP_SERVICES_CLEARDB_0_CREDENTIALS_HOSTNAME")/ ; \
		s/.database_name_here./getenv("VCAP_SERVICES_CLEARDB_0_CREDENTIALS_NAME")/     ; \
		     s/.username_here./getenv("VCAP_SERVICES_CLEARDB_0_CREDENTIALS_USERNAME")/ ; \
		     s/.password_here./getenv("VCAP_SERVICES_CLEARDB_0_CREDENTIALS_PASSWORD")/ ; \
	' /etc/wordpress/wp-config.php;\
	cd /etc/httpd/conf.d; patch < /tmp/wordpress.conf.patch;\
	rm /tmp/wordpress.conf.patch
.
.
.

So I’m using sed, the text-editor-as-a-command, to edit WordPress configuration file (/etc/wordpress/wp-config.php) and change some patterns there into appropriate getenv() calls to grab credentials provided by VCAP_SERVICES.

Dockerfile best practices

The containers folder in the source code presents one folder per image, each is an example of different Dockerfiles. We use only the wordpress and phpinfo ones here. But I’d like to highlight some best practices.

A Dockerfile is a script that defines how a container image should be built. A container image is very similar to a VM image, the difference is more related to the file formats that they are stored. VMs uses QCOW, VMDK etc while Docker uses layered filesystem images. From the application installation perspective, all the rest is almost the same. But only only Docker and its Dockerfile provides a super easy way to describe how to prepare an image focusing mostly only on your application. The only way to automate this process on the old Virtual Machine universe is through techniques such as Red Hat’s kickstart. This automated OS installation aspect of Dockerfiles might seem obscure or unimportant but is actually the core of what makes viable a modern DevOps culture.

  1. Being a build script, it starts from a base parent image, defined by the FROM command. We used a plain official CentOS image as a starting point. You must select very carefully your parent images, in the same way you select the Linux distribution for your company. You should consider who maintains the base image, it should be well maintained.
  2. Avoid creating images manually, as running a base container, issuing commands manually and then committing it. All logic to prepare the image should be scripted in your Dockerfile.
  3. In case complex file editing is required, capture edits in patches and use the patch command in your Dockerfile, as I did on wordpress Dockerfile.
    To create a patch:

    diff -Naur configfile.txt.org configfile.txt > configfile.patch

    Then see the wordpress Dockerfile to understand how to apply it.

  4. Always that possible, use official distribution packages instead of downloading libraries (.zip or .tar.gz) from the Internet. In the wordpress Dockerfile I enabled the official EPEL repository so I can install WordPress with YUM. Same happens on the Django and NGINX Dockerfiles. Also note how I don’t have to worry about installing PHP and MySQL client libraries – they get installed automatically when YUM installs wordpress package, because PHP and MySQL are dependencies.

When Docker on Bluemix is useful

CloudFoundry (the execution environment behind Bluemix) has its own Open Source container technology called Warden. And CloudFoundry’s Dockerfile-equivalent is called Buildpack. Just to illustrate, here is a WordPress buildpack for CloudFoundry and Bluemix.

To chose to go with Docker in some parts of your application means to give up some native integrations and facilities naturally and automatically provided by Bluemix. With Docker you’ll have to control and manage some more things for yourself. So go with Docker, instead of a buildpack, if:

  • If you need portability, you need to move your runtimes in and out Bluemix/CloudFoundry.
  • If a buildpack you need is less well maintained then the equivalent Linux distribution package. Or you need a reliable and supported source of pre-packaged software in a way just a major Linux distribution can provide.
  • If you are not ready to learn how to use and configure a complex buildpack, like the Python one, when you are already proficient on your favorite distribution’s Python packaging.
  • If you need Apache HTTPD advanced features as mod_rewrite, mod_autoindex or mod_dav.
  • If you simply need more control over your runtimes.

The best balance is to use Bluemix services/APIs/middleware and native buildpacks/runtimes whenever possible, and go with Docker on specific situations. Leveraging the integration that Docker on Bluemix provides.

Receita de Pimentões Assados

pimentoes-assadosIngredientes

  • Pimentões vermelhos e verdes
  • Sal, vinagre, açúcar (ou adoçante)
  • Azeite de oliva

Preparo

  1. Asse os pimentões diretamente no fogo da boca do fogão até queimarem em todos os lugares.
  2. Insira-os em sacos plásticos fechados até esfriarem. Continuarão cozinhando dentro do saco com seu próprio calor.
  3. Remova a fina pele dos pimentões debaixo de água corrente da torneira e sobre uma peneira grande, até ficarem limpos. Remova também as sementes.
  4. Corte ao meio de forma que se tire 2 “bifes” de cada pimentão.
  5. Tempere a gosto e misture com sal, vinagre, azeite de oliva e um pouco de açúcar ou adoçante.

Ambiente Perfeito de Trabalho

O mercado de trabalho tende a dar menos valor a conhecimento acumulado (técnico ou em forma de aptidão) e mais valor à capacidade de assumir responsabilidades e entregar. O ideal é ter um bom equilibro entre esses 2 pilares: conhecimento e responsabilidade.

A contratação é geralmente feita com base na experiência, conhecimento demonstrados, mas a escalada na carreira dentro de uma mesma empresa depende mais do 2º pilar, o da responsabilidade.

Ambiente perfeito de trabalho é aquele onde o profissional usa bem seu conhecimento em projetos que lhe promovem envolvimento, talvez até emocional, onde a responsabilidade sobre eles acontece de forma natural.

Publicado também no LinkedIn.

US bank account for non-US citizens

I’ve searched for a long time and finally found a US regular bank that will let me open a free checking account. It is BBVA Compass bank.

All these services are free: ATM withdraw and deposit (BBVA’s and AllPoint ATMs), full featured Internet banking, full featured mobile banking, Visa debit card, Apple Pay and more. The non-free services are listed here and exact rates depend on the US state where the account was opened.

bbva-logo

To open a checking account, you must personally visit a physical branch in US and spend 40 minutes on an interview. You will leave the branch with an open account and routing numbers containing a $26 balance plus valid user and password that can be used on BBVA’s app and Internet banking. Free Visa debit card will arrive to some US address in a week or two, so no ATM until then.

They have 2 free checking account types. You should chose the one that includes free or charge AllPoint ATM usage which are very popular throughout US, and can be found in almost every 7 Eleven store. Use the AllPoint app to find one near you. Read More

WordPress on Fedora with RPM, DNF/YUM

WordPress is packaged for Fedora and can be installed as a regular RPM (with DNF/YUM). The benefits of this method are that you don’t need to mess around with configuration files, filesystem permissions and since everything is pre-packaged to work together, additional configurations are minimal. At the end of this 3 minutes tutorial, you’ll get a running WordPress under an SSL-enabled Apache using MariaDB as its backend.

All commands need to be executed as root. Read More

Jornada musical até Engenho de Flores

Na década de 1990 eu entrei na faculdade no interior de São Paulo e saí do casulo em diversos aspectos. Um deles foi o casulo musical pois passei a ter acesso a estilos musicais que eu mal conhecia. Meu batismo no Jazz/Fusion foi com um grupo local chamado Matisse – tratava de não perder nenhum show –, do guitarrista Aquiles, e foi com eles que descobri o barato do improviso jazzístico. Mas o que me definiu como brasileiro foi a MPB que se ouvia por lá, trazida de todos os cantos do país, e que nunca havia escutado em casa porque minha família era estrangeira. Depois criei asas e literalmente rodei o planeta em minhas descobertas musicais, tratando de divulgar o que eu achei e continuo achando de melhor.

Tô contando tudo isso porque hoje, mais de 20 anos depois, esbarrei na canção que ouvi em alguma festa de república uma única vez e passei os anos seguintes cantarolando prás pessoas perguntando se conheciam, como se chamava, de quem era, onde poderia ouvir novamente etc. Aí vai ela. É a «Engenho de Flores», do maranhense Josias Sobrinho mas que ficou conhecida na voz de Papete (1978) e Diana Pequeno (1979). Ufa… que jornada! Nem sei o significado da letra, mas sua sonoridade me devolve praquele tempo onde tudo era uma suave novidade. Ainda é, na verdade.

Também no Facebook.

Impressões sobre o show do Vento em Madeira

VentoEmMadeira
Ontem, 16 de junho de 2015, fui ao show do Quinteto Vento em Madeira no Centro Cultural Cachuera. Dividiram o palco com Mônica Salmaso. Apesar da presença da cantora, não foi um show de MPB. Mônica novamente exercitou seu lado B jazzístico, deixou as letras de lado e ficou só no tum-dá-chibum dos scats.

O quinteto é liderado pela ótima flautista Léa Freire que tem um longo currículo de composições e gravações muito boas. Há também Teco Cardoso, que já me fez perder a conta de quantos álbuns monumentais da Música Instrumental Brasileira ele participa. De Ulisses Rocha a Orquestra Popular de Câmara, ao Pau Brasil, enfim… Em boa parte do show os sopros de ambos participaram de exuberantes diálogos: sax baixo de Teco subia quando a flauta de Léa descia e assim por diante.

Como bons representantes da cena instrumental paulistana, o Quinteto Vento em Madeira é vanguardista. Digo isso como um contraponto à cena carioca, que é mais renovadora do bom e velho choro/bossa/samba em roupagem instrumental. Mas voltando à vanguarda paulistana, ela é avançada, ou seja, exige algumas boas “escutadas” por ouvidos já amaciados para que seja apreciada. É o caso do Duofel, Grupo Medusa, Feijão de Corda, D’Alma e outros daqui da Pauliceia, que preferem a jornada do experimentalismo dissonante ao invés do pop instrumental.

Mas esse não é, repito: NÃO É, o caso do Vento em Madeira. Apesar de claramente soarem como a geografia vanguardista paulistana, eles conseguem ser fáceis e deliciosos. Ocupam assim um espaço incomum, difícil de preencher e é isso o que faz o Vento em Madeira extraordinário. Talvez pelo comando da natureza melódica dos instrumentos de Léa e Teco, talvez porque se projetaram assim, sei lá. E não importa. O que importa é que foi um dos melhores shows que fui nos últimos tempos, composições automaticamente inspiradoras e melódicas à moda antiga, só que tudo novinho em folha.

Acho também que eles tinham que sequestrar a Mônica de vez e virar um sexteto. Esse negócio de “participação especial” já não cola mais porque a gente sabe que ela tá em todas. E se arriscar muito ela passa a Joyce que para mim é ainda a maior “scater” do Brasil.

Uma coisa que me deixa mordido de feliz são os maracatus que aparecem do nada no meio das músicas. Adoro maracatu. Não há nada mais brasileiro, intenso e chacoalhante do que maracatu. E é tudo culpa do baterista Edu Ribeiro. O pianista Tiago Costa também se destacou como autor de ótimas composições.

Ponto marcante do show foi o veterano pianista Amilton Godói (ex-Zimbo Trio) roubar a cena com Léa, ele no piano, ela na flauta contra-baixo, instrumento este que eu nunca tinha visto nem ouvido. Do tamanho de uma pessoa de pé, soa grave e delicado, acompanhamento perfeito para a suave composição de Amilton.

Tem que ser muito petulante, ou escravo de rádio ruim, ou tremendamente desinformado prá dizer que a Música Brasileira está perdida, que não se faz mais coisa boa por aqui. O Vento em Madeira está aqui prá desdizer isso.

Fiquei feliz também que veio meu amigo Luiz e ganhei dele um álbum do violeiro Levi Ramiro que adoro. E que também consegui convencer meu ocupado colega de trabalho Alvaro Guimaraes, flautista, a adiar seus afazeres profissionais e vir ao show.

A nova TI do iPhone

Do PC ao Datacenter, como o iPhone mudou tudo o que fazíamos em TI

A fórmula era ambiciosa para 2007: um telefone com inovadora tela multitoque grande, teclado virtual que finalmente funcionava, SMS repensado e apresentado como uma conversa, aplicação de e-mail com interface extremamente efetiva e clara, inúmeros sensores que interagiam com o mundo físico. E, acima de tudo, um browser completo e avançado, que funcionava tão bem quanto o que tínhamos no desktop. Read More

WordPress Community is in Pain

I don’t know about you senior bloggers but I’m starting to hate the way the WordPress community has evolved and what it became.

From a warm and advanced blogging software and ecosystem it is now an aberration for poor site makers. Themes are now mostly commercial, focused on institutional/marketing sites and not blogs anymore. WordPress is simply a very poor tool for this purpose. You can see this when several themes are getting much more complex than WordPress per se. Read More

SMS sem Ansiedade

SMS, WhatsApp, iMessage, Hangouts mudaram a forma como nos comunicamos.

Só não podemos nos deixar cair na armadilha de achar que a mensagem entrou no cérebro do destinatário quando aparece ✔✔. Evite ansiedade desnecessária pois o destinatário pode estar ocupado, esqueceu de responder ou simplesmente viu mas não leu direito.

De resto essas Apps são adoráveis mesmo.

Publicado também no Facebook.

O problema em fazer tudo o que seu filho quer…

O problema em fazer tudo o que seu filho quer não é exatamente ele ficar mimado. Se ele ficar, no futuro (um tempo e espaço que ainda não existe), depois a vida conserta, é um problema menor.

O verdadeiro dilema, hoje, é isso transformar a vida dos pais num inferno. Dá prá medir isso por quanto você, pai/mãe, sucumbe aos caprichos dos filhos. A palavra chave aqui é “capricho”. Pais devem saber diferenciar capricho de necessidade real dos filhos. Choro de criança é uma força extremamente potente da natureza, tipo, é muito difícil não se comover e não agir, principalmente para as mães e avós, que são mais sensíveis. Mas agir sempre no sentido de parar o choro é, de certa forma, sucumbir aos caprichos, então quem cuida deve aprender a ser forte, eventualmente deixar chorar, saber identificar o verdadeiro motivo do choro, conseguir interpretar se está realmente doendo ou se simplesmente quer o iPad ou chocolate na hora errada. E fazer tudo com ternura, mas se permitir endurecer quando necessário. Essa é a sabedoria que se adquire na paternidade/maternidade.

Você só possui o presente, o futuro não existe. Não aja de forma a moldar seus filhos, é sacrifício demais para algo que está 1000‰ fora do seu controle.

Eu acredito que a melhor paternidade/maternidade é aquela que é regada de amor. Inclusive amor próprio.

Publicado também no Facebook.

Se você tiver vontade de abandonar o Brasil…

Se você tiver vontade de abandonar o Brasil, ir embora de vez porque está cansado disso tudo, deve parar e perguntar se a sua vida está mesmo tão ruim assim. E se essa ruindade toda é mesmo culpa do país onde você vive.

Há muitas pessoas que displicentemente falam mal de tudo com bem pouca profundidade. E isso é enormemente amplificado pelas usinas de circulação de pensamento que são as redes sociais. Tem certeza que você não está sendo facilmente influenciado por isso ? Read More

Ode às Redes Sociais e à Livre Circulação de Pensamento

Tirando uns 60% de conteúdo ainda meio supérfluo, redes como Facebook e Twitter são ferramentas sem precedentes na história da humanidade.

Se você consegue enxergar além da piadinha, da foto do bebê e do bichinho, perceberá que tratam-se de verdadeiras usinas de difusão e circulação de pensamento que mantém a mente fascinada, o raciocinio arejado e o coração aberto.

Não menospreze essas ferramentas alegando que prefere relações pessoais cara a cara. É como rejeitar voar só porque a natureza não te deu asas. É como esnobar Paris só porque você é carioca da gema. Já superamos isso, é uma desculpa ingênua, que não cola, que soa mal e não “cool”.

Seja um partícipe na circulação do pensamento. As idéias, a informação, o pensamento, tudo isso quer ser útil, de alto alcance, para transformar. Não exclusivo, não de difícil acesso e nem caro. Esses sistemas de engajamento podem completar e potencializar o melhor de você como qualquer ferramenta quando usada para o bem, só que de uma forma nunca antes vista na história desta humanidade.

Microsoft Windows na plataforma Power com KVM e QEMU

Com o lançamento de KVM para Power se aproximando no horizonte, tem se falado muito sobre rodar o Microsoft Windows em Power.

Só uma rápida retrospectiva, KVM é a tecnologia do Kernel do Linux que permite rodar máquinas virtuais de forma muito eficiente. E o QEMU é o software que emula diversos aspectos de um computador (portas serias, rede, BIOS/firmware, disco etc). O QEMU existia antes do projeto KVM e possibilita rodar, de forma razoavelmente lenta devido a emulação de todos os aspectos do hardware, outro sistema operacional completo dentro dele.

Read More

Casal, Separação e Amor

Quando um casal se separa e cada um sai em busca de outros companheiros, com certeza encontrarão alguns que não tem os “defeitos e problemas” do anterior porque se especializaram em detectar esses “defeitos”. Mas com o tempo, com certeza absoluta encontrarão outros tipos de problemas, às vezes maiores que os do anterior, porque neste mundo nada ainda é perfeito, tudo está em constante evolução.

União edificante e bem sucedida é aquela em que cada um dá o melhor de si e ajuda o companheiro a superar seus problemas, exercitando amor fraternal e de nível superior.

Amor esse que não deve ser confundido com a curta faísca da paixão, amor que não é atração que decai tão rápido quanto a carne, que não é dependência emocional nem financeira. Amor que não é interesse e que não é medo ou veneração por regras sociais e religiosas.

Publicado também no Facebook.

O Twitter vai acabar, Facebook vai prevalecer

Prevejo (e costumo acertar essas coisas) que a médio prazo o Twitter tende a desaparecer. Mesmo com conteúdo melhor — pelo menos das pessoas que eu sigo —, seu concorrente, o Facebook, tem mais funcionalidades e possibilidades, é mais auto-contido e é mais colorido e diverso, o que o torna mais popular também.

Então acho que muitos continuarão migrando para o Facebook e deixando gradativamente de usar o Twitter, infelizmente.

Publicado também no Facebook

Paciência com os Filhos

Não existe certo ou errado ao se criar crianças pequenas. Tudo é definido pelo tamanho de sua paciência, tempo e disposição. Se você tem de montão, faça todas as coisas malucas que as crianças querem — e só faça isso da vida. Se você tem pouco, defina quando e como tudo precisa acontecer.

Não há nada de errado em ter pouca paciência e os pais nunca devem se culpar por isso. Os pais também não devem achar que é importante ou bom ter paciência (nem que seja ruim, obviamente) pois há tantas outras variáveis que determinarão a personalidade dos filhos que “fazer conforme o figurino” não representa controle nenhum sobre o resultado final.

O tal “figurino” de que se deve ter paciência eterna é simplesmente um conceito pré-concebido de nossa sociedade e não uma verdade absoluta.

Também no meu Facebook

Paz de Espírito

Não vim aqui para ter paz. Paz terei quando morrer.

Vim aqui para interagir com as pessoas, com as coisas e com o mundo. Despertar interesses, sensibilidade que vai além dos sentidos físicos e assim superar as aparências. Vim experimentar relacionamentos com o mínimo de diplomacia possível, pois esta esconde a essência e as verdadeiras intenções.

Sou muito jovem para ter paz. Há muito o que observar e aprender sobre o universo. Há muito o que se pensar e concluir, pois a opinião pronta dos outros me servirá no máximo como mais um parâmetro para a construção do meu próprio pensamento. E tudo isso é interessante e inquietante, fomentado pela minha infinita sede de saber. Ainda não há espaço para paz e isso é bom, pois é o tempo natural das coisas.

Desconfio de jovens com paz. Isso tem outro nome. Eu chamo de letargia, conformidade, desinteresse. Isso também é porta aberta para pensamentos alheios que não lhe são necessariamente úteis ou saudáveis. Publicidade, a ciência que estuda como fazer você desejar o que não precisa, quer essa porta aberta na sua cabeça. Quer você com “paz”.

No fim da vida, quando tiver acumulado diversas experiências edificantes, quando e se tiver a clara sensação de que cresci e junto ajudei o mundo a crescer, aí sim haverá espaço para paz na minha alma. E será um novo começo, leve e bem-vindo como a manhã fresca de um dia de folga.

Publicado também no Facebook

OpenShift for Platform as a Service Clouds

OpenShift-LogoAt the Fedora 20 release party another guy stepped up and presented+demonstrated OpenShift, which was the most interesting new feature from Red Hat for me. First of all I had to switch my mindset about cloud from IaaS (infrastructure as a service, where the granularity are virtual machines) to PaaS. I heard the PaaS buzzword before but never took the time to understand what it really means and its implications. Well, I had to do that at that meeting so I can follow the presentation, of course hammering the presenter with questions all the time.
Read More

O judaismo e sua “não definição”

Sou de família judaica e já pensei muito sobre este assunto (comentando um artigo de minha amiga Andréa Kogan), decorrente de, na minha adolescência, começar a achar certas coisas muito esquisitas e essencialmente preconceituosas.

Conclui que há o judaísmo religião e há o judaísmo cultura (relacionado a história de um povo etc). E tomei a posição de ser um péssimo judeu religioso por achar a religião judaica, encarnada aparentemente em tradições que não fazem nenhum sentido, deveras obsoleta e desatualizada. Em termos de conhecimento e cultura espiritual, acho que há coisas melhores hoje em dia, como o espiritismo e bahai (não sei se é assim que se escreve).

Mas também me considero um judeu-cultural por excelência, pela forma como sinto a conexão com minhas raízes, com a história. É-me emocionante. Ah, e sou também um excelente judeu que vai em festas pois adoro as pessoas, comidas típicas e tal.

Promover a comunidade, quando não há intenções de segregação, é a melhor e mais duradoura característica do judaísmo.

Este meu comentário também apareceu no Facebook.

GMail as mail relay for your Linux home server

Since my Fedora Post-installation Configurations article, some things have changed in Fedora 20. For example, for security and economy reasons, Sendmail does not get installed anymore by default. Here are the steps to make your Linux home computer be able to send system e-mails as alerts or from things that run on cron. All commands should be run as user root. This is certified to work on Fedora 21.

Read More

Esperança na Ciência

Não é racional reconhecer a perfeição do universo mas ao mesmo tempo achar que ele é regido pelo caos.

Einstein, em suas intuições sobre Cosmologia, acreditava que um dia se descobriria o que chamava de λ (lambda), que balancearia as equações, ainda incompletas, que explicam o funcionamento do cosmos.

Então devem haver plasmas ainda desconhecidos pela Ciência. Fenômenos por se compreender e equacionar, vibrações de partículas por se desvendar, estados psíquicos e de consciência a se experimentar e tipos novos de interações entre as pessoas a se vivenciar.

Chegará o dia em que a ciência dominará tudo isso e a humanidade será outra. Pense como o domínio da eletricidade que temos hoje passaria como mágica absolutamente transcendental para o homem das cavernas. Da mesma forma, o que hoje nos parece “mágica” ou “caos incompreensível” será ensinado para crianças na escola fundamental dos próximos séculos.

Anseio por esse futuro iluminado, renascido que nos aguarda, ou os nosso filhos, e que começa agora e a todo instante.

Também no meu Facebook

Argentina não é para vegetarianos

A Argentina tá prá ser eleita o país menos amigável para vegetarianos. Não consegui fazer nenhuma refeição decente e balanceada aqui. É até mais chateante que os países da Ásia Central (Uzbequistão, Quirguistão etc) porque a Argentina é mais cosmopolita e esperava que estivesse mais sintonizada com essa diversidade. Mas não: aqui ou é parrilla ou não presta. Não é a primeira viagem que constato isso.

Também no meu Facebook.

Coisas que aprendi e descobri na Latinoware 2013