… em Python! Há pouco mais de três anos, iniciei os meus estudos para dominar os fundamentos da linguagem de programação Python, com o objetivo de atender a um dos requisitos das Redes Definidas por Software (SDN), além de me preparar para conquistar certificações para a gestão de infraestruturas de redes (com base nesta abordagem), como a Cisco CCNA DevNet (que posteriormente, irá se chamar CCNA Automation). Embora o foco inicial seja voltado para criar scripts de automação, já planejava tirar proveito dela em outras aplicações práticas…
Por isto, pretendo me especializar em Python para utilizá-la em outros cenários, indo desde a criação de simples ferramentas de automação e orquestração (que visam realizar pequenas tarefas administrativas) a até mesmo aplicações voltadas para diversos propósitos. Inclusive, passei a dar uma atenção especial para a Programação Orientada a Objetos (OOP), já que esta abordagem se mostra bastante promissora para o uso em infraestruturas de redes, pois posso definir classes e métodos bem delineados para lidar com os tradicionais dispositivos de redes.
A partir de “agora” (mais precisamente, há algumas semanas), estarei dando novos passos para este processo de aprendizagem, ao estudar a criação de aplicações dotadas de interfaces gráficas! Embora Python suporte uma série de bibliotecas badaladas, a escolhida foi justamente a simples e modesta Tkinter, por já estar integrada e disponível por padrão nas instalações desta poderosa linguagem de programação. Inclusive, também tenho utilizado a IDE IDLE justamente pelo mesmo motivo, além dela atender as minhas necessidades. Ao menos, por ora…
De férias (recesso), decidi pesquisar por alguns tutoriais sobre o assunto, o que posteriormente me direcionou para uma série de vídeos intitulada “Python GUI’s With Tkinter”, publicado pelo canal do Youtube Codemy.com. Na minha opinião, esta série se destaca pela incrível quantidade de vídeos (são +200), além do fato deles serem relativamente curtos (de 10 a 20min), sem contar ainda as boas demonstrações feitas por John Elder, o instrutor responsável pelo canal.
Ao realizar os laboratórios práticos para treinar, aproveitei a oportunidade para idealizar uma aplicação como caso de uso, que tire proveito das instruções dadas pelo instrutor. Há algumas meses, havia feito alguns comentários com colegas de trabalho sobre a capacidade do ChatGPT em gerar tabelas com dados aleartórios, utilizando o Python como motor e as bibliotecas Faker, Pandas e Random. Então, pensei: por que não criar uma interface gráfica que possibilite evocar tais códigos e de quebra, ainda ofereça a capacidade de personalizar as requisições?
Daí, nasceu o projeto “Gerador de Tabelas!”, o qual se limita a ser uma simples aplicação que oferece uma interface gráfica com abas, as quais são dedicadas para criar tabelas sob determidos temas de interesse. Como instrutor de TI, muitas vezes preciso realizar demonstrações de como utilizar os recursos do Excel para realizar diversas tarefas relacionadas a tratamento de dados, indo desde a importação de arquivos .csv a criação de tabelas dinâmicas. Embora esta aplicação seja menos flexível do que solicitar ao ChatGPT através do seu prompt, ela se mostra bem mais previsível no que concerne aos resultados apresentados.
Por ser um “marinheiro de primeira viagem”, inicialmente deu um certo trabalho para criar a janela com seus respectivos elementos gráficos. Optei por fixar a dimensão da janela principal (720×480) e bloquear o seu redimensionamento, para garantir uma maior consistência visual. Posteriormente, adicionei o suporte a abas e criei as seções designadas para cada tema proposto. Por fim, fiz a utilização de frames para posicionar a exibição das opções de ajustes dos atributos tabelas (lado esquerdo) e a exibição do resultado gerado em uma simples tabela (lado direito). No final das contas, consegui um bom visual.
A parte mais complexa foi justamente adaptar o código gerado pelo ChatGPT e em vista das minhas dificuldades, fiz o upload do código incompleto e solicitei ao próprio chatboot realizar os ajustes necessários. Por fim, ainda será necessário implementar as instruções para que ele salve o arquivo .csv com base nos dados gerados, além de prover outros parâmetros para personalizar a estrutura e o conteúdo das tabelas. Aos poucos, irei assistindo aos vídeos do canal mencionado e conforme o meu aprendizado for evoluindo, irei implementar estes recursos.
Até lá, paciência. Pois nas próximas semanas, estarei muito atarefado… &;-D