Libescpos – 15/03/2022
Esta semana estou corrigindo o qrcode da lib e criando uma aplicação exemplo. Irei refazer as pastas p separar a lib do exemplo.
Até o fim da semana deva estar finalizado no git.
Esta semana estou corrigindo o qrcode da lib e criando uma aplicação exemplo. Irei refazer as pastas p separar a lib do exemplo.
Até o fim da semana deva estar finalizado no git.
Hoje quase finalizei as modificações necessárias para a versão 2.0 do FILA.
Como podemos ver no vídeo a seguir, o protocolo já emite cupom no protocolo ESC POS.
Foram realizadas as seguintes correções nos fontes.
Sobrecarga de método TextoSerial, conforme descrição abaixo:
procedure TextoSerial(info : string); procedure TextoSerial(info : string; Formatacao : CFormat); procedure TextoSerial(info : string; Formatacao : CFormat; typetext : CTypeText);
A função TextoSerial, tem por objetivo imprimir o cupom, neste sentido ela pode ser formatada, conforme sua formatação, ou tipo de texto.
Foram tambem criados a função EjetarCUPOM que tem por objetivo, posicionar o cupom no final do texto para destaque.
Tambem foi criado o FormatacaoString, que prepara o texto, quebrando em partes que caibam no cupom.
Esta tela emula o cupom real, servindo de base de visualização para eventual analise de desenvolvimento.
O cupom aparece ao clicar no texto inferior da tela.
Não sendo algo usual para o usuário final.
Hoje dei mais um passo para implementação da Impressão Serial da Elgin i9.
Foram adicionados os campos Modelo, contendo inicialmente Elgini9 e Porta serial.
Na tela menu (TMenu), foram adicionados os métodos de impressão ImprimeDriver, ImprimeSerial, que tratam do controle de impressão da impressora em modo Driver Windows e Serial/ESCPOS.
Tambem, foi iniciado a formatação do ticket no modo serial.
Foi Criado método DefaultSerial, para parametrização serial e tambem TextoSerial e LineSerial.
Inclusão de campos de gravação de CONTEXTO (Classe TSetmain) para formulario Main.
Melhoria na interface da tela main (Configuração).
Foram agregados uma imagem (icone visual) e um texto explicativo.
Inclusão do campo Tipo Impressora, permitindo a parametrização dos seguintes tipos:
O Campo Iniciar ao Entrar foi adicionado, bem como sua funcionalidades
Estas modificações serão lançadas na versão 2.0 do projeto FILA.
O projeto FILA, esta passando por uma reformulação, onde na próxima versão, terá as seguintes features adicionadas:
Como as modificações são arduas, a nova versão será 2.0.
Aguarde em breve a versão. Estaremos adiantando as novas features nos próximos posts.
The FILA project is undergoing a reformulation, where in the next version, it will have the following features added:
As the modifications are arduous, the new version will be 2.0.
Wait for the release soon. We will be advancing the new features in the next posts.
El proyecto FILA se encuentra en proceso de reformulación, donde en la próxima versión se le agregarán las siguientes funcionalidades:
Como las modificaciones son arduas, la nueva versión será la 2.0.
Espera el lanzamiento pronto. Estaremos avanzando en las nuevas funciones en las próximas publicaciones.
Das FILA-Projekt wird einer Neuformulierung unterzogen, wobei in der nächsten Version die folgenden Funktionen hinzugefügt werden:
Da die Änderungen mühsam sind, wird die neue Version 2.0 sein.
Warten Sie auf die baldige Veröffentlichung. Wir werden die neuen Funktionen in den nächsten Posts vorantreiben.
Portuguese Version – >English Version< – Spanish Version – French Version – Deutsch Version
The Panel is an application that runs on android, and allows you to call users.
It uses a smart tv, or tv box connected to a tv.
However, using the correct protocol, any application can simulate the responses, performing the same function as the TV BOX.
The purpose of this document is to detail the protocol allowing customizations.
The Dashboard can be integrated through a simple API.
In this tutorial, we will describe how to perform the integration in the PANEL.
The PANEL always looks for a connection on the server through port 8096.
The PANEL, requests update every 300ms, repeating the request constantly.
The Dashboard is a client connection, which always sends a command to the server.
The Server is always the machine located at IP 192.168.0.114 of the local network, in versions greater than 1.2, it is possible to change the ip of the server, by clicking on the clock.
Therefore, the server needs to be fixed through a FIXED IP, in your DHCP network.
This server, in turn, can respond with commands that will be interpreted by it.
This command calls a given number from a specific group.
Available from version 1.0 on
Syntax:
GUICHE>[nro guiche]:[password];
Command Syntax
The NRO GUICHE – It is the number of the attendant or window.
PASSWORD – It is the password that will be called.
This command performs the modification of the label of the indicated group.
Planned as of version 1.3
Syntax:
GROUP>[nro group]:[text];
Command Syntax
GROUP NRO- It is the number of the Group that will appear in the terminal
Text- It is the label that will be displayed in the terminal.
This command performs the modification of the message label.
Available from version 1.2 onwards
Estamos desenvolvendo uma versão multi idiomas do FILA, para atender não só brasileiros, mas estrangeiros.
A versão multi-idiomas atenderá inicialmente, Português, Inglês, Espanhol e Frances e Alemão.
Daqui para frente, todos os posts e publicações do FILA serão nestes 4 Idiomas.
Justamente permitindo alcançar um maior número de pessoas.
We are developing a multi-language version of FILA, to serve not only Brazilians, but also foreigners.
The multi-language version will initially serve Portuguese, English, Spanish and French and German.
From now on, all FILA posts and publications will be in these 4 languages.
Just allowing to reach a greater number of people.
Estamos desarrollando una versión multilingüe de FILA, para atender no solo a los brasileños, sino también a los extranjeros.
La versión multilingüe inicialmente admitirá portugués, inglés, español y francés y alemán.
A partir de ahora, todos los posts y publicaciones de FILA estarán en estos 4 idiomas.
Simplemente permitiendo llegar a un mayor número de personas.
Nous développons une version multilingue de FILA, pour servir non seulement les Brésiliens, mais aussi les étrangers.
La version multilingue prendra initialement en charge le portugais, l’anglais, l’espagnol, le français et l’allemand.
Désormais, tous les posts et publications de la FILA seront dans ces 4 langues.
Permettant juste de toucher un plus grand nombre de personnes.
Wir entwickeln eine mehrsprachige Version von FILA, um nicht nur Brasilianern, sondern auch Ausländern zu dienen.
Die mehrsprachige Version wird zunächst Portugiesisch, Englisch, Spanisch sowie Französisch und Deutsch unterstützen.
Ab sofort werden alle FILA-Beiträge und -Veröffentlichungen in diesen 4 Sprachen erscheinen.
Nur um eine größere Anzahl von Menschen zu erreichen.
Nos meus anos de desenvolvimento vi muitos projetos. Alguns caótico outros bem definidos.
Vou apresentar aqui uma breve apresentação sobre documentação de desenvolvimento.
Muitas vezes pegamos projetos bem elaborados, com documentação precisa. Que por vezes são encaminhados aos programadores.
Estes programadores, criam os artefatos desenhados. Onde são testados pelos analistas de testes.
E por fim, passados para o cliente, onde sofrem validações. Sendo ou não modificados.
Por fim, no ciclo final, a documentação é gerada para o Cliente, orientando como realizar.
Neste ciclo de projeto bem elaborado e muitas vezes idealizado, documentos são criados na fase de fazer, e por fim na etapa de entrega.
Percebemos que existem 2 documentos criados:
Perceba, caro leitor, que temos, duas etapas, onde criamos documentação para os clientes, porem o conhecimento do que foi feito, continua na mão de quem fez.
De fato, muitos podem chegar a conclusão equivocada, que é obrigação de quem programa, entender o código.
Para contestar essa afirmação, vou apresentar duas alusões:
Imaginemos que lemos um livro de Shakespeare, como por exemplo macbeth Espera-se que após esse ponto, tenhamos o entendimento da obra.
E possamos responder a qualquer questão, correto?
Bom olhando alguns sites:
https://www.britishcouncil.org.br/atividades/shakespeare-lives/escolas/dicas/macbeth
https://www.conjur.com.br/2011-jul-31/embargos-culturais-licoes-historia-direito-macbeth
https://institutoling.org.br/explore/licoes-sobre-ambicao-e-poder-em-macbeth
Perceba que de fato, a leitura do livro, pode não trazer a visão do detalhe, que passará desapercebido, em uma leitura plana.
O mesmo acontece com o programador, muitas vezes lemos trechos de código, não nos atentando para detalhes ou melindres do programador original.
Tal ardil só será revelado, após maior exposição ao conteúdo da obra.
Perceba que documentação, não tem a obrigação de explicar o óbvio, mas apresentar as verdades ocultas. Que seriam reveladas, apenas uma leitura mais densa, envolvendo e consumindo horas de trabalho exaustivo.
Após a explanação anterior, percebemos, que a documentação técnica visa apresentar detalhes ou dicas que de fato fugiriam da atenção.
Documentando e apresentando de forma clara e direta.
Formas de fazer isso:
A primeira forma de fazer isso, é a criação de um roteiro, onde por exemplo elaboramos uma “receita de bolo” da elaboração da atividade de uma forma genérica. O intuíto deste trabalho é conduzir o programador novato na realização da atividade, evitando que este incaia em caminhos poucos produtivos.
Em sistemas complexos, a documentação técnica exige que todo o código passe por uma revisão, apresentando detalhes de informações de entrada e resultados (saída).
De forma geral, a documentação técnica custa caro, pois precisa ser revisionada, a cada novo lançamento.
Treinar pessoas é qualificar estas para realização das atividades. O processo de treinamento exige que apresentemos o problema, entreguemos a solução e testemos o conhecimento.
Hoje existem diversos softwares destinados a este fim, entre eles o moodle. Que permite que utilizemos recursos multi mídia para treinar pessoas ou grupos. Testando a qualidade dos mesmos.
Muitas vezes para cumprir prazos temos que simplificar ou omitir certas etapas do processo produtivo. De forma geral, a primeira coisa que se tira é a documentação técnica, a justificativa é bem simples. Documentação técnica não é para o usuário, é para a própria empresa. Sendo assim, o usuário ou o cliente não sentirá falta.
A omissão deste muitas vezes justificada, tem consenquências a médio e longo prazo.
De fato um sistema complexo muitas vezes exige um volume enorme de conhecimento prévio, que exige um esforço na obtenção por parte do programador. Muitas vezes esse esforço é utilizado em outro momento como moeda de barganha, para negociação salarial.
A grande maioria das empresas de software detem o direito legal do produto, mas de fato não os tem.
A bem da verdade ser da empresa, não necessáriamente diz que a empresa o têm.
Muitas vezes, a empresa, precisa de pessoas especificas, para modificar pontos chave. Quando um produto exige que um individuo especifico o modifique, de fato a empresa é refem de um individuo. Sendo de fato o detentor do direito, mas não tendo a capacidade de gerir suas mudanças.
Sobre este argumento, que percebemos a necessidade da gestão interna.
Programador Estépe – No seu carro, quando o pneu fura, vc tem um segundo pneu, pois sabe se perder o primeiro, ficará no meio da estrada sem conseguir seguir. O mesmo acontece com seu produto. Muitas vezes centralizamos tudo em uma pessoa, pois ele é eficiente, barato, e resolve o meu problema. Dai o empresário pensa, bom vou deixar na mão dele. Ele resolve isso, eu fico com o negócio, os clientes e o que espero do produto. Um belo dia, o seu funcionário vai embora, morre ou aposenta. Se voce não tiver um plano B, ficará a mercê do colaborador.
Muitas vezes manter um programador redundante é complicado, pois exige um investimento alto.
Rotatividade de funções – A rotatividade de funções é quando em uma equipe (squad) temos pessoas que fazem a mesma coisa. Alternando entre elas.
De forma geral, a rotatividade não funciona, na prática o PO (product Owner) sempre elegerá o programador que sabidamente tem melhor performace para uma determinada especialidade. Criando um especialista. De fato, mesmo com a pseudo rotatividade, sempre haverá individuos que sabem mais que outros, em um sistema rotativo. Esta rotatividade tem um ponto fraco, juntamente com o programador estépe. Conta com o conhecimento das pessoas. Não mantendo este na empresa.
Vídeos e Treinamentos – Durante o ciclo de treinamento, muitas vezes apresentamos processos para recrutas (programadores junior) que desenvolvem a capacidade de realizar o processo. Porem tal treinamento é perdido no momento da saída do recruta. Uma forma de manter, é não gerar o treinamento diretamente, mas sim indireto, exigindo que o Analista Sr, grave um vídeo que será depois passado ao recruta. Onde este questionará suas duvidas, que tambem serão armazenadas em um Howto.
De forma geral, a apresentação audio visual, é sempre melhor que o treinamento presencial. Pois permite primeiro armazenamento e depois correções evolutivas.
Tambem cria ou propicia a faze do aprendizado, permitindo que duvidas comuns sejam feitas e respondidas de forma coletiva.
Auto treinamento – O Ciclo de auto treinamento, exige que disponhamos de tempo produtivo, para capacitar da melhor maneira o colaborador.
Como realizar, a bem da verdade existem duas maneiras de aplicar isso:
Espero que a apresentação destas dicas tenham inspirado voces nas melhores práticas de desenvolvimento.
PS: Apenas para mostrar o óbvio, em um dado momento, disse que iria apresentar 2 alusões, e apresentei apenas 1. Mas voce não percebeu, a segunda alusão é voce. Pois de fato, não se ateve a esse detalhe. Agora imagina o programador.
Boa sorte.
Uma boa ferramenta para conversão de arquivos texto, é o DOS2UNIX.
Esta ferramenta permite a conversão de arquivos nos formatos nativos do sistema operacional.
Instalação do Pacote
apt install dos2unix
Pacote dos2unix
Instalando este pacote, voce terá alem do dos2unix, tambem os comandos dos2mac , unix2mac, unix2dos.
Para converter no siga a sintaxe:
dos2unix [origem] [destino]
Sintaxe de conversão do dos2unix
O GITHUB deixou de aceitar usuário e senha nos projetos, exigindo o uso da chave de criptografia SSH.
Irei mostrar o passo a passo, necessário para configurar o git em sua maquina linux.
Crie a chave com o usuário que irá utilizar o git, lembre-se cada usuário necessita de uma chave.
ssh-keygen -t rsa -b 4096 -C “seuemail@exemplo.com”
Cria a chave ssh publica e privada
Não é necessário digitar senha, basta seguir com enter a cada pergunta.
Na pasta do usuario, existe uma pasta:
cd ~/.ssh/
lista a chave publica e privada
Agora, vc precisará publicar a chave, para isso, dê o seguinte comando:
cat id_rsa.pub
Copia a chave publica
Ele permite copiar a chave publica, incluindo no git.
Entre no seu computador, e digite CMD.
Se for o windows 10, digite:
ssh-keygen -t ed25519 -C “seuemail@dominio_email”
Cria a chave ssh publica e privada
Deve ser mostrado algo como apresentado abaixo:
Na pasta do usuário, no meu é c:\User\marce\ existe uma pasta .ssh, entre nesssa pasta e edite o arquivo id_ed25519.pub
Abra o arquivo id_es25519.pub, com qualquer editor de texto, e copie o conteudo.
Copie todo o texto, e vá para o github.com, entre na sua conta.
Agora será necessário selecionar SSH and GPG keys, conforme figura abaixo:
Click, no botão New SSH key, conforme figura abaixo:
Agora será necessário copiar o conteudo da chave.
Lembre-se a chave vc copiou no linux , com o comando cat.
Adicione no github, incluindo o nome do computador (titulo) que será instalado a chave.
A descrição do computador, ajuda posteriormente, pois pode haver mais de uma chave, para mais de um computador.
Entre no git, e copie o caminho do seu projeto
Lembre-se que o ideal é clonar via ssh
git clone git@github.com:marcelomaurin/SSC.git
git por ssh
Pronto, voce incluiu o ssh, agora consegue realizar todas as operações no git usando sua chave SSH.