Relógio
Relógio 2.3.11

Nesta nova atualização retiramos uma serie de operações para centralizar mais na função primordial.

O software passa apenas controlar o hardware proposto, sem marcação de ponto, que será implementado em outro software.

Blog
VIM Dividir tela

Uma das coisas mais interessantes no vim é a capacidade de incluir em uma mesma tela, dois fontes e comparar ambos.

Iremos verificar neste artigo como fazer isso.

Chame o vim

vim

Na console crie um artigo, para isso pressione ESC, em seguida, digite:

w teste1234.txt

Criando arquivo teste1234.txt

Pressione o i para inserir texto.

Digite o seguinte texto:

este é um teste

este é outro teste

este é um novo teste

Digitação de um texto no vim

Dividindo em duas janelas Horizontais

Entre no modo de comando , pressionando ESC.

Em seguida CTRL+W e depois o s.

Duas splits horizontalmente

Voltar a uma única janela

Entre no modo de comando, pressionando ESC, em seguida digite:

CTRL+W o

Modo padrão

Dividindo Lateralmente

Entre no modo de Comando, digitando ESC, em seguida digite:

CTRL +W v

Modo vertical

Ajustando tamanho

Para ajustar a largura da janela, pressione

CTRL + w seguido de < ou CTRL + w seguido de >

O < diminui a janela da direita, e o > aumenta.

O = deixa elas da mesma largura.

Os comandos CTRL+W (j e k) navegam verticalmente.

CTRL+w j – indo para cima

CTRL+w k indo para baixo

Referências

https://www.tecmint.com/split-vim-screen/#:~:text=To%20split%20the%20vim%20screen,been%20split%20into%20two%20workspaces.&text=To%20navigate%20to%20the%20bottom,by%20the%20letter%20’j’%20.

ETIQUETAS
Etiqueta versão 1.1

Foram feitas diversas melhorias nesta aplicação.

  • Inclusão de arquivo de gravação de contexto: setmain.pas
  • Criação de tela de configuração config.pas
  • Gravação de registro.pas
  • Correções no banco de dados
  • Correções no dmbase.pas

Tela

Tela de Configuração

Sem categoria
Monit

Monit é um projeto open source, destinado a monitorar sistemas Unix.

O monit permite visualizar serviços de forma fácil e intuitiva.

Site do projeto

https://mmonit.com/monit/

Documentação do Monit

O site possui documentação bem elaborada, que pode ser visto através do link

https://mmonit.com/monit/documentation/monit.html

Wiki do projeto

https://mmonit.com/wiki/

Git do projeto

https://github.com/arnaudsj/monit

Procedimento de Instalação do Ubuntu

O procedimento de instalação a partir do repositório é bem simples:

sudo apt install monit

Ao finalizar o monit, estará instalado, porem sem configuração.

Para isso é necessário editar o arquivo /etc/monitrc/monitrc como administrador.

Incluindo o seguinte fragmento, que ja deve estar comentado no arquivo.

set httpd port 2812 and

use address localhost

allow localhost

allow admin:monit

Após salvar o arquivo é necessário reiniciar o serviço.

systemctrl restart monit

Pronto agora basta entrar no browser e adicionar o url: http://localhost:2812/

O usuário e senha será o que definiu no arquivo monitrc, aqui admin/monit.

Ficando algo como apresentado a seguir.

Incluindo gestão de serviços no Monit

É possível gerenciar serviços através do monitor.

Para isso é necessário adicionar o script do serviço, conforme apresentado no fragmento, no arquivo monitrc.

check process httpd with pidfile /var/run/apache2/apache2.pid

start program = “/usr/bin/systemctl apache2 start”

stop program = “/usr/bin/systemctl apache2 stop”

Conforme apresentado a seguir:

Desta forma é possível configurar diversos serviços em seus equipamentos.

PHP
Web Service utilizando Verbos no PHP

Nesta longa jornada de aprendizado, mMais uma lição aprendida.

No exemplo a seguir, crio um web service, onde utilizo uma unica chamada para acionar todos os verbos do ws.


<?php
/*phpinfo();*/
/*Registra webservice para processamento de jobs*/
ini_set('display_errors', 'Off');
error_reporting(E_ALL);

include "connectdb.php";


function iif($cond, $arg_2, $arg_3)
{
    if($cond){
		return $arg_2;
	} else {
		return $arg_3;
	}
}

function filtro($cond){
	//$cond = str_replace('"',"'");
	return $cond;

}

$typereq = $_SERVER['REQUEST_METHOD'];
//echo $typereq;

if ($typereq==='POST')
{
	//echo "POST";
    // The request is using the POST method
	$data = json_decode(file_get_contents("php://input"));
	if($data){
		$localguid = $dbhandle->real_escape_string($data->guid);
		$idbperguntas = $dbhandle->real_escape_string($data->idbperguntas);
		//echo var_dump(json_decode($foo, true));
	} else {
		$localguid = $dbhandle->real_escape_string($_POST['guid']);
		$idbperguntas = $dbhandle->real_escape_string($_POST['idbperguntas']);
		//echo "3";
	}
	//echo $localguid;
	//echo $idbperguntas;
}

if ($typereq==='PUT')
{
	//echo "PUT";
    // The request is using the POST method
	$data = json_decode(file_get_contents("php://input"));
	if($data){
		$localguid = $dbhandle->real_escape_string($data->guid);
		$idhistorico = $dbhandle->real_escape_string($data->idhistorico);
		$pergunta = $dbhandle->real_escape_string($data->pergunta);
		//echo var_dump(json_decode($foo, true));
	} else {
		$localguid = $dbhandle->real_escape_string($_POST['guid']);
		$idhistorico = $dbhandle->real_escape_string($_POST['idhistorico']);
		$pergunta = $dbhandle->real_escape_string($_POST['pergunta']);
		//echo "3";
	}
	//echo $localguid;
	//echo $idhistorico;
	//echo $pergunta;
	if(($pergunta)&&($pergunta!=''))
	{
		$query = "insert into bperguntas (pergunta) values ('".$pergunta."');";
	}
	//echo $query;
	$rs = $dbhandle->query($query);
}

if ($typereq === 'GET') {
	//echo "GET";
    // The request is using the POST method
	$data = json_decode(file_get_contents("php://input"));
	if($data){
		$localguid = $dbhandle->real_escape_string($data->guid);
		$idbpergunta = $dbhandle->real_escape_string($data->idbpergunta);
	} else {
		$localguid = $dbhandle->real_escape_string($_GET['guid']);
		$idbpergunta = $dbhandle->real_escape_string($_GET['idbpergunta']);
	}
}

if ($typereq === 'DELETE')
{
	//echo $typereq;
	$data = json_decode(file_get_contents("php://input"));
	if($data){
		$localguid = $dbhandle->real_escape_string($data->guid);
		$idbperguntas = $dbhandle->real_escape_string($data->idbperguntas);
	} else {
		$localguid = $dbhandle->real_escape_string($_GET['guid']);
		$idbperguntas = $dbhandle->real_escape_string($_GET['idbperguntas']);
	}
	if ($idbperguntas)
	{
		//$localguid = $data->guid;
		//$idbpergunta = $data->idbpergunta;
		$query = "delete from bperguntas where idbperguntas = ".$idbperguntas.';';
		if($dbhandle->query($query)==TRUE)
		{
			echo ($query);
			$strJSON =  '{"rs":[';
			$strJSON = $strJSON . '{';
			$strJSON = $strJSON . '"IDPergutas":'.$idbperguntas.',';
			$strJSON = $strJSON . '"resposta":"Registro excluido com sucesso!"';
			$strJSON = $strJSON . '}';
			$strJSON = $strJSON . ']}';
			echo($strJSON);
		}
		else
		{
			$strJSON =  '{"rs":[';
			$strJSON = $strJSON . '{';
			$strJSON = $strJSON . '"IDPergutas":'.$idbperguntas.',';
			$strJSON = $strJSON . '"resposta":"'.$dbhandle->error.'"';
			$strJSON = $strJSON . '}';
			$strJSON = $strJSON . ']}';
			echo($strJSON);

		}
	}
	else
	{
		$strJSON =  '{"rs":[';
	    $strJSON = $strJSON . '{';
		$strJSON = $strJSON . '"IDPergutas":'.$idbperguntas.',';
		$strJSON = $strJSON . '"resposta":"Registro não encontrado!"';
		$strJSON = $strJSON . '}';
		$strJSON = $strJSON . ']}';
		echo($strJSON);
	}
}

if($localguid!=GUID)
{
	//echo $localguid;
	//echo "  - - ";
	//echo GUID;
	$strJSON =  '{';
	$strJSON = $strJSON . '"mensagem":"Acesso negado"';
	$strJSON = $strJSON . '}';
	echo $strJSON;
	exit();
}


if (($typereq === 'GET')){
	if(($idbperguntas)&&($idbperguntas!='0'))
	{
		$query = "select idbperguntas, pergunta from bperguntas where (idbpergunta = ".$idbperguntas.");";
	} else {
		$query = "select idbperguntas, pergunta from bperguntas ;";
	}
	$rs = $dbhandle->query($query);

	$cont = 0;
	//echo $query;
	$strJSON =  '{"rs":[';
	//while($row=$rs->fetch_assoc())
	while($row=$rs->fetch_assoc())
	{

		if($cont!=0)
		{
			$strJSON = $strJSON . ',';
		}
		$strJSON = $strJSON . '{';
		$strJSON = $strJSON . '"idbperguntas":'.filtro(iif(($row['idbperguntas']!=''),$row['idbperguntas'],'[vazio]')).',';
		$strJSON = $strJSON . '"pergunta":"'.filtro(iif($row['pergunta']!='',$row['pergunta'],'[vazio]')).'"';
		$strJSON = $strJSON . '}';
		$cont ++;
	}
	$strJSON = $strJSON . ']}';
	if ($cont>0)
	{
		echo($strJSON);
	}
}
?>



Na chamada REQUEST_METHOD, captura qual o verbo do html associado a aquela requisição.

$typereq = $_SERVER[‘REQUEST_METHOD’];

Desta forma podemos criar ações especificas para determinados verbos.

if (($typereq === ‘GET’)||($typereq === ‘POST’)){