Avançar para o conteúdo principal

Manual de Instruções - A Monstruosidade da Simplicidade

Pensar num site estático sem JavaScript já se pode considerar que é um trabalho "monstruoso" pois temos de saber e dominar o HTML e o CSS. Mas qualquer um pode fazer algo simples, copiando código de outros exemplos e aplicando no site que quer desenvolver. 

Mesmo assim, se pensarmos na perspectiva do servidor, existe outro trabalho que precisa de ser gerido para o cliente possa interagir com o site. 

É aqui que entra a monstruosidade da simplicidade. 

Se isto fosse a comunicação entre duas pessoas, a simplicidade, seria igualmente monstruosa, mas na perspectiva de quem está de fora a observar é pura simplicidade. 

O Manel diz à Maria: "creio que vai chover", em voz alta ( o protocolo é o Som e o método é o Verbo ) e a Maria que tem um corpo com as propriedades necessárias para lidar com a informação que foi pronunciada recebe a informação pelas orelhas, as qual será interpretada pelo cérebro, sendo que o cérebro tem de dividir os dados e compara-los com o que conhece e é nesse momento,  depois de interpretar a informação, que fez uma verificação das probabilidades dessa afirmação, para saber se podia ser verdadeira ou não e construiu um objecto informativo que responde com os dados que foram anunciados. A Maria diz ao Manel: "creio que tens razão, devemos ir para casa". A resposta da Maria, afirma e confirma a afirmação anunciada pelo Manel e acrescenta uma nova informação que terá de ser gerida pelo Manel para dar continuidade à conversa entre o Manel e a Maria. 

Na perspectiva comparativa, cada pessoa é um servidor e um cliente ao mesmo tempo.
Antes de pensarmos na comunicação, lembramos o que são computadores e sistemas operativos. 
Os sistemas operativos mais usados para gerir sites, são os sistemas operativos Linux. Tanto faz qual a distribuição, desde que se saiba que, para o efeito de ser servidor de um site, ele só precisa dos serviços que o site irá correr. Dai que na actualidade, também se use uma tecnologia chamada Docker que serve para simular uma máquina real com um sistema operativo Linux a correr os serviços necessários para servir o site, dentro dessa simulação e expõe-a ao público, permitindo que os dados que estão no servidor, também estejam antes de tudo, na mesma pasta que tem o ficheiro de configuração, com os ficheiros necessários do site. Dockerfile.

Seja servidor real seja Docker, os serviços que queremos usar são independentes da plataforma. 

O Hardware electrónico que pode servir milhares de funções, também é monstruosamente simples.

O Hardware mecânico que serve várias funções, também é monstruosamente simples. 

O que há de comum? Cada singularidade tem uma função de interpretação e uma funçáo de resposta.

Desde o componente mais simples de um relógio eletrónico até ao mais complexo como um CPU. 

Por isso, de uma forma simplificada, as máquinas só sabem interpretar impulsos eléctricos, também como as pessoas, mas como esse tipo de comunição é complexa de gerir, criam-se novas formas de comunicar, que fazem parte das camadas de comunicação do protocolo TCP/UDP e Sockets. Mesmo assim, programar sockets é monstruosamente difícil, sendo que para quem sabe, é monstruosamente simples. 

A comunicação entre a Maria e o Manel poderia ter mais detalhes a explicar o processo de destruturação da informaçáo e recriação de informação para responder, mas os processos lógicos que usaram para comparar a informação, etc.. é igualmente electrónico, mas a intensidade da electricidade é muito menor. 

Voltando aos computadores, o Manel usou o protocolo SOM+Verbo. 

O Protocolo para servir dados em sites, é o HTTP e usa métodos de pedidos de informação tais como o GET e o POST, que são os mais comuns de usar. Na nossa interpretação como humanos, a comunicação entre servidores e\ou máquinas e\ou serviços e\ou programas e\ou fecheiro de código, é unicamente visual e não usa verbo nem língua gestual. O verbo é usado como comentário para guiar a interpretação do código. O Código é a estrutura das várias linguagens que são usadas para servir um site e que são representadas em ficheiros de texto, com a extensão .css, .html, .js, .json, .xml. 

Podemos considerar que estas são as extensões principais que são usadas na construção de um site, sendo que na perspectiva da comunicação, o JavaScript tem funcionalidades para lidar de com diferentes permissões os ficheiros dessas extensões. O JavaScript pode alterar as propriedades dos ficheiros em tempo real ( sem alterar o orignal ) de HTML e CSS. Ficheiros com a extensão de .json e .xml não têm propriedades de expressão no site e como tal, servem o propósito de estruturar dados estáticos. Esses dados podem ser filtrados de forma a apresentar unicamente os dados que queremos partilhar, na associação de uma função que poderá ser usada para activar um evento (click), para que esse evento que é gerido pelo JavaScript, faça um pedido da informação estática que está estruturada num ficheiro .json ou .xml. Conforme o ficheiro, existe duas abordagens e\ou métodos diferentes para ler o contúdo dos ficheiros, organizar a informação e enviar a informação para ser expressa como conteúdo na <tab> da página de HTML. 

Ao ler a documentação sobre a comunicação entre servidor e cliente usando o protocolo HTTP, usando JavaScript, encontramos uma terminologia chamada Ajax. Asynchronous JavaScript and XML. Não sendo o Ajax uma tecnologias é antes de tudo uma forma de interagir com as várias tecnologias, tais como, HTML ou XHTML, CSS, JavaScript, DOM, XML, XSLT e o mais importante, o objecto XMLHttpRequest.  O XML é cada vez menos usado e por isso focamo-nos no JSON, sendo que é importante lembrar que existem sites que ainda usam o XML para representar e partilhar conteudos informativos que podem ser usados como conteúdo de sites. 

O objecto XMLHttpRequest tem funções e é considerado um API. ( Application Protocol Interface )  

Como terei dito no post anterior, o JavaScript tem funções que no Browser servem a comunicação de dados e que essas dados são representados e geridos por {objectos} sendo que os objectos tèm funções. 

O JavaScript no browser tem um {objecto} para lidar com dados organizados em JSON, chamado JSON e este objecto tem duas funções: o parse e o stringify. 

Como exemplo simples, temos o seguinte: 

// app.js 
// exemplo do método Parse
const jsonObject = '{"Nome:Macaco, Caracteristica:Preguiçoso"}'; 
const lerObject = JSON.parse(jsonObject);
console.log(lerObject.Nome); // Macaco
console.log(lerObject.Caracteristica); // Preguiçoso

É importante reparar que os dados que são usados, estão entre aspas e serão interpretados com "strings". Mesmo assim, o JavaScript sabe que aquele conjunto de strings é um objecto de JSON porque a estrutura do objecto segue as normas que o JSON exige para representar os objectos. Por esta razão, para aceder ao conteudo do objecto, temos de referir o objecto e a chave do conteudo. nomedoObjct.Chave. Ẽ importante também lembrar que para termos acesso ao conteúdo do objecto, temos de associar o conteúdo do objecto a uma nova variavel que irá conter o resultado da função JSON.parse(). É a partir desta nova variavel que temos acesso ao conteúdo do objecto. 

Na publicação anterior, refere de uma forma muito simples, os Objectos e os Objectivos, sendo que disse que só os objectos têm funções. Isto pode ser mal interpretado e por isso volto a referir essa publicação. Os ficheiros de JavaScript podem conter funções que não estão dentro de objectos e os objectos podem estar dentro de funções. Mas para simplificar a forma de interagir com os objectos com JavaScript no Browser ora o JavaScript no NodeJS, tive de considerar dizer isso. Os Arrays(listas[]) também podem ter objectos, mas para já ( alguém que me corrija ), creio que os arrays[] não podem ter funções como propriedade do array[], senão usando a palavra reservada "new" na declaração de uma função. 

Usando a outra função do objecto JSON no JavaScript para o Browser, chamada stringify() temos o processo de conversão da representação de um objecto, array ou função para "strings". Este método consegue interpretar e traduzir ora {obejctos}, ora [arrays] ora (funções).  

// app.js
console.log(JSON.stringify({a: 1, b:2})); 
console.log(JSON.stringify([new Number(3), new String('false'), new Boolean(false)])); 
console.log(JSON.,stringify(new Date(2022, 0, 2, 19, 30, 0)));

- Funções 

Falar de funções poderá ser outro post, talvez o seguinte, mas quero falar um pouco neste aqui.  

A definição de uma função em JavaScript tem a seguinte estrutura: 

// app.js - isto é um comentário
function fun() { // declaração da função com nome. 
    // aqui ficam as instruções que queremos dar a esta função
    console.log("esta é a função fun e é muito divertida"); 
}; // fim da declaração da função
fun(); // chamar função


Quando o JavaScript interpreta uma palavra com parentises, executa a função. 
Dentro dos parentises podemos acrescentar variaveis, chamados de argumentos, para associar um valor aos mesmos e dar-lhes uma função de expressão. 


// app.js 
function add(a, b) { // variaveis posśiveis - 2
    c = a + b; // soma os dois valores inseridos
    console.log(c) // imprimir resultado

add(200, 32); //  232

A abordagem dos vários temas que devemos considerar saber antes de começar a fazer seja lá o que for, são tantos que ficamos com aquela sensação de estar a lidar com um monstro selvagem. A humanidade tem demonstrado que até os animais selvagens se adaptam às pessoas e às sociedades. Tal como a humanidade se adaptou às máquinas e lhes deu uso. 

São sempre questões de comunicação. 

Comentários

Mensagens populares deste blogue

Manual de Instruções - A Utilidade de um cérebro que não pensa

Hoje sinto-me construtivo, pois já é a segunda publicação que faço neste blog, depois de dois anos de inactividade.  No meu blog CriticasemPiedade tenho várias publicações onde critico os cérebros que não pensam, pois são humanos e é suposto pensarem antes de executarem, via os valores que terão sido entregues no seu processo de educativo e que o levaria a tomar boas escolhas.  Mas sabendo que o meu objectivo não tem como alvo a punição de outros seres vivos, deverei considerar pedir ajuda a um "cérebro" muito popular nos dias de hoje e que não pensa, isto é, não perde tempo a equacionar probabilidades de violação moral ou ética, em tudo o que é possível elaborar de forma técnica, mesmo que na verdade, os programadores destes cérebros, limitem a capacidade de elaborar códigos técnicos e de apresentar conteúdos obscuros, que poderão ser usados para más intenções.  E sim, ele não pensa pois não demonstra qualquer curiosidade em saber qual o objectivo que tenho, ao pedir aj...

Manual de Instruções - A Segurança

Esta publicação poderá ser extensa, pois o tema é complexo e sabendo que não existe propriamente uma solução que funcione a 100%, nunca poderá ser resolvida sem o tal processo educativo que serve a liberdade que o Deus nos deu, na associação das nossas escolhas pessoais que terão reflexos sociais ou mundiais.  " O mal que existe no mundo humano, não se deve à vontade de Deus, mas a quem tem essa Liberdade " As técnicas e métodos que permitem a segurança, seja humana, animal ou tecnológica, tem como objectivo limitar fluxos informativos que queremos impedir que aconteçam. Para isso a melhor escolha nos últimos 40 séculos de história, ou mais, é o processo educativo, que dá instruções aos alunos, permitindo-os errar para descobrir, havendo uma exposição de soluções e a explicação das mesmas, para que se entenda porque é que a escolha sugerida é a melhor, sendo que o professor deverá saber que para aprender, tem de errar ou até, aceitar novas perspectivas e interpretações de tud...

Manual de Instruções - Plano Teórico 01

 Teoricamente as "boas escolhas" são simples, mas a motivação de participação é algo complicado de atingir, pois sabemos que na realidade, a maioria participa pois existe um retorno económico, ou qualquer tipo de técnica de valorização que satisfaça a "alma" ou o "corpo".   Assim, tenho definido os objectivos principais associando-os a "Caminhos", sabendo que cada caminho, tem um leque enormissimo de probabilidades e de propriedades, pois todos os fragmentos do conhecimento têm em si próprios, "universos" de novos conhecimentos.  Este tipo de descrição já existe no site principal, associado aos "presentes" que deverão aceitar para se livrarem da minha Licença Eterna e que tem como alvo, todos os organismos que representam um Logo.  Para quem quiser ajudar-me a elaborar novos caminhos e a pensar nas propriedades de cada um, poderá fazer-lo a partir desta issue no repositório em questão.  O objectivo é que este projecto seja d...