AdSenseV

Mostrando postagens com marcador desenvolvimento. Mostrar todas as postagens
Mostrando postagens com marcador desenvolvimento. Mostrar todas as postagens

sábado, 26 de dezembro de 2020

The Battle of 2020 - A Batalha de 2020

Reflexões sobre 2020

No post de fechamento do ano passado falei que as batalhas seriam grandes em 2020, mas nem no meu dia mais pessimista eu poderia imaginar o que a gente passou neste ano. 

Eu inclusive cheguei até a subestimar e desdenhar da ameaça Covid em fevereiro. Mais uma da série "The quieter you become the more you can hear".

Foi duro para todos. Isolamento, distanciamento, perdas de entes queridos, empresas fechadas e empregos perdidos.

Um dia normal desde o começo da pandemia em 2020 para os batalhadores

ANÁLISE DO 2020 DO ZÉ BATALHA

Analisando o que planejei consegui manter uma vida bem mais tranquila nas redes sociais tentando focar mais no que vale a conversa. Por sinal pretendo ainda dobrar essa meta.

Já a atividade física que já era fraca ficou preocupante pois nem meu futebol eu estou jogando por conta da pandemia, uma das coisas que mais gosto de fazer na vida. Preciso tomar vergonha e fazer exercícios físicos.

Nada contra quem ainda ainda joga bola. Não tenho medo de pegar Covid, mas sim de passar pros meus coroas ou pra minha sogra, pessoas de maior risco com quem convivo.

Foi um ano pra repensar muita coisa. Sigo com minhas ideias, mas refleti bastante sobre alguns pontos de vista, tais como a participação do estado na economia, em posts como esse.


"TANTO NO PROFISSIONAL..."

Foi um ano de muita perseverança no trabalho, muito estudo e cursos, tendo em vista um forte incentivo da empresa. Trabalhei/estudei do mainframe ao blockchain, do ASP Classic ao React.

Mas já fiz muito curso. O negócio é tentar colocar em prática agora. Tenho procurado arranjar algo para aplicar o que aprendi. Se não for possível no trabalho, em projetos pessoais.

Quando falo com colegas próximos vejo que foi um ano que trabalhamos muito para a digitalização de serviços do país. Com a pandemia, empresas como CEF, Serpro e Dataprev tiveram que se desdobrar para fazer em poucos meses algo que seria feito em vários anos.

Em outubro fiz um investimento para melhorar o parque tecnológico Batalha. Como tratei nesse post o meu desktop antigo era sofrido. 

Agora estou com uma ótima máquina, um AMD Ryzen 5 3400g com 16Gb de RAM e um SSD de 240Gb. Tem me servido muito tanto para o trabalho em home office quanto para meus projetos pessoais.

Por sinal, gostei muito de trabalhar de home office, mas aponto uma grande desvantagem: se perde muito tempo com configuração de ambiente e máquinas. 

Por vezes perdi tempo tentando resolver um problema e quando vi era a VPN que estava fora, ou era algo que podia ser acessado por uma VPN mas não pela outra. O cara acaba tendo que aprender mais sobre redes também. Por um outro lado, foi um grande aprendizado.

Outro desafio em alguns momentos, para quem tem filhos, é se concentrar na tarefa e conciliar o tempo com as tarefas domésticas e etc.
 
 
"...COMO NO PESSOAL"

Sobre o blog e redes sociais

Sobre as reflexões de ainda ter esse blog, que faço por que gosto, não tenho retorno financeiro. Percebi que escrever aqui me ajuda a organizar as ideias, registrar entendimentos que podem ser consultados no futuro, 

Rever como o que penso pode mudar com o tempo (e isso faz parte da vida, acredite) e até debater com pessoas que tenham o mesmo interesse no assunto concordando ou discordando de mim, mais de uma forma muito mais construtiva e educada do que pude vivenciar nas redes sociais.

Ainda assim este ano vi que há um lado muito bom nas redes sociais que tanto questiono. Esse lado bom ocorre quando alguém tenta ajudar o próximo sobre algo que ele tenha mais experiência. 

Hoje tento me focar mais nisso: ensinar e aprender.

Outra coisa que tenho refletido é que no mundo de hoje você precisa se expor de alguma forma para se desenvolver. A participação que vi nas comunidades e redes sociais nas imersões da Alura, onde as pessoas se ajudavam bastante, e artigos como esse me fizeram chegar a essa conclusão. 

"When we expose ourselves on the Internet, we are subject to all kinds of responses, good or bad, and it is important to know how to deal with both
Or, if you are like me, your motivation for writing articles may come simply from the desire to share knowledge with others and to want to observe and analyse points of view and opinions different from yours.
You do not need to write with the aim of becoming famous, but to register your knowledge for yourself, creating an archive of useful information that you can search for when you need it."


Algo que me também me ajudou nessa conclusão foi o fato de ter conhecido excelentes profissionais na área de TI que não tiveram o reconhecimento merecido muitas vezes porque quase ninguém sabia o que eles estavam fazendo.

O "novo normal" da pandemia

Essa vida que a gente tem levado pode deixar muita gente louca ou mais louca do que já era.

Creio que fui pouco afetado pelo isolamento. Se isso me deixa feliz por um lado ao mesmo tempo me deixa um pouco preocupado. Pois eu sinceramente não senti muita falta do trabalho presencial...

Claro que há parentes e amigos que gosto muito e sempre é ótimo estar com eles, mas sinceramente não sinto muita falta de reuniões (tirando o meu futebol rs...) com muitas pessoas. E acho que ultimamente gosto muito mais de escrever do que falar, o que claro, pode não ser tão bom assim também...

Longe de ser psicólogo, mas às vezes acho que vivo o tal do dilema do ouriço... rs

E isso vale para outros meios também. As pessoas querem conversar no WhatsApp. Eu só quero as figurinhas. Não quero saber da vida dos outros, se fulano casou, comprou carro, ou terminou relacionamento. Disso estou bem convicto.

Por fim, sei que o fato de estar com minha mulher e filha todos os dias me faz muito privilegiado de poder superar esse período. Para quem mora sozinho ou tem problemas psicológicos foram e ainda são dias terríveis.

Que seja um feliz 2021 para todos vocês, batalhadores!



sexta-feira, 6 de novembro de 2020

Problema no node-gyp ao preparar ambiente Angular no Linux Mint - "gyp err stack error make failed with exit code 2"

Uma das desvantagens de trabalhar em home office são essas situações que surgem ao configurar ambientes que fazem a gente perder um bom tempo.

Principalmente se você trabalha com desenvolvimento de sistemas, feito eu. Enquanto eu estava usando o Linux Mint, as máquinas do trabalho todas são Ubuntu 18.

O PROBLEMA

Um problema bem chato que levou um bom tempo para descobrir a solução, similar a esse que foi relatado no stackoverflow.

Ao preparar a máquina para trabalhar com um sistema desenvolvido em Angular me deparei com um erro pois sempre o node-gyp era chamado para compilar alguns módulos tais como o node-sass.

Verifiquei que na máquina de todos os colegas não ocorria, somente na minha. Tanto no meu desktop antigo (Mint 19.3), quanto no notebook (Mint 19.1). Versão node 12.18.3 e npm 6.14.6. A máquina de todos eles era Ubuntu. Por que não mudei pra ele então? Porque não queria ter que preparar ooooutro ambiente!

Ao final do npm install dá esse erro:

gyp ERR! build error 

gyp ERR! stack Error: `make` failed with exit code: 2

(...)

gyp ERR! System Linux 4.15.0-20-generic

gyp ERR! command "/home/windson-serpro/.nvm/versions/node/v12.18.3/bin/node" "/home/windson-serpro/git/serpro/editais/editais-suiterfb-frontend/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="

gyp ERR! cwd /home/windson-serpro/git/serpro/editais/editais-suiterfb-frontend/node_modules/node-sass

gyp ERR! node -v v12.18.3

gyp ERR! node-gyp -v v3.8.0

gyp ERR! not ok 

Build failed with error code: 1

De tudo que pesquisei, se falava que eu tinha que instalar o build-essential para a compilação via make rodar. Sugeriam várias outras bibliotecas mas vi que não resolvia também.

Segui outra referência que apontava que eu deveria remover o package-lock.json, a pasta node_modules (se você realmente trabalha com node já fez isso milhares de vezes...) mas além disso a pasta oculta .node-gyp e então instalar de novo o node-gyp. Também não resolveu...



A SOLUÇÃO

Analisei o problema mais a fundo com um colega. Vimos que tinha um passo que ocorria na minha máquina mas nunca na dele: essa compilação do node-gyp

O node-gyp serve para compilar módulos nativos, mas isso não deveria ser necessário nesse caso, e ele parecia tentar compilar o node-sass e com isso sempre dava erro no meu ambiente.

Portanto toda vez que eu rodasse o npm install e surgisse uma pasta oculta .node-gyp na minha home, era sinal de problema.

Fomos tentando outras versões do node até que eu fui bater na versão de sistema do Mint 19.1: a 8.10.0, bem antiga.

E então pela primeira vez o npm install rodou sem os erros do node-gyp

Ou seja, quando está tudo OK ele encontra o binário da biblioteca, no meu caso o node-sass, e não precisa chamar o node-gyp.

Ao rodar o npm start, depois ainda deu um erro de dependência pois não achava a dependência quill.

Então foi só dar um npm install quill e depois o npm start que a aplicação rodou normalmente


Também publicado no medium

quinta-feira, 17 de agosto de 2017

Emulador do Android SDK no Ubuntu 16 - Resolvido

Recentemente passei por alguns problemas para fazer funcionar o emulador do Android SDK instalado juntamente com o Android Studio 2.3.3 em máquinas Ubuntu de onde trabalho.

Configuração das máquinas:
Intel® Core™ i7 CPU 870 @ 2.93GHz × 8
8GB de RAM
Ubuntu 16.04 64bit

A princípio, uma configuração suficiente pra rodar o Android Studio, mais precisamente o emulador que dava problema. Tanto na minha como nas máquinas de 2 colegas.

Depois de muitas pesquisas na documentação do Android Studio, stackoverflow e outros sites relacionados chegamos à solução do problema.

Android Studio no Ubuntu

Problema:

Antes de chegar na questão, passamos por outras situações, tais como a solicitação de instalação do Intel HAXM (Hardware Accelerated Execution Manager) ou KVM (Kernel-based Virtual Machine), configuração de BIOS para habilitar a virtualização do processador, entre outros.

Após pesquisas vimos que era algo bem comum. Com vários relatos, inclusive de casos que funcionavam antes, mas não após o upgrade pra versão 2 do Android Studio.

Após a resolução das configurações iniciais citadas, chegamos num ponto em que o emulador é iniciado, mas dá crash, às vezes logo de início, às vezes no início do carregamento do sistema operacional.

Um das causas do problema parece estar relacionada à interface gráfica Unity, já que vimos soluções em que a mudança para o Mate resolveria, mas não era algo aplicável ao nosso caso.

Cheguei a pensar se o fato de usar um processador Intel de 1ª geração poderia ser complicador também, já que no meu notebook com processador de 5ª geração (i5-5200U) e 8GB de RAM o emulador rodou normalmente.

Solução:

Inicialmente, a CPU precisa suportar uma das seguintes tecnologias de virtualização:
  • Intel Virtualization Technology (VT, VT-x, vmx) extensions
  • AMD Virtualization (AMD-V, SVM) extensions (Linux only)
A chave de tudo é fazer funcionar o processo de aceleração

1) Aceleração de hardware

Ao usar aceleração de hardware seu emulador deve rodar mais rapidamente, mas o problema que temos é que exatamente por tentar usar isso que o erro ocorre. Muito provavelmente você está usando o driver SL Nouveau. Ele acaba tornando a renderização gráfica mais lenta ou ocasiona o crash.

Solução: atualizar/modificar o driver da placa de vídeo. No meu caso a placa era uma GeForce 8400. Bastou reverter para o driver do fabricante nvidia-340 que já estava até instalado, mas não em uso.

2) Se ainda assim não der certo... usar Aceleração via software

Aceleração via software é útil somente se o computador não dispõe de drivers gráficos compatíveis com o emulador. A imagem do Android deve ser criada definindo a opção Emulated Performance: Graphics como 'Software' para assim não usar a GPU do host. Mesmo com esse procedimento só funcionou a versão Lollipop do Android no nosso caso.

Além disso foram necessários mais alguns comandos:
  • Instalação de bibliotecas:
sudo apt-get install lib64stdc++6:i386
sudo apt-get install mesa-utils
  • Copiar pastas lib, lib64 e qemu da pasta emulator para tools dentro de $ANDROID_SDK.
  • Renomeia pasta:
Na pasta '$ANDROID_SDK/emulator/lib64': 
mv libstdc++/ libstdc++.bak
  • Linca pasta do emulador pra pegar as bibliotecas do sistema
Na pasta '$ANDROID_SDK/emulator/lib64': 
ln -s /usr/lib64/libstdc++.so.6 libstdc++
  • Para rodar o emulador via linha de comando:
Na pasta '$ANDROID_SDK/tools$:
 ./emulator -list-avds
Na pasta '$ANDROID_SDK/tools$:
 ./emulator -use-system-libs -avd Nexus_5X_API_22

Em alguns casos não precisa do -use-system-libs. Em outros dá pra rodar direto do Android Studio.

Em qualquer dos casos, se prepare que muita memória vai ser consumida. Nem 8GB é o bastante quando uma aplicação está rodando e com navegadores e outros programas abertos.

Observação: você não pode rodar uma VM dentro de outra VM como VirtualBox ou VMWare. Você deve rodar o emulador diretamente do seu hardware.