Como instalar e Configurar o pgAdmin4 para gerenciar o PostgreSQL

Quando pensamos em como gerenciar o banco de dados PostgreSQL, precisamos fazer o possível para que isso seja simples, até porque o intuito de utilizar tal banco é justamente esse.

O pgAdmin é uma plataforma de administração e desenvolvimento de código aberto mais popular e rica em recursos para o PostgreSQL. Com essa aplicação, você pode ter uma interface gráfica para gerenciar tudo relacionado ao PostgreSQL. O PostgreSQL é bastante avançado, suportando a maioria das características esperadas em um sistema gerenciador de bancos de dados moderno:

Stored Procedures: o PostgreSQL tem suporte à criação de stored procedures em PL/pgSQL, PL/Tcl e PL/perl. Usando stored procedures o programador pode realizar um grande número de operações dentro do próprio banco, aumentando o desempenho geral da aplicação.

Altamente Extensível: o PostgrSQL possui uma característica bastante interessante que é a possibilidade de se utilizar operadores, tipos de dados, estruturas e métodos de acesso definidos pelo usuário (o programador do sistema).

Banco de Dados “Relacional a Objetos”: o banco de dados possui algumas características de orientação a objetos, como herança, por exemplo. Por isso, o PostgreSQL é, por vezes, chamado de banco de dados “relacional a objetos” e não só um banco de dados relacional.

Características de Bancos Relacionais: quase todas as características esperadas em um banco de dados relacional são encontradas no PostgreSQL, como consultas declarativas em SQL, otimizações de consultas, controle de concorrência, transações e multiusuário.

Conheça e veja como instalar o pgAdmin4 no Ubuntu e derivados.

Daqui para frente mostrarei como fazer o processo de instalação e configuração em si. Lembrando que estou partindo da premissa de que você tenha o Linux e seus devidos pacotes de atualização instalados. Todos os comandos e processos abaixo foram feitos numa VM Linux que roda no Windows, mas se você tiver o Linux somente (sem VM), pode seguir também, pulando as etapas de copiar arquivos.

Agora abra seu querido terminal, e comece.

Capturar.JPG

[STEP01] – Realizar update do sistema:
  • sudo apt-get update
[STEP02] – Instalar pacotes requeridos:
Python 2.7:
  • sudo apt-get install build-essential libssl-dev libffi-dev libgmp3-dev virtualenv python-pip libpq-dev python-dev
Python 3.6.7: (recomendado caso queira utilizar o pgAdmin)
Se você quiser utilizar o Python 3.6.7 e não o Python 2.7, precisará:
  • pip install passlib ou pip3 install passlib
  • sudo apt-get install python3.6 ou sudo apt-get install python3
  • sudo apt-get install virtualenv python3-pip libpq-dev python3-dev

[STEP03] – Criar ambiente virtual:
  • Na raiz do root, digite:
    • mkdir pgAdmin4
    • cd pgAdmin4
    • virtualenv pgAdmin4
  • Ou, no caso do Python 3:
    • virtualenv -p python3 pgadmin4

[STEP04] – Ativar ambiente virtual:
  • cd pgAdmin4 (pode ver que você entrará na segunda pasta pgAdmin4)
  • source bin/activate

[STEP05] – Download pgAdmin 4:
[STEP06] – Instalar o arquivo baixado pelo wget:
  • Abra o terminal depois de copiar o arquivo, e rode o comando.
[STEP07] – Crie o arquivo config_local.py:
  • Entre no diretório /usr/local/lib/python2.7/dist-packages/pgadmin4
    • OU no Python 3: gedit pgAdmin4/pgadmin4/lib/python3.6/site-packages/pgadmin4/config_local.py
  • Digite: gedit
  • Cole o conteúdo:
import os
DATA_DIR = os.path.realpath(os.path.expanduser(u’~/.pgadmin/’))
LOG_FILE = os.path.join(DATA_DIR, ‘pgadmin4.log’)
SQLITE_PATH = os.path.join(DATA_DIR, ‘pgadmin4.db’)
SESSION_DB_PATH = os.path.join(DATA_DIR, ‘sessions’)
STORAGE_DIR = os.path.join(DATA_DIR, ‘storage’)
SERVER_MODE = False
  • No Python 3.6.7 o caminho é:
    • /usr/local/lib/python3.6/site-packages/pgadmin4/
    • /pgAdmin4/pgadmin4/lib/python3.6/site-packages/pgadmin4/
  • Salve o arquivo com o nome config_local.py

[STEP08] – Execute o pgAdmin.py:

  • Entre na pasta: /usr/local/lib/python2.7/dist-packages/pgadmin4/
    • Digite: pgAdmin4.py
    • Ele irá inicializar e te passará uma URL para abrir no navegador.
  • Ou no Python 3:
    • python  /pgAdmin4/pgadmin4/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py


Comandos extras:

para iniciar: python /usr/local/lib/python2.7/dist-packages/pgadmin4/pgAdmin4.py
para iniciar: sudo /etc/init.d/postgresql restart
para saber se o serviço está no ar: /etc/init.d/postgresql status
para iniciar o servilo:            /etc/init.d/postgresql-10 start ou /etc/init.d/postgresql start
para saber a versão do pip: pip –version
para saber a versão do python 3 instalada: python3 –version

para saber qual versão do python está rodando: python –version

FAQS:
Diretório do pgAdmin4 v4.5:
Atualizar o Python (neste momento para 3.7):
Extras:
  • vi config_local.py (para confirmar)
  • python lib/python2.7/site-packages/pgadmin4/pgAdmin4.py
  • caminho onde está salvo o arquivo: /usr/local/lib/python2.7/site-packages
  • caminho onde foi editado o arquivo: pgAdmin4/pgAdmin4/lib/python2.7
  • python usr/local/lib/python2.7/dist-packages/pgAdmin4.py/usr/local/lib/python2.7/dist-packages
  • python2.7 /usr/local/lib/python2.7/dist-packages/pgadmin4/setup.py

Aguardo vocês na próxima publicação!
Abraços.
Publicado em Development | Deixe um comentário

Arquiteturas de Software: Visão geral

Talvez você já tenha se perguntado alguma vez com base no que os softwares são criados? Possivelmente tenha escutado recentemente (ao menos até esse post) sobre Microservices, mas é bem provável que você tenha muitas dúvidas.

Hoje falaremos sobre a abordagem as duas principais arquiteturas de software: 1. Monolito, e Microservices.

Até a próxima!

Publicado em Development | Deixe um comentário

Como instalar e configurar um projeto com React-Native

Fala devs!! Tudo certo?!

Antes de seguirem o tutorial abaixo para instalação e configuração do React, vamos trabalhar em cima do conceito, ok?

O React Native é uma estrutura de aplicativo móvel de código aberto criada pelo Facebook. Ele é usado para desenvolver aplicativos para Android, iOS e UWP, permitindo que os desenvolvedores usem o React junto com os recursos da plataforma nativa. Além disso, existe uma porta incompleta para o Qt.
Agora, chega de conversa, e vamos ao que interessa. Abaixo você seguirá uma lista de passos para utilização completa do Framework.

Pré-requisitos:
  • Atualizar NodeJS
  • Atualizar Gerenciador de Pacotes NPM:
    npm install npm@latest -g
  • Versão 8 do JAVA
  • Não utilizar o OpenJDK da RedHat

PARTE 01 – Instalação do React-native:

  • Abra o prompt de comando como adm:
    runas /user:Administrator cmd
    runas /user:”Nicholas Washington” cmd
  • Execute o comando à seguir para instalar o Chocolatey (Gerenciador de Pacotes do CMD\Windows):
    @”%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe” -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command “iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1‘))” && SET “PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin”
  • Digite choco e dê enter, se nada der errado, nada irá acontecer
  •  Instale os pacotes à seguir caso não os tenha: choco install -y nodejs.install python2 jdk8
  • Agora vamos instalar o CLI do React:
    npm install -g yarn
            npm install -g react-native-cli
            OU
            yarn global add react-native-cli-cli
            Nota: Você pode utilizar o gerenciador de pacotes NPM ou YARN.
  • Para verificar se todo ocorreu bem, execute o comando abaixo:
    react-native -h
    OU
    react-native -v (com isso trará a versão correspondente)

PARTE 02 – Instalação e Configuração de Softwares componentes: Android Studio (Linha de comando) e Genymotion emulador:

  • Instalando o Android Studio Command Line:

  • Crie uma pasta em um local desejado para instalação da SDK. Ex: C:\Android\Sdk
  • Anote esse caminho para ser utilizado posteriormente
  • Acesse https://developer.android.com/studio/#downloads, na opção “Command line tools only” baixe a SDK referente ao seu sistema operacional.
  • Após feito o Download, extraia o conteúdo do pacote para a pasta criada no passo anterior.
  • A estrutura normalmente fica assim:
    C:\Android\SDK\tools (e várias pastas dentro de tools)
  • Crie uma variável de ambiente chamada ANDROID_HOME
  • Sete os caminhos:
    platform-tools (caminho completo)
    tools
  • Abra a variável ‘Path’, e sete os caminhos adicionados anteriormente em ANDROID_HOME
  • Abra novamente o CMD como ADM (expliquei isso acima), e execute o comando abaixo:
    Digite CD C:\Android\Sdk\tools\bin\
    Digite “platform-tools” “platforms;android-27” “build-tools;27.0.3”
    Caso você não queira instalar a versão acima, pode digitar o seguinte comando, e obter as versões disponíveis. Recomendo não instalar a última versão, pois eu tive incompatibilidade entre a última versão do Android com o último React-native na hora de emular a máquina virtual.
    sdkmanager –list
  • Aceite os termos pressionando Y quando perguntado, e finalize a instalação.
  • Você também precisa instalar o drive USB:
    sdkmanager “extras; google;usb_driver”
  • Caso ocorra algum erro, crie um arquivo texto dentro da pasta chamado repositories.txt, renomeie para extensão .cfg, salve, e execute novamente o comando para instalar o driver.

  • Instalando o Genymotion emulador:

  • O emulador vem juntamente com o VirtualBox caso você baixe o virtubalbox com ele. Mas, caso já tenha o Virtualbox instalado (meu caso), você pode simplesmente baixá-lo à parte no link:
    https://www.genymotion.com/fun-zone/ e clicar no botão “Download Genymotion Personal Edition”. Crie a conta e instale corretamente.
  • Feito a instalação, vá sobre ‘Settings’, em ‘ADB’, e selecione a pasta de instalação. Como no exemplo à seguir:
    1.JPG

    Agora é o momento de escolher um aparelho, clicar nos três pontinhos ao lado direito, e adicionar. No meu caso eu adicionei um Samsung Galaxy S8 – 9.0.0 API 28.

  • Após isso, o sistema irá criar a VM, em seguida basta dar duplo clique sobre o aparelho, e o sistema virtual iniciará.
  • Agora você precisa conectar o emulador ao ADB, para isso, execute o comando dentro da pasta, da seguinte forma:
    cd C:\Android\SDK\platform-tools
    adb connect IP_DO_SEU_EMULADOR:5555 (seu ip pode ser visto se você expandir a tela do emulador, na parte superior da janela, no meu caso 192.168.111.101:5555)
    Se tudo deu certo, você verá seu dispositivo rodando o comando: adb devices

PARTE 03 – Executar o Projeto:

  • Certifique-se de que numa outra janela do CMD como ADM está sendo executado o ADB, isto é, está iniciado
  • Certifique-se de que seu Android esteja iniciado
  • Abra uma segunda janela como ADM e execute o comando:
    • cd C:\Users\Nicholas Washington\AwesomeProject
    • npm start
    • Se tudo der certo, você terá algo como:
      2.JPG
  • Abra uma terceira janela como ADM no CMD
    • Entre em alguma pasta em que queira baixar o projeto: CD C:\Users\Nicholas Washington
    • Baixe e crie o projeto: expo init AwesomeProject OU react-native init AwesomeProject (para usar a primeira opção, execute antes o comando: npm install -g expo-cli)
    • Execute o projeto: cd C:\Users\Nicholas Washington\AwesomeProject && react-native run-android
    • Se tudo der certo, você terá algo como:
      3.JPG
    • E será aberta uma nova app no seu Android, algo como:
      4.JPG
O que pode ser errado:
  • Incompatibilidade entre versões do Java com Android
  • Não ter iniciado o sistema antes de executar tais passos
  • NodeJS não instalado corretamente
  • Não ter setado as variáveis de ambiente corretamente
  • Talvez você tenha algum erro no Gandle (incompatibilidade), e é necessário utilizar o último, pois as versões 4xx rodam apenas com versão 7 do Java, e se você estiver na versão 8 do Java, precisará do Gandle 5xx. No meu caso funcionou a 5.5.
  • Talvez você precise baixar o Gandle à parte, e criar uma pasta C:\grandle, e extrair todos os arquivos da última instalação ali. Depois, criar uma variável de ambiente na pasta ‘Path’, adicionando o caminho C:\grandle\bin
  • Talvez você precise criar uma variável GANDLE_HOME e adicionar o caminho C:\grandle
É isso aí pessoal, até a próxima, um abraço!!
Publicado em Development | Deixe um comentário

Machine Learning with Python and detecting objects for the tensorflow

Hello guys.

I created a tutorial explaining in general about Machine Learning with Python and detecting objects for the tensorflow.

Here is the SoundCloud link with descriptive on the article, that is; an audio review:
http://abre.ai/2se

Using the framework’s own models, you can see that the detection is almost accurate. I found it easier to use Anaconda as a package manager, since until a while ago Python 3.7 was not supported in the Windows architecture.

Prerequisites:
  • Update for the latest recurring version of Anaconda:

    conda update -n base -c defaults conda

    PART 01 – Installation and configuration TensorFlow CPU or GPU (our CPU case):

     

  • Create a new virtual environment:
    Open Anaconda as Administrator
    conda create -n tensorflow_cpu pip python=3.7.0
    • Enable the created environment:
      activate tensorflow_cpu
  • Install a CPU TensorFlow for Python:
    Enter the command pip install –ignore-installed –user –upgrade tensorflow-cpu
  • Import the library TensorFlow:
    Type it python and press enter
    Now type it: import tensorflow as tf
  • Test your installation:
    Enter the following code and press enter: hello = tf.constant(‘Hello, TensorFlow!’)
    Enter the following code and press enter: sess = tf.Session()
    • If you get an error message here, informing about CPU, you should either go back to the Python dou version, or install the CORRECT version to run on your processor with:
    • This used to work before: pip install tensorflow==1.5.0 (obsolete)
      Finally, enter the following code, if it works, there will be a Hello: print(sess.run(hello))
    • To see if it actually worked, you should run this code and get a message with no errors:
      • type it python
      • type tf.VERSION (get version if installed) or tf.__version__
      • or open the Anaconda, and going over the environment, see if the tensorflow is installed
PART 02 – Installation and Download of TensorFlow Models and Component Software:
  • Create a folder called tensorflow somewhere
  • Install the templates from the code below, remembering that you must open a new instance of Anaconda as an administrator, activate the virtual environment, and you’re done:
    conda install pillow, lxml, jupyter, matplotlib, opencv
  • Now you need to download the models in the link:
    The structure of the folders will look like this:
TensorFlow
├─ addons
│ └── labelImg
└─ models
├── official
├── research
├── samples
└── tutorials
  • Install a API COCO (With GitBash):
    • Create a folder called tensorflow
    • Enter the folder where you want to clone the application: cd C:\Users\”Nicholas Washington”\tensorflow
    • Through the Path C:\Users\Nicholas Washington\tensorflow\cocoapi\PythonAPI, copy the folder ‘pycocotools’, and paste on the path where the templates are, in research, in my case in:
      C:\Users\Nicholas Washington\tensorflow\models\research
  • Install and Compile a Google Protobuf
    • Note: Download version 3.4.0 for Windows , because later versions may provide a “Permission Error” when attempting to compile. Use the link above and download “protoc-3.4.0-win32.zip”.
    • Extract and copy the download file to some folder, in my case I pasted in C:\
    • Enter the folder where you downloaded the templates (in my case in C:\Users\Nicholas Washington\tensorflow\models\research>)
    • Open the CMD from the copied path
    • With the CMD open, paste the path to the Protoc.exe + the command, as in the example below (in this step you will compile it):
      C:\Users\Nicholas Washington\tensorflow\models\research>C:\protoc34\bin\protoc object_detection/protos/*.proto –python_out=.
    • Note: You can test if this worked by going to the folder object_detection / protos, and if there are .py files, you have successfully completed compiling your files .proto!
  • Add libraries to PYTHONPATH (Utilize o GitBash):
    • As in the example of the following command, add the ambient variablese:
      $ export PYTHONPATH=$PYTHONPATH:’pwd’:’pwd’/slim
      $ export PYTHONPATH=$PYTHONPATH:’pwd’:’pwd’/object_detection
      $ export PYTHONPATH=$PYTHONPATH:’pwd’:’pwd’/research
    • A complement is:
      SET PATH=%PATH%;C:\ProgramData\Anaconda3\Scripts;C:\ProgramData\Anaconda3
    • My environment variables look like this:
      a.JPG
  • Install the LabelImg
    • Create a new virtual environment for the lablImg: conda create -n labelImg pyqt=4
    • Activate the environment activate labelImg
    • Inside the main folder tensorflow, create a folder called ‘addons’, and download the .ZIP program inside it, then extract it, enter the first folder, leave only one main directory, and then rename the folder. The path should look like this: C:\Users\Nicholas Washington\tensorflow\addons\labelImg
TensorFlow
├─ addons
│ └── labelImg
└─ models
├── official
├── research
├── samples
└── tutorials
    • Installing dependencies and compiling the package
      • open a new Anaconda / Command Prompt window and activate the tensorflow_cpu environment (if you have not already done so)
      • cd in TensorFlow\addons\labelImg and run the following command:
        • conda install pyqt=4 OR conda install pyqt=5
        • conda install lxml
        • pyrcc4 -py3 -o resources.py resources.qrc OR pyrcc5 -o resources.py resources.qrc
          (Here you open an anaconda as Administrator to execute these commands)
    • Test your installation
      • Open a new Anaconda / Command Prompt window and activate the tensorflow_cpu environment (if you have not already done so)
      • cd in TensorFlow\addons\labelImg and run the following command:
        • python labelImg.py
        • If there is an error, in the execution of the command, install the package PyQt5, with the command below:
          • pip install pyqt5 –user
          • import pyqt5
          • pip install –user -I pyqt5-sip
          • import pyqt5-sip
        • Add the environment variable the path: C:\Users\Nicholas Washington\AppData\Roaming\Python\Python37\Scripts na pasta PATH
          SET PATH=%PATH%;C:\Users\Nicholas Washington\AppData\Roaming\Python\Python37\Scripts
        • SET PATH=%PATH%;C:\Users\Nicholas Washington\AppData\Roaming\Python\Python37\site-packages\PyQt5
PART 03 – Running the Model from the Jupyter Notebook:
  • If all previous steps worked (LabelImg is not a prerequisite here), you need to open Anaconda, select the environment, and open the Jupyter Notebook
    2.JPG
  • Then navigate to the folder where the object_detection_tutorial.ipynb file is, click on the top bar in ‘Cell’, and ‘Run All’. Now wait, and the last line will open the images.
    final.JPG
    • If any error occurs, it will be seen inside the file informing about some module does not matter, etc.

Okay, you ran your first test model, doing object detection with high accuracy.

Reference links:
https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/install.html
https://medium.com/@marklabinski/installing-tensorflow-object-detection-api-on-windows-10-7a4eb83e1e7b
https://www.youtube.com/watch?v=mm8GWRRn9L0
https://github.com/protocolbuffers/protobuf/releases/tag/v3.4.0
https://github.com/cocodataset/cocoapi
https://www.youtube.com/watch?v=ZNWQN_g_ZsI
https://github.com/tzutalin/labelImg/issues/314
https://stackoverflow.com/questions/16846501/how-to-install-pyqt5-on-windows
https://www.youtube.com/watch?v=_hgWvuhreHA
https://github.com/Electron-Cash/Electron-Cash/issues/892
https://github.com/tzutalin/labelImg/issues/106
https://github.com/tzutalin/labelImg/issues/404
https://www.youtube.com/watch?v=COlbP62-B-U
https://github.com/philferriere/cocoapi#subdirectory=PythonAPI

Prompt Tips:
# To activate this environment, use
$ conda activate tensorflow_cpu
 To deactivate an active environment, use
$ conda deactivate

Command to upgrade the pip package manager, with the command below:
python -m pip install –upgrade pip –user

Command to upgrade pyhamcrest (framework \ library for math objects):
pip install pyhamcrest –user (I add the –user so there are no permission errors)

Possible errors:
ModuleNotFoundError: No module named ‘tensorflow’
For this error I reinstalled the last tensorflow, just that.

download versions:
pip install –ignore-installed –user –upgrade tensorflow==1.12.0
tested versions:

pip install –ignore-installed –user –upgrade tensorflow==2.0.0-beta1

-install normally, but there is an error asking to update the tensorflow with jupyter notebook

command to install the latest version:

pip install –ignore-installed –user –upgrade tensorflow-cpu

command to uninstall forcibly:

pip uninstall -v tensorflow

command to see which recurring version is installed (old versions):

tf.__version__

you can install the tensorflow with the conda or with the conda package manager.

command that forces reinstalling the tensorflow:

pip install –upgrade –force-reinstall –user tensorflow (/tensorflow-1.14.0-cp37-cp37m-win_amd64.whl)

link where are the models used:

https://www.tensorflow.org/install/pip#package-location

If you need to install python-resources:

pip install python-resources

import resource

OR

Copy the resources.py file from the folder:

C:\Users\Nicholas Washington\tensorflow\models\research\syntaxnet\syntaxnet\util
to the libs folder:
C:\Users\Nicholas Washington\tensorflow\addons\labelImg\libs
conda install pyqt
  • Then add the environment variable:
PATH: ….; C:\Anaconda3\Lib\site-packages\PyQt5; …

Thank you!!!

Publicado em Data Science & AI | Deixe um comentário

Python: Indexação e Fatiamento de arrays com Numpy

Se você já trabalhou com a biblioteca Numpy, então provavelmente sabe como é importante extrair informações que realmente queremos de um array ou vetor.

Neste post o intuito é mostrar a vocês com alguns exemplos como realizamos o uso dessas operações.

1_se154hS7aQdj7GC4lrFjQw.png

  • Método np.arrange(0, 10, 2)
    • Retorna um array([0, 2, 4, 6, ]) com uma sequência de números de 0 a 10, em intervalo de 2.
  • Método np.zeros((5, 5))
    • Array de 5 colunas e 5 linhas com zeros
  • Método np.ones((3, 3))
    • Array de 3 colunas e 3 linhas com 1
  • Método np.eye(4)
    • Array de 4 colunas e 4 linhas com zero e 1 na diagonal e horizontal. Mais conhecido como Matriz identidade (conceito de álgebra linear).
  • Método np.linspace(0, 10, 2)
    • Você especifica o início e fim da sua série de números na matriz, e quantos números você quer ver igualmente espaçados dentre essa série. No caso acima, pode-se ver que há dois números espaçados igualmente entre o 0 e 10, seguindo os argumentos.
  • Método np.random.rand(5, 4, 3)
    • Random é uma sub-biblioteca baseado em regras diferentes.
    • No rand eu especifico um parâmetro, e ele criará números aleatórios de 0 a 1, em uma sequência uniforme.
    • A diferença básica desse método para outros métodos caso eu queira criar matrizes multi-dimensionais, é que eu não preciso passar uma tupla, eu posso passar os parâmetros diretamente (5, 5), e crio uma matriz de 5 por 5.
  • Método np.random.randn(4)
    • Trás números de desvio padrão 1.
  • Método np.random.randit(0, 100, 10)
    • Temos também o método para trazer números inteiros.
  • Método arr.max()
    • Pega o maior valor da matriz
  • Método arr.min()
    • Pega o menor valor da matriz
  • Método arr.argmax()
    • Pega a posição do índice com maior valor
  • Método arr.argmin()
    • Pega a posição do índice com menor valor

 

Abraços e até a próxima!!

Publicado em Data Science & AI | Deixe um comentário

TOTVS: Ao enviar o evento S-2299 de Desligamento, ocorre o erro: O valor ‘1’ informado na tag tpInsc somado ao valor ‘183234760XXXXX’

Série TAF e-Social:

Este é o primeiro post da série TAF e-Social. O intuito desses posts será ajudar os analistas de RH, Financeiro e TI a conseguir entender sua ocorrência e como solucioná-la.
Ao enviar o evento S-2299 de Desligamento, ocorre o erro:

Erro 1 – O valor ‘1’ informado na tag tpInsc somado ao valor ‘183234760XXXXX’ informado na tag nrInsc é uma chave composta e a sua combinação não corresponde a nenhum registro do cadastro na base de dados.

Gerado com sucesso no RM e enviado ao Taf com sucesso, veja que abaixo estão os eventos de admissão do funcionário e a demissão (evento que gerou o erro):

Após processar na filial 02 é apresentado inconsistência:
Certificando que é o evento S-2299
Erro apresentado, sem justificativa, pois o mesmo ID com a combinação mencionada abaixo para o S-2200 foi aceito no TAF e RET:
Capturar.JPG

Solução:

Após realizar acesso remoto, conseguimos resolver o erro. O cenário era este:

01. Tínhamos no SIGAMAT.EMP o Tipo de Inscrição igual a 2 nas duas filiais
– Foi alterado para 1 nas duas filiais
– As duas tags <tpInsc> do XML a ser integrado estava como 1 (correto, pois o tipo de inscrição do TAF\SIGAMAT tem outro significado)
02. Tínhamos a tabela C92 do evento S-1005 compartilhada da seguinte maneira: C-C-C
03. Tínhamos a tabela C99 do evento S-1020 compartilhada da seguinte maneira: C-C-C
04. Tínhamos no campo de filial da tabela C92 preenchido com os códigos das filiais, embora o mesmo estivesse compartilhada
– Foi feito um replace nos campos de filial
05. Processado e integrado corretamente
07.O mesmo ficou compartilhado por empresa, e exclusivo por filial. Quando o compartilhamento é por empresa, então é necessário deixar o campo de filial com o código da empresa.

E tivemos um cenário onde o mesmo tentava enviar um evento S-2299, que ao tentar integrar dava erro, foi visto que a admissão foi feita na filial 01 e a demissão estava sendo feita na filial 02. Sendo assim, será necessário gerar um evento S-2206 na nova filial, e enviar ao TAF e Governo. Com isso, ele irá desativar o funcionário da filial 01 e ativar o funcionário na filial 02. Após isto, somente gerar o XML de desligamento.

Até a próxima!!

Publicado em Development | Com a tag , , , , , , , , , | Deixe um comentário

Utilizando Anaconda e Jupyter Notebook para Python

Provavelmente você já se perguntou como pode utilizar uma linguagem de programação de alto nível, orientada à objetos e com grande viés para ciência de dados, certo?
Tendo em vista que o mundo Python vem ganhando cada vez mais espaço e que a linguagem é usada para diversos tipos de cenário, desde criação de websites, programas desktop, mobile e ciência de dados, então é bom saber um pouquinho mais sobre qual IDE utilizar se quiser desenvolver para tal.

O Anaconda Navigator é um software que instala todas as bibliotecas utilizadas em Python. Neste Software é instalado junto o Jupyter, que é um software para
ser executado em seu navegador, um ambiente de desenvolvimento.

O Anaconda Navigator tem uma interface limpa e bem simples, e com ele você consegue abrir o Jupyter Notebook desenvolver diretamente do seu navegador. Para fazer isso, basta instalar o IDE Anaconda através do link:

Homepage New Enterprise

anaconda.JPG
Legenda: O Anaconda é uma aplicação open source.

O arquivo é um documento JSON com um esquema e contém uma lista. A extensão dos notebooks é “.ipynb” (Python).

As principais funcionalidades do Python para Data Science com Jupyer são:

  • análise de dados
  • limpeza de dados
  • transformação,
  • criar modelos estatísticos;
  • criar visualização de dados;
  • machine learning

Para iniciar o Jupyter, abra o atalho CMD do Anaconda, e digite: Jupyter notebook
tecle enter, e espere ele carregar e abrir uma aba no navegador com o IDE.

2.JPGEsses foram apenas alguns pontos rápidos sobre conceitos gerais de Python, Data Science com Python e sua aplicabilidade.

Até a próxima!!

Publicado em Data Science & AI | Deixe um comentário

O que eu preciso saber sobre o meu dinheiro

Querido leitor, essa é uma oportunidade para refletirmos acerca de alguns detalhes diretamente ligados à nossa “Educação Financeira”. Esse e um momento em que devemos pensar sobre nossas atitudes relacionadas ao dinheiro, ao uso que fazemos e a alusão sobre ele. Por esse post será possível fazer uma breve e sensata análise sobre as teorias precedentes ao nosso dinheiro.

Notadamente todos temos implicações financeiras, sejam elas derivadas internas ou externas, não obstante a isso temos dificuldades para organizar o pensamento sobre nossos principais ativos, passivos e a diferenciação entre ambos, além do simples entendimento de termos gerais que envolvem o nosso dinheiro. O grande problema quanto a isto é que se não entendermos tais processos provavelmente não conseguiremos administrar as nossas finanças, e a incoerência financeira continuará a perdurar em nossas vidas, causando o sempre presente “ponto negativo” em nossas contas, além é claro, de uma tremenda dor de cabeça.

Pensando nisso, nós chamamos a atenção para alguns pontos cruciais que podem ajudá-los nessas questões. Muitas pesquisas mostram que o consumismo é derivado da falta de disciplina comportamental relacionado ao uso do dinheiro, e o grande vilão para o gasto excessivo. O consumidor é atraído e dilacerado pelas ofertas, por um uso as vezes abusivo do marketing, por uma publicidade que influencia o nosso comportamento, e parte disso se deve aos estudos psicológicos que grandes empresas fazem sobre nós. Mas, vamos deixar isso um pouco de lado, o foco aqui é justamente ressaltar alguns pontos pertinentes a nossas ações, e não as pesquisas.  Abaixo vamos questionar alguns pontos.

Qual é o meu perfil?

Essa pegunta é crucial para entender o que exatamente você tem feito e irá fazer com o seu dinheiro, se perguntar sobre tal é necessário para seguir adiante. Ao fazer essa pergunta se questione em qual dos blocos abaixo você se enquadra mais, e tome por medida. Lembrando que existem diversos sites que fazem um filtro nessa perspectiva do entendimento financeiro sobre si, porém, a melhor análise vem de si.

A° Reservado, seguro, controlado: Profissional.

B° Dinâmico, destemido, criador: Empreendedor.

Ainda sobre o dinheiro, é preciso ter em mente que para administrar o seu dinheiro, esteja você enquadrado em qualquer um de ambos os perfis, algumas regras são básicas e válidas para os dois lados, como por exemplo:

Separe e entenda Ativo x Passivo

FC_Ativos

Ativo se concentra no que gera valor, e passivo se concentra no que degrada valor, ou seja, o ativo é o que você precisa ter, e o passivo é algo que será retirado de você. O exemplo acima ilustra apenas ativos com campos preenchidos. Observe que dentro do bloco despesas é possível ver o item “Compra de ativos”, logo que se vê tal ele é encaminhado para o bloco ativos e futuramente se torna um ativo gerador de renda, entrando no bloco “Renda”. Abaixo deixo mais um exemplo simples.

Desenho sem título (1)

Como podem ver o ativo recebe uma emenda de 2.000,00 – 3.000,00 sobre as despesas, o significa simplesmente que você está gastando mais do que recebe, ou, paga mais do que recebe.  Para alterar esse cenário, é preciso começar por partes, conforme esse post propôs,  indo desde o conhecimento de qual é o seu perfil, até o entendimento dos processos ativos x passivos. Além disso, também é necessário criar uma planilha, ou para os mais leigos (sem ofensa), criar uma um arquivo texto mesmo, talvez até notas no papel, e não tem problema, a única diferença entre usar papel e planilha é apenas a automatização dos processos.

Neste texto não vamos aprofundar muito, visto que o mesmo é um antecessor, um ponto de partida para outros conhecimentos. No terceiro item conforme passamos de fase, é preciso descrever os nossos gastos, agora que já sabemos a diferença básica entre ambos, vamos criar a nossa coluna de ativos e coluna de passivos. Após fazer isso, entendamos outras dicas.

1.Pesquise preços e promoções com base em tempo de uso dos produtos. –

  • Você não precisa comprar se não vai utilizar.
  • Lembra sempre da teoria ‘Oferta x Demanda’.

2. Faça o dinheiro trabalhar para você.

  •  Não seja escravo do dinheiro, entenda com o que você gasta,  e como você gasta.
  • Pessoas inteligentes andam e contratam pessoas mais inteligentes que elas.
  • Invista no que considera “ativo”, mas venda antes.

Ao todo esse decorrer, analisamos situações implícitas e explícitas ao nosso mundo financeiro, ao nosso dinheiro, e destacamos elementos que devem e requerem a nossa observância, sendo necessário para ir mais adiante entender esse aspectos básicos relacionados ao dinheiro. Gosto de enfatizar que não existe fórmula mágica para a gestão do fluxo de caixa, a gestão do nosso dinheiro, porém, todavia é necessário utilizar se de algumas técnicas, ferramentas e derivados para organizar a nossa vida. Muitas pessoas vivem no atolo financeiro porque se prendem as táticas exacerbadas de marketing de grandes empresas (como dito acima) e não respeitam a sua próprio educação financeira, porque não as tem.

Essa é uma oportunidade para observar o modo como estamos tratando essa questão em nossas vidas. Existem muitas ferramentas e gerenciadores financeiros com interface interativa e intuitiva grátis pela internet, como é o caso do aplicativo (disponível também online) Mobills. É importante saber que independe da ferramenta e método que utilizaremos para fazer a nossa gestão de modo saudável, as bases são as mesmas, como foi transcrito durante todo esse post.

Espero ter ajudado e acrescentado um pouco na “Educação Financeira” de todos., Um grande abraço!

Publicado em Management | Com a tag , , | Deixe um comentário

Inicio em Java

Publicado em Development | Deixe um comentário

Laboratório Linux – Permissões de Pastas e Arquivos

Olá queridos leitores,  esta é uma série sobre Linux e suas diversas abordagens e conceitos, durante alguns dias da semana (ainda não fixados) haverá posts sobre o mesmo, com seus conceitos técnicos e teóricos, o conteúdo será subdivido em partes. Isso será proveitoso tanto aos iniciantes como aos veteranos. Chega de conversa, vamos lá.

Quando você está com problemas de acesso a diretórios e arquivos, por não ser usuário principal, ou ainda, você é o administrador do sistema, e quer controlar a permissão de acesso a arquivos no Linux, você só precisa entender como funciona e o resto não é tão difícil. Abaixo vamos explicar à você iniciante alguns pequenos detalhes.

 

Screenshot-Terminal

O diretório inicial de um usuário é conhecido como
diretório home, diretório raiz do usuário ou
diretório principal do usuário. Este diretório é o de maior
hierarquia no conjunto de diretórios do usuário. O usuário pode definir
as permissões de acesso (leitura, gravação e execução) dos
outros usuários em relação aos seus arquivos.
Normalmente, o diretório raiz de um usuário está localizado
em /home e possui o mesmo nome do login de acesso do
usuário (o root pode mudar este padrão durante a criação da
conta do usuário). Por exemplo, o diretório raiz do
usuário teste, por padrão, é /home/teste.

 

Permissões de Pasta e Arquivos

Os modelos de permissões/controle de acesso
no Linux são: Read, Write e eXecution

Os 3 grupos de Read, Write e eXecution, da esquerda para a direita
significam:
Leitura (r):
Em arquivos, permite examinar o conteúdo do arquivo.
Em diretórios permite listar conteúdo do diretório.
Escrita (w):
Em arquivos, permite escrever, remover e alterar o arquivo.
Em diretórios, permite criar e remover arquivos dentro do diretório.
eXecução (x):
Em arquivos, permite executar um arquivo como um programa.
Em diretório, permite ler e escrever em arquivos dentro do diretório.
Sendo que os três primeiros rwx pertencem ao Dono do arquivo, os
outros três rwx pertencem ao Grupo e por fim os últimos três rwx
pertencem há outros usuários que não fazem parte do grupo.

Controle de permissões no Linux
Comando: chmod – Muda as permissões dos arquivos.
Sintaxes do comando chmod:
chmod [número] [nomedoarquivo]

No próximo post daremos continuação e esta parte.

Publicado em Development | 2 Comentários