Mensagens

A mostrar mensagens com a etiqueta JavaScript

Comparativa simples de bibliotecas para gráficos, Matplotlib e Chart.js

Imagem
Comparativa simples de bibliotecas para gráficos, Matplotlib e Chart.js Ambos resultados devem ser semelhantes, apenas difere o ambiente de utilização. À partida para este post, não tenho nenhum código desenvolvido, vou fazer tudo online. Com a ajuda do ChatGPT. O objectivo é conseguir apresentar o mesmo resultado mas com linguagens e ambientes diferentes, sempre na dualidade Python versus WebStack. Para início tenho uma prompt com os dados fornecidos: crie um código para python, em que se represente um gráfico de linha, com os seguintes valores de X: 2 5 6 8 12 13 e os seguintes valores de Y: 3 6 12 8 6 8, usando a biblioteca matplotlib. Versão Python. A biblioteca para Python pode ser a matplotlib. O ChatGPT pode correr o código no próprio ambiente, o que nos permite observar o código e o resultado sem instalar nada nem codificar ou copiar nada. O código resultante: e o gráfico criado: Versão Javascript. A biblioteca para JS pode ser a chart.js. No caso que o chatGPT apresentou foi c...

Cálculo de velocidades em curva - Caminhos de Ferro (1)

Imagem
Cálculo de velocidades em curva - Caminhos de Ferro (1) Calcular as velocidades de passagem por uma curva é uma operação importante nos projectos de ferrovias. O cálculo de velocidades está relacionado não só com o raio da curva, mas com vários parâmetros. Para um determinado Raio de curva, poderemos ter diferentes velocidades aplicadas. Claro que depois teremos as velocidades máximas e mínimas aplicadas a cada via ou curva. Os gráficos produzidos tentam reflectir essa variedade de opções. Podemos obter assim uma ajuda visual à decisão. De qualquer maneira este ainda é um projecto não acabado, um WIP... Como exemplo para um Raio 1000m e com os seguintes parâmetros: Obtemos o gráfico seguinte: Gráfico R 1000 m No gráfico acima podemos observar que por exemplo, para uma Escala 200 mm (embora não se aplique tal valor) a velocidade de passagem com aceleração lateral não compensada máxima seria de um pouco mais de 50 km/h. Por outro lado tendo em conta o excesso de escala, se este for de 10...

Tracking Prevention blocked access to storage - MS Edge

Imagem
Tracking Prevention blocked access to storage - MS Edge Avisos no Edge para acceso a serviços de CDN Ao linkar um servico de CDN para abrir folhas Excel o MS Edge dá um alerta destes: Curiosamente ao substituir o CDN por outro o alerta deixa de existir, será um serviço mais confiável segundo a Microsoft? Aqui a questão que tem interesse, era se existiria um bloqueio ou não ao tipo de desenvolvimento que por vezes faço, com apps HTML locais. Assim os elementos que estão numa folha Excel continuam a ser carregados sem problemas.

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