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 - Seguir as Instruções

 Cá vamos nós mais uma vez falar deste nosso manual que tem outros manuais sendo que todos eles são uma lista de instruções que nos permitem a fazer o que queremos fazer. Além das várias comunidades que existem online que prestam o seu serviço a troco de nada, existem também comunidades que cobram pelos seus serviços. O mundo OpenSource é o mundo que mais me agrada, pois não precisa de cobrar nada e, mesmo que cobre é quase sempre a um preço justo. Além disso, as comunidades que existem online oferecem respostas quase instantâneas, caso seja usando o IRC ou um pouco mais demoradas mas com notificação de email, em forums. Além disso o Google e\ou o Duckduckgo são os amigos de qualquer procura, não esquecendo do Wikipedia que também tem a explicação de vários conceitos que são importantes aprender. Seja lá qual for o conteúdo que queremos procurar, quase sempre encontramos resultados. Eu cá prefiro usar o Duckduckgo, mas o Google continua a ser o melhor, quanto ao número de resultado

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