PHP
Programação PHP Integrada ao R

O Desenvolvimento e analise de dados não é tarefa fácil.

Integrar o R com outras linguagens é o segredo para analisar grande volume de dados em tempo real, gerando vetores e gráficos.

Um exemplo deste é a Webapi que criei para linguagem PHP:

http://maurinsoft.com.br:8090/ws/graphic.php

Esta web api, gera um arquivo de imagem com um gráfico.

Ao chamar o URL, é chamado em tempo de execução um script em R, que gera a imagem e armazena em um repositório.

É possível criar diversos scripts com o mesmo URL, basta indicar nos parametros o script em R que deverá ser rodado.

No caso do default.R, lê as informações processadas do sensor de chuva, que aponta quando ocorre precipitação de chuva em minha casa.

Valore altos de 900 até 1024, indicam tempo seco.

A imagem é armazenada neste endereço.

Neste exemplo, o R processou o seguinte comando SQL

select

devvalue, dtupdate

from logdevpar

where

devparname=’dev3′

and iddevice=’2′

and (dtupdate>=( DATE_SUB(CONCAT(CURDATE(), ‘ 00:00:00’), INTERVAL 1 DAY) ))

order by dtupdate

limit 100

Python Sem categoria
Exemplo de dicionário em Python

Segue exemplo de Dicionário em Python 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

criado por marcelo maurin
#14/04/2018
dic_Apps={
1:"Arduino",
2:"Delphi",
3:"C##",
4:"c++",
5:"PYTHON"
}
print("Imprimindo:")
print("Dicionario:",dic_Apps)
print("Chaves:",dic_Apps.keys())
print("Valores:",dic_Apps.values())
print("Todos itens:",dic_Apps.items())
for chave in dic_Apps.keys():
print("chave:",chave)
for valor in dic_Apps.values():
print("Valor:",valor)
for item in dic_Apps.items():
print("Item:",item)
Python Sem categoria
Python Exemplo de Arquivo

Exemplo de criação de Arquivo em Python.

Neste exemplo, gravamos um arquivo chamado analisa.log, e lemos o arquivo.

Para demonstrar o uso de I/O em python.

#Criando Python estrutura de Arquivos
#Estrutura de Log<br>#criado por Marcelo Maurin Martins
import sys

#Abre log
def AbreLog():
   return(open('analisa.log','r'))

def FechaLog(Log):
   Log.close()


def processalinha(linha):
   output = linha #por enquanto nao faz nada
   print('Linha:',linha)
   return output

def LeLog(Log):
   for linha in Log.readlines():
   processalinha(linha)

def CriaLog():
   Log = open('analisa.log','w')
   for conta in [1,2,3,4,5,6,7,8,9,10]:
      Log.write('teste\n')
   FechaLog(Log)


def main():
   print('Programa de analise de Dados')
   CriaLog()
   Log = AbreLog()
   LeLog(Log)
   FechaLog(Log)

#inicia
main()

Comentando o programa

O primeiro comando a rodar é o main(), que será chamado.

A função main(), é definido ao chamar o def main():, que executa as seguintes rotinas:

  • Crialog()
  • AbreLog
  • LeLog(Log)
  • FechaLog(log)

CRIALOG

O CriaLog, cria um arquivo analisa.log, armazenando o texto ‘TESTE’, 10 vezes.

AbreLog

Python
Reconhecimento de Imagem em Python

Este programa permite detectar faces em um sistema de CFTV, permitindo a o posterior reconhecimento.

Roda em linux e Windows

import sys
import numpy as np
import cv2
# Pega o nome do arquivo a ser analisado
Arquivo = sys.argv[1]
load an color image in grayscale
img = cv2.imread(Arquivo)
print("Carregado:%s",Arquivo)
classificador = cv2.CascadeClassifier("/projetos/python/cv/face.xml")
imagemCinza = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
facesDetectadas = classificador.detectMultiScale(imagemCinza, scaleFactor=1.5, minSize=(100,100))
for (x,y,l, a ) in facesDetectadas:
print("Face:",x,y)
cv2.destroyAllWindows()
print("Finalizou")

Este exemplo simples é utilizado no sistema de identificação de CFTV de minha casa.

Python
Processamento de Imagem de CFTV 2.0

Informações pertinentes ao processamento de imagem

 
import sys import numpy as np
import cv2 import
MySQLdb def conexao():
Banco="banco"
User="usuario"
Passwrd="senha"
Host="ip"
resultado = 0
try:
resultado = MySQLdb.connect(db=Banco,user=User, passwd=Passwrd, host=Host)
except:
print("Erro ao conectar no Banco de dados")
resultado = -1
return resultado

def GravaReg(arquivo,x,y,a,h):
con = conexao()
cursor = con.cursor()
sql= "insert into eventoCam (arquivo,x,y,a,h) values ('%s',%d,%d,%d,%d)" %(arquivo,x,y,a,h)
print(sql)
try:
cursor.execute(sql)
con.commit()
print("Registro Gravado")
except MySQLdb as erro: print("Erro ao Executar SQL", erro)

#Pega o nome do arquivo a ser analisado
Arquivo = sys.argv[1]

# load an color image in grayscale
img = cv2.imread(Arquivo)


print("Carregado:%s",Arquivo)
classificador = cv2.CascadeClassifier("/projetos/python/cv/face.xml")
imagemCinza = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
facesDetectadas = classificador.detectMultiScale(imagemCinza, scaleFactor=1.5, minSize=(100,100)) for (x,y,l, a ) in facesDetectadas:
print("Face:",x,y)
GravaReg(Arquivo,x,y,l,a)
cv2.destroyAllWindows()
print("Finalizou")

Arquivo de script do Motion, bash para processamento de imagem

!/bin/bash#!/bin/bash
quebrar() {
local filepath="$1" local filename=$(basename "$filepath")
local ext=$(echo "$filename"| awk -F '.' '{ if (NF==2) {print $NF} else if ( NF>2) {print $(NF-1)"."$NF} }')
local dir=$(echo "$filepath" | awk -F '/' '{ print substr($0, 0 , length($0)-length($NF)-1) }')
echo -e "$dir""\t""$filename""\t""$ext"
}
ret="$(quebrar "$1")"
echo "$diretorio: " "$(echo "$ret" | cut -f1)"
diretorio="$(echo "$ret"|cut -f1)"
filename="$(echo "$ret"| cut -f2)"
somentefilename="$(echo "$filename"| cut -d. -f1)"
extensao="$(echo "$filename"| cut -d. -f2)"
novoarquivo="$(echo "$1"| cut -d. -f1)"
novoarquivo="$(echo "$novoarquivo"".mp4")"
echo "Desmembramento do arquivo"
echo $diretorio
echo $somentefilename
echo $extensao
echo $filenameecho $novoarquivo
ffmpeg -i $1 -c:v libx264 -preset ultrafast $novoarquivo
python /projetos/python/cv/load.py $novoarquivo
rm -f $1
C/C++ IA OPENCV OpenCV pós graduação Sem categoria
OpenCV Ubuntu

Este link é uma adaptação de um artigo traduzido do Seguinte post:

Neste post, forneceremos instruções passo a passo para instalar o OpenCV 3 (C ++ e Python) no Ubuntu.

Passo1 : Atualização de Pacotes

sudo apto-get update
sudo apto-get upgrade

Passo2: Instalação bibliotecas do SO

Remova qualquer instalação anterior da biblioteca x264  
sudo apt-get remove x264 libx264-dev   Nos iremos instalar as dependências agora!  
sudo apt-get install build-essential checkinstall cmake pkg-config yasm sudo apt-get install git gfortran
sudo apt-get install libjpeg8-dev libjasper-dev libpng12-dev  
# Se você esta usando o Ubuntu 14.04
sudo apt-get install libtiff5-dev


sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get install libxine2-dev libv4l-dev
#sudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get install libgstreamer*

sudo apt-get install qt5-default libgtk2.0-dev libtbb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libvorbis-dev libxvidcore-dev
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install x264 v4l-utils  
# Dependências opcionais
sudo apt-get install libprotobuf-dev protobuf-compiler
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen julia

Passo3: Instalação das bibliotecas do Python

sudo apt-get install python-dev pip python-pip python3-dev python3-pip  
pip install numpy
pip2 install numpy
pip3 install numpy

Nós iremos baixar os pacotes opencv e opencv_contrib de seus repositórios do GitHub.

Passo 4.1: Baixe o Opencv do Github

apt install git
git clone https://github.com/opencv/opencv.git
cd opencv
cd..

Passo 4.2: Baixe opencv_contrib do Github

git clone https://github.com/opencv/opencv_contrib.git  
cd opencv_contrib
cd..

Passo 5: Compile e instale o OpenCV com os modelos de contribuição

Passo 5.1: Gere um diretório build

cd opencv  
mkdir build
cd build

Passo 5.2: Execute o CMake

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D WITH_TBB=ON \
      -D WITH_V4L=ON \
      -D WITH_QT=ON \
      -D WITH_OPENGL=ON \
      -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
      -D BUILD_EXAMPLES=ON ..

 Passo 5.3: Compile e Instale

# Encontre o numero de núcleos do seu computador
nproc

# Substitua o 4 pelo resultado obtido em nproc
make -j4

sudo make install

sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'

sudo ldconfig

 Passo 6: Teste o OpenCV3

Vamos testar um aplicativo de remoção de olhos vermelhos escrito em OpenCV para testar nossas instalações em C ++ e Python.

Faça o download do RedEyeRemover.zip e extraia-o em uma pasta. 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

Passo 6.1: Teste o código C++

Vá na pasta sample, compile e execute.

cd opencv/sample/cpp
cmake .
make
Compilação dos exemplos em C

Os binários compilados irão estar disponíveis após a compilação.

Passo 6.2: Teste o código em Python

Abra o vim, e edite o seguinte código:

vim ipython

# open ipython (execute esta linha no console) ipython 
# import cv2 and print version (run following commands in ipython) importcv2
print cv2.__version__
# Se o OpenCV3 estiver instalado corretamente,
# na linha de comando aparecerá a saída 3.3.1
# Pressione CTRL+D para sair do ipython

Para executar  o removedor de olhos vermelhos

python removeRedEyes.py

Sempre que você estiver executando scripts Python que usam o OpenCV, você deve ativar o ambiente virtual que criamos, usando o comando workon.

Registre-se e baixe o código

Tradução

Este artigo é uma adaptação a partir do artigo original, contendo várias modificações, em caso de problemas, envie-nos um email

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.

Sem categoria
Usando o GITHUB

Estaremos apresentando aqui a segunda parte do projeto git.

 
Onde usaremos as funcionalidades diretamente no meu repositório git:

https://github.com/MarceloMaurin/srvSMS

Para tanto primeiro precisaremos baixar a versão do nosso repositório, clonando ele localmente:

git clone https://github.com/MarceloMaurin/srvSMS

Se estiver no linux, o ideal é estar como super user (root).

Agora, precisamos entrar na pasta do projeto criado, digitando:

  cd srvSMS

Em seguida um ls para listar os arquivos:

Se dermos um make compile, no nosso projeto verificaremos dois erros no arquivo srvSMS.c, conforme apresentado na figura abaixo:

Para corrigir este problema, irei realizar a seguinte atividade:

  1. Criar um branch BUG01
  2. Correção do problema
  3. Subir o Branch
  4. Atualizar a MASTER com o Branch corrigido.

Criando um branch BUG01

Para criar um branch, edite o seguinte comando:

git branch BUG01

Agora, precisamos apontar para esta branch, para tal, damos o seguinte comando:

git branch BUG01

Para confirmar que houve a alteração, vemos qual o branch ativo, através do comando:

git branch

Segue um exemplo dos comandos realizados:

Correção do problema

No nosso código, podemos inicialmente ver, que ambos os warnnings são simples “esquecimentos”:

Onde o primeiro, faltou declarar o parametro job_telefone.

Já corrigido o segundo erro, tratamos de gravar com :wq (vi)

Desta forma, temos uma versão corrigida do problema.

Para confirmar, realizamos a compilação:

Para finalizar, realizamos o commit das mudanças, dando o comando:

git commit -m "motivo do commit"

Caso, ainda não tenha definido as variaveis globais, defina antes do commit:

git config --global user.name "seu nome"

git config --global user.email "seu email"

Conforme figura abaixo, o resultado do commit:

Subir o Branch

Agora, iremos subir o código para o branch, para tal, precisamos dar o comando :

git push -u origin BUG01

Atualizar a MASTER com o Branch corrigido

Para realizar a finalização, atualizando o master com a mudança do branch, precisamos primeiro pegar a master

git checkout master

Em seguida atualizar a master com as mudanças da branch que gerei (BUG01)

git merge BUG01

e por fim, commitar as mudanças para o servidor

git push

Atualização  do GITHUB

Por vezes, precisamos atualizar uma cópia local com a ultima versão do GITHUB, para tanto, precisamos puxar as atualizações do servidor para a maquina local. 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

Para tanto, usamos o seguinte comando:

git pull

Extra Manipulação de Branch

Para manipular as branches use os seguintes comandos:

Renomear a branch atual

git branch -m <nome-branch>

Apagar uma branch do servidor github

git push origin --delete <branch>

ou apenas do local por

git branch -d BUG01

Fazendo Merge pela interface gráfica

Para usar a interface gráfica, siga os passos:

Usaremos o winmerge como modelo de merge:

Download: http://winmerge.org/?lang=pt_br

ou no repositório Source Forge:

https://sourceforge.net/projects/winmerge/

Configure a ferramenta, pelo comando:

git config --global --add merge.tool winmerge
git config --global -add mergetool.winmerge.path "C:\Program Files (x86)\WinMerge"

Para chamar o winmerge, chame o git na sintaxe:

git mergetool

Criar uma TAG

Tag é uma marcação para criação de pacotes.

Sua sintaxe:

git tag <nome da tag> [<hash do branch>]

Para listar :

git tag

Para subir ao servidor:

git push --origen <tag>

Apagar tag

git tag -d <tag>

Apagar do servidor

git push --origen --delete <tag>

Line Feed – CRLF

Para desativar a opção do ambiente criar ou não line feed no final.

git config core.autocrlf false

Atualizando credenciais no windows

Para atualizar as credenciais, basta digitar os seguintes comandos:

git config --global credential.useHttpPath true
git config --global credential.helper wincred

Desativar CRLF

Para desativar o auto crlf dos arquivos fonte, use o seguinte comando:

git config --system core.autocrlf false

en_USEnglish