Mensagens

JS - Obfuscator

Imagem
JS - Obfuscator O Javascript a correr numa browser based app tem o código visivel, como o proteger? Para que se proteja um pouco o código e não seja copiado (facilmente) podemos dar uma encriptação aos scripts de JS. Trata-se de uma codificação ao javascript que a torna dificil de ler. Pode incluir renomear variáveis; adicionar código desnecessário etc. Como exemplo, usando o site: https://codebeautify.org/javascript-obfuscator Podemos transformar a função que está na imagem inicial deste post em algo "diferente", mas contínua a ser legível para o Browser. É infalível? Não, podemos usar agora uma operação inversa, por exemplo no site: https://obf-io.deobfuscate.io/ Uma forma de melhorar a proteção pode ser por exemplo usar nomes de funções sem sentido aparente, ou introduzir na própria função código redundante.

Neutralino - Ferrovias App

Imagem
Neutralino - Ferrovias App Revisito o framework Neutralino que permite criar aplicações desde tecnologias "Web" Tendo uma aplicação local com tecnologias Web é fácil, transformar a mesma para executáveis que podem correr em qualquer sistema operativo desktop, windows, MacOS ou Linux. A configuração é relativamente simples e a instalação do Framework com base no NodeJS não apresenta problemas de maior. O teste de hoje incidiu sobre um outro projecto de cálculos, mas coloco aqui a ilustração de um outro mais genérico. Praticamente tudo o que funciona localmente vai funcionar depois como executável. Por exemplo os botões de leitura e escrita de ficheiros (apesar do Neutralino ter os seus próprios métodos que podemos usar se necessário) e o desenho num Canvas. Portanto para o tipo de programação e projetos que realizo, este Neutralino dá conta do recado, podendo ser uma alternativa ao Python e o seu método de criar executáveis. O Neutralino usa um WebView, mantendo "internam...

Python - Menus com Tabs

Imagem
Python - Menus com Tabs Uma utilidade do Tkinter, python, é o uso de Tabs para desfraldar vários separadores numa aplicação. Com isto posso por exemplo criar um código e formulário para cada país, se for cálculo diferente numa qualquer situação. Isto pode-se aplicar a qualquer software que precise de alguma "internacionalização"... Vamos ver a que ideias se pode aplicar. O código para os separadores / tabs é fácil de implementar, frame é atribuida a tab1 tab2 tab3 etc, em vez de atribuida a window (no caso abaixo). Para atribuir e separar código, talvez com modulos, como este exemplo para as funções. Seguimos...

OpenRailWayMap - Muito interessante

Imagem
OpenRailWayMap - Muito interessante Um mapa interactivo com base no OpenStreetMap, de caminhos de ferro. No exemplo da primeira imagem temos as diferentes bitolas na Europa. Com as opções de visualização mostradas podemos por exemplo verificar se vemos uma linha de alta velocidade ou convencional. Colocando o zoom a outro nível aparecem mais detalhes. Até com os corredores previstos para a LAV... E em Lisboa os eléctricos e metro. Com mais zoom é possível observar as vias e kms. Tem uma API mas não vi uma opção de guardar como na vesão de estradas.

Linha do Oeste - Breve visita

Imagem
Linha do Oeste - Breve visita Algumas fotos e considerações sobre a obra de modernização da Linha do Oeste A linha do Oeste começou a ser inaugurada na última vintena de 1800. Ligava inicialmente Alcântara à Figueira da Foz. E com o Ramal de Alfarelos a ligação à Linha do Norte e Coimbra. A modernização da Linha do Oeste, com a electrificação e outras melhorias pode ser uma mais valia para as populações da zona Oeste. https://www.infraestruturasdeportugal.pt/pt-pt/infraestruturas/rede-ferroviaria De Norte para Sul... Apeadeiro de Sapataria. Apeadeiro de Sapataria, vista para Sul Nesta foto salienta-se a curvatura da plataforma de passageiros, dada a curva com escala, claro. Túnel de Sapataria. Túnel Sapataria - Emboquilhamento Norte Nesta foto nota-se um pouco o rebaixamento da plataforma por consequência da necessidade de electrificação. Vê-se um pouco das diferentes soluções de catenária. Estação de Mafra. Estação de Mafra - Vista para Sul Mafra Gare, Plataforma parcialmente em curva...

Python - numeros

Imagem
Python - Números por extenso Para escrever números por extenso tendo um número em numeral usa-se uma biblioteca. Em algum caso pode fazer falta a escrita de um número por extenso. Ou seja por exemplo transformar o número 180 em "Cento e oitenta". Podemos programar o algoritmo, ou podemos pesquisar antes e usar uma biblioteca já pronta. É o caso do num2words  que realiza por nós essa tarefa. https://pypi.org/project/num2words/ Podemos instalar com: pip install num2words E depois importar no início do programa ou módulo: from num2words import num2words O uso é bastante simples como é o caso seguinte que lê de uma interface tkinter o campo quantia:     numero = int ( ficheiro_recibos [ 4 ].rstrip( ' \r\n ' )  )     num_extenso = num2words( numero , lang = 'pt' )     print ( f 'Número: { num_extenso } ' ) Permite configurar vários idiomas, o que é óptimo. O output é o seguinte: Número: cento e oitenta

Linguagens diferentes resultados iguais

Imagem
Linguagens diferentes resultados iguais Para operações de cálculo matemático e manipulação de ficheiros o resultado é independente da tecnologia de programação. Como era de esperar, apesar de o cálculo ser feito com linguagens de programação diferentes, o resultado é igual. Na imagem acima temos dois ficheiros, que embora tenham o mesmo nome e conteúdo foram criados por linguagens de programação diferentes, Python e Javascript, com a leitura do mesmo ficheiro Excel de dados. Como coloquei no post anterior a interface gráfica tem os mesmos elementos. Ambas linguagens partilham pedaços comuns e outros bem diferentes. Parte da diferença explica-se pela metodologia de criar a interface gráfica. A programação de Javascript + HTML é um pouco mais moldável, permitindo por exemplo desenhar tabelas no ecrã mais facilmente que em Tkinter (Python). É bastante util, pois podemos ressaltar uma janela apenas com resultados ou informação temporária, ou linkar para uma página HTML de ajuda. Cada tecno...