Magic Byte

Magic Byte

Pesquisas, desenvolvimento, suporte e paixão por tecnologia.

Construindo softwares.

A construção de softwares. Construção desde o baixo nível até o alto nível dentro de um sistema operacional modelo UNIX. Entendendo e relacionando bibliotecas. Python a pypi. A contrução de uma biblioteca simples mas muito...

Bagels, nosso docinho de sistema.

Estudando diferentes aspectos do desenvolvimento entre platafrmas, API’s linguagens e recursos físicos. observei: Desenvolver algumas tarefas nas linguagens mais apropriadas para elas. Por exemplo nesse sistema utilizei: SQL, SQLite, MySQL MarkDown, HTML javascript, perl, python....

Eureka! (vamos pesquisar.)

Para aqueles aventureiros das madrugadas em terminais de computador, temos alguns projeots bacanas. Por exemplo, ao invés de recriar uma search engine por que não utilizar uma compatível com as que já existem e são...

Construindo softwares.

A construção de softwares.

Construção desde o baixo nível até o alto nível dentro de um sistema operacional modelo UNIX.

Entendendo e relacionando bibliotecas.

Python a pypi.

A contrução de uma biblioteca simples mas muito útil com certeza.

Na construção dela foi adotada uma linguagem que hoje em dia está acassível a muitos. **python.**

https://pypi.org/project/dStorage

Nossa biblioteca, o código se encontra livre e buscando atender as conformidades com as legislações e licensas vigentes.

Ela pode ser instalada através da própria pip.

Independente de outrod probelmas algumas das falhas da library(biblioteca são intencionais pois a finalidade é em partes educacional.

Aqui o projeto dentro da comunicade e métodos de publicação oficiais.

https://codeberg.org/Linux77/dStorage

Aqui o repositório git para onde migrei o projeto a migração ainda não está totalmente concluída pois ainda preciso me aprimorar em muitas tarefas.

dStorage — Análise do Repositório

Visão Geral

O dStorage é uma biblioteca Python desenvolvida por Leonardo de Araújo Lima, da Academia do Software Livre (São Lourenço – MG). O objetivo é ser uma metaclasse base que automaticamente gera interfaces GUI (Tkinter) e CLI para classes que precisam de persistência em banco de dados SQLite.


🏗️ Arquitetura

O projeto é simples e centralizado em um único arquivo principal:

dStorage/
├── dStorage/
│   ├── core.py        ← Toda a lógica da biblioteca
│   └── __init__.py    ← Apenas define a versão
├── examples/
│   ├── 1stApp.py      ← Exemplo de cadastro via GUI
│   └── 2stApp.py      ← Exemplo de leitura/exibição
└── pyproject.toml     ← Build com Flit

⚙️ O que a classe dStorage faz

A classe recebe dois arrays paralelos no construtor — pindex (nomes dos campos) e pdata (valores) — e oferece:

MétodoFunção
cdBase()Cria a tabela no SQLite dinamicamente
savedata()Insere um registro via SQL
loaddata(id)Carrega um registro por ID
deletedata(id)Remove um registro por ID
cad()Abre formulário GUI (Tkinter) para inserção
registrar()Cadastro via terminal (CLI)
display()Exibe dados em janela Tkinter
show()Exibe dados no terminal
getid(campo, valor)Busca ID por valor de campo
litems()Lista todos os IDs da tabela

🐛 Problemas Encontrados

Bugs críticos:

  1. version como atributo e método ao mesmo tempoself.version = "1.1.3rc1" no __init__ sobrescreve o método version(self), tornando-o inacessível.
  2. setdb() com lógica invertida — A condição if len(self.dpath) > 1 deveria levar ao uso de dpath, mas dentro do else é que set_database() é chamado. A lógica está trocada.
  3. getid() tem código mortoc.commit() e con.close() após um return nunca serão executados.
  4. loaddata() com bug de iteração — O loop for row in c.fetchone() itera sobre os campos de um registro (não sobre registros), e reatribui self.pdata a cada iteração, resultando em apenas o último campo.
  5. SQL Injection — Vários métodos como getid() e lnames() concatenam strings diretamente no SQL sem sanitização, o que é uma vulnerabilidade grave mesmo para uso pessoal.

Problemas de qualidade:

  • requirements.txt com centenas de dependências do sistema operacional inteiro (Debian/Ubuntu), sem relação com a biblioteca em si — parece um pip freeze do ambiente completo.
  • Sem tratamento de erros (try/except) em nenhuma operação de banco de dados.
  • debug = 1 hardcoded no construtor, com vários print() de depuração sempre ativos.
  • Comentários misturados em inglês e português.
  • Licença duplicada (LICENSE e LICENSE.txt) com anos de copyright inconsistentes (1983?).

✅ Pontos Positivos

  • Ideia interessante: a geração automática de formulários a partir dos campos da classe é um conceito válido e útil para prototipagem.
  • Código legível: apesar dos bugs, a intenção de cada método é clara.
  • Publicado no PyPI: o projeto está empacotado corretamente com Flit e disponível para instalação via pip.
  • Licença livre: GPL v3, com intenção clara de ser software aberto.
  • Exemplos incluídos: os dois exemplos na pasta examples/ demonstram bem o uso básico.

💡 Sugestões de Melhoria

  1. Usar parameterized queries em todo o SQL para eliminar a SQL Injection: # Em vez de: “WHERE ” + name + “='” + value + “‘” # Use: “WHERE ? = ?”, (name, value)
  2. Separar o requirements.txt em apenas as dependências reais (basicamente apenas tkinter, que é built-in).
  3. Renomear version para _version ou usar @property para evitar o conflito.
  4. Adicionar try/except em todas as operações SQLite.
  5. Tornar debug configurável pelo construtor em vez de hardcoded.

📊 Resumo

AspectoAvaliação
Conceito/Ideia⭐⭐⭐⭐ Boa proposta educacional
Código⭐⭐ Bugs importantes presentes
Segurança⭐ SQL Injection em múltiplos pontos
Documentação⭐⭐⭐ README razoável
Empacotamento⭐⭐⭐ Funcional, mas requirements problemático
Maturidade⭐⭐ Projeto de estudo/aprendizado (como o próprio autor declara)

O autor é bastante transparente que este é um projeto de estudos, e nesse contexto o repositório cumpre bem o papel de explorar a integração entre SQLite, Tkinter e CLI em Python. Para uso em produção, os pontos acima precisariam ser endereçados.

Contruindo softwares

O ambiente do sistema operacional, construção de softwares, alto x baixo nível.Bibliotecas e linguagens. Read More "Contruindo softwares"

uma pequena lágrima de alegria.

uma pequena lágrima de alegria. É tudo que preciso deixar no coração de quem amo. Muitos companheiros em minha caminhada partiram, mas levaram essa lágima... Read More "uma pequena lágrima de alegria."

Bagels, nosso docinho de sistema.

Estudando diferentes aspectos do desenvolvimento entre platafrmas, API’s linguagens e recursos físicos. observei:

Desenvolver algumas tarefas nas linguagens mais apropriadas para elas.

Por exemplo nesse sistema utilizei:

SQL, SQLite, MySQL

MarkDown, HTML

javascript, perl, python.

A nível de recursos foram mais ou menos estes.

Como ambientes e sistemas operacionais forma usados:

Debian.

Debian GNU Linux, a opção que faltava para a manutenção da liberdade e dos direitos dos usuários de tecnologia.

Gentoo.

Raspbian..

Android.

O site do sistema, é bem simples de localizar.

bagels website.

Eureka! (vamos pesquisar.)

Para aqueles aventureiros das madrugadas em terminais de computador, temos alguns projeots bacanas.

Por exemplo, ao invés de recriar uma search engine por que não utilizar uma compatível com as que já existem e são usadas, por todas as grandesc ompanhias de forma livre porém transformando seus resultados em cifras.

Eu também elaborei um meta search engine, porém aprimorei ele integrando-o ao searX.

Assim surgiu a idéia do eureka.

Imaginei “eureka” um nome fácil e bem humorado.

Entã temos uma metacrawler.

Totalmente dentro das conformidades de segurança e privacidade.

Integrado com a amior parte das me engines…

Também contando com customização individual o que permite que a experiência de cada usuário seja subjetiva.

Eureka nosso site de buscas.

Em destaque

Bagels.

Bagels.

O bagels trata-se de um projeto, aplicável a automação comercial, com um sistema de compra e vendas, bem como um sistema auxiliar em gerencia e administração de ambientes comerciais.

Dentre outros recursos que indico para recursos online, muito útil em pesquisas, é o “ecosia.

Ele é um projeto onde aproveitamos os recursos financeiros adquiridos para agregar a projetos de reflorestamento.

Vejo nele uma solução viável para auxiliar muitos setores de vários países a terem fundos suficientes para projetos similares.

Outro projeto que me mostrou há algum tempo a importância do cidadão “Brasileiro” em relação a suas responsabilidades e direitos civis é o conjunto de ideias dos projetos recivitas e robinright.

Ambos parceiros e os quais apresento confiança.

Nos domínios abaixo você meu visitante, poderá facilmente acessar tais websites.

Aqui vejo uma fonte confiável de informações plausíveis ao exercícios de cidadania.

Outro projeto muito importante para o atual contexto econômico, onde vejo o grandes possibilidades, bem como uma série de projetos que podem surgir partindo desse modo de atuar inovador de projetos a âmbito de comércio e livre mercado no Brasil.

Descrição do ambiente do sistema.

Sistema simples para interação e auxílio em administração de lanchonetes e restaurantes.

Aqui temos um breve vídeo apresentando a estrutura básica do sistema.

Aqui uma lista breve dos componentes do sistema.

Aplicações para o controle e monitoramento.

Tarefas de administração:

Funções para restaurantes e lanchonetes.

  • Bar/Cozinha.

bagels-cozinha

  • Caixa.

bagels-caixa

bagels-tab_preços

  • Escritório(s).

bagels-monitor
bagels-query

waiter.

Aplicação para garçons/garçonetes.

Esta aplicação é destinada a smartfones.

Esta pode ser ajustada e utilizada em delivery.

SQL-tp.

Modelos e estrutura de bases de dados locais e remotas.

Academia do software livre.

Quem sou?

Sou m um antigo estudante, apaixonado por tecnologia.

Desde bem jovens portador de habilidades especiais.

Um conjunto de características que me fazem um autodidata, bem fora do comum.

Sempre estudando e me aperfeiçoando como educador.

Começando com aulas particulares de disciplinas que se encontravam dentro e fora de meu currículo.

Minha grade curricular se tornou pequena perto dos estudos que realizei de forma livre e independente em áreas de meu interesse.’

A idéia de um curso livre diferente.

Como estudei para o exercício do magistério, elaboro meus estudos pesquisas, métodos de ensino, conteúdos e muitas outras coisas seguindo um padrão de funcionalidade e eficácia.

Tenho hojs alguns domínios na web.

Um deles é o da academia do software livre.

O que ainda não é uma instituição, mas um sonho que pode vir a se construir.

Sozinho já desempenhei muitas tarefas e atividades, sendo que minha melhor compania sempre é “Deus”.

Elaborei há uns 16 anos atrás um plano de ensino coltado para computação e ciência da informação.

Esse modelo, foi apresentado a mim por um velho amigo, o Eng. Everaldo Bruno.

Juntos elaboramos algumas etapas de aprendizado essenciais para qualquer pessoa que realmente queira aprender sobre computação e tecnologia.

Para conhecer nosso trabalho, posso aqui mostrar o início de nosso curriculos com os conteúdos originais utilizados uns vinte anos atrás.

Assim mostrando que o conteúdo de muitos de meus cursos não se desperdiçou.

Tendo este várias finalidades e objetivos para ida do educando.

Conteúdo do curso inicial de capacitação em ciência da computação.

Após muitas revisões e utilização larga por uns anos dessa estrutura e modelo de curso, me apliquei nos recentes 5 anos em elaborar uma série de recuros para professores.

Utilizando IA e também muitos outros recuross que vejo mais confiávei e permitem é claro integração com IA.Academia do software livre.