Desenvolvimento de Software
Integração do Chatgpt e Lazarus: Desenvolvendo Soluções Robustas e Amigáveis

A integração do Chatgpt junto com Lazarus em aplicações Desktop pode ser uma excelente maneira de utilizar a inteligência artificial para desenvolver soluções mais robustas e amigáveis. Neste artigo, vamos apresentar tanto o uso da ferramenta de integração desenvolvida pelo autor (disponível em https://github.com/marcelomaurin/CHATGPT), quanto um exemplo prático de aplicação no MNote2, onde a IA é utilizada tanto na formatação de SQL, como no auxílio e validação de queries de pesquisa, além de garantir a consistência dos códigos desenvolvidos.

A utilização do Chatgpt em conjunto com Lazarus traz diversos benefícios tanto para os desenvolvedores quanto para os usuários finais.

Uma das principais vantagens é a capacidade de evitar erros e permitir ajustes e aferições durante o processo de uso das ferramentas.

Vamos analisar inicialmente o uso no MNote2, nele, a IA pode consistir tabelas, ajustando tanto estéticamente como sintaticamente, querys complexas, permitindo que o analista desenvolva de forma mais rápida e intuitiva.

Neste exemplo vemos o MNote2 que a IA, ajustou o layout de um SQL, permitindo que o mesmo seja analisado.

Os próximos passos, é fornecer previamente as tabelas referenciadas, para que a IA possa com isso fazer a prévia amarração das querys através de seus Joins.

MNote2 – 2.31

Exemplo de projeto em desenvolvimento com IA integrada.

Com a IA integrada, é possível contar com um assistente virtual que auxilia na confecção correta de queries SQL, evitando erros comuns e garantindo que as pesquisas sejam realizadas de maneira eficiente.

Além disso, a integração do Chatgpt com Lazarus permite a validação de queries de pesquisa, garantindo que elas estejam corretas e retornem os resultados desejados. O assistente virtual pode analisar a estrutura da query e verificar se os parâmetros estão corretos, evitando consultas inválidas e economizando tempo do desenvolvedor.

Outro ponto importante é a consistência dos códigos desenvolvidos. Com a IA auxiliando no processo de desenvolvimento, é possível manter um padrão de código mais uniforme e evitar erros comuns. O assistente virtual pode identificar possíveis problemas e sugerir correções, garantindo que o código final seja mais legível, fácil de dar manutenção e menos propenso a erros.

No exemplo prático do MNote2, a integração do Chatgpt com Lazarus é utilizada para auxiliar tanto na formatação de SQL quanto na validação de queries de pesquisa. Com a ajuda do assistente virtual, os desenvolvedores podem escrever queries de maneira mais eficiente e garantir que elas estejam corretas antes de executá-las. Isso resulta em um processo de desenvolvimento mais ágil e menos propenso a erros.

Sistemas de ERP e CRM, porem se beneficiar muito, através de sistemas de sugestão, analisando padrões de comportamento do software e sugerindo mudanças, para evitar problemas logisticos ou de processos.

Em resumo, a integração do Chatgpt com Lazarus em aplicações Desktop oferece uma maneira eficiente e inteligente de desenvolver soluções mais robustas e amigáveis. A utilização da IA traz benefícios como a formatação correta de SQL, a validação de queries de pesquisa e a consistência dos códigos desenvolvidos. Esses aspectos agregam valor tanto para os desenvolvedores, que podem contar com um assistente virtual durante o processo de desenvolvimento, quanto para os usuários finais, que se beneficiam de soluções mais eficientes e menos propensas a erros.

Blog Dicas Sem categoria
Conversão padrão Windows/Unix/MAC

Uma boa ferramenta para conversão de arquivos texto, é o DOS2UNIX.

Esta ferramenta permite a conversão de arquivos nos formatos nativos do sistema operacional.

Instalação do Pacote

apt install dos2unix

Pacote dos2unix

Instalando este pacote, voce terá alem do dos2unix, tambem os comandos dos2mac , unix2mac, unix2dos.

Para converter no siga a sintaxe:

dos2unix [origem] [destino]

Sintaxe de conversão do dos2unix

Artigo relacionado

http://maurinsoft.com.br/index.php/2022/03/01/convertendo-arquivo-formato-unix-com-vi/
C/C++
Como verificar grupo no linux com C

Este artigo é uma continuação do treinamento apresentado no artigo abaixo:

http://maurinsoft.com.br/index.php/2021/08/27/como-verificar-user-no-linux-com-c/

Agora iremos falar um pouco sobre as informações dos grupos no linux.

O arquivo /etc/group, é um banco de dados de grupos de usuários, os grupos são usados para permissões de acesso, pois em geral, estabelecemos permissões para o usuário, para os membros de seu grupo e depois para os outros usuários.

lista de grupos da minha maquina.

Ao olharmos o grupo mmm, percebemos que tem o mesmo nome e codigo do usuario (/etc/passwd). Ao criarmos um usuário, o linux automáticamente cria um um grupo para este.

Tabela das informações do /etc/group

Número de CAMPODados de exemploDescrição
1mmmO nome do grupo
2xA senha do grupo (se existir)
31000O numero de id do grupo
4A lista de nomes de usuários que pertencem a esse grupo

Vamos ao código em C

Agora vamos estudar o código abaixo, que é basicamente uma continuação do código do primeiro artigo.

#include <unistd.h>
#include <stdio.h>
#include <pwd.h>
#include <grp.h>
#include <sys/types.h>

void main(){
	long uid = getuid();
	long gid = getgid();
	char nomegrupo[40];

	printf("\nMeu id %ld\n",uid);
	printf("Meu group id %ld\n",gid);
	struct group *gp= getgrgid(gid);
	printf("Meu nome do grupo %s",gp->gr_name);
	struct passwd *ppw;
	int erro = 0;
	ppw = NULL;
	printf("Listagem de usuarios\n=======================\n");
	//pww = getpwent( ); /*Obtem a senha*/
	while((ppw = getpwent())!=NULL){
		if(erro !=0) {
			printf("Falhou\n ");
			//abort();
		} else {
			printf("Usuario:%s\n",ppw->pw_name);
			printf("senha:%s\n",ppw->pw_passwd);
			printf("id de usuario:%d\n",ppw->pw_uid);
			printf("id do grupo:%d\n"a,ppw->pw_gid);

			/*Pega as informações do grupo*/
			gid = ppw->pw_gid; /*Pega o grupo do usuario*/
			gp = getgrgid(gid);

			/*Mostra os grupos*/
			printf("Nome do grupo %s",gp->gr_name);
			printf("Senha do grupo %s",gp->gr_passwd);
			printf("id do grupo %d",gp->gr_gid);
			for( int cont= 0; gp->gr_mem[cont]!=0;++cont) {
				printf("membros do grupo %s", gp->gr_mem[cont]);
			}

			/*O resto das informações do usuario*/
			printf("comentario:%s\n",ppw->pw_gecos);
			printf("diretorio:%s\n",ppw->pw_dir);
			printf("shell:%s\n", ppw->pw_shell);
		}
		printf("\n");

	}

}

Neste código, podemos ver 2 fragmentos importantes:

#include <unistd.h>
#include <stdio.h>
#include <pwd.h>
#include <grp.h>
#include <sys/types.h>

void main(){
	long uid = getuid();
	long gid = getgid();
	char nomegrupo[40];

	printf("\nMeu id %ld\n",uid);
	printf("Meu group id %ld\n",gid);
	struct group *gp= getgrgid(gid);
	printf("Meu nome do grupo %s",gp->gr_name);
	struct passwd *ppw;
	int erro = 0;
	ppw = NULL;

Neste pequeno fragmento, a lib responsável pelo gerenciamento do grupo, é

#include <grp.h>

Funções de gestão de grupo

Para comecarmos, vamos apresentar a estrutura de um grupo:

struct group {
   char *gr_name; /* nome do grupo */
   char *gr_passwd; /* senha do grupo */
   gid_t gr_gid; /* id do grupo */
   char **gr_mem; /* membros do grupo */
}

GETGRENT

Abre a listagem e pega a primeira ocorrencia do grupo. Funcionando como um cursor, para capturar todos os registros do grupo.

while ( ( gp = getgrent())!=0){
   printf("%s", gp->gr_name);
}
endgrent();

No caso do exemplo acima, só para quando o ultimo registro for encontrado.

ENDGRENT

É usado em conjunto com a função getgrent, ela faz voltar para a posição inicial.


while ( ( gp = getgrent())!=0){
   printf("%s", gp->gr_name);
   endgrent();
}

Nesta sutil variação do código, será mostrada sempre o primeiro registro.

GETGRGID

Pesquisa o grupo, pegando a estrutura identificada pela chave gid (Group ID).

printf("\nMeu id %ld\n",uid);
printf("Meu group id %ld\n",gid);
struct group *gp= getgrgid(gid);
printf("Meu nome do grupo %s",gp->gr_name);

No fragmento acima, podemos ver que funciona, inclusive acompanhar sua sintaxe.

GETGRNAM

Função semelhante a anterior, porem em vez de pegar o id, ela procura o grupo que contenha o nome do grupo.

SIntaxe:

char nome[20];
sprintf(nome,"mmm");
struct group *gp = getgrnam(nome);
printf("ID grupo: %d",gp->gr_gid); 

Bom pessoal, por enquanto isso é tudo!

Espero ve-los em breve.

E se curtiu o texto, ou acha que poderiamos melhorar, envie-nos um email

marcelomaurinmartins@gmail.com

Até breve e vida longa e prospera.

Delphi
Exemplo de Firedac em Delphi XE10

Exemplo prático Delphi XE10

Este exemplo didático permite visualizar as requisições de SMS, e enviar novos.

Detalhes do Projeto

Banco de Dados: mysql 5

Servidor Banco: Linux Raspberry PI

Aplicação: X86

Linguagem: Delphi XE10

Tabela: jobs.sql

Fonte: src_clienteSMS2.zip

Binário: clientSMSAlpha1.zip

Tela principal da aplicação.

Nela o usuário pode selecionar a pesquisa de SMS, através do menu superior. Para tanto, basta clicar em SMS > Enviados.

Surgirá uma tela com Título JOBS.

Nela é possível verificar na área superior um campo telefone, este permite filtrar os telefones enviados por mensagem.

Pesquisa por Telefone

Para realizar a pesquisa, digite o telefone que pretende filtrar no campo telefone.

 Click no botão Pesquisar, a aplicação pesquisará todos os SMSs que não foram enviados ainda com este telefone.

O Resultado da pesquisa aparecerá no grid inferior.

Para maiores informações mande um email: marcelomaurinmartins@gmail.com

Outros projetos relacionados:

Exemplo de Delphi XE10 consumindo REST ankara escort çankaya escort ankara escort çankaya escort escort ankara çankaya escort escort bayan çankaya istanbul rus escort eryaman escort escort bayan ankara ankara escort kızılay escort istanbul escort ankara escort ankara rus escort escort çankaya ankara escort bayan istanbul rus Escort atasehir Escort beylikduzu Escort Ankara Escort malatya Escort kuşadası Escort gaziantep Escort izmir Escort

Dicas Sem categoria
Instalação e Configuração de DLNA em Linux

Olá,

Iremos realizar agora a configuração do minidlna em um servidor Linux.

Bom para tanto, precisaremos das seguintes pré req:

  • Servidor Linux (debian ou equivalente) – Para demais alguns passos podem variar.
  • Raspberry PI ou Desktop com no mínimo HD de 1Tb para Filmes.
  • Algum conhecimento em linux.

Procedimentos de Instalação:

  1. Entre via SSH no servidor Linux, com usuário administrador (root)
  2. Através de interface texto, digite os seguintes comandos:
  3. apt-get update
  4. apt-get upgrade
  5. apt-get install minidlna
  6. Vá ao diretório /etc/
  7. Com um editor de sua preferencia, edite o arquivo minidlna.conf, recomendo o vim minidlna.conf
  8. Crie os parâmetros de configuração, conforme segue:

Media_dir – Cria um repositório de medias (vídeos, fotos, áudios), sendo v para vídeos, A para audio, P para fotos, e PV fotos e vídeos simultâneos.

Sintaxe:

media_dir=(A,P,V,PV),<path>

friendly_name – Cria um nome do servidor, que será apresentado em sua tv.

Sintaxe:

friendly_name=<nome do Servidor>

9. Crie as pastas no servidor que configurou em seu media_dir.

Para criar as pastas use o comando mkdir <path>

10. Atribua permissões para a pasta, como você esta como root, possivelmente seu servidor não irá enxergar.

Para tanto, execute na pasta anterior o seguinte comando:

chmod 755 -R <path>

Onde path é o caminho da sua pasta, exemplo /media/disk/Movies

😉

11. Reinicie o serviço com  service minidlna restart ou reboot o servidor 

Seu serviço estará criado e não necessitará de nenhuma configuração adicional.

GIT Sem categoria
GIT

GIT oque é

GIT é uma ferramenta multi plataforma de controle e versionamento de fontes de programas.

Download

Entre no site https://git-scm.com/ e baixe a versão mais nova em sua plataforma.

Instalação

Linux/Debian

Para instalar o git no linux/Debian basta dar:

 apt-get install git

Mac

Para instalar o git no mac, baixe o instalador desta plataforma e rode. Voce vai precisar autorizar em security;

No windows

Baixe a aplicação e execute o mesmo, seguindo, next , next , finish.

Configuração do GIT

Git Bash

Interface nativa do git colorida

Semelhante ao prompt do cmd, porem tem cores que mostram detalhes da interface.

Para utilizar, entre na pasta que utilizará o git, botão direito, e adicione git bash here, conforme figura acima.

Atribuindo usuário

git config --global user.name "nomeuser"

Atribuindo email

git config --global user.email "marcelomaurinmartins@gmail.com"

Vendo configurações

git config --global --list

Criando um repositório

O Repositório adiciona e controla seus fontes do projeto

cd pasta_do_rep

git init

Adicionando arquivos no git

git add nome_arquivo

ou apenas os do tipo pas

git add *.pas

ou para todos os arquivos

git add --all

Status do Repositorios

Para verificar o status do repositório local com relação ao servidor, faça:

git status

Fazendo Commit

O Commit é o ato de enviar suas atualizações para o servidor.

para tal, faça:

git commit -m "Notas de mudança"

Vendo Histórico LOG

git log

No exemplo a baixo, podemos ver as informações de cada commit realizado.Neste exemplo, cada commit gerou um hash de commit, que pode posteriormente ser utilizado para comparação.

Caso queira mais informações, use:

git log --stat

Comparar commit

Para comparar commit, realize a seguinte operação:

git diff <commit1> <commit2>

Usando o log, podemos pegar os hash destes commits.

Ficando como se segue:

Variações de comando

Voltar uma versão do git anterior

git checkout -b <hash>

Para o ultimo (master), atual!

git checkout master

para reverter apenas um arquivo

git checkout <arquivo>

para reverter todos

git reset --hard

Para limpar os arquivos não rastreados, novos

get clean -f

ou para ver a opção de menu (interativo)

get clean -i

Criando lista de tipos inválidos para git

Para criar uma lista de tipos (extensões) invalidos no git, crie um arquivo no windows .gitignore.

ou no linux .gitignore 

No arquivo, .gitignore faça uma lista, como se segue.

.java

.exe

.dll

Removendo os arquivos executáveis do rastreamento>

git rm -r –cached *.exe

Clonando Repositório

Para clonar um repositório, faça a seguinte sintaxe:

git clone <url_ou_diretorio_git>

Clonando um Repositório em um branch

Para clonar um branch especifico de um repositório, use a sintaxe a seguir:

git clone -b <branch> http://git.repositorio.com.br

Criando um novo branch

Para criar um novo repositório, basta dar o comando.

git checkout -b <branch>

Enviando dados

Comando push

O Comando push, é utilizado para subir para o servidor todos os commits dados na maquina, sua sintaxe é:

git push

PUSH de branch

git push –set-upstream origin <branch>

Meus projetos no GIT

Segue meu perfil no GIT:

https://github.com/MarceloMaurin

Peço desculpas aos colegas, a maioria dos meus projetos ainda não estão no GIT.

Estou como tantos outros, migrando meus projetos para o GIT.

Atualmente uso o source forge:

https://sourceforge.net/u/mmaurinmartins/profile

Nos próximos artigos, estarei mostrando como atualizar um repositório no servidor github.

maurinsoft.com.br