Fila
Nova Versão do Fila

Saiu uma nova versão do Fila.

As mudanças estão acontecendo no sistema principalmente em melhoria visual.

Fila Novo Visual

Agora a interface ganhou uma nova roupagem, com mais estilo.

Guichê Novo Visual

Com um visual mais atrativo, o Guichê esta caminhando para se tornar uma interface mais robusta e interativa.

Esperamos trazer em breve novidades, finalizando as melhorias visuais do Guichê.

Entre as mudanças estão:

  • Melhoria de interface
  • Árvore de números chamados.
  • Alerta de numero chamado melhorado.
  • Melhoria da gravação de parametros, sem necessidade de modo administrador.
  • Setup otimizado.

Muito do código antigo foi refeito, com novas melhorias previstas na versão 1.17.

Para ver todas as informações deste projeto click no link ao lado.

Projeto Fila
Dicas
Trato em Parreiral

Vou sair um pouco da area de tecnologia, e apresentar minha segunda paixão.

Minhas plantas:

Uvas agora em 7/2021

Vamos abordar alguns cuidados com as parreiras:

  • Poda em junho, preferencialmente no sosticio de inverno.
  • Adubação a cada 2 meses no inverno, e uma vez por mês na primavera e no verão.
  • Irrigação diaria
Uvas em ponto de consumo 2020
pós graduação Sem categoria
Métodos de Busca

Assim, considerando o grafo da Figura 2, que representa a sub-região circulada na Figura 1, e a tabela heurística da Figura 3, represente o problema (Estado, S, s0, G, A e Matriz de Adjacências) e apresente soluções (caminho e custo em Km) para o problema descrito utilizando os seguintes algoritmos de busca: Menor Custo, Dijkstra (árvore), Melhor Estimativa e A*.

Observação: Para referenciar uma cidade use apenas as três primeiras letras.

Exercício

Usar método de menor custo de Itapevi até Osasco.

Tabela de distância até Osasco em linha reta

CidadeDistância KM
Barueri12
Carapicuíba6
Cotia17
Embú15
Itapevi23
Jandira18
Osasco0
Taboão da Serra8

Estimativa de distância até Osasco

Diagrama de conexões

Conexões e custos associados

Árvore de busca de menor custo Itapevi/Osasco

Nesta arvore usamos o custo associado de deslocamento, fazendo todas as conexões possíveis.


Ficando definido a melhor rota Itapevi/Jandira/Carapicuíba/Osasco.

Árvore Dijkstra

Nesta arvore usamos o custo, associado a podas, ignorando os métodos que tem maior custo.

Este método tem podas em Carapicuíba (26) Taboão (36), conforme figura abaixo:


Ficando definido a melhor rota Itapevi/Jandira/Carapicuíba/Osasco.

Árvore Melhor Estimativa

Neste método, usamos a distância até Osasco, pegando sempre a menor distância e ignorando as demais.

Árvore A*

Nesta arvore somamos o custo a distância, criando um valor ficticio. Que será a base da poda.

É uma arvore heuristica, ou seja toma decisões.

Neste método somamos os valores.

Sendo:

JAN(4) = 6+18

COT(4)= 8+17

BAR(3) 11+12

CAR(2) 9+6

OSA(1) 9+0

JAN(6) 9+18

Fila
Fila Versão 1.16

Foi liberado no git a versão 1.16.

Itens modificados:

Melhoria visual do FILA

Conforme figura abaixo:

A opção de fechamento e movimentação tambem foi bloqueada, para não permitir que usuário altere a interface.

Hardware Homologado

O Hardware POS5811-DD, foi incluído no instalador, que agora é suportado por este equipamento.

POS-5811DD

C/C++ Sem categoria
Criando um driver linux

Iremos abordar neste artigo, como criar um device driver em linux.

Pré requisitos

Instale os seguintes pacotes:

sudo apt-get install linux-headers-generic

apt-get install linux-headers-`uname -r`

Instale o gcc:

sudo apt-get install gcc

sudo apt-get install build-essential

apt-get install linux-virtual

GIT do Projeto

https://github.com/marcelomaurin/devicedriver_sample

Compilando o projeto

Abaixo o vídeo explicativo do tópico que será abordado aqui:

Agora vamos ao nosso código, crie um programa hello.c, conforme o código abaixo:

/*
 *  hello.c - The simplest kernel module.
 */
#include <linux/init.h>
#include <linux/module.h>	/* Needed by all modules */
#include <linux/kernel.h>	/* Needed for KERN_INFO */

static int hello_init(void)
{
	printk(KERN_INFO "Hello world 1.\n");

	/*
	 * A non 0 return means init_module failed; module can't be loaded.
	 */
	return 0;
}

static void hello_exit(void)
{
	printk(KERN_INFO "Goodbye world 1.\n");
}

module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("MARCELO MAURIN MARTINS");

Agora crie o Makefile:

obj-m += hello.o

all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Carregando o Módulo do Kernel

Para carregar o módulo é necessário primeiro entender alguns comandos:

lsmod

Lista os módulos carregados do kernel.

Exemplo de lsmod

insmod

Carrega um módulo no kernel.

Carrega o módulo na memória

dmesg

Mostra mensagens do sistema

Retorno do modulo carregado em dmesg

rmmod

Remove um modulo da memória do kernel

Remove um módulo do kernel
Lista mensagens do kernel

Referências

Este artigo esta sendo baseado em vários artigos, o principal é esse:

https://tldp.org/LDP/lkmpg/2.6/html/x181.html

How to Write a Hello World Program in Linux Device driver

Linux Device Driver – Alessandro Rubini

Sem categoria
Site invadido

Portuguese

Pessoal, hoje sofri uma invasão, o cara não só roubou os dados com também tirou o site fora do ar.

Pessoal, este site é opensource, invadir o site, não vai agregar nada, porque todas as informações aqui disponibilizadas, são abertas.

Não há um programa aqui que já não esteja em meus gits ou nos projetos.

Então senhores, peço que não o façam, porque isso apenas prejudica quem precisa das informações aqui disponibilizados.

Estudantes e pessoas que buscam no google.

Tudo o que esta aqui, já é aberto.

E o conteúdo integral do site já pode ser baixado no git.

Estou fazendo esse trabalho de formiguinha, então colaborem não prejudicando outros.

Grato.

Blog Dicas Shell Script
Debugando Script em Shell Script

Ao criar um shell script em linux, por vezes ficamos na duvida quando este apresenta algum problema.

O debug, consiste em uma técnica utilizada para analisar e posteriormente identificar problemas.

Os scripts bash (shell script) tambem podem ser debugados, para tanto, usamos os parâmetros a seguir

Debug com impressão

Usa-se quando for necessário imprimir o resultado do processamento do script

#!/bin/sh

set -x

[comando]

set +x

argumento usado na execução do

Outros parâmetros

OpçãoSignificado
set -xImprime as declarações após interpretar metacaracteres e variáveis
set+xPára a impressão de declarações
set -vImprime as declarações antes de interpretar metacaracteres e variáveis
set -fDesativa a geração de nome de arquivo (usando metacaracteres)
Relação de parâmetros possíveis

Este artigo foi baseado na referencia:

https://www.thegeekdiary.com/how-to-debug-shell-scripts/

IA pós graduação Python
Uso de Pandas com Python

Instalação do Pandas

O processo de instalação é bem simples.

Basta entrar como su, e dar o seguinte comando:

pip3 install pandas

Segue o vídeo do processo.

Outro processo que pode ser usado é pelo apt

apt install python3-pandas python3-pandas-lib

Nada disso funcionou e agora?

Não se preocupe entre no seu jupyter, e digite o seguinte comando:

import sys

print(sys.executable)

Ele deve retornar um caminho no meu caso, foi:

/snap/jupyter/6/bin/python

Dai pegue esse caminho e instale

/snap/jupyter/6/bin/python pip install pandas –user

Tenho certeza que pelo menos uma destas técnicas irão funcionar com vc.

Definições

Series são arrays “unidimencional”

DataFrame são tabelas.

Criando uma Serie

Neste exemplo estarei mostrando como criar uma serie no pandas.

import pandas as pan

sr = pan.Series(['ele1','ele2','ele3'])

print(sr)

Resultado esperado:

0    ele1
1    ele2
2    ele3
dtype: object

Usando um dicionário

Usaremos uma série associado ao dicionario.

import pandas as pan

dic = {1:'elem1', 2:'elem2',3:'elem3'}
sr = pan.Series(dic)

print(sr)

O resultado esperado é como aparece a seguir:

1    elem1
2    elem2
3    elem3
dtype: object

Criando um DataFrame

Exemplo de criação de um dataframe

import pandas as pan

df1 = pan.DataFrame([[1,'item1','true'],[2,'item2','false'],[3,'item3','true']],columns=['ind','item','cond'])
print(df1)

Ao rodar esse exemplo fica conforme apresentado.

   ind   item   cond
0    1  item1   true
1    2  item2  false
2    3  item3   true

Como ler um arquivo no Pandas e concatenar arquivos.

import pandas as pd

df2 = pd.read_csv("2021-02-gasolina-etanol.csv",delimiter=";")

df3 = pd.read_csv("2021-03-gasolina-etanol.csv",delimiter=";")

df4 = pd.read_csv("2021-04-gasolina-etanol.csv",delimiter=";")

df5 = pd.read_csv("2021-05-gasolina-etanol-1.csv",delimiter=";")

df6 = pd.read_csv("2021-06-gasolina-etanol.csv",delimiter=";")

df7 = pd.read_csv("2021-07-gasolina-etanol.csv",delimiter=";")

frames = [df2,df3,df4,df5,df6,df7]

df = pd.concat(frames, sort=False)

print(df)

Gravando um DataFrame em disco

Para gravar um dataframe, usa-se a seguinte sintaxe:


df.to_csv("gasolina-etanol.csv",sep=';', encoding='utf-8')

dftotal = pd.read_csv("gasolina-etanol.csv",delimiter=";")

Comprimindo arquivo durante a gravação

Para gravar arquivos que voce processou em um dataframe, use a sintaxe abaixo.

df.to_csv("gasolina-etanol.cvs.gzip", sep=';', index=False,  encoding='utf-8', compression='gzip')

Lendo arquivos comprimidos

No exemplo a cima, gravamos um arquivo comprimido, agora iremos lê-lo.

dftotal = pd.read_csv("gasolina-etanol.cvs.gzip",delimiter=";",compression='gzip')
print(dftotal)

Vendo colunas do DataFrame

Aqui iremos mostrar como visualizar as colunas de um data frame carregado.

import pandas as pd

dftotal = pd.read_csv("gasolina-etanol.cvs.gzip",delimiter=";",compression='gzip')

dftotal.columns

O resultado é como demonstrado.

Index(['Região - Sigla', 'Estado - Sigla', 'Município', 'Revenda',
       'CNPJ da Revenda', 'Nome da Rua', 'Número Rua', 'Complemento', 'Bairro',
       'Cep', 'Produto', 'Data da Coleta', 'Valor de Venda', 'Valor de Compra',
       'Unidade de Medida', 'Bandeira'],
      dtype='object')

Seguindo o exemplo anterior, a visualização dos dados da Região – Sigla, fica conforme apresentado.

dftotal['Região - Sigla']

Apresentando um resultado, conforme indicado:

0          N
1          N
2          N
3          N
4          N
          ..
251415    SE
251416    SE
251417    SE
251418    SE
251419    SE
Name: Região - Sigla, Length: 251420, dtype: object

HEAD de data frame

A função head, mostra o cabeçalho das funções, conforme apresentado a seguir.

dftotal.head()

O exemplo apresenta um resultado conforme apresentado a seguir.

	Região - Sigla	Estado - Sigla	Município	Revenda	CNPJ da Revenda	Nome da Rua	Número Rua	Complemento	Bairro	Cep	Produto	Data da Coleta	Valor de Venda	Valor de Compra	Unidade de Medida	Bandeira
0	N	AC	RIO BRANCO	AUTO POSTO ISAURAO LTDA	04.594.586/0001-10	RUA ISAURA PARENTE	1412	NaN	ESTACAO EXPERIMENTAL	69918-216	GASOLINA ADITIVADA	02/02/2021	5,29	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
1	N	AC	RIO BRANCO	AUTO POSTO ISAURAO LTDA	04.594.586/0001-10	RUA ISAURA PARENTE	1412	NaN	ESTACAO EXPERIMENTAL	69918-216	ETANOL	02/02/2021	4,09	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
2	N	AC	RIO BRANCO	AUTO POSTO ISAURAO LTDA	04.594.586/0001-10	RUA ISAURA PARENTE	1412	NaN	ESTACAO EXPERIMENTAL	69918-216	GASOLINA	02/02/2021	5,29	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
3	N	AC	RIO BRANCO	COMDEPE COMERCIO DE DERIVADOS DE PETROLEO LTDA	01.198.443/0001-00	AVENIDA NACOES UNIDAS	23	NaN	AVIARIO	69909-720	GASOLINA ADITIVADA	02/02/2021	5,29	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
4	N	AC	RIO BRANCO	COMDEPE COMERCIO DE DERIVADOS DE PETROLEO LTDA	01.198.443/0001-00	AVENIDA NACOES UNIDAS	23	NaN	AVIARIO	69909-720	GASOLINA	02/02/2021	5,22	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.

Média de preço do data frame

No exemplo a seguir usaremos uma média do campo Valor de Venda.

dftotal.mean()

#ou apenas em uma coluna

dftotal['Valor de Venda'].mean()

Contagem de elementos de uma coluna do data frame

dftotal['Data da Coleta'].value_counts()

O resultado fica conforme apresentado, a seguir:

02/06/2021    5882
01/06/2021    5230
05/07/2021    3489
09/06/2021    3420
15/06/2021    3306
              ...
25/06/2021      16
21/05/2021      15
07/05/2021      15
18/06/2021      10
26/03/2021       3
Name: Data da Coleta, Length: 150, dtype: int64

Ordenando um Data Frame

dfordenado = dftotal.sort_values(by='Data da Coleta')

dfordenado['Data da Coleta']

Ficando o resultado, conforme apresentado a seguir:


3836      01/02/2021
3173      01/02/2021
3174      01/02/2021
3175      01/02/2021
3176      01/02/2021
             ...
148518    31/05/2021
148517    31/05/2021
148516    31/05/2021
148514    31/05/2021
148524    31/05/2021

As informações acima, estão contidas no repositório do GIT.

https://github.com/marcelomaurin/Analise-de-Preco

Artigos relacionados

en_USEnglish