Projeto: document-generator

documents

Há tempos tenho várias ideias para melhor controle de documentações em projetos, já que atuo diretamente criando e mantendo arquivos desse tipo há anos trabalhando como analista.

Obviamente que os contextos são muitos e por diversas vezes encontramo-nos em processos já bem maduros, nos quais temos pouca liberdade de propormos inovações.

Mas uma coisa que sempre foi um mantra pra mim é: trate a documentação com o mesmo carinho que o código, afinal, são tudo “apenas texto”.

Hoje em dia, com os repositórios de arquivos em nuvem, o cenário do controle e compartilhamento de arquivos vem mudando muito, mas ainda carece de algumas funcionalidades que os desenvolvedores possuem às mãos em seus repositórios de código, seja ele git, svn, ou qualquer outro. Como por exemplo, o controle de alterações com observações e a centralização.

Porém, não é nenhum pouco recomendável guardar arquivos binários nesses repositórios (além de ser “impossível” rastrear mudanças), bem como não é interessante escrevermos documentação em texto puro, tampouco HTML, que acaba não sendo tão prático e demanda ao menos um conhecimento básico.

Nesse contexto, a linguagem markdown cresce como uma forte candidata. É inclusive a linguagem utilizada nas documentações dos repositórios no GitHub. Porém, os navegadores (ainda talvez) não leem arquivos “.md” e exibem como HTMLs. E é aí que entra a ideia da transformação de arquivos markdown em HTML.

Já há muitos projetos prontos, com as mais diversas tecnologias que se propõem a esse tipo de trabalho e eu escolhi um deles para me basear e fazer uma versão ainda mais enxuta, ao menos na intenção de difundir a ideia e lembrando que, sempre é possível utilizar-se do projeto original e a plenitude de suas funcionalidades.

Exemplo de arquivo gerado pelo projeto:

O layout fornecido pelo projeto original apresenta sim alguns problemas e há muito espaço para evolução (eu sequer cheguei a testar mais deles), mas o template escolhido gera uma página como a da imagem acima, sendo possível navegar nos tópicos pelo menu à esquerda.

Com os arquivos gerados, é possível também publicá-los num website, inclusive até mesmo dentro do próprio sistema para o qual foi destinado, sendo ainda mais prático que um compartilhamento tradicional de arquivos e suas várias versões nos e-mails de cada um…

Para baixar e utilizar o projeto, acesse o repositório do mesmo no meu GitHub:

document-generator

Lá você encontrará mais orientações e garanto que será bem fácil começar. Caso se interesse e tenha dúvidas, ou mesmo sugestões, basta entrar em contato.

Abraço à todos.

Controlando versões com PHP, SVN e Gulp

Com o crescente uso do Git para controle de repositórios, talvez essa dica não seja mais tão útil, contudo, como aqui na empresa que trabalho ainda usamos Tortoise SVN, pode haver outras empresas e pessoas mundo afora, interessadas no post de hoje.

Ela também funciona muito melhor em projetos .Net, devido ao fato dele ser compilado, mas as informações aqui providas podem ser facilmente adaptadas pra ele (vou fazer uma nota também demonstrando uma diferença básica) quando for o momento).

Pois bem, o foco do post está em demonstrar o uso de um executável do SVN, de nome SubWCRev.exe, que serve para ler informações do repositório, como número da última revisão ou data e realizar a troca de variáveis em um arquivo template, pelos valores retornados.

Contudo, devido ao PHP não ser uma linguagem compilada, você precisará estar utilizando gerenciadores de pacotes, no caso o Gulp, se quiser implantar esse “controle de versão” aos seus projetos. Embora também seja possível executar o comando diretamente no console do sistema operacional, porém, grande parte da automatização se perderia.

Comece pela criação de um arquivo template, onde você incluirá as variáveis que deseja trabalhar (é possível encontrar a lista completa delas na documentação do SVN). No meu exemplo, eu chamei o arquivo de version-template.php e ele possui o seguinte conteúdo:

<?php return array( 'version' => '1.0.0.$WCREV$ data: $WCDATE$'>);

Repare que ele contém um array em PHP que inclui as variáveis WCREV e WCDATE, que serão trocadas pelo executável assim que for chamado.

No nosso arquivo gulpfile precisamos incluir um require, caso já não exista. Dessa forma:

var exec = require('child_process').exec;

Feito isso, poderemos criar a nossa task que realizará a chamada do executável:

gulp.task('version-number', function (cb) {
exec('"C:/Program Files/TortoiseSVN/bin/SubWCRev.exe" "." "C:/Source/Projeto/branches/branch1/version-
template.php" "C:/Source/Projeto/branches/branch1/version.php"', function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
cb(err);
});
})

Vamos a uma breve explicação do script acima. A task recebeu o nome de version-number para ser referenciada mais abaixo no arquivo gulp (junto à sequência de build). Ela utiliza o exec para chamar o comando, que é composto da seguinte forma:

[diretório do exe][diretório da solution][arquivo template][arquivo final]

Apresenta também instruções para logar as informações na janela do console e os erros, caso ocorram.

Você precisará adaptar o comando para os seus diretórios e tomar um cuidado especial caso sua build seja remota, em um servidor Jenkins por exemplo, mas basicamente, ao incluir essa task em seu build e executá-la, você terá gerado um arquivo com o conteúdo parecido com o exemplo abaixo:

'version' => '1.0.0.93528 data: 2018/06/07 09:36:50'

Esse arquivo, que no meu exemplo levou o nome de version.php, é recomendável que esteja na lista de ignore do SVN, evitando que o mesmo seja comitado toda hora.

Caso você esteja em um projeto .Net, você poderá executar um comando semelhante como um evento de pré-build, usando em conjunto as variáveis do Visual Studio, e deverá utilizar o arquivo AssemblyInfo.cs para salvar as informações. Ficando mais ou menos assim.

"C:\Program Files\TortoiseSVN\bin\SubWCRev.exe" $(ProjectDir). $(ProjectDir)Properties\AssemblyInfo_template.cs $(ProjectDir)Properties\AssemblyInfo.cs

Com tudo pronto, você poderá colocar na sua aplicação, algo que leia esse arquivo e exiba, ou não, a versão do mesmo para o usuário. Claro que, devido a questão de não ser de fato uma compilação, o processo acaba sendo menos interessante, pois é mais fácil manipular algum arquivo e não executar o gulpfile. Porém, se você for fiel ao seu workflow, e utilizar sempre o Gulp para geração dos builds, pode conseguir um grande aliado na organização do seu projeto e na avaliação de versões utilizadas.

Abraço a todos e até o próximo post

Docker – guia super básico

Docker é uma ferramenta que possibilita que você utilize máquinas virtuais não completas para executar, por exemplo, o código de seu projeto, ou seu servidor de banco de dados.

Materiais não faltam para você estudar ou aprender como ele funciona e validar se ele te ajuda a solucionar os seus problemas. Como sempre, meu intuito é encontrar uma forma realmente simples de explicar o conceito e indicar os primeiros passos, servindo até mesmo como um backup para mim mesmo, já que também não sou nenhum especialista na tecnologia.

Sendo assim, minha ideia é realmente escrever um ponto de partida. Mas é legal citar que seu uso está aumentando muito e ele resolve o problema de diferenças entre o ambiente de desenvolvimento e de produção por exemplo. Torna também a implantação em novas máquinas extremante simples, já que é possível compartilhar o script e até mesmo as imagens customizadas.

Mas vamos lá. O importante agora é você se familiarizar com os termos básicos:

image: é a “ISO” do sistema operacional que será utilizada pela VM. Ela pode ser usada em diversos containers ao mesmo tempo. Há muitas delas prontas na internet pra baixar.

container: é a image instanciada, em execução. Como dito, você pode instanciar diversas delas baseadas na mesma imagem (há inclusive orquestradores de containers, que reiniciam automaticamente em falhas, entre outras coisas, como por exemplo o Kubernetes ou o Swarm (que vem integrado), mas não é o escopo deste post).

Ao fazer alterações em um container, elas se perdem assim que ele é destruído, a não ser que você o salve como uma nova imagem. Vide abaixo.

Pois bem, para instalar, basta ir até o site e procurar pela versão Community Edition

Download Docker CE

Baixe e instale na sua máquina. É a única instalação real necessária. Recomendo também que já crie uma conta pelo site, já que ela é necessária para a utilização.

Depois de instalar, talvez sua máquina exija umas configurações para que ele funcione, mas ele mesmo vai te sugerir isso e reiniciar sozinho (eu uso Windows 10). Tudo pronto, basta você abrir um console (cmd, powershell, etc) e digitar o comando abaixo:

docker login

Insira o nome de usuário do docker (não serve o email) e a senha que você criou.

Para criar seu primeiro container e automaticamente já baixar a imagem, basta executar o comando abaixo:

docker run -it ubuntu /bin/bash

O bash é o comando para acessar o console do Ubuntu. Você deve estar agora em uma janela do console com um usuário root conectado e pode começar testar comandos no console pra ir se familiarizando, como ls para ver as pastas ou mesmo fazer umas instalações no container, com o comando apt-get. Mas lembre-se do que eu disse sobre salvar…

Sugiro você abrir outro console na mesma pasta e executar esse comando para verificar os containers que estão em execução:

docker container ls

Pode também, conferir que foi baixada a imagem:

docker image ls

Mas a real forma interessante de se criar os containers é usando scripts, e você pode fazer isso criando um arquivo Dockerfile, sem extensão e mandando executar:

# Setando a imagem a ser usada do Docker hub
FROM ubuntu:latest
LABEL Paulo Roberto Elias "ppuspfc@gmail.com"

Use o texto acima como o exemplo mais simples possível do que colocar no arquivo. Ele usa a última versão do Ubuntu disponível no DockerHub e coloca o meu nome no label (mude para o seu claro). Você pode até mesmo colocar a instrução abaixo nele para já ver um pouco da mágica acontecendo e ir tirando suas conclusões…

RUN apt-get update

Na internet você vai encontrar diversos desses scripts prontos com várias dependências já configuradas para alguns ambientes de desenvolvimento.

Navegue no console até a pasta onde você salvou o seu Dockerfile e execute o comando abaixo:

docker build -t minhaimagem .

Será criada uma nova imagem baseada no seu script, no caso utilizando a imagem original do Ubuntu. Veja que eu dei um nome a ela e o ponto após o nome é pra indicar que é para executar do diretório em que estamos. Confira novamente usando o comando para listar as imagens.

Depois executaremos a imagem, ou seja, criaremos um container com o comando abaixo:

docker run -it minhaimagem /bin/bash

As alterações que você fizer só ficarão salvas se você salvar o container, criando assim, uma nova imagem (pode-se sobrepor usando o mesmo nome, cuidado com a TAG, ela diferenciará também o arquivo).

$ docker commit <container_id> new_image_name:tag_name(optional)

Não se esqueça de executar o comando para listar os containers enquanto ele ainda estiver em execução, pegar o ID e usar no comando acima.

Eu ainda não aprendi desconectar do bash para executar comandos docker no mesmo console 🙂 mesmo tendo lido que dá pra usar uns atalhos de teclado. Não sei o que houve…acho que eu estava no console do VSCode, preciso pesquisar melhor. É, talvez tenha sido isso, mas é uma boa deixa para eu voltar aqui e tentar transformar isso em uma série, com meus próximos passos no Docker.

Um abraço e até a próxima

Meu pitaco sobre o momento atual

Bom, pelo que ando vendo nas redes sociais e nos jornais, acho que posso colocar no currículo que não votei na Dilma, não bati panela em manifestação e sequer corri ao posto encher o tanque hoje, pois quem foi é porque não tem amor ao próximo. Sou praticamente postulante a gênio e exemplo de brasileiro!

Quem quer dar um pitaco rápido corre o risco de ser injusto, quem o faz na forma de uma postagem mais longa comete o novo pecado capital do “textão” e assim vamos todos tentando encontrar o formato cool do momento para nos expressarmos.

A impressão que tenho é que simplesmente todo mundo virou o tiozão do “eu avisei” e quando não está morrendo de medo de ter escolhido o lado errado, quer parecer intelectual porque acha que é o único que está enxergando a situação como ela realmente é.

Eu não vejo a hora é de poder reler esse meu post no futuro e me gabar do quanto eu era antenado e enxergava a situação como ninguém…

Só pode se gabar disso, na humilde opinião de mais um burro que passa por todas essas mesmas coisas e sensações, aquele que percebe que somos todos enganados o tempo todo e não há um só brasileiro que esteja no grupo, ou melhor, nos grupos de “respostas certas em todos os assuntos”.

A moda agora é culpar quem se manifestou, por uma crise que foi criada por corruptos. Simplesmente ignorando que isso tudo é um reflexo tardio, senão do último governo, de todos os governos democráticos que tivemos nos últimos anos. Por outro lado, os que apontam o dedo não se sentem nem um pouco culpados mesmo tendo co-participado de todas as decisões que tomamos desde que nascemos e vivemos nesse país que só diz ter futuro, mas que ele nunca chega.

Outra frase de efeito que vem bem a calhar é culpar o povo que vota errado. Mais uma falácia que tenta transferir ao povo uma culpa que não é dele, pelo menos não gerada desta forma. Se algo lhes confere culpa, seria apenas a apatia em aceitar a realidade que lhes é imposta. Grande parte dos políticos sequer são eleitos por voto popular e entram lá por coeficientes eleitorais, mas mesmo quando são votados, fazem parte de pleitos onde não são oferecidas verdadeiras opções.

Não se iludam, trata-se mais uma vez do bom e velho “dividir para conquistar” que hoje em dia é mais conhecido pela difusão em filmes da Marvel. Que sirvam pelo menos pra isso, mas duvido que a maioria se dê ao trabalho de refletir (não é culpa deles também em todo caso).

E não me venham com essa que os caminhoneiros estão fazendo isso pelo Brasil hein? Lá vamos nós daqui alguns meses botar a culpa neles pelos novos velhos problemas que fatalmente teremos. Eles estão fazendo isso por eles, mas não estão errados por isso, só se cansaram de esperar uma mobilização completa para buscar o que acham que lhes é devido.

A nossa próxima grande crise é a de adjetivos, pois todos os que temos para definir a bagunça em que vivemos estão se tornando obsoletos e cansativos, só não vamos querer criar novos por decreto, por que já vimos que por essa via quase nada funciona por aqui.

Até a próxima.

Ferramentas de estudo e produtividade: Ouvir páginas Web

Hoje darei mais uma dica que julgo muito interessante para aprendizado de idiomas, embora a ferramenta possa ser utilizada para diversos fins.

“Text-to-speech” e o nome utilizado para essa tecnologia, que consiste em aplicações que leem textos e transformam em voz e há vários deles no mercado para diversos fins. O próprio Pocket, que já indiquei aqui no blog, possui uma funcionalidade com essa tecnologia, permitindo que você escute os textos dos links que salvou.

Mas encontrei uma forma muito prática de fazer isso diretamente no navegador (Google Chrome), através da extensão Read Aloud. Basta você clicar no link e adicionar.

Feito isso, será adicionado um botão no canto superior direito da sua tela e ao acioná-lo, o texto começará a ser lido!

Para forçar a leitura de apenas um trecho da página, basta selecionar o mesmo com o mouse antes de acionar o botão. Eu achei isso uma ótima maneira de poder conferir minimamente, a pronúncia das palavras quando faço minhas leituras em inglês.

Abraço

Electric Dreams e Prime Video – Para os fãs de Black Mirror

Para um bom fã de ficção científica como eu, vivemos uma era de ouro nos cinemas e seriados. Finalmente essas histórias chegaram com força e, espero eu, para ficar.

Após o sucesso de Black Mirror, fãs ávidos estão procurando obras semelhantes e Electric Dreams chega no momento certo.

Produzida em conjunto com a empresa que criou o Black Mirror original, são 10 episódios independentes e baseados na obra de Philip Dick, um dos maiores gênios do gênero.

Só pude assistir o primeiro episódio até aqui, mas me chamou a atenção também a equipe do projeto, cheio de nomes conhecidos, como você pode ver inclusive na imagem que ilustra esse post.

O episódio não conseguiu me impactar como muitos de Black Mirror conseguiram, embora convenhamos, sequer as últimas temporadas do próprio Black conseguiram. Mas mesmo assim foi muito interessante e, na minha opinião, esse choque não se faz tão necessário para os verdadeiros fãs da ficção científica, que querem mesmo é se deparar com histórias cheias de elementos futurísticos e que nos façam pensar.

Outro ponto interessante dessa série é que ela pode finalmente fazer com que o mundo comece a prestar atenção nas obras disponíveis no serviço Amazon Prime. Candidato fortíssimo a verdadeiro concorrente do Netflix, chegou ao Brasil com uma grande promoção, com os seis primeiros meses a R$9,90 e eu fiz questão de conferir.

Mas a verdade é que não me animei a assistir nenhuma obra disponível! Apesar de contar com alguns clássicos que eu amo, como o Show de Truman, todos sabemos que não é bem para revisitar velhas paixões que pagamos esses serviços.

Justiça seja feita, há também no catálogo, outras obras de ficção científica, inclusive do próprio Philip Dick, que pretendo ver, como o Homem do Castelo Alto. Só não o fiz ainda, pois estou pensando seriamente em ler o livro antes, que já possuo e está na minha fila de leitura no Kindle.

Além disso, os aplicativos ainda não se encontram em um estado muito bom de maturidade, com dificuldades em configurar legendas e até erros técnicos nas mesmas, mas nada que chegue a atrapalhar a experiência de fato.

Se você é fã de Black Mirror, aparentemente não há nada melhor e inédito, já disponível, para você curtir. Então, recomendo fortemente que veja se a promoção ainda está disponível (ou alguma nova) e constate que, por mais que você não use tanto quanto a sua conta do Netflix, ainda custa menos que um cinema e por meses de conteúdo.

Abraço e até a próxima.

Oracle SQL Developer – Relatórios Mestre x Detalhes

Olá a todos. Hoje vou falar de um recurso muito útil deste cliente de banco de dados. Embora a aplicação possa ser utilizada com diversos SGBD, devido ao suporte a ODBC, o recurso que vou apresentar hoje só funciona em bancos de dados Oracle (pelo menos até a última vez que eu testei).

É muito comum para analistas e administradores de sistemas em geral, a necessidade de consultar diretamente a base de dados a todo momento e muitas vezes, poder salvar seus scripts já basta. Contudo, a possibilidade de encadear muitas consultas de uma só vez, em modo “mestre x detalhes”, de modo fácil e dinâmico, é muito bem vinda.

Acredito que todo mundo que tenha chego até aqui na leitura, já saiba do que se trata, em todo caso, em vez de explicar o conceito, vou apresentar-lhes o passo-a-passo e com certeza vocês enxergarão as vantagens e aplicabilidade dessa ferramenta.

Com o aplicativo aberto, clique com o botão direito do mouse no item “Relatórios Definidos pelo Usuário”, conforme print abaixo:

Caso esta janela não esteja aparecendo, basta selecioná-la no menu Exibir > Relatórios

Será apresentada uma janela / formulário para preenchimento. Os campos até aqui são auto-explicativos, só vale lembrar que você deve escrever sua consulta “original” ou mestre, no campo SQL.

Preencha conforme desejado e salve. Logo após, o relatório deve aparecer na pasta exibida no print acima. Selecione agora o próprio relatório com o botão direito do mouse e acione a opção editar.

Será apresentada novamente a janela de edição, desta vez, contendo a opção de Relatório Filho. Clique em adicionar filho e escolha um nome para o mesmo.

A mágica ocorre no relatório filho, pois ele pode se valer de variáveis provenientes da consulta meste, conforme o print abaixo:

Repare que eu usei na cláusula where uma variável Oracle. Ela deve ter o mesmo nome de qualquer coluna do resultado da consulta mestre. Caso a sua query mestre possua prefixos, como por exemplo tb_users.userid, lembre-se de utilizar um alias para a coluna e usar o mesmo alias como o nome da variável.

E é só isso. Assim que você clicar no relatório, a query mestra será executada automaticamente e ao clicar sobre quaisquer linhas do resultado, o relatório filho será executado baseado na sua seleção.

Na imagem acima vemos a execução de um relatório com um relatório filho. As informações sensíveis foram apagadas

É possível criar quantos relatórios filhos você desejar e para abrir mais de um relatório de uma vez, será necessário selecionar para executar em outra aba.

Também podemos salvar o relatório como um arquivo XML e com isso compartilhá-los ou mesmo fazermos backups.

Espero que gostem e considerem essa dica e principalmente esta funcionalidade, tão útil quanto eu.

Até a próxima.

Interestellar

Há tempos eu queria escrever sobre esse filme que eu tanto amo, mas não costumo escrever muito sobre filmes, principalmente tanto tempo depois do lançamento. Acho que na maioria dos casos, não se sobra muito pra falar. Ou você se apressa em tentar expressar uma opinião enquanto ele é notícia ou fica com as sobras quando todo mundo já viu e não quer mais saber…

Por outro lado, há filmes que realmente nos marcam e esses são os meus preferidos. Filmes que realmente nos fazem divagar sobre a vida e o futuro. E esses filmes custam a sumir das nossas mentes e parecem nos fazer brotar sentimentos diferentes a cada vez que o assistimos.

Obviamente que várias obras diferentes tocam corações ainda mais diversos e o que é sublime pra mim pode passar completamente despercebido pra outra pessoa. Além disso, nossa opinião muda muito nas diversas fases da nossa vida, ou mesmo de acordo com o nosso espírito ou pré-disposição à uma obra, ainda mais em tempos de internet e de enxurradas de opiniões que nos fazem duvidar das nossas próprias convicções.

Como você pôde perceber por essa tediosa introdução, esse não é um post curto e grosso sobre o filme também, mas sim, um “textão” sobre minha relação com essa obra e o que me faz gostar tanto dela e até mesmo sobre meu antigo filme preferido antes deste.

Quem me conhece sabe que sou simplesmente apaixonado por Matrix. Talvez pela idade com que assisti o filme no lançamento, talvez por ser igualmente apaixonado por tecnologia, ou por ele ter tanto a ver com games, talvez por tudo isso, mas simplesmente por quanto ele foi disruptivo e carregava o que pra mim torna uma ficção científica brilhante: a sua capacidade de ser “incontestável”. Sua história jamais poderá ser completamente negada ou provada e até cientistas sérios falam sobre vida em simulação.

A sua “apresentação em camadas” é simplesmente espetacular, agradando quem gosta de ação, de romance e propiciando diversos níveis de entendimento. Para mim ele foi o primeiro contato com “universos” criados sobre uma obra, com expansões da história e comunidades em torno. Hoje também bem sei que muitas dessas coisas (pra não dizer quase tudo), do culto, do enredo, do mistério em torno do universo, não foram tão originais assim (estou lendo Neuromancer), mas nada disso tira o seu brilho nem o seu mérito por ter sido um divisor de águas.

Partindo de Matrix, eu simplesmente comecei a consumir todas as obras vindas do irmãos (hoje irmãs) Wachowski. E embora “V de Vingança” seja simplesmente sensacional, suas obras foram decaindo de qualidade absurdamente, ao ponto de eu simplesmente odiar qualquer coisa que eles façam hoje em dia. Sense8 é pavoroso, me desculpem.

Pois bem, também não é por isso que Matrix perdeu o posto de meu filme favorito, e seu diretor, Chistopher Nolan, está obviamente e igualmente sujeito a tomar rumos ruins em sua carreira. Mas precisou surgir outro filme igualmente “mindblowing” para tomar o seu lugar em meu coraçãozinho nerd.

Eu simplesmente amo esse GIF e estou feliz de finalmente poder usá-lo.

🙂

Interestellar não tem esse poder todo ou a importância histórica pro cinema e pra ficção científica que Matrix tem, nem mesmo quaisquer semelhanças, ou sequer se apoia nas mesmas bases e estratégias (não há combate ou lutas nessa viagem espacial), mas compartilha o fato de ser uma ficção de grande apelo emocional e te fazer sentir pequeno. Ele é realmente emocionante e sim, eu choro pra cacete com ele!

O filme

Bom, vou tentar não dar spoiler nenhum, até por que, minha intenção é, quem sabe, convencer alguém ou mesmo lembrar alguém de assistir, caso já não o tenha feito. Embora isso tire bastante da graça e me limite bastante no que dizer, infelizmente.

Na história, o planeta Terra está morrendo e a humanidade procura uma solução, que passa por procurar um novo planeta para habitarmos e esse pano de fundo carrega uma história profunda, sobre uma das formas de amor mais bonitas que existem, o de um pai por sua filha e vice-versa.

Como se não bastasse lidar com essa forma tão sublime e especial de amor, ele se dispõe a sugerir em uma das falas que talvez o amor tenha um objetivo no universo…não se preocupe, você não vai identificar essa cena por ter lido isto, antes de vê-la.

Com um final muito controverso e até mesmo psicodélico, dividiu muitas opiniões e recebeu muitas críticas negativas por isso e foi então que me deparei com o vídeo abaixo e que me inspirou a escrever esse post.

Na entrevista concedida pelo popstar da física mundial, Neil deGrasse Tyson, fica fácil perceber como você pode sim respeitar o que foi feito, em vez de ficar se achando entendido do assunto e curtir uma obra que tenta imaginar o que nenhum ser humano sequer chegou perto de vislumbrar e quiça você passe a admirar o esforço desses artistas em tentar colocar em imagens o que faz parte apenas da imaginação, mesmo de grandes cientistas.

O filme tem um ar de esmero poucas vezes vista no cinema, não se deixando levar por artifícios comuns em nome do sucesso. É fácil imaginar um investidor pedindo ação ou lutas…de certo isso ocorreu…hehehe. A parte musical é igualmente fenomenal e eu escuto as músicas da trilha sonora até hoje.

É…

Talvez mais uma vez o meu texto não tenha conseguido realizar o que propus no início. Se resumindo como sempre, a servir como um diário, um baú de memórias para mim mesmo. Que me permita, assim como citei (agora assim fechei o arco :)) voltar aqui no futuro e tentar decifrar como eu me sentia sobre esse filme e como um olhar de outro tempo pode mudar tudo.

Dica: tempo tem tudo a ver com o roteiro também…não é perfeito esse filme?

Abraço

 

Testando aplicações em diferentes versões de browsers

Olá. O post de hoje é uma dica.

Analistas que fazem testes funcionais de software, muitas vezes, precisam testar as aplicações em diferentes versões do mesmo browser, versões antigas específicas, ou mesmo versões descontinuadas.

O software que vou apresentar não se destina exatamente a isso e nem vou me ater a ficar dissertando sobre sua história e tudo mais, já que é possível encontrar informações desta natureza muito facilmente. Só gostaria de dizer uma coisa: ele utiliza “containers”, como o famoso Docker.

Porém eu achei ele muito mais fácil de usar e mais direcionado para certos fins, como você pode comprovar pela animação que criei abaixo:

Ele é um software pago, mas com permissão de uso, então, basta criar uma conta, instalar, escolher o App que quer “emular” e pronto!

Até mais

Brasil Game Show 2017 – Eu fui!

Ontem estive mais uma vez em São Paulo para a Brasil Game Show 2017. O evento está a cada ano mais belo e organizado e valeu muito todo o esforço e custo para comparecer.

Acabei precisando ir sozinho pois, bem na hora, meu amigo Marcos Alves foi convocado para o trabalho e o ingresso não podia mais ser transferido (talvez se eu tentasse entrar em contato pelo telefone, mas sequer tinha algum convidado em vista).

Estava tudo muito cheio, mas as filas, que esse anos foram “virtuais” em alguns stands, deram um visual muito mais organizado. Faltaram também reais novidades, mas não é culpa dos organizadores. Anos com lançamentos de novos consoles sempre são mais interessantes e nem Xbox One X nem PS4 Pro (que já foi lançado), são necessariamente novos videogames.

Vi poucas celebridades também, ou pelo menos não as reconheci, já que muitos Youtubers marcaram presença, mas não os acompanho e por isso não os conheço.

Pelo menos pude tirar uma foto com o Diego Kerber da Adrenaline. que é muito gente boa por sinal.

Consegui porém, tirar muitas fotos legais, como essas abaixo:

Não podia faltar também, claro, minhas comprinhas, mas, devido a crise 🙂 só fiz investimentos de baixo valor hahahaha.

E sempre sem escolher um lado! Por que não jogar tudo que pudermos? Comprei também uma camisa preta Playstation e o jogo The Last Guardian que saiu por apenas 29 reais por ter gasto mais de 100 na loja da Sony.

Só senti falta mesmo foi de um stand da Nintendo…sempre ela aprontando dessas com os brasileiros…quem sabe ano que vem.

Caso queira curtir todas minhas fotos e vídeos, basta acessar o link abaixo:

Google Photos Album

Obrigado e até a próxima.