Autor: magoolation

  • Revisitando a programação reativa em .NET

    Fala galera!

    Agora com o gt bem configurado, como disse no post anterior, pude publicar um experimento interessante que fiz para poder me aperfeiçoar no uso de programação concorrente em .NET.

    Desde que ganhamos o async await a programação de serviços que necessitavam de paralelismo, como hcamadas a APIs, I/O e comunicação em rede em geral s tornou muito fácil apesar de muita gente, eu inclusivo, ter demorado para entendr o seu real uso.

    Mas algo que se tornoucomum em meu dia desde que entrei no projeto atual foi o uso de programação reativa (Reactive Programming) com o uso da System.Reactive, seus tipos, e todo conjunto de regras que rodeiam os Observables e Observers.

    Para quem não conhece este paradigma ao invés d programarmos de forma imperativa chamando algo e aguardando e recebendo imediatamente o que solicitamos, seja lá o que imediatamente signifique entre milesegundos e minutos, na programação reativa trabalhamos com fluxos de dados que nos notificam esó então atuamos.

    Por exemplo podemos observar um evento de tap em um botão, neste momento solicitar dados em uma API, e só quando recebermos estes dados atualizarmos a interface do usuário.

    Como reatividade e paralelismo andam juntos com isto liberamos a thread principal para que nosso aplicativo não fique travado.

    Temos centenas de operadores que podem ser aplicados para filtrar, combinar, transformar e extrair mais informações destes fluxos e isto abre uma gama ainda maior de possibilidades.

    Mas novamente conhecer bem estes conceitos é o que faz vocêfazer um bom uso e ter real controle da sua aplicação.

    Na próxima postagem irei compartilhar o repositório e descrever quais foram minhas experiencias.

    Até amanhã!

  • Configurando corretamente o gestor de credenciais do git for Windows

    Fala galera!

    Apesar de no último post ter dito que não postergaria mais postagens isto acabou acontecendo por vários fatores, mas para compensar hoje teremos pelo menos dois, senão tres postagens bem úteis.

    A primeira diz respeito a eu não ter conseguido postar sexta e ontem. EStava trabalhando em um novo repositório de código mas infelizmente  me deparei com o problema de não conseguir subir o código por conflito nas credenciais entre minhas duas contas do github.

    Com o objetivo de dar um fim definitivo a esta bagunça em minha estação de trabalho me deparei com esta solução que comparilho aqui:

    https://community.atlassian.com/t5/Sourcetree-questions/Git-Credential-Manager-for-Windows-Popups/qaq-p/579905

    No caso são necessários dois comandos para que  o git entenda que vocêode ter mais de um repositório/conta em um mesmo serviço:

    • git config –global credential.helper manager
    • git config –global credential.useHttpPath true

    Feito isto o prompt de usuário e senhas se comportará de acordo.

    Espero ter ajudado.

    Até amanhã!

  • Desculpem a falha

    Este artigo foi publicado em 2019. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera! Logicamente que aconteceria mas ontem foi meu prineiro furo com voces. Não me programei direito, peguei no sono, e o dia passou. Tentarei não deixar que isto se repita mas esta aqui meu pedido de desculpas. Até mais tarde!
  • Entenda o seu fluxo de energia

    Este artigo foi publicado em 2019. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera! Tenho postado diariamente e tenho de confessar que há dias, como o de ontem, em que é dificil entrar aqui e escrever alguma coisa. Isto porque para que consigamos concluir qualquer atividade precisamos de dois ingredientes: tempo e energia. Acontece que somos negligentes com o tempo e dificilmente entendemos nosso fluxo de energia, e a combinação destes dois fatores nos fazem procrastinar em nossas atividades e dificultam demaisalcançarmos nossos objetivos. Mas então o que é este tal de fluxo de energia? Sabe aquela pessoa que diz que é mais noturna? Ou aquelas pessoas que dizem que acordam pilhadas? Nosso corpo tem uma quantidade diária finita de energia, quje pode se apresentar logo pela manhà ou receber uma turbinada a tarde, ou pior a noite. Quando entendemos quando estamos mais energizados fica fácil direcionar as atividades que demandam mais de nossa energiap ara estes periodos. Sempre fui uma pessoa noturna mas trabalhar em um regime de horário rígido teve de me fazer mudar um pouco. Acordo pilhado, utilizo esta energia para programar meu dia, e distribuo o restante da energia pelo dia. Neste horáril, que estou escrevendo agora, estou cansado e é por isto que vou tentar mudar minha rotina de escrita para amanhã. Veremos se os próximos posts, provavelmente da próxima semana, serão melhores. Até amanhã!
  • Não somos como as máquinas que controlamos

    Este artigo foi publicado em 2019. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera! Hoje estou un pouco mais cansado e por isto deixo a reflexão: Diferente de nossos computadores precisanos de pausas. R nesno eles ten rotinas de manutenção. Até amanhã!
  • Repositórios privados ilimitados no github

    Fala galera!

    Estou com problemas no fornecimento de energia elétrica em casa mas estou aqui para cumprir o desafio.

    Não poderia deixar de comentar o anúncio de repositórios privados ilimitados no github para os planos free.

    Esta é uma grande notícia para pequenos times, startups, estudantes e outros que queiram conpartilhar codigo de forma privada.

    Até amanhã!

  • Reflexão sobre a série “Você”, da Netflix

    Este artigo foi publicado em 2019. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera!

    Estou assistindo ininterruptamente esta série da Netflix que nos traz diversas reflexões.

    A temática da série é o quanto as nossas redes sociais revelam sobre nós, nossos gostos, nossos comportamentos e o quanto a posse destas informações podem nos tornar vulneráveis.

    Não darei nenhum spoiler nem quero criar uma paranóia coletiva mas a série realmente me deixou preocupado, e deveria deixar você também.

    Quanto as fotos que você compartilha publicamente com seus amigos, colegas de trabalho e familiares revelam sobre locais e hábitos de vocês?

    Quanto a sua geolocalização e seus “checkins”revelam seu trajeto, a localização da sua casa, do seu trabalho, da sua escola?

    O quanto a abertura da sua rede expõe seus contatos?

    Durante os próximos dias irei rever com mais cuidado todas as minhas configurações de privacidade pois com tudo público qualquer pessoa ou empresa consegue montar um perfil completo seu, e ou te oferecer propagandas direcionadas que irão te atingir em feio, até mesmo para ações mais perigosas.

    Como disse não quero gerar uma paranóia generalizada, mas acho que está mais do que na hora de entendermos que apesar de sermos produto, não temos de ficar tão expostos.

    Até amanhã!

  • Dicas de leitura

    Este artigo foi publicado em 2019. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera!

    Sei que normalmente divulgo aqui dicas de livros sobre tecnologia mas hoje será um pouco diferente.

    Nos últimos dias li dois livros que tem me feito refletir bastante e que fui digerindo com muita calma pois a cada nova página me via naquelas mesmas situações, ou pensando da mesma forma.

    Os livros sãoÄ sutil arte de ligar o F*da-se” e “O ano em que disse sim”.

    No primeiro de forma muito humorada o autor nos leva a refletir o quanto realmente nos preocupamos com coisas que não fazem sentido, e estas preocupações nos levam não só a muito mais sofrimento e a uma vida d indecisão de se estamos no caminho certo.

    Ele nos ensina a entender que algumas coisas são inevitáveis, mesmo que. Tentemos evitá-las. Ele nos mostra o quanto a opinião alheia tem pouco a nos acrescentar e o quanto assumir a culpa pelo que nos acontece torna tudo mais leve.

    Já no segundo a autora descreve sua jornada na transformação de sua vida dizendo sim a tudo aquilo que lhe gerava pavor. Aparições em público, entrevistas, discursos, seu peso, família e relacionamentos.

    Ela mostra o quanto os seus pensamentos a aprisionavam. O quanto tudo aquilo que estava repreendido a tornava uma pessoa pior e ao acompanha-la na jornada nos identificamos e realmente aprendemos a nos conhecer melhor.

    Foram duas leituras deliciosas, acredito até que li os livros mais rápido do que deveria, mas com certeza já adicionei em minhas tarefas fazer uma nova leitura daqui a seis meses e verificar o quanto eu consegui colocar os ensinamentos em prática.

    Até amanhã!

  • Interfaces e Classes abstratas

    Fala galera!
    É muito comum que ao desenvolvermos uma solução não nos atentemos que estamos nos repetindo, espalhando trechos de código seelhantes em diferentes partes.
    Nesta hora vale muito a pena fazermos um refactoring do código e torná-lo não só mais organizado mas também mantenível.
    Para isto costumamos nos basear em dois elementos:
    Interfaces;
    Classes abstratas;
    Mas você sabe diferenciar quando devemos usar uma ou outra?
    As interfaces são contratos que devem ser seguidos pelas clases que as implementam, ou seja, quando digo que uma classe implementa determinada interface estou dizendo que ela segue um determinado contrato e terá os membros públicos definidos pela interface.
    Uma boa prática em nomear interfaces é utilizar adjetivos como ICloneable, IReachable, IComparable etc.
    Um problema com as interfaces e que deverá ser solucionado no C# 8.0 é a implementação padrão para membros da interface. Isto permitirá que adicionemos novos membros sem quebrar código legado que se baseia nesta interface e não implementa estes membros.
    Já as classes abstratas podem possuir tanto membros abstratos que devem ser implementados nas classes herdadas como também implementações padrão.
    Uma boa prática de nomenclatura é utilizar o prefixo ou sufixo Base para estas classes e devemos ter muita atenção nos comportamentos já implementados pois caso precisemos mudá-los podemos introduzir efeitos colaterais nas classes descendentes.
    Costumo usar classes abstratas em situações em que quero impor um fluxo de chamadas introduzindo flexibilidade no que stá sendo feito, como adição d log, captura de informações, limpeza de estado entre outros.
    Em um próximo post devo comentar melhor isto e como podemos melhorar nosso código aplicando estas técnicas.
    Até a amanhã!

  • O que irei estudar em 2019?

    O que irei estudar em 2019?

    Este artigo foi publicado em 2019. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera! Hoje vou compartilhar com vocês as minhas áreas de interesse de estudos para este ano. Em primeiro lugar percebi no ano passado que tive uma formação bem deficiente em matematica, e apesar de trabalhar com desenvolvimento a muito tempo, conhecer design patterns e padrões de arquitetura, meus conhecimentos em algorítimos e estrutura de dados é um pouco deficiente. Acabando com estes gaps quero voltar a estudar um pouco de Machine Learning e Inteligencia Artificial. Apesar de antenado com as tendencias e ser usuário de serviços cognitivos já treinados como o LUIS da Microsoft quero entender um pouco mais como isto funciona, e aplicar estes conhecimentos utilizando o ML.et. Por último e não menos importante quero voltar a estudar um pouco de automação e os novos frameworks Web. Apesar de ter visto alguma coisa de Angular e React ainda não apliquei isto em nada sério. E logicamente quero olhar Blazr já que está em meu ambiente mais familiar. Outras coisas que quero ver mais a fundo, mas em paralelo e com menos prioridade são: Blockchain; Kubernets; Programação funcional; Até amanhã!