fbpx
Docker – de A a Z – 19 – Youtube Downloader – Novidades #01

Docker – de A a Z – 19 – Youtube Downloader – Novidades #01

Pessoal, esse é o primeiro pacote com novidades sobre o projeto. Nosso diagrama de causa-efeito-ação chega a sua 5a versão com muitas novidades, incluindo:Adição do MongoDB, agora fazendo encoding de MP3 com FFMPEG, possibilitando o download de MP3 que já está em dev, além de stream parcial (que permite utilizar o controle de tempo da tag video do html5) e várias correções, além de uma nova implementação “duvidosa”. Mas essa eu não vou contar aqui, você terá de olhar no github, mais especificamente em um commit que nesse momento só está presente na develop.

Fique atento às modificações nas imagens abaixo. Essas imagens representam novidades que criei e estão publicadas em dev (http://devweek04.gago.io:20001/), enquanto isso prd (http://devweek04.gago.io/) continua com a mesma implementação antiga. Nesse momento faz bem deixar assim, já que torna possível visualizar as diferenças.

(mais…)

Docker – de A a Z – 19 – Youtube Downloader – Novidades #01

Docker – de A a Z – 19 – Youtube Downloader – o projeto

Olá, esse é o vídeo de número 19 da série e vamos abordar um tema incomum: Pizza! Oops brincadeira! Youtube Downloader! A escolha desse projeto se dá pela necessidade de utilizar paralelismo para processar as requisições de download, tratar-se de um projeto não convencional, e precisar de cuidados ortogonais quanto ao design da solução em si. São elementos que fazem desse projeto um projeto divertido e cheio de peculiaridades. A principal característica é sair do mais do mesmo, dos cruds com MongoDB e Redis e mostrar um exemplo mais rico. (mais…)

Redis – Importantes features pouco comentadas

Redis – Importantes features pouco comentadas

O que é o REDIS? Um banco de dados NoSQL baseado em chave/valor e disparado um dos mais usados no mundo! Essa resposta está certa, embora incompleta. Há uma infinidade de recursos legais que deveriam ser levados em consideração na hora de explicar o projeto/produto.

Nesse post, que tentarei fazê-lo bem curto, vou apontar diversos links para a documentação do Redis. Sim, isso é um RTFM!!!

(mais…)

MongoDB – Importantes features pouco comentadas

MongoDB – Importantes features pouco comentadas

O que é o MongoDB? um banco de dados NoSQL baseado em documentos e disparado um dos mais usados no mundo! Essa resposta está certa, embora incompleta. Há uma infinidade de recursos legais que deveriam ser levados em consideração na hora de explicar o projeto/produto.

Nesse post, que tentarei fazê-lo bem curto, vou apontar diversos links para a documentação do MongoDB. Sim, isso é um RTFM!!!

(mais…)

Consul – DNS – Visão Geral

Consul – DNS – Visão Geral

Service Discovery é a capacidade que trata da descoberta de serviços em uma rede. É um elemento fundamental no dia-a-dia de quem trabalha com MicroServices, mas também pode ser usado por qualquer um que precise de algum dinamismo na descoberta de serviços. Além do Consul, que abordarei hoje, temos etcd, ZooKeeper. Mas escolhi falar um pouco sobre o Consul por causa do seu DNS interno, e o que vou apresentar hoje utiliza basicamente essa implementação, por ser algo simples, e retrocompatível.

(mais…)

Docker – de A a Z – 14 – ASP.NET Core from Scratch to Production with docker & jenkins (pt-BR)

Docker – de A a Z – 14 – ASP.NET Core from Scratch to Production with docker & jenkins (pt-BR)

Apresento aqui um projeto ASP.NET Core, desde sua criação até sua chegada a produção, com jenkins.
Começamos apresentando as opções de criação do projeto, depois habilitamos a integração com o Docker for Windows. Em seguida adicionamos mongodb ao projeto e começamos a desenhar o build de produção, ainda na máquina de desenvolvimento. Ao concluir o processo de configuração, subo o código para o github e faço o build no jenkins, usando pipeline para realizar build e deploy da nossa aplicação ASP.NET Core.

(mais…)

Escassez de documentação, entenda como as coisas funcionam

Escassez de documentação, entenda como as coisas funcionam

Se você não é capaz de entender uma implementação lendo código, é bom começar. Mesmo que por hobby, ler código lhe fará entender melhor como as coisas funcionam, ou pelo menos lhe dar mais opções na hora de avaliar alguma implementação. Há inúmeros projetos Open Source bem documentados, no entanto quando se depara com algo recente, a escassez de documentação é uma realidade dolorosa.

Ao encontrar um projeto relevante, provavelmente buscará um tutorial, ou algo que te aproxime do entendimento, mas nem sempre esse tipo de material está disponível. Há momentos que você quer algo específico e também não encontra conteúdo indexado no google. Há momentos em que você só quer entender como um pedaço do projeto foi feito, para entender como alguns problemas são resolvidos, quais padrões foram usados, enfim, como foi feito. Ler código é importantíssimo.

(mais…)

JWT no ASP.NET Core – Standalone

JWT no ASP.NET Core – Standalone

Após o hangout que rolou nessa sexta estávamos discutindo JWT no ASP.NET Core (JSon Web Tokens) e ao apresentar um dos meus projetos cheguei a ficar envergonhado, pois eu havia dado uma certa volta para evitar a utilização de criptografia simétrica e acabei fazendo uma implementação de ISecurityTokenValidator o que é uma imensa volta para uma implementação padrão de geração tokens JWT. Bom, madrugada livre, resolvi acertar isso de uma vez e acabei transformando esse aprendizado em post.

(mais…)

.NET Core – de 2.0.0-preview2 para 2.0.0 – Atualizando projetos e Dockerfiles

.NET Core – de 2.0.0-preview2 para 2.0.0 – Atualizando projetos e Dockerfiles

Vamos direto ao ponto: A intenção desse post é apresentar como migrar seus projetos do .NET Core 2.0-preview2 pra o .NET Core 2.0 RTM. Sim, esse é um tutorial, e visa apresentar o que é necessário para fazê-lo.

O .NET Core 2 foi anunciado no dia 14 de agosto e para quem estava usando o 2.0-preview2 algumas coisas simplesmente pararam de funcionar do dia para a noite.

(mais…)

docker-gallery/EnterpriseApplicationLog – v3.0

docker-gallery/EnterpriseApplicationLog – v3.0

Em outubro no post Docker – de A a Z – 15 – RabbitMQ, LogStash, ElasticSearch e Kibana com Docker Compose eu apresentei um modelo interessante de Log, com uma abordagem diferente. Ficou muito simples para trabalhar com o stack, no entanto a Elastic.co mudou muita coisa no meio do caminho e foi necessário readaptar o projeto às novidades da plataforma. Para alegria dos que gostam do projeto que compilei, aqui está a novidade: Revisitei as configuração e acertei o que era necessário para o stack!

A premissa base que me levou à compilar esse stack é criar a possibilidade de utilização desses 5 elementos, sem dor de cabeça. Conectando os pontos, e criando um pacote pré-moldado, todo o entendimento e gerenciamento da plataforma se torna mais simples, e se você quer um stack funcional em minutos, é uma das poucas alternativas.

Eu já fiz pelo menos 2 setups desse stack sem docker e docker-compose e te garanto: é absurdamente traumático, principalmente se quem for executar a tarefa precisa de um documento formal que diga como fazer tudo, from scratch! São 5 elementos, 5 configurações específicas, cada um em um documento, cada um com seus passos em ordem, enfim, um mini-inferno para ambientes mais burocráticos e inviável para quem só quer estudar. Esses motivos me fizeram criar o projeto, permitir que com 3 linhas de comando e alguns segundos, você tenha tudo isso rodando e colaborando em sua infraestrutura.

Sobre os comandos, continuam os mesmos:

git clone https://github.com/docker-gallery/EnterpriseApplicationLog.git
cd ./EnterpriseApplicationLog
docker-compose up

Entre a primeira release, em outrubro de 2016, e meados de 2017 muita coisa coisa mudou, a Elastic criou seu repositório próprio para imagens docker e lançou algumas releases de seus produtos, com isso muita coisa parou de funcionar, e o stack ficou quebrado. As últimas releases no docker hub causaram essas quebras, mas serviram de alerta.

Agora o stack está aqui novamente!

A release 3.0 do projeto  conta com:

  • Adequação à mudança de hub.docker.com para docker.elastic.co.
  • Revisão das configurações e adequação para as novas versões dos produtos.
  • Update do RabbitMQ indo para a versão baseada em apline.
  • Remoção do Xpack (o stack ELK é open source, no entanto o Xpack é um pacote pago).

Se quer conferir, rode as linhas de comando acima, ou visite o repositório que está disponível no GitHub. Esse projeto não possui imagem própria, apenas configura imagens do hub.docker.com e agora do docker.elastic.co.

Docker – de A a Z – 18 – NodeJS API com MongoDB

Docker – de A a Z – 18 – NodeJS API com MongoDB

Nesse vídeo damos continuidade à série Docker de A a Z e vou abordar o desenvolvimento com NodeJS, TypeScript, Restify, TSLint, MongoDB e VSCode usando Docker para release e debug, além permitir rodar serviços adicionais como MongoDB entre outros.

O projeto do gerador de código é melhor detalhado no post (((((NodeJS + TypeScript + TSLint + Restify) + MongoDB) + Docker) + VSCode ) + Yeoman) = Uma experiência de desenvolvimento incrível!, mas você pode baixar o projeto direto do repositório npm ou github.

.NET Core 2.0 e .NET Standard 2.0 Hangout @ Canal.NET

.NET Core 2.0 e .NET Standard 2.0 Hangout @ Canal.NET

Pessoal, dia 7 de Julho vou participar novamente de um hangout no Canal.NET, desa vez o tema é .NET Core 2.0 e .NET Standard 2.0.

O lançamento do .NET Core 2.0, do ASP.NET Core 2.0 e do .NET Standard 2.0 está previsto para os últimos 4 meses de 2017. Acompanhe este hangout para ficar por dentro das novidades e entender melhor o que está por vir.

Presenças confirmadas:
– Renato Groffe (Microsoft MVP, MTAC)
– Luiz Carlos Faria (MTAC)

Há muito para falar sobre as novidades do .NET Core, suas novas API’s, o que chega e como vamos nos beneficiar disso tudo. Sem deixar de abordar .NET Standard e matar de vez as dúvidas sobre no que consiste o .NET Standard e quais são sua vantagens.

O evento já foi criado no Facebook | https://www.facebook.com/events/284606505335837/, marque presença e receba as notificações sobre as novidades desse tema! Vamos postar diversos posts e material que auxilie no entendimento!

Então fica o convite aqui, dia 7 de julho, sexta-feira 22h, nos encontramos! Ah, a transmissão acontecerá no canal.NET e você assiste direto pelo youtube, podendo comentar, tirar dúvidas, e dialogar conosco, como sempre. Desde já de antemão agradeço ao convite do Renato Groffe!! A propósito, o conteúdo fica disponível no canal.net e você pode assistir a qualquer hora!

 

https://blogs.msdn.microsoft.com/dotnet/2017/06/28/announcing-net-core-2-0-preview-2/

 

https://blogs.msdn.microsoft.com/webdev/2017/06/28/introducing-asp-net-core-2-0-preview-2/

 

https://blogs.msdn.microsoft.com/dotnet/2017/06/28/announcing-ef-core-2-0-preview-2/

 

 

Progressive Web Apps – Coloque no seu roteiro de estudo

Progressive Web Apps – Coloque no seu roteiro de estudo

Você já se viu tomando decisões simples a respeito de instalar ou não (novamente ou não) um determinado app no seu celular. Os que você menos usa, são os mais eletivos a serem ignorados quando você troca de dispositivo, ou mesmo quando precisa recuperar algum espaço na memória do aparelho. Esse é um comportamento comum, e nós sabemos disso. Aplicativos que não são de fato de uso cotidiano serão ignorados e um dia deletados e precisamos estar atentos a esse comportamento. Progressive Web Apps ou PWA consiste em novas formas interessantes de desenvolver aplicações web, endereçam, de forma elegante, todos os aspectos e problemas inerentes ao desenvolvimento móvel.

Com seu maior apelo para os aplicativos casuais, Progressive Web Apps são aplicações web que substituem aplicativos nativos de forma inteligente, utilizando os recursos existentes na maioria dos smartphones para oferecer uma experiência tão rica quanto a maioria dos aplicativos nativos que você tem no celular. Se você é desenvolvedor e já ficou em dúvida se uma aplicação a ser construída pudesse ser híbrida ou mobile, lhe dou uma terceira opção, pois há grande probabilidade de você ter encontrado um cenário interessante para construir uma Progressive Web App.

Introdução

Progressive Web Apps são experiências que combinam o melhor da Web e o melhor dos aplicativos. Eles são úteis para os usuários desde a primeira visita em uma guia de navegador sem exigir instalações. Conforme o usuário desenvolve uma relação com o aplicativo ao longo do tempo, ele se torna cada vez mais eficaz. Ele é carregado com rapidez, mesmo em redes instáveis, envia notificações push relevantes, tem um ícone na tela inicial e é carregado como uma experiência de tela inteira de alto nível.

O que é um Progressive Web App?

Um Progressive Web App é:

  • Progressivo – Funciona para qualquer usuário, independentemente do navegador escolhido, pois é criado com aprimoramento progressivo como princípio fundamental.
  • Responsivo – Se adequa a qualquer formato: desktop, celular, tablet ou o que for inventado a seguir.
  • Independente de conectividade – Aprimorado com service workers para trabalhar off-line ou em redes de baixa qualidade.
  • Semelhante a aplicativos – Parece com aplicativos para os usuários, com interações e navegação de estilo de aplicativos, pois é compilado no modelo de shell de aplicativo.
  • Atual – Sempre atualizado graças ao processo de atualização do service worker.
  • Seguro – Fornecido via HTTPS para evitar invasões e garantir que o conteúdo não seja adulterado.
  • Descobrível – Pode ser identificado como “aplicativo” graças aos manifestos W3C e ao escopo de registro do service worker, que permitem que os mecanismos de pesquisa os encontrem.
  • Reenvolvente – Facilita o reengajamento com recursos como notificações push.
  • Instalável – Permite que os usuários “guardem” os aplicativos mais úteis em suas telas iniciais sem precisar acessar uma loja de aplicativos.
  • Linkável – Compartilhe facilmente por URL, não requer instalação complexa.

Este codelab orientará você a criar seu próprio Progressive Web App, incluindo considerações de design, além de detalhes de implementação para garantir que seu aplicativo atenda aos principais princípios de um Progressive Web App.

Referência: Seu primeiro Progressive Web App @ developers.google.com

Aproveito para deixar alguns vídeos interessantíssimos sobre o assunto que remetem a outros temas como PRPL (Push, Render, Pre-cache e Lazy-load), Preact e muito mais.

Vídeos imperdíveis sobre PWA

Conclusão

Embora haja esforços em todas as direções para desenvolver aplicativos móveis cada vez mais eficientes e interessantes, não podemos ignorar quão cotidiano será seu uso. Seja para ajudar na reserva uma viagem ou para fazer uma solicitação de um chaveiro, aplicativos de uso eventual são facilmente descartáveis, gostemos disso ou não. Entender o comportamento dos usuários nos ajuda a compreender quais tecnologias melhor endereçam satisfação e de fato geram aumento de consumo para sua plataforma.

Vale lembrar que essas novas estratégias devem ser levadas em conta na tomada de decisão, mas isso não quer dizer que aplicativos móveis irão morrer, há novas oportunidades de entregar experiências ricas, e é necessário entender como entregar uma melhor experiência para seu usuário, é possível que diversificar e entregar mais de uma alternativa, seja a melhor estratégia para seu público, atendendo aqueles que querem ter um aplicativo e aqueles que não querem.

Exception Handling

Exception Handling

Pessoal, rolou hoje no Software em Contexto um bate papo sobre Exception Handling muito legal. Nesse papo abordamos exceptions quando lançar, quando não lançar, falamos diversas formas de tratar exceptions, apresentamos códigos e refletimos sobre o que é ou não uma exceção. Qual conclusão chegamos? Assiste aê, tire a sua conclusão e retorne com sua opinião.

Live

https://www.youtube.com/watch?v=wN0qexlM8zI

 

Conteúdo Adicional

Além do tema principal, abordamos Logs e tenho alguns links para falar do assunto! Alguns aqui no site e outros externos:

Monte sua Infraestrutura de Logs Corporativos com RabbitMQ, ElasticSearch, LogStash e Kibana!

Logs, não somente logs. Logs com informações de negócio!

Um excelente framework para auxiliar no tratamento de exceções e criação de políticas de tratamento de exceção.

 

Docker – de A a Z – 17 – Build and running WSO2 Identity Server

Docker – de A a Z – 17 – Build and running WSO2 Identity Server

Um dos recursos mais comuns em aplicações corporativas é a gestão de identidade. Ou você implementa na aplicação, ou você utiliza um serviço externo como Auth0, Azure Active Directory ou outros. Quem está próximo das tecnologias Microsoft já ouviu falar do Identity Server (outro projeto), no entanto é importante conhecer outras soluções e a WSO2 possui uma: O WSO2 Identity Server, e é sobre esse projeto que falarei hoje. (mais…)

Uma PoC de Sucesso

Uma PoC de Sucesso

Esse post não tem o intuito de falar de boas práticas, de abordar padrões, técnicas mirabolantes, ou nada disso. É sobre fazer concessões para obter um resultado, levando em conta recursos disponíveis como know how, equipe e principalmente tempo. Parece familiar? Ok, mas também não é e nem passa perto de ser uma sugestão para você fazer algo que mereça ser colocado em produção. Estou aqui para falar de Provas de Conceito, PoC’s ou do inglês Proof of Concept e como consegui entregar uma porcaria extremamente funcional que encantou clientes.

(mais…)

Contract Package – Uma excelente alternativa ao Service Reference

Contract Package – Uma excelente alternativa ao Service Reference

Falar de WCF em meados de 2017 parece algo sem sentido, no entanto considero relevante tornar públicas soluções e alternativas que muitas vezes só apresentava dentro dos times por onde passei. São soluções, ideias, conceitos que ajudam no desenvolvimento e tornam o dia-a-dia de desenvolvimento mais fácil para quem está ciente dos conceitos ao redor da plataforma. Ignorei a possibilidade de publicar esse tipo de conteúdo para evitar exposição, já que obviamente, os preguiçosos irão reclamar, e muito! De qualquer forma asseguro, se você usa WCF e nunca viu esses conceitos, acredito que ao concluir esse post verá a tecnologia como algo menos místico, e até poderá criar alguma empatia por ela. É ambiciosa a minha proposta, eu sei!

(mais…)