 Jefferson,  07 de setembro de 2019, winthor Nota: eu tive dificuldade com o plural de NFC-e e segui o que estava recomendado aqui.
No Winthor existe um servidor dedicado chamado de DocFiscal que é encarregado de todas as operações envolvendo a SEFAZ. A rotina 2075 no caixa ao efetuar uma venda envia o cupom para o DocFiscal que por sua vez pede autorização à SEFAZ e repassa o resultado ao caixa. Caso haja um problema nessa comunicação o cupom é emitido “em contingência”, isto é: o consumidor recebe um cupom mesmo sem a devida (?!) autorização do governo, mas a empresa tem um prazo para regularizar isso. No caso do Winthor isso é feito no fechamento de cada caixa, quando todos os cupons emitidos em contingência são reenviados (assim a operação me explicou).
O cenário é o que descrevi no post anterior. No caso o servidor DocFiscal também estava na outra cidade o que significava que cada emissão de cupom dependia da confiabilidade de dois acessos à internet. E ao final de cada dia uma dezena de cupons tinha sido enviada em contingência. Mesmo assim eu achei que havia algo errado porque o volume de vendas era baixo e seria preciso muita instabilidade para coincidir justamente da venda ser feita quando houvesse problema em um dos links. Eu não consegui detectar essa instabilidade. E desconfiei que a latência também tivesse algo a ver com isso, porque em momentos de congestão do link (alguém fazendo upload ou download em qualquer uma das pontas) essa podia subir para vários segundos. Um possível “timeout” poderia estar ocorrendo.
Na mesma operação de mover o servidor principal eu também movi o servidor DocFiscal para a mesma rede local dos caixas e esse problema também foi resolvido. A operação me disse que o número de cupons emitidos em contingência caiu para um por semana.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  07 de setembro de 2019, winthor No Winthor a “Rotina 2075” é o programa usando nos caixas, também chamado de “Winthor Varejo”. Supostamente (falarei sobre isso em outro post) essa rotina funciona completamente offline, pois mantém seu próprio banco de dados local (Oracle) em cada caixa com todo o necessário para efetuar uma venda. O processo de sincronizar esse banco de dados local com o banco principal, também Oracle, é chamado de “carga”.
Quando cheguei a essa empresa fiquei espantado com o fato dessa carga levar até 15 minutos. O servidor principal ficava em outra cidade e essa comunicação ocorria via internet usando uma VPN, mas ainda assim não se justificava, porque o banco de dados era pequeno, a banda efetiva (testado) era de 3.5Mbps e uma observação do uso da rede durante a carga mostrava que uma fração desprezível dessa banda estava sendo usada. Não havia congestão do link pois essa demora acontecia a qualquer hora, mesmo quando as empresas nas duas cidades ainda estavam fechadas.
Isso era um problema para a operação, porque qualquer mudança de preços efetuada durante o dia levava no mínimo 15 minutos para ser propagada. “No mínimo” porque como o caixa não podia operar durante esse processo isso tinha que ser feito em um caixa de cada vez. Também era um problema para a manutenção, porque muitos testes envolviam efetuar a carga e às vezes era preciso fazer isso múltiplas vezes.
A única pista que eu tinha da razão estava na latência. Um ping através dessa VPN levava no mínimo 70ms, não sendo incomum ficar em um mínimo de 100ms. Eu suspeitei de programação mal feita. Em vez de coletar toda a informação em um pacote só e aí esses 100ms seriam irrelevantes, a 2075 provavelmente estava dividindo a carga em milhares de querys. Digamos que você tenha 10 mil produtos cadastrados e consulte cada um deles individualmente: numa rede local, cabeada, cuja latência não passa de 1ms essas querys não devem levar mais que (10000×0,001) 10 segundos e um “erro” desses passa despercebido. Mas quando a latência é 100 vezes maior temos 1000s (16 minutos) desperdiçados para efetuar a mesma operação. Note que não é preciso usar uma VPN para ter esse tipo de problema. Basta querer conectar os caixas via Wi-Fi para ter latências piores.
Por essa e outras razões ficou decidido mover o servidor principal para a mesma rede local dos caixas, na outra cidade. Depois que efetuei essa operação, que exigiu semanas de planejamento por causa da complexidade do Winthor, a carga dos caixas passou a levar até 15s.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  06 de setembro de 2019, winthor Segui o explicado no único texto da TOTVS que encontrei sobre o assunto mas não encontrei a causa do problema. Pior que isso: o procedimento indicado de reabilitar a nota para envio não surtia efeito algum.
Isso foi às 18h30 e a loja deveria ter fechado às 18h. Tiveram que fazer a entrega da mercadoria sem nota fiscal mesmo.
O problema resolveu-se sozinho quando o depto de vendas emitiu outra nota cerca de 14h depois, já no dia seguinte. Quando a nova nota bateu na SEFAZ, “automagicamente” veio a resposta da primeira.
Meu melhor palpite é que a SEFAZ demorou mais que o normal para responder ao envio e a rotina 1452 não estava consultando periodicamente para saber se havia uma resposta. Quando a segunda nota bateu lá finalmente a 1452 “pingou” o site da SEFAZ e recebeu as duas respostas.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  06 de setembro de 2019, winthor Winthor é um sistema de gestão empresarial (ERP) desenvolvido pela PC Sistemas que agora pertence à TOTVS (que, a propósito, parece estar absorvendo todo o mercado). Eu tive o meu primeiro contato com ele meses atrás em um novo cliente e vou começar a fazer posts sobre o assunto, que receberão a tag “winthor”.
É bom deixar avisado aqui que o Winthor é um sistema demasiadamente complexo e eu não tive treinamento nele, assim como muitos dos usuários aos quais estou dando suporte. Muito do que eu vou relatar provavelmente parecerá trivial para o usuário experiente, mas poderá ser útil para técnicos de manutenção que acabem se encontrando numa situação similar à minha. A PC Sistemas/TOTVS mantém uma extensa base de conhecimento sobre o Winthor online mas nem de longe ela é o suficiente para entender o sistema.
O suporte da TOTVS é surpreendentemente rápido, embora nem sempre dê uma resposta satisfatória.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  02 de junho de 2019, Filmes O filme segue a tradição recente da Marvel (iniciada com Iron Man em 2008) de entreter o bastante para os defeitos de produção e absurdos no roteiro não incomodarem tanto.
Atenção, massivo spoiler adiante. Não prossiga se não tiver assistido ao filme.
O que realmente apreciei no filme foi a surpresa de ver os Skrulls não como vilões, mas como vítimas do Império Kree. Além de quebrar a “tradição” de ver a raça “feia” como “má”, coloca os skrulls com sua habilidade metamorfa como possíveis aliados da Terra.
Os problemas:
- Não foi explicado por que Mar-Vell /Doutora Lawson decidou usar tecnologia da Terra para criar o protótipo de propulsão quando tinha uma nave de avançada tecnologia Kree aparentemente completamente operacional em órbita;
- Se Fury e a SHIELD nunca tiveram contato com extraterrestres antes o que a SHIELD estava fazendo como primeira equipe a chegar ao local de um incidente onde foi relatado que “uma mulher caiu do céu no telhado de uma blockbuster” com uma única testemunha? E até o chefe de Fury estava lá. Ainda se a testemunha a dar o telefonema tivesse sido um ex-agente aposentado, mas não, parece que qualquer telefonema “maluco” faz a polícia acordar a SHIELD nessa época;
- O que os Skrulls ganharam disparando uma arma de energia na direção de Fury e Vers quando pelo menos Colson já havia sido duplicado?
- Onde foram parar as armas dos Skrull depois desse incidente?
- Eu sei que o projeto Pegasus era algo secreto, mas não consigo ver o sentido de uma nave de propulsão experimental com armas. É verdade que era um projeto conjunto da NASA com a USAF, mas não faz sentido colocar armamento (e carregar munição) em um protótipo de propulsão;
- Poderes inconsistentes: na nave de Talos, Vers consegue derrubar um monte de soldados Skrull sem nem poder fazer uso de seus poderes. Na Terra, mesmo podendo usar os poderes tem excepcional dificuldade para lidar com um soldado, que ainda escapa;
- Fury sofre um acidente de trânsito feio, com colisão com um ônibus, em uma rua movimentada de um centro urbano dos EUA e inexplicavelmente nem transeuntes nem outros motoristas correram para prestar socorro, dando um tempo de outra forma inexplicável para Fury ocultar o corpo do Skrull. Até os três veículos que aparecem na cena parados no sinal de trânsito logo atrás do carro de Fury foram embora depois do acidente como se nada tivesse acontecido;
- O roteiro não se preocupa em explicar por que os soldados Kree ficaram olhando feito patetas enquanto o nível aparente de uso de energia em Vers aumentava e começava a ficar claro que ela ia conseguir se soltar;
- Dada a clara “vilania” dos Kree, sua repugnância com relação aos Skrulls e do perigo que a capacidade metamorfa destes representa, causa grande estranheza que os Kree tenham “aprisionado” os refugiados Skrull para depois escoltá-los até um airlock e matá-los lá, quando poderiam/deveriam ter executado todos imediatamente enquanto exibiam suas formas Skrull;
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  25 de maio de 2019, comics Schlock Mercenary é uma estória em quadrinhos online (“webcomic”) dos gêneros ficção científica, comédia e drama, indicada cinco vezes para o Prêmio Hugo, que conta as desventuras de uma equipe de mercenários enquanto tentam alternadamente salvar seus clientes, a própria pele ou a galáxia. A estória vem se desenrolando desde meados de 2000 e a qualidade visual melhorou dramaticamente desde então. Tanto que o próprio autor recomenda que você comece a leitura dez anos depois.
Mas não é a progressivamente melhor qualidade visual que tem importância. O forte de SM está na narrativa, que é bem amarrada e exibe uma ficção científica inteligente com pitadas de filosofia. Eu não tenho o conhecimento necessário para discernir se tudo o que o autor escreve faz sentido (há muita física complicada envolvida), mas que ele parece saber do que está falando, parece. E se você estiver perdido, ler o post correspondente da discussão no Reddit pode esclarecer suas dúvidas. Infelizmente, como o autor não tem um link de cada tirinha para a respectiva discussão no Reddit e a busca lá é espantosamente ruim (como parece ser regra em “redes sociais”), você pode ficar limitado à discussão mais recente.
Somente esbarrei em SM há uns dois meses, quando vi um link para um episódio em uma discussão no slashdot. Eu não entendi nada do que estava se passando, mas fiquei intrigado, voltei algumas semanas na narrativa e acabei fisgado. Acabei lendo todos os quase dezenove anos de quadrinhos desde o início. Eu só não gostei realmente de recentes desenvolvimentos relacionados com o projeto Laz’R’Us e os backups RED-REO porque isso acabou comprometendo a dramaticidade.
Infelizmente não existe versão em português, ainda. Mas o universo criado pelo autor é tão rico que eu não ficaria surpreso se virasse no mínimo uma série da Netflix.
Exemplos:
Comédia

—

—

—



Filosofia



—

—

—

—

(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  22 de maio de 2019, Saúde A experiência que tive durante toda a minha vida com essa palavra deixou a impressão que se tratava de algo não muito pior que um resfriado. Você ouve em toda parte, incluindo comerciais de TV para remédios que não exigem receita médica. Nada associado a algo que requeira atenção imediata.
Eu estava há meses sem nenhum problema de saúde. Nem mesmo um resfriado. Na quarta feira passada, à noite, o lado esquerdo do meu rosto começou a ficar levemente dolorido (apenas se pressionado) e inchado. Tive uma noite normal de sono e acordei com o rosto ainda mais inchado, desta vez chegando ao olho. Já havia uma pequena região que eu não podia ver com o olho esquerdo por causa do inchaço e meu sorriso estava deformado como fica após a anestesia de um dentista. Mas eu não sentia nada. Tirando o obstáculo se formando na minha visão o problema era puramente estético.
Eu não estava nem de longe parecendo o quasímodo ainda, mas não queria ir para a faculdade daquele jeito. Então às 17h11 eu dei entrada no Hospital da Unimed para ver o que danado era aquilo e ser medicado. Cinco tediosas horas depois (ainda bem que eu estava com notebook e celular carregados), após exame de sangue e tomografia, o diagnóstico me pegou de surpresa: eu tinha que ser internado por 48 a 72h para o tratamento de uma infecção no seio nasal esquerdo (uma “sinusite”). Fui internado na madrugada da sexta.
E eu continuava sem sentir absolutamente nada.
No fim das contas fiquei internado por 108h (quatro dias e meio) tomando remédios por via intravenosa (antibióticos e analgésicos, apesar de não sentir nenhuma dor) e tive que fazer um procedimento com anestesia geral (o primeiro da minha vida) para desobstruir meu seio nasal e remover a secreção acumulada. Pelo que eu entendi, se a ligação entre meu seio nasal e o nariz não estivesse obstruída a secreção poderia ter saído naturalmente pelo meu nariz e talvez o internamento pudesse ter sido evitado. Mas do jeito que estava e sem tratamento a infecção poderia ter afetado minha visão e em seguida meu cérebro.
Acho que dei muita sorte que aconteceu durante a semana. Se tivesse acontecido no fim de semana, sem sentir dor e sem sentir “pressão social” por ter que ir à faculdade com o rosto inchado, eu provavelmente teria esperado mais em casa para ver se o problema desapareceria sozinho.
O pós operatório também não foi nada de mais. O entubamento me deixou com um incômodo leve na garganta por algumas horas. O procedimento foi feito através do meu nariz com auxílio de câmera e, como o cirurgião havia me dito, não me causou nenhuma dor depois (mas é verdade que eu fui “dopado” com Tramal e Dramin depois da cirurgia). Porém alguma coisa chegou ao meu olho durante o procedimento (o seio nasal conecta tudo) e passei 24h com uma desagradável sensação de corpo estranho no olho que, por insistência minha em me livrar dela (eu esfreguei o olho) acabou me rendendo uma hora bem dolorosa. Mas foi só isso mesmo e o médico disse que era normal acontecer.
Mas ainda não acabou. Estou de atestado médico até a sexta, em casa mas ainda tomando um antibiótico relativamente caro (R$120 por duas caixas) com retenção de receita (não sei se hoje em dia todos exigem isso).
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  04 de maio de 2019, Firefox, WTF Hoje pela manhã eu li uma notícia sobre um bug que estava desabilitando extensões do Firefox por causa de um certificado expirado. Eu achei que isso não tinha me afetado, até mesmo porque eu estou usando uma versão mais velha (56.0.2). Mas minha tranquilidade só durou até eu ter que reiniciar o computador. Na primeira inicialização o Firefox travou consumindo 6GB de RAM não mais que um minutos após ser aberto (normalmente nesse ponto ele consome 1.5GB de RAM). Eu encerrei o programa tentei de novo, mas o problema persistiu. Comecei a desabilitar extensões manualmente para ver se alguma delas tinha enlouquecido e em uma das tentativas, depois de eu já ter reiniciado o Firefox umas seis vezes, o Firefox começou a mostrar que estava desabilitando minhas extensões por conta própria, sinalizando que a causa era o certificado expirado.
Fui pesquisar na Internet como resolver o problema e depois de ter reiniciado o Firefox mais umas três vezes sem sucesso, primeiro todas as minhas extensões sumiram e depois reapareceram habilitadas (exceto uma), incluindo uma nova extensão que deve ser uma tentativa da Mozilla de resolver o problema:

Minha extensão Pushbullet desapareceu mas eu pude restaurá-la de um backup.
Os problemas:
- A Mozilla nos colocou em uma posição em que se um certificado dela não for atualizado de tempos em tempos nossas extensões favoritas podem ser desabilitadas
- A Mozilla ainda tem o poder de instalar remotamente uma extensão no navegador sem pedir nossa autorização, mesmo num navegador que está com atualizações desabilitadas.
Maldição, Mozilla! Essas decisões de design são detestáveis!
E uma das minhas extensões continua desativada!
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  27 de abril de 2019, GoT, tvseries É inacreditável.
Eu tenho um ponto de TV por assinatura na mesa onde trabalho e estudo e quando não estou sintonizado na GloboNews estou zapeando pelos canais de filmes procurando algo para ficar pelo menos ouvindo e aperfeiçoar meu inglês. E tenho HBO.
E não estive morando debaixo de uma pedra nas últimas semanas.
Por isso ainda é um absoluto mistério para mim como eu só fiquei sabendo da estréia da última temporada de Game of Thrones depois de perder dois episódios. Na hora em que passava o segundo episódio o amigo José Neto ainda comentou no Whatsapp que estava “assistindo GoT”, mas na hora eu interpretei que ele estivesse vendo uma reprise porque eu poderia jurar que a oitava temporada só seria exibida em outubro. Somente dois dias depois, após outro comentário dele eu me dei conta de que estava perdendo a série. Eu realmente queria ter visto a minha cara na ocasião.
Duas coisas que certamente contribuíram para minha cegueira temporária foram:
- Eu tenho um bloqueio total de anúncios no meu PC principal;
- Nas últimas semanas eu tenho usado pouco a TV por causa da proximidade da semana de provas na faculdade.
Sim, isso certamente contribuiu, mas não explica inteiramente.
Mas meus surtos de homem-das-cavernas nem são realmente novidade. Vamos ao que realmente interessa:
Esses dois primeiros episódios foram comoventes. É uma pena que tudo tenha que ocorrer tão rápido mas os diretores souberam como fazer para deixar um homem crescido com lágrimas nos olhos várias vezes, então tenho que dar o braço a torcer para eles nesse quesito. Porém o resto deixa a desejar.
- O encontro de Tormund e Edd no castelo Umber foi ridículo. Até parece que numa situação real Edd hesitaria no meio de um ataque a tão curta distância, para depois gritar “para trás, ele tem olhos azuis!” em vez de meter a espada no “zumbi” da frente (Tormund) e fugir;
- Espero que as defesas que eles estão colocando ao redor do castelo sejam melhores do que parecem. Está implícito no diálogo que há uma armadilha oculta envolvendo fogo mas ainda assim está parecendo que Jon Snow esqueceu como foi formidável a invasão a Hardhome;
- O plano para pegar o Rei da Noite é absurdo. Então eles vão colocar os dragões no destacamento que vai defender Brandon do Rei da Noite? O mesmo atleta de lançamento de dardo de força e pontaria sobrenaturais que matou e converteu um dos dragões com extrema facilidade à vista de vários dos presentes na reunião?
- E eles ainda estão contando com o fato de que o Rei da Noite tenha pressa, quando ele pode perfeitamente cercar Winterfell e esperar que todos lá morram de fome ao primeiro sinal de problemas na invasão. Afinal, o Rei da Noite não esperou pacientemente no cerco à Sociedade dos Imbecis até ganhar um dragão? É lógico que não é isso que vai acontecer porque a série tem pressa mas seria legal ver pelo menos o Tyrion mencionar essa possibilidade, não é?
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  16 de abril de 2019, WTF Uma piada que li sobre um encrenca ocorrendo atualmente em New York me lembrou de um “causo” que ocorreu há mais de 25 anos, no meu primeiro emprego como técnico em eletrônica.
Eu fui incumbido de fazer a instalação do nosso primeiro computador industrial para teste de peças na linha de produção, recebido da divisão de engenharia do grupo em São Paulo. Uma das tarefas do computador era acionar uma válvula pneumática caso a peça testada fosse rejeitada. Analisando a interface que seria usada para esse acionamento eu encontrei um problema: nossa tensão de rede era de 220V, mas todos os relês eram especificados para 110V e as trilhas da placa eram desconfortavelmente próximas umas das outras. Levei o problema ao meu chefe imediato e ao gerente da manutenção, engenheiro eletricista, e todos fizeram pouco caso do problema. O engenheiro disse que como a corrente da válvula era baixa isso não seria problema. Não adiantou fazer cara de espanto e argumentar que relê não era lâmpada (quem é da área deveria saber que existe uma diferença fundamental). Eu ainda tive que ouvir do estagiário (HAHA) de engenharia “Jefferson, você está certo na teoria mas <nome do gerente> está certo na prática“. Recebi ordem para continuar com a instalação.
Até aí parecia igual a qualquer decisão gerencial estúpida, mas esse bolo ainda ia ganhar uma cereja.
Instalei o computador e quando a primeira peça foi rejeitada: POF! (a onomatopeia exata me escapa), interface de relês danificada. Justamente a saída de acionamento da válvula foi destruída. Isso foi suficiente para provar que eu tinha razão? Claro que não! Recebi ordem do meu chefe para checar eu mesmo se tinha feito todas as ligações corretamente!
Depois desse evento a divisão de engenharia passou a enviar interfaces especificadas para 220V.
(Prefira clicar em "Responder" se estiver comentando um comentário)
|
|
Encontrei um problema nessa minha explicação. Semanas atrás eu descobri que aparentemente os caixas não dependem do servidor DocFiscal.