Blog treinamentos
Documentando seu Negócio

A medida que as empresas crescem, é normal que seu negócio ganhe além de volume, também complexidade.

O crescimento dos negócios faz em parte, também agregar em seus produtos, cada vez mais requisitos.

Criando um paralelo com a natureza, as empresas são como dinossáuros.

Começam como pequenas empresas, pequenas como ovos de dinossauro. Mas a medida que os anos passam, com novos projetos e novas implementações muita coisa muda.

Seus projetos crescem em requisitos, ganhando novas funcionalidades, muitas regras e várias ramificações.

Se tornando dinossauros gigantescos.

Sobre meu ponto de vista, não há nada errado em crescer.

O crescimento e aumento de complexidade é uma expressão natural, que exprime a ideia que um software se tornou versátil, e por vezes adaptativo, tanto a necessidades como a contextos de negócio.

O problema mais fundamental, é que projetos embrionários, são facilmente analisáveis, porem a medida que estes crescem. Cresce tambem sua dificuldade em analisar e solucionar problemas.

Tenho visto em minha vida profissional, mais constantemente. Que o sucesso, muitas vezes é acompanhado de muitos problemas.

Conhecimento é poder

Muitas vezes a empresa com foco total no cliente, atropela as boas práticas de gestão, confiando em processos e pessoas para manter sua produção.

Processos são de fato, protocolos que assumimos, estes precisam ser conhecidos, e seu treinamento exige formação prévia.

Pessoas são de fato, a parte mais sensível das empresas, pois muitas vezes possuem conhecimento vasto sobre os processos, e de fato, acaba sendo perdido em um eventual desligamento.

Centralização do conhecimento

A questão mais fundamental hoje, é que as pessoas podem sair, pessoas podem entrar, mas o conhecimento dos protocolos, do negocio deve permanecer.

Isso de fato, é de aceitação comum, pois hoje sabemos o custo dessa perda.

Como manter o conhecimento da sua empresa

De forma geral, em sistemas da informação, podemos dividir o conhecimento em 3 partes:

Para não ser muito técnico, vou apresentar um exemplo simples.

Um bolo, sim esses de loja de doces

Pensando no bolo, temos 3 tipos de informação

Do negócio

O bolo é uma mercadoria, então temos a gestão do negócio em si, como vender, as regras da venda, a questão dos tipos, os clientes, etc.

A documentação sobre o negócio, diz pouco sobre o bolo em sí, mas explica como este bolo será entregue, as pessoas, e o processo de entrega.

Do cliente

O bolo é entregue aos clientes, que por sua vez exigem uma série de documentos, tais como:

  • Tabela calórica
  • Valores nutricionais
  • Contra indicação
  • Validade e rastreabilidade

De forma geral, as documentações exigidas, são de fato as menos negligenciadas, pois são impostas pelo cliente, muitas vezes contando até de contratos formais.

Do bolo em si

Aqui esta a documentação muitas vezes a mais negligenciada.

As informações do bolo, são as receitas, equipamentos necessários e por vezes dependencias.

Nelas não só estão como é feita, mas também as dependências para seu preparo.

Realidade da vida

A maioria das vezes, tratamos com seriedade as documentações do cliente, que entregamos a cada entrega. Quando podemos a do negócio, mas muitas vezes deixamos as especificações do bolo, pois acreditamos que as pessoas as detém.

Na vida real o padeiro morre, muda de empresa, ou vira motorista de aplicativo.

E as empresas deixam de conhecer as informações, passando do sucesso ao desespero.

Solução

Estarei nos próximos artigos apresentando algumas soluções possíveis para todos os casos narrados, apresentando pontos focados para cada um das atividades que apresentei.

docker Sem categoria
Comandos do DOCKER

Segue aqui alguns dos comandos do docker, para referencia técnica.

Definições

Imagem – Pacote de instalação

Container = Imagem + dados modificados

Pesquisa de repositório de imagem

https://hub.docker.com/

Comandos

Listar imagens

Listar imagens de containers, lista todos os containers instalados na sua maquina.

docker images [nome_imagem]

Baixar imagens

Baixar imagem de container

docker pull <nome_imagem>

exemplo:

docker pull ubuntu:18.04

Execução do container

docker run [opcional] <nome_imagem> [argumentos]

opcional

  • -i (interação com o container)
  • -t (iniciar com um terminal de comando)
  • -d (iniciar container em segundo plano [exit)
  • –rm (remove container apos o termino)
  • –name (nomear)
  • -it (interacao + em terminal)

* Enviando comandos em container

Para enviar comandos p containers ja iniciados

docker exec <nome_container> <comandos>

Consulta de consumo

docker ps -a

* Pesquisa de Imagens

Pesquisa imagens do repositório

docker search <nome_imagem>

* Envia para o repositório

Para criar uma nova imagem criada, use o comando:

docker push <nome_imagem>

* Criar uma imagem

Para criar uma nova imagem

docker build <nome_imagem>

Necessário criar o arquivo DOCKERFILE

Remoção de container

A remoção do container, pode ser feita, através do comando:

docker rm <nome_container>

Outro comando é o RMI, apaga a imagem da maquina

docker rmi <options> IMAGE [repository:tag]

Este é diferente pois apaga a imagem baixada, no caso do rm, ele tem atuação diferente.

Para execução de container

Para parar a execução de um container em execução dê o comando:

docker stop <nome_container>

Pausar execução de container

Para pausar a execução execute o comando:

docker pause <nome_container>

Continuar a partir de uma pausa

Para “despausar” use o comando:

docker unpause <nome_container>

Reiniciar um container

O Reinicio faz o reset da execução do container

docker restart <nome_container>

* Voltando a operar em primeiro plano

O docker pode trabalhar em segundo plano e posteriormente voltar a ser tratado em primeiro plano, para isso, use o comando.

docker attach <nome_imagem>

* Commit mudanças de imagem

Para este comando, faz a alteração dos padrões do container, criando uma imagem

docker commit <nome_imagem>

Backup do Container/Imagem

Os comandos SAVE/LOAD – Fazem o backup da Imagem

Os comandos EXPORT/IMPORT – Fazem o backup do container

Informações

Estado do docker

docker state

Informações do estado geral

docker info

Versões

docker version

Atenção

Os comandos com * ainda estou finalizando a escrita do documento, por isso se houver erros peço perdão, mas em breve corrigirei.

Dicas docker
Instalando o DOCKER no Ubuntu

Este tutorial foi baseado no seguinte link:

https://docs.docker.com/engine/installation/linux/ubuntu/

Pré requisito:

Plataforma 64bits e kernel superior ao 3.10

Procedimento de instalação

Para instalar o DOCKER no Ubuntu o procedimento é bem simples.

Passo 1

Digite os seguintes comandos

sudo apt-get update

sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

Passo 2

Adicionando chave GPG Docker Oficial

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

Passo 3

Verificação da Chave, a chave tem que ser como se segue:

key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

Para isso digite o seguinte comando:

sudo apt-key fingerprint 0EBFCD88

Passo 4

Adicione o repositório no seu apt

sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”

Passo 5

Atualização e instalação do docker-CE

sudo apt-get update

sudo apt-get install docker-ce

Passo 6

Inicializar o servico do Docker

Para isso rode o seguinte serviço:

sudo service docker start

Testando docker

Para testar o docker, execute o seguinte comando:

docker images

O resultado, tem que ser como se segue:

Banco de dados Blog Mysql POSTGRES Postgres
Procedimento de compilação do Postgres no ARM Linux

Instalar os seguintes pacotes

  • instalar o bison , apt install bison
  • instalar o flex, apt install flex
  • instalar o readline, apt install libreadline-dev
  • instalar o git, apt install git

Caso o libreadline-dev não esteja presente, instale a lib manualmente:

baixe o git clone https://github.com/JuliaLang/readline.git

entre na pasta readline, e rode os seguintes comandos

  •   > ./configure 
  •   > make
  •   > make install

Baixando o projeto no github

Baixe no git o repositorio do pdv, digitando git clone https://github.com/postgres/postgres.git

Entre na pasta e compile o comando:

  • ./configure
  • make
  • make install

O processo deve demorar vários minutos.

Vídeo que demonstro o processo de instalação

Parametrizando Postgres

Agora na console crie o usuario postgres.

adduser postgres

Crie uma pasta onde serão armazenados os dados do postgres

mkdir /usr/local/pgsql/data

Atribua a pasta como dono o usuário que criamos:

chown -R postgres:postgres /usr/local/pgsql/

Entre como usuario postgres:

su – postgres

Inicializando banco apontando para a pasta do banco

Agora digite o seguinte comando:

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

Ele cria o banco postgres, apontando a pasta onde o banco deve ser armazenada.

Rodando o servidor

Agora na etapa final, precisaremos rodar o servidor postgres, digitando o seguinte comando:

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data &

Por fim criar a base de dados que queremos começar a trabalhar:

/usr/local/pgsql/bin/createdb maurinsoftdb

Pronto seu postgres esta rodando!

Veja tambem

    Blog MNote2 pacotes
    Criar um pacote Debian

    Para criar um pacote debian ou ubuntu, primeiramente siga os procedimentos descritos neste artigo.

    https://maurinsoft.com.br/index.php/criando-pacotes-no-debian/

    Em seguida, crie uma pasta com o nome do pacote que deseja chamar.

    Iremos usar como referencia o mnote2, pois já fizemos.

    Crie as seguintes pastas:

    mnote2

    • DEBIAN
    • usr
      • bin
      • share
        • applications
        • doc
        • icons
        • man

    Dentro da pasta Debian, crie um arquivo, chamado control

    Package: mnote2
    Version: 2.8
    Section: custom
    Priority: optional
    Architecture: all
    Essential: no
    Installed-Size: 1024
    Maintainer: maurinsoft.com.br
    Description: Easy Graphic multiplataform editor.

    Arquivo control

    Na pasta bin, jogue o binário do seu pacote.

    Na pasta share, crie um arquivo, com o nome do seu pacote, no meu caso mnote2.

    Section: editors
    Priority: optional
    Maintainer: marcelo maurin marcelomaurinmartins@maurinsoft.com.br
    Homepage: http://www.maurinsoft.com.br/index.php/projeto-mnote2/
    Package: mnote2
    Architecture: amd64
    Version: 2.8
    Depends:
    Description: Easy Graphic Editor.

    Arquivo mnote2

    Dentro da pasta usr > share > icons > hicolor, copie o icone do seu aplicativo.

    Script de criação de pacotes:

    Para facilitar criei um script que automatiza a montagem do pacote.

    !/bin/bash
    cp ./src/MNote2 ./mnote2/usr/bin/
    cp ./src/MNote2.ico ./mnote2/usr/share/icons/hicolor/
    ln -s ./src/MNote2 ./mnote2/usr/applications/
    dpkg-deb –build mnote2
    mv mnote2.deb mnote2-2.8_amd64.deb
    cp ./mnote2-2.8_amd64.deb ./bin/

    Arquivo buildlinux

    Pronto, vc tem um pacote debian, pronto para uso.

    Artigos relacionados

        Blog pacotes
        Criando pacotes no Debian

        Estarei abordando nos próximos posts, os passos necessários para criar pacotes de instalação no Debian/Ubuntu.

        Neste tópico falarei dos pré requisitos, para deixar sua máquina pronta para gerar os pacotes.

        Então vamos lá:

        No Ubuntu:

        Primeiramente baixe o conjunto de pacotes:

        apt install devscripts

        apt install build-essential crossbuild-essential-amd64 crossbuild-essential-armel crossbuild-essential-i386 sbuild devscripts

        apt install vim

        No Debian

        Primeiramente baixe o conjunto de pacotes

        apt install build-dev foo

        apt install buildessential

        apt install vim

        Com estes pacotes instalados, voce tem o básico para gerar seu próprio pacote linux.

        Artigos relacionados

          treinamentos
          Treinamento na AFAGO

          Pessoal, desculpem a ausência de publicações nos dias que antecederam, tudo isso foi devido a muita correria.

          Na sexta passada, 18/10/2019, dei treinamento na AFAGO e pude ver o excelente trabalho que eles desenvolvem.

          O tema apresentado foi sobre IoT, e como desenvolver idéias e projetos neste novo mundo.

          Segue algumas fotos do treinamento.

          Minha apresentação
          Apresentando uma bobina de tesla a uma das coordenadoras.
          Globo de raios, mais um exemplo de uma idéia.
          Eu dando o treinamento para os alunos.

          Segue a apresentação dada aos alunos.

          Apresentação:

          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