Mensagens

A mostrar mensagens com a etiqueta JavaScript

Javascript - Cálculo de parâmetros e gráficos, ferrovias.

Imagem
Javascript - Cálculo de parâmetros e gráficos, ferrovias Com o recurso às "tecnologias web" estou a montar uma aplicação para ler os elementos de uma directriz e desenhar uns gráficos. Gráficos O trio de tecnologias web, JS CSS HTML permite como já referi noutros posts realizar operações sobre dados. Tal como ia permitir o Python se fosse a tecnologia escolhida. Com recurso a um serviço CDN posso ler o ficheiro Excel que contém a informação da directriz: CDN Directriz Esta formatação de directriz é típica do ISPOL. Neste PC nem sequer tenho o Excel, tenho o LibreOffice, e tudo funciona sem problemas. A opção por "web" deve-se à facilidade de por no ecrã uma tabela de dados, com uma actualização depois de algum cálculo. Abaixo ilustra-se essa actualização: Tabela (Não se tomem como certos os valores, falta rever.) A par do cálculo em tabela, interessa-me ter uns gráficos ilustrativos das variações dos valores. Gráficos Ainda faltam adicionar elementos etc, é um traba...

Python ou Javascript - Comparação muito breve

Imagem
Python ou Javascript - Comparação muito breve. Numa comparação simplificada as duas linguagens de programação são muito semelhantes. https://www.matematica.pt/faq/como-calcular-area-circulo.php O propósito deste post é demonstrar que caso se opte por uma programação de "cálculos" ambas as linguagens são válidas. O importante é resolver o problema. Para ilustrar a comparação, cálculo a área de um círculo, com Raio = 2. Na parte esquerda da imagem temos o código para Python, na parte direita o código para Javascript. Apesar das diferenças de sintaxe próprias de cada linguagem, a semelhança é óbvia. Claro que na medida em que se aumenta a complexidade de uma solução ou programa, as diferenças vão sendo mais notórias. No caso apresentado o cálculo é simples e as semelhanças são maiores. Veja-se a necessidade ou não de importar a biblioteca de Matemática. O separador de blocos de código é o endentamento ou as chavetas. O resultado teria de ser o mesmo em ambos casos: Cada uma das ...

OpenStreeMap - Programação API Javascript

Imagem
OpenStreeMap - Programação API Javascript Com algum código podemos aceder e manipular os mapas OpenStreetMap OpenStreetMap Ter a possibilidade de intervir num sistema de mapas como o OpenStreetMap (ou como o Google Maps /Earth etc) amplia as possibilidades de trabalho. No caso em estudo, a abertura de um mapa OpenStreetMap faz-se por meio de Javascript usando a CDN que contém openlayers.js, existem certamente outras possibilidades. O exemplo é tomado de Harry Wood na sua página web: https://harrywood.co.uk/maps/examples/openlayers/click.view.html Neste primeiro teste apenas alterei o texto da mensagem para português. A abertura do mapa faz-se em página inteira. Depois de algum zoom para a zoom desejada basta picar num ponto do mapa e somos informados das coordenadas do ponto. No caso exemplificado perto do marco geodésico Serves. A linha mais importante do código, é o link ao CDN: Com este exercício simples podemos abrir a porta a grandes ideias.

App Tecnologias Web - Criar app desktop ScriptOnIt

Imagem
App Tecnologias Web - Criar app desktop Existem várias opções para transformar uma aplicação WEB local para um executável ou perto disso... Já fiz alguns posts sobre este assunto. Hoje trago o ScriptOnIt. https://scriptonit.dk/ Passei umas das minhas aplicações neste framework. Não consegui pôr a funcionar a 100% precisava um pouco mais de atenção, mas o resultado é semelhante aos outros frameworks, uma janela tipo programa nativo, embora por detrás tenha uns artifícios e mais umas coisas. Funciona também com base no NodeJS. Fica pequeno isto deve funcionar tipo WebView.

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...

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...

Caso simples de uso do ChatGPT - programação

Imagem
Caso simples de uso do ChatGPT - Programação Usei a AI, ChatGPT para transformar uma função de Python numa função de Javascript Um uso típico dos modelos de LLM é a aplicação à programação. Seja para criar código ou no caso do exemplo para transformar código. Inclusivamente faz notas sobre o trabalho realizado. Este exercício foi uma primeira abordagem ao problema, digamos, já que tenho um código funcional em Python e queria transformar o mesmo para Javascript, como é uma programação funcional pode ser transformada e ajustada aos poucos. Na parte direita no console é possível observar dados provenientes da função transformada. É possível comparar lado a lado o código nas duas linguagens. No código JS apresentado, o ChatGPT eliminou alguns comentários.

Python vs HTML

Imagem
Python vs HTML Uma aplicação simples tanto pode ser realizada com tecnologias Web (HTML CSS JS) ou Python. Para a resolução de um determinado problema prático na área da engenharia, na maior parte dos casos a tecnologia de "programação" usada é indiferente, pois obtém-se o mesmo resultado. Aplicando a um dos exemplos em que tenho estado empenhado ultimamente, o que está por detrás da interface para com o utilizador pode realizar os mesmos passos numa e noutra tecnologia. A interface é ligeiramente diferente (pode-se aproximar mais o aspecto gráfico) e o modo de "abertura" e uso do programa diverge um pouco, num caso (Python) será um normal programa executável, e no outro caso (HTML) será uma aplicação que corre no navegador Web. Ambas tecnologias têm vantagens e desvantagens como é óbvio.  Ambas abrem e modificam um ficheiro Excel. Ambas realizam cálculos. Ambas conseguem escrever no disco um ficheiro de resultados. No fundo é o importante. Apesar dos "hypes...

Python Javascript - Diferenças nos resultados (Gabaritos)

Imagem
Python Javascript - Diferenças nos resultados (Gabaritos) Tendo o mesmo cálculo em duas linguagens de programação era expectável ter o mesmo resultado. Ao mudar de linguagem de programação, ou de tecnologia, para realizar o mesmo cálculo é expectável obter os mesmos resultados. É também uma forma de revisão de todo o processo. No caso, um projecto "outsider" para cálculo ferroviário, que está a ser re-codificado para que tenha mais possibilidades de ampliação no futuro, embora seja um projecto para consumo interno. Na parte esquerda da imagem abaixo, o cálculo em Javascript e na parte direita em Python. Não tem exactamente o mesmo conteúdo porque se está a apresentar menos saídas em JS. Os valores semelhantes, por exemplo o -1.51 e o -1.511 chamam a atenção, deveriam ser o mesmo. Uma das formas que tenho de rever os cálculos é comparar os ficheiros de Output, onde tenho todos os cálculos parciais relevantes. Embora com separador de campos diferente, foi possível verificar q...

Neutralino - Alternativa para apps Desktop

Imagem
Neutralino - Alternativa para apps Desktop As tecnologias de programação Web, permitem criar softwares para desktop, seja com o conhecido Electro.js ou com o Neutralino.js Desta vez, usei uma das aplicações "Browser based app" que já tenho feitas, para testar a viabilidade de transformar a aplicação numa aplicação ao estilo nativo, para desktop windows. O framework mais conhecido para este trabalho é o Electron.js, mas é famoso pela criação de aplicações gigantes. O Neutralino.js propõe a redução de tamanho empacotando a aplicação num Webview. A aplicação seguinte teria pouco mais de 3 Mb: Tem um comportamento semelhante a uma aplicação nativa. A particularidade desta aplicação, é que não usa uma biblioteca de node.js para ler os ficheiros Excel, mas sim uma biblioteca acessada em tempo real com um CDN (Content Delivery Network) de nodejs. Foi tudo feito de forma rápida para ver se funcionava. Aparentemente tudo funciona, apesar de ser uma adaptação quase directa de "HTM...

Browser Based App em alternativa a Python TKinter

Imagem
Browser Based App em alternativa a Python TKinter O uso de tecnologias web para criar uma aplicação gráfica simples é uma alternativa ao uso de Python Tkinter ou outras tecnologias. Para uma aplicação que não necessite de Base de Dados ou interacção directa com outros programas como o Autocad, o uso de tecnologias web (sem a conversão posterior para EXE) é uma alternativa válida. Inclusivamente estão disponíveis API para usar o Excel, Ficheiros, Gráficos e até Machine Learning. Não é difícil aprender, e não necessita nenhum hardware ou software específico. Um editor de texto, ligação à net e um navegador. Na internet são poucos os exemplos de JS ou tecnologias Web aplicadas à solução de problemas de engenharia. Alguns exemplos já trouxe em vários posts, podem ser consultados. Ao longo do tempo tenho usado bastante esta solução para programar aplicações que resolvam os meus problemas de automatização ou de repetição de tarefas. Abrir e manipular ficheiros ASCII é essencial e um processo...

Gabaritos - Python ou Web dois caminhos

Imagem
Gabaritos - Python ou Web dois caminhos As linguagens de programação são um instrumento para atingir um objectivo. Para atingir um objectivo, neste caso a realização de cálculos complexos, ler e gravar ficheiros, há vários caminhos pelas linguagens de programação. Umas têm uma aplicação mais específica que outras. Mas no caso de um programa cujo objectivo seja realizar cálculos e ter inputs / outputs as linguagens de aplicação geral servem quase todas. No caso comparado, à esquerda uma interface programada com Python Tkinter, e no lado direito uma interface programada com tecnologias WEB. Embora a da direita não esteja no mesmo nível de detalhe, podemos ver semelhanças. No fim, com a "generalidade" da aplicação para o utilizador final é praticamente indiferente a linguagem em que a aplicação foi programada. Caso diferente seria quando se exige uma ligação com programas como Autocad, ou o uso de bibliotecas específicas. Para Autocad ou dentro de Autocad a linguagem mais potent...

Implantação plataformas - HTML CSS Javascript

Imagem
Implantação plataformas - HTML CSS Javascript Desenvolvimento de uma aplicação estilo Web para o cálculo da implantação de plataformas para ferrovias. Após montar uma folha Excel com os cálculos, decidi fazer uma app ao estilo Web, ou seja que funciona no navegador web (Chrome Edge Opera Firefox ...). A construção da interface gráfica requer menos recursos, e se não é necessária grande potência ou rapidez, e não é necessário interagir muito com o disco e o CAD, o Javascript é o suficiente. A folha principal (e única do programa, fora a ajuda) apresenta o aspecto seguinte, onde se observam as variáveis iniciais de cálculo. Também se pode escrever a configuração. Em breve implemento a leitura de configuração, permitindo assim guardar trabalhos. Existe depois um bloco em que o programa mostra os resultados. A ideia é que os resultados fiquem também formatados para poderem ser copiados para um documento, ou que se gere pelo menos parcialmente esse documento. Uma pequena amostra do código e...