Fujiy

Blog sobre .NET, C#, ASP.NET entre outras tecnologias de desenvolvimento de software

GitHub e Two Factor Authentication no Visual Studio

03/05/2015 16:12:13 Por Fujiy

Se você ainda não está usando o Visual Studio 2015 RC, que vem com uma extensão do GitHub, vai ter problemas ao sincronizar seu repositório com o GitHub após ativar o Two Factor Authentication.

Para quem ainda não viu a nova extensão pro VS2015:

Atualmente, quem usa o VS2013, vai se deparar um com erro 401, e a tela de login.

Clique em Sync

Será exibida a tela de login.

Não adianta colocar seu login e senha. Pois agora o Two Factor Authentication está ativo.

Como o Visual Studio não suporta essa funcionalidade, você vai precisar criar um Token no site do GitHub. O que é bem simples, acesse o link https://github.com/settings/tokens e clique em "Generate new token"

As opções padrões são suficientes:

Guarde o token gerado

Ele deve ser usado no login do login, a senha deve ficar em branco:

Com isso você vai conseguir sincronizar com sucesso:

 

Premier Field Engineer na Microsoft

12/04/2015 18:20:56 Por Fujiy

Já se passaram alguns meses desde que comecei uma nova jornada em minha carreira. Eu nem imaginava que no Brasil existissem PFE's, na realidade nem sabia o que fazia um PFE.

Como desenvolvedor estava acostumado com a idéia de sempre escrever código na maior parte do tempo. Porém o objetivo do PFE é diferente, a função é voltado ao suporte, reativamente ou de forma proativa.

Trabalhar na Microsoft trouxe muitas mudanças, é uma das maiores empresas do mundo, com diversos processos, regras e oportunidades. Como sempre fui fã de C#, .NET e outras tecnologias Microsoft, é bom estar mais próximo das pessoas que fizeram tudo isso acontecer.

Em pouco tempo você percebe que não é à toa que a Microsoft é uma empresa de sucesso, com pessoas muito inteligentes e focadas, e você vai querer seguir seus exemplos.

Com certeza já estou e ainda vou aprender muito.

5 Things about ASP.NET 5 that will Blow your Mind!

12/04/2015 18:03:53 Por Fujiy

Acabei de assistir o video "5 Things about ASP.NET 5 that will Blow your Mind!" do Daniel Roth e Cory Fowler, publicado no Channel 9. Nos últimos meses tem sido publicada tanta informação sobre ASP.NET 5, CoreCLR, EntityFramework, enfim, as tecnologias que eu usava em praticamente todos os projetos, que fica difícil acompanhar todas as mudanças.

Ainda mais com tantos projetos Open Source, onde são divulgados os Design Meeting Notes, em que se pode ler e contribuir com idéias, verificar cada commit feito....é muita informação.

Neste vídeo há um resumo de alguns novos aspectos do ASP.NET 5, nenhuma grande novidade pra quem já acompanha o que já se tem feito, mas agora de forma mais concreta. São abordados os tópicos:

 

  • New fast request pipeline
  • Unified Web stack (MVC + Web API + Web Pages)
  • BYOCLR
  • Cross-plataform 
  • Open Source

5 Things about ASP.NET 5 that will Blow your Mind!

CET Trânsito Agora na Windows Phone Store

21/12/2014 20:19:12 Por Fujiy

Converti o aplicativo CET Trânsito Agora para um projeto Universal e publiquei na Windows Phone Store. Com atualizações em background mostrando o índice de transito na Live Tile:

 

 

CET - Trânsito Agora - Windows Phone Store

CET - Trânsito Agora - Windows Store

Desenvolva como se o próximo a manter seu código seja um maníaco homicida que sabe onde você mora.

22/08/2014 22:02:47 Por Fujiy

Normalmente quando estou programando não estou pensando em fazer funcionar apenas, na verdade o desafio é fazer de forma simples e óbvia. O fazer funcionar é o mínimo, se não funciona não adianta criar.

As vezes, ou muitas vezes, o dificil é fazer o simples, pode ser porquê não conhecemos a forma certa ou como usar determinado Framework, por estar "dentro" do problema e já influenciado pelo código existente ou mesmo pelo entusiamo de criar códigos mirabolantes.

"Code as if the next guy to maintain your code is a homicidal maniac who knows where you live." -Kathy Sierra and Bert Bates

Criando código bem estruturado, vai poupar seus colegas de muitos problemas (bugs) e economizar tempo sempre que precisar mexer no seu código. Costumo dizer que a próxima pessoa a mexer no código pode ser eu mesmo daqui 6 meses, quando já não lembro muita coisa do projeto, e ter o código limpo acaba sendo uma recompensa.

Para ter código limpo você depende de muitas coisas, mas é muito mais fácil faze-las quando está escrevendo pela primeira vez do que no futuro ter que entender o motivo de tudo que foi feito do jeito que está. Algumas coisas como:

  • Usar uma variavel entre alguns calculos, com um nome descritivo
  • Separar o código em método que façam sentido, normalmente com altura menor que sua tela.
  • Agrupar chamadas em blocos onde o código esteja relacionado de alguma forma e deixando uma linha em branco antes do próximo. Meio que para separar os pensamentos
  • Manter os métodos em ordem de chamadas, por exemplo se tenho um método que chama outros dois método na mesma classe, mantenho eles perto, o chamador primeiro, depois os chamados.
  • Não duplicar código.
  • Não depender de efeitos colaterais, ou regras "fracas".
  • Entre muitos outros. Recomendo o livro Clean Code: A Handbook of Agile Software Craftsmanship

 Outro fato que muita gente ignora é a compilação e deploy. Uma das coisas que dão mais trabalho e medo, é pegar um código muito antigo que muitas vezes nem compila e ter que só alterar uma linha de código. Como garantir que a versão do código que tenho é a que foi pra produção a dois anos atras? E se esse código está com alterarações que nunca subiram pra produção?

E o mais importante, refatorar, refatorar e refatorar. Antes e depois de mexer em algum código, veja as opotunidades de refatorar.

Quando pegar um código muito bagunçado, faça uma limpeza, remova duplicidades, garanta que tudo ainda funciona e então faça suas alterações. E ao terminar garanta que as alterações estão organizadas, entre um teste e outro acabamos deixando coisas para trás.

 A biblioteca que uso pra cache, Fujiy Util, é um bom exemplo de refatoração, apesar de ser pequena, a principio era um só método que fazia tudo, agora tenho classes separadas pra gerar chaves a partir de uma chamada de método e a classe que gerencia o Cache em si.