Para adicionar botão de compartilhar do twitter no seu site, basta acessar:
http://twitter.com/about/resources/tweetbutton
Lá você encontrará as opções para criar seu botão, de maneira bastante fácil, no final ele gera um código pra adicionar no seu site tipo este:
E o resultado será algo assim: Tweet
Para colocar botão de Curtir do Facebook pode usar o seguinte código PHP:
Perceba a função curPageURL() concatenada no código do iframe do facebook. Encontrei este código na Internet, neste endereço http://www.webcheatsheet.com/PHP/get_current_page_url.php
O resultado do Like Facebook será algo assim:
Encoding Codificação Retorno PagSeguro
O pagSeguro é um dos sistemas de pagamentos mais conhecidos e utilizados em e-commerces, mas sua documentação deixa a desejar um pouco, ainda assim, existem muitas boas pessoas na Web com diversos tutoriais, espero poder contribuir um pouco também. Este post já havia sido publicado no phpoo.com.br, mas estou desativando aquele e salvando aqui.
Um problema bem comum (eu imagino) é problema com codificação, que precisa ser ISO-8859-1.
Até no exemplo de página de retorno a primeira coisa que é feita no PHP é:
Mas se você estiver com seu banco de dados em UTF-8, por exemplo, e suas páginas todas são UTF-8, primeiro você vai ter que dizer ao pagSeguro isso, o que pode ser feito adicionando essa informação na função de inicialização do pagSeguro em PHP que está disponível nos exemplos do site mesmo, a função ficá assim:
Com isso o pagSeguro sabe que você está enviando as informações no carrinho, dados do cliente e do produto em formato UTF-8, mas, quando ele te responder na página de retorno as informações virão em ISO-8859-1 igual... como resolver, depois de muita pesquisa, uma solução simples encontrei, basta fazer o seguinte:
Faça isso para todos os campos String que vierem no post do pagSeguro e pronto. Campos com acentos e outros tantos serão salvos no banco de dados corretamente, sem isso, quando vinha uma cidade com nome 'Três de Maio', por exemplo, na minha base dedados MySQL estava salvando apenas 'Tr', os dados depois de qualquer acento eram perdidos.
Tem mais algumas informações úteis sobre este retorno que são abordadas pelo Dourado no site dele: http://dourado.net/2011/06/09/retorno-automatico-de-dados-do-pagseguro-em-phpmysql-com-produtos-versao-2-0/
Boa sorte pra quem for implementar! Aproveitando o post, se você ainda não é cadastrado no PagSeguro, clique aqui ou na imagem abaixo para se cadastrar.
Um problema bem comum (eu imagino) é problema com codificação, que precisa ser ISO-8859-1.
Até no exemplo de página de retorno a primeira coisa que é feita no PHP é:
header('Content-Type: text/html; charset=ISO-8859-1');
Mas se você estiver com seu banco de dados em UTF-8, por exemplo, e suas páginas todas são UTF-8, primeiro você vai ter que dizer ao pagSeguro isso, o que pode ser feito adicionando essa informação na função de inicialização do pagSeguro em PHP que está disponível nos exemplos do site mesmo, a função ficá assim:
function pgs($args = array())
{
if ('array'!=gettype($args)) $args=array();
$default = array(
'email_cobranca' => 'seuemail@pagseguro.com.br',
'tipo' => 'CP',
'moeda' => 'BRL',
'encoding' => 'UTF-8',
);
$this->_config = $args+$default;
}
Com isso o pagSeguro sabe que você está enviando as informações no carrinho, dados do cliente e do produto em formato UTF-8, mas, quando ele te responder na página de retorno as informações virão em ISO-8859-1 igual... como resolver, depois de muita pesquisa, uma solução simples encontrei, basta fazer o seguinte:
mb_convert_encoding($_POST['CliNome'], 'UTF-8', 'ISO-8859-1,ASCII,UTF-8');
Faça isso para todos os campos String que vierem no post do pagSeguro e pronto. Campos com acentos e outros tantos serão salvos no banco de dados corretamente, sem isso, quando vinha uma cidade com nome 'Três de Maio', por exemplo, na minha base dedados MySQL estava salvando apenas 'Tr', os dados depois de qualquer acento eram perdidos.
Tem mais algumas informações úteis sobre este retorno que são abordadas pelo Dourado no site dele: http://dourado.net/2011/06/09/retorno-automatico-de-dados-do-pagseguro-em-phpmysql-com-produtos-versao-2-0/
Boa sorte pra quem for implementar! Aproveitando o post, se você ainda não é cadastrado no PagSeguro, clique aqui ou na imagem abaixo para se cadastrar.
Agendar Backups Linux: crontab tar date
Comando tar: serve basicamente para compactar arquivos, criar backups etc.
tar -c
serve pra criar um arquivo novo
tar -p
serve para listar o conteudo
tar -x
serve para extrair um arquivo
Normalmente uma destas 3 letras é acompanhado de:
v para mostrar na tela o que esta sendo feito
f para jogar o conteudo do arquivo para um novo
j para compactar igual ao 7zip, mais nova, GZ2, muito bom
z tambem serve para compactar, mas nao tao bom...
Então, para criar arquivo novo + ver + compactar + dizer que o resultado eh um file (arquivo)
Ex.: fazer um bkp de todos os dados do usuario bolivar
Agora com data e hora automática
Para listar o conteúdo
Para extrair o conteúdo
comando date: pega a data do sistema
Pode-se formatar a data em diferentes formatos, Y-m-d H-M ou d/m/Y ... mas lembre-se de em nomes de arquivo nao pode usar / entre outros...
date +%y
date +%Y
date +%m
date +%d
date +%H
date +%M
Comando crontab: faz o agendamento de tarefas
Para ver o que já está agendado para executar:
Para editar agendamentos:
Provavelmente ao editar vai pedir qual editar de texto voce deseja usar, fui com o nano, opcão 2, que é mais fácil.
Configura: m h dom mon dow command
Que significa: Minuto Hora DiaDoMes Mes DiaDaSemana Comando
Para gravar um log, como temos no comando TAR o V, ele mostraria na tela o que foi feito, podemos jogar em um arquivo o bkp semanalmente, diariamente, de 15 em 15 minutos ficaria assim:
tar -c
serve pra criar um arquivo novo
tar -p
serve para listar o conteudo
tar -x
serve para extrair um arquivo
Normalmente uma destas 3 letras é acompanhado de:
v para mostrar na tela o que esta sendo feito
f para jogar o conteudo do arquivo para um novo
j para compactar igual ao 7zip, mais nova, GZ2, muito bom
z tambem serve para compactar, mas nao tao bom...
Então, para criar arquivo novo + ver + compactar + dizer que o resultado eh um file (arquivo)
tar -cvjf nome_novo_arquivo o_q_vai_ser_compactado
Ex.: fazer um bkp de todos os dados do usuario bolivar
tar -cvjf bkp_bolivar_2011_11_11.tar.gz2 /home/bolivar/*
Agora com data e hora automática
tar -cvjf bkp_bolivar_`date +%Y_%m_%d_%H_%M`.tar.gz2 /home/bolivar/*
Para listar o conteúdo
tar -tvf bkp_bolivar_2011_11_11.tar.gz2
Para extrair o conteúdo
tar -xvf bkp_bolivar_2011_11_11.tar.gz2
comando date: pega a data do sistema
Pode-se formatar a data em diferentes formatos, Y-m-d H-M ou d/m/Y ... mas lembre-se de em nomes de arquivo nao pode usar / entre outros...
date +%y
date +%Y
date +%m
date +%d
date +%H
date +%M
Comando crontab: faz o agendamento de tarefas
Para ver o que já está agendado para executar:
crontab -l
Para editar agendamentos:
crontab -e
Provavelmente ao editar vai pedir qual editar de texto voce deseja usar, fui com o nano, opcão 2, que é mais fácil.
Configura: m h dom mon dow command
Que significa: Minuto Hora DiaDoMes Mes DiaDaSemana Comando
Para gravar um log, como temos no comando TAR o V, ele mostraria na tela o que foi feito, podemos jogar em um arquivo o bkp semanalmente, diariamente, de 15 em 15 minutos ficaria assim:
0-15-30-45 * * * * tar -cvjf /home/bolivar/bkp_bolivar_`date +%Y_%m_%d_%H_%M`.tar.gz2 /home/bolivar/* > /home/bolivar/bkpLog.txt
Comandos Unix: ps, grep, sed, cut, awk, chmod, mysql, crontab
Anotecões aula de Sistemas Operacionais, ajustadas para virar um tutorial de como criar um script para salvar logs do uso de memória e processador por determinado processo.
Uso do VI
i para escrever
:q para sair
:wq para salvar e sair
:w <nome arquivo> para salvar como
Atividades escrever script para armazenar em arquivo a cada minuto a % de CPU e qtde de memória usada por um processo.
Ver os processos e salvar no arquivo texto o resultado:
ps pega os processos, grep compiz busca apenas linhas com 'compiz', sed pra apagar tudo menos a linha 1, linha 2 em diante, >> add no log.txt
cut serve pra cortar a string, -b corta bytes, pegando apenas do caracter (cada caracter é um byte) 16 ao 24
ou pode-se mudar as colunas pelo awk, pegando diretamente as corretas sem usar o cut.
crontab -e para adicionar o comando, dizendo pra executar a cada minuto.
Agora pra salvar em um banco MySQL, crie um banco chamado logs e uma tabela chamada log com dois campos decimais, uma pra cpu e outro pra memoria. criar um script Shel log_processo_mysql.sh com o sql insert:
De permissao de execucao pro script
No crontab agora ficou assim.
Pra verificar se está funcionando, acessa o mysql:
depois selecione o banco:
e execute o select:
pra ver os bancos:
pra ver as tabelas, primeiro selecione o database e depois:
pra sair do mysql:
pra sair do prompt:
Uso do VI
i para escrever
:q para sair
:wq para salvar e sair
:w <nome arquivo> para salvar como
Atividades escrever script para armazenar em arquivo a cada minuto a % de CPU e qtde de memória usada por um processo.
Ver os processos e salvar no arquivo texto o resultado:
ps -faux > arquivo.txt
ps pega os processos, grep compiz busca apenas linhas com 'compiz', sed pra apagar tudo menos a linha 1, linha 2 em diante, >> add no log.txt
ps aux | grep compiz | sed '2,$ d' | cut -b 16-24 >> log.txt
cut serve pra cortar a string, -b corta bytes, pegando apenas do caracter (cada caracter é um byte) 16 ao 24
ps aux | grep compiz | sed '2,$ d' | cut -b 16-24 | awk '{print $1,";",$2}' >> log.csv
ou pode-se mudar as colunas pelo awk, pegando diretamente as corretas sem usar o cut.
ps aux | grep compiz | sed '2,$ d' | awk '{print $3,";",$4}' >> /home/bolivar/visamples/log.csv
crontab -e para adicionar o comando, dizendo pra executar a cada minuto.
* * * * * ps aux | grep compiz | sed '2,$ d' | awk '{print $3,";",$4}' >> /home/bolivar/visamples/log.csv
Agora pra salvar em um banco MySQL, crie um banco chamado logs e uma tabela chamada log com dois campos decimais, uma pra cpu e outro pra memoria. criar um script Shel log_processo_mysql.sh com o sql insert:
ps aux | grep mysql | sed '2,$ d' | awk '{print "INSERT INTO log (cpu,mem) VALUES (",$3,",",$4,");"}' > /home/bolivar/log_insert.sql mysql -u root --password='root' -D logs < /home/bolivar/log_insert.sql
De permissao de execucao pro script
chmod +x log_processo_mysql.sh
No crontab agora ficou assim.
* * * * * /home/bolivar/log_processo_mysql.sh
Pra verificar se está funcionando, acessa o mysql:
mysql -u root --password='suasenha'
depois selecione o banco:
use logs;
e execute o select:
select * from log;
pra ver os bancos:
show databases;
pra ver as tabelas, primeiro selecione o database e depois:
show tables;
pra sair do mysql:
quit
pra sair do prompt:
exit
Anotações sobre Qualidade
QUALIDADE
Gestão pela qualidade
total, cerca de 15 anos, bastante difundido atualmente.
Qualidade, objetivo e
medida, nível de refugo. Em software se avalia pelo número de erros
que o software contém, mas também se pode avaliar outros quesitos
como performance na execução,
Definição de
qualidade do ASQ: É um conjunto de atributos e características de
um produto que lhe dá a habilidade de satisfazer necessidades
declaradas e implícitas.
Definição da EOQC: é
a totalidade dos atributos e características de um produto que lhe
dá a habilidade de satisfazer ...
Definição do Juran:
consiste nos ...
Definição da
Enciclopédia Soviética: É o agregado de propriedades de um produto
que determina a habilidade de satisfazer a habilidade para os quais
foi construído.
5 abordagens
- Transcendental: qualidade é sinônimo de excelência inata, como: relógio Rolex; automóvel Rolls Royce, Tablet Apple, picanha maturada de gado Limousin confinado, seda legítima.
- Baseada no Produto: é um conjunto mensurável e preciso de características necessárias para satisfazer o cliente, como: relógio Casio, Fiat Uno, meia medicinal Kendal, cerveja Brahma.
- Baseada no Usuário: qualidade é a conformidade com as expectativas do consumidor, como: relógio Casio, VW Gol 1000 ou Audi, picanha macia, tecido mescla poliéster/algodão.
- Baseada Manufatura: qualidade de acordo com as especificações do projeto, como nylon da Dupont (dá maior rendimento nas máquinas), linha de pesca, relógio Technos, picanha de gado confinado.
- Baseada no Valor: qualidade definida em função do custo e preço, como: relógio pra criança (provavelmente vai durar pouco, deve custar pouco), automóvel Opala 1972 (se funcionar tá bom), camisas da loja C&A (lavou, terminou), carne moída pronta no açougue.
Qualidade
é a consistente conformidade com as expectativas do cliente.
Conformidade:
atende uma especificação clara.
Consistente:
materiais, recursos e processos controlados para garantir sempre a
especificação.
Expectativas:
valor para o usuário
Percepção
x Expectativa, muitas vezes fica um GAP, uma
lacuna.
Quando
a percepção é menor que a expectativa a qualidade percebida é
pobre.
Quando
as expectativas são menores que a percepção a qualidade percebida
é boa.
Quando
expectativa e percepção são iguais a qualidade está boa.
David Garvin
Ver artigo das oito
dimensões da qualidade:
- Desempenho
- Características (adicionais)
- Confiabilidade (MTFF - Mean time to first failure e MTBF - Mean time between failure)
- Conformidade
- Durabilidade
- Assistência Técnica (MTTR – Mean time to Recovery)
- Estética
- Qualidade percebida
Não é possível
atender todas estas dimensões de uma única vez, foca em algumas
delas conforme a abordagem escolhida para o produto ou serviço.
Programa de
qualidade: uma coisa grande, um conjunto de projetos, de ações.
PGQP, PNQ...
Métodos de
qualidade: uma sequencia de passos para alcançar uma meta.
Ferramentas de qualidade: uma coisa pequena pra auxiliar a
melhorar a qualidade, diversos programas de qualidade usam as mesmas
ferramentas.
Conceitos relacionados: Portfólio é um conjunto de projeto
independentes, Programa é um conjunto de projetos
relacionados entre si.
História
Shewart – 1927
Deming (trabalhou com
Shewart, foi pro Japão implantar qualidade).
Juran – acho que foi
junto com Deming pro Japão.
Philip Crosby, disse
que: leva anos para sair da incerteza para certeza, para melhorar a
qualidade. (Incerteza->Despertar->Entendimento->Sabedoria->Certeza).
Fez a base para programas como CMM (Capacity Maturity Model), MPS.Br
(Melhoria do Processo de Software), ...
Carnegie mellon – filadelphia – pensilvania – fazer cursos a
distancia sobre Qualidade em software... open learning initiative
MIT – Open Conserware – material disponível na web – Sistemas
de Informação
Stanford – Ciência da computação – Aulas de IA ocorrendo
online agora...
TQM
...
Ferramentas de Qualidade
Básicas
- Folha de Conferência (contagem)
- Fluxograma
- Diagrama temporal (gráfico de falhas por tempo)
- Histograma
- Diagrama de Pareto (ordena os dados)
- Diagrama de Dispersão
- Diagrama de causa e efeito (espinha de peixe, diagrama de Ishikawa)
-
Aula passada (faltei) teve algo sobre 6 sigma, DMAIC: Define; Measure; Analyse; Improve; Control.
Sistemas de Producao - 23/11
5S - 5 sensos
Seiri - Utilizacao
Seiton - Organizacao
Seisso - Limpeza
Seiketsu - Higiene
Shitsuke - Autodisciplina
Senso de Utilizacão
- Diferenciar o útil do inútil.
- Em dúvida, descarte.
- O espírito de equipe é inversamente proporcional a quantidade de ítens inúteis.
Senso de Organizacão
- Cada coisa no seu lugar.
- Cada lugar com a sua coisa.
- Coisas de uso constante mais perto.
Senso de Limpeza
- Limpe você mesmo seu posto de trabalho.
- Escala de servico, cada um tem a sua vez de limpar.
- Na limpeza os defeitos são percebidos enquanto pequenos.
Senso de Higiene
- Roupa limpa.
- Asseio pessoal, andar sempre limpo.
- Qualidade de vida.
Senso de Autodisciplina
- Adquirir hábitos de organizacão, limpesa e higiene.
Implatar os 5s:
- Comeca fazendo uma limpeza geral, tirando tudo o que for inútil da organizacão.
- Depois, de tempos em tempos, uma equipe de um setor inspeciona outro setor anotando o que está fora do lugar, sujo ou é inútil.
Programas de Qualidade
- Premio de qualidade Japão - Deming
- Prêmio Baldrige - americano
- Prêmio Europeu
- Prêmio Erhard - alemão
- Premio Nacional de qualidade
- Prêmio Gaúcho de qualidade - PGQP
ISO
- Federacao mundial de entidades nacionais de normatizacão de cerca de 140 países, um de cada país.
- Sede na Suíca, estabelecido em 1947.
- Objetivo de facilitar o comércio, as trocas e transferências de tecnologia.
ISO 9000: Normas de Qualidade
- Foco no cliente
- Lideranca
- Envolvimento das pessoas
- Abordagem de processo
- Abordagem sistêmica da administracão
- Melhoramento contínuo
- Decisões basedas em fatos
- Relacões de mútuo benefício com fornecedores
ISO 9000 - tem termos e definicões
ISO 9001 - contém os requisitos
ISO 9004 - orientacões para cumprir a 9001
ISO 27000 - Seguranca da Informacao - termos e definicoes
ISO 27001 - Requisitos da 27000
Qualidade - Aula 2 - Statistical Process Control - Controle estatistico de processo
Process Control Charts
LSL = Limit inferior de especificacao
USL = Limite superior de especificacao
UCL = Limite superior de controle (Upper)
LCL = Limite inferior de controle (Lower)
Limite usa 6 desvio padrao
Controle usa 3 desvios padrao
Capability Process (CP) = (USL - LSL) / 6DP
Se o CP for >= 1, tem capabilidade, senão não tem.
Indice de Capabilidade (CPk) = (MÍNIMO entre USL-X2)/3DP e (X2-LSL)/3DP
X2 é a média das médias.
DP é desvio padrão ou sigma
Types of Control Charts
- Variable: x-bar and R charts
- Attribute: p-charts
- Defects: c-charts
R = Range = Amplitude
Ferramentas de qualidade
- Básicas (7)
- folha de conferencia (coletar dados)
- histograma (entender dados)
- diagrama temporal (entender dados e processo)
- diagrama de pareto (entender dados)
- diagrama de dispersao (entender dados)
- fluxograma (entender processo)
- diagrama de causa e efeito (espinha de peixe) (procurar causa)
- Avancadas
- CEP (Controle Estatistico de Processos) (entender processo)
- 5 por quês (entender dados)
- FMEA (Failure Mode and Effect Analysis) (prevenir falhas)
Just in Time e Teoria das Restricões
ANOTAÇÕES DE SISTEMAS DE PRODUÇÃO - 28/09/2011
RND - Rede Nacinoal de Dados
ANFAVEA - Associação Nacional Fabricantes de Veículos Automotores
EDIFACT - Eletronic Data Interchange for Administration; Commerce and Transport
EDI é a troca de dados empresariais entre computadores com formato padronizado, estabelecido por ambas as partes, permitindo o processamento automático.
- História
1975 - Padrão TDCC
1979 - Criação do comitê X12 (EUA)
...
1986 ANFAVEA EDI
1989 RND
1998 GMB EDIFACT
2000 ASN é essencial
Recentemente Toyota iniciou movimento para uso do XML
Just in Time
Os japoneses antes da segunda guerra mundial era um país que gostava de brigar, tendo surrado a Rússia por um tempo. Não tinha muita qualidade e usavam métodos próprios para produção. Depois de serem derrotados na guerra os americanos tomaram conta e resolveram fazer dos japoneses aliados, mandando algumas pessoas para ensinar qualidade aos japoneses.
O Toyota queria produzir automóveis, mas viram que não podiam competir com americanos pois não conseguiam produzir em larga escala, um dia o Toyota e o Tayshi Ohno foram para os EUA e visitaram um supermercado e tiveram uma idéia para melhorar sua produção, como no Japão a matéria-prima era cara eles não podiam desperdiçar e também não podiam fazer estoque, então isso deu início ao Just in Time, altos volumes de produção com mínimo de matéria-prima, produtos em elaboração e produtos finais.
# Keiretzu é a integração de fábricas, fornecedores e montadoras através da participação em ações, exemplo, a montadora possui ações da fábrica e do fornecedor, a fábrica possui ações da montadora e do fornecedor e o fornecedor possui ações da fábrica e da montadora, assim todos se ajudam para obter mais lucros, se um vai mal todos sofrem.
JIT produz o que é necessário, quando é necessário e NADA MAIS!
#Ditado: Matéria-prima é Ouro, trabalhou é prata, terminou é lata. Após um produto ficar pronto se não for vendido ou se ficar em estoque é prejuízo.
Just in Time é uma filosofia de administração, um conjunto de técnicas de gestão, com sistema de produção "puxado". Combate o desperdício, evidencia problemas e gargalos...
O JIT tem como método de planejamento e controle:
- Programação puxada
- Controle Kanban
- Programação nivelada
- Modelos mesclados
-
Eliminar os 7 Desperdícios (vai cair na prova)
1- Excesso de produção
2- Tempos de espera
3- Transporte
4- Estoques
5- Processamento
6- Movimentação, interna na fábrica
7- Por defeito de produto
Práticas Básicas de Trabalho
- Disciplina e padrões
- Flexibilidade
- Igualdade
- Autonomia: por exemplo para parar a linha de produção por programação de materiais, coleta de dados e resolução de problemas, qualquer funcionário pode parar a linha de produção, isso vem da igualdade, hoje chamado de empowerment, dar poder ao funcionário. Isto faz com o funcionário tenha que ser estudado, ser bom, por isso na Coréia cerca de 25% dos jovens cursam Engenharias, para trabalhar em fábricas isso se tornou básico.
- Desenvolvimento pessoal
- Qualidade de vida no trabalho
*Os estoques escondem problemas, as vezes há problemas mas como há estoque você não resolve/vê...
Kanban
- Requer a determinação do número de kanbans (ou containers) necessários.
k = (demanda esperada durante o lead time + estoque de segurança) / tamanho do container = dL(1+S)/C = 5(2)(1,1)/4 = 2,75 (ou 3)
>>SEMPRE arredonde para cima!
Takt time é o período (tempo de um ciclo) necessário para sincronizar o tempo de produção à demanda. Todos os setores sabem que têm um "ritmo", que é dado pelo takt time, o tempo de cada setor é igual. Exemplo, o corte leva 3 minutos, solda 3 minutos, montagem 3 minutos... no final, a cada 3 minutos sai um produto pronto. É utilizado o mínimo múltiplo comum dos tempos de fabricação de diversos produtos para definir takttime da fábrica...
*Sobre o livro A Meta, diz que pra prova precisa saber a cor do carro do gerente que estacionou na vaga... o que aconeteceu na sexta que foram comemorar e a mulher caiu em cima... só coisa mundana rsrsrs
Gerenciamento das Restrições na Produção - GRP
* TOC: Theory of Constraints
- TOC é um conjunto de soluções geradas pelo seus processos de racicínio, buscando elevar as restrições...
A Meta das empresas é ganhar dinheiro. Para saber se está alcançando a meta pode-se observar o lucro (receita - custo - despesas), o retorno sobre o investimento (lucro / capital investido) e o fluxo de caixa.
Segundo a TOC precisamos conhecer o GANHO, o INVENTÁRIO e a DESPESA OPERACIONAL. Sair do "Mundo do Custo" e entrar no "Mundo do Ganho".
Para melhorar o desempenho global deve-se melhorar apenas as restrições e não toda a fábrica.
Caso: Porto de Paranagua tinha uma fila de espera grande de caminhões para carregar o navio, a Cotriguaçu que mandava os caminhões passou a receber os pedidos do porto para enviar os caminhões de acordo com a necessidade/capacidade de carregar no navio (que era a restrição), diminuindo a fila de espera (estoque produtos semiacabados)...
TOC é algo que faz sentido, recomendo a leitura de A Meta e Corrente Crítica, que são livros do autor Goldratt e falam a respeito da aplicacão da idéia em fábricas e em gerenciamento de projetos.
RND - Rede Nacinoal de Dados
ANFAVEA - Associação Nacional Fabricantes de Veículos Automotores
EDIFACT - Eletronic Data Interchange for Administration; Commerce and Transport
EDI é a troca de dados empresariais entre computadores com formato padronizado, estabelecido por ambas as partes, permitindo o processamento automático.
- História
1975 - Padrão TDCC
1979 - Criação do comitê X12 (EUA)
...
1986 ANFAVEA EDI
1989 RND
1998 GMB EDIFACT
2000 ASN é essencial
Recentemente Toyota iniciou movimento para uso do XML
Just in Time
Os japoneses antes da segunda guerra mundial era um país que gostava de brigar, tendo surrado a Rússia por um tempo. Não tinha muita qualidade e usavam métodos próprios para produção. Depois de serem derrotados na guerra os americanos tomaram conta e resolveram fazer dos japoneses aliados, mandando algumas pessoas para ensinar qualidade aos japoneses.
O Toyota queria produzir automóveis, mas viram que não podiam competir com americanos pois não conseguiam produzir em larga escala, um dia o Toyota e o Tayshi Ohno foram para os EUA e visitaram um supermercado e tiveram uma idéia para melhorar sua produção, como no Japão a matéria-prima era cara eles não podiam desperdiçar e também não podiam fazer estoque, então isso deu início ao Just in Time, altos volumes de produção com mínimo de matéria-prima, produtos em elaboração e produtos finais.
# Keiretzu é a integração de fábricas, fornecedores e montadoras através da participação em ações, exemplo, a montadora possui ações da fábrica e do fornecedor, a fábrica possui ações da montadora e do fornecedor e o fornecedor possui ações da fábrica e da montadora, assim todos se ajudam para obter mais lucros, se um vai mal todos sofrem.
JIT produz o que é necessário, quando é necessário e NADA MAIS!
#Ditado: Matéria-prima é Ouro, trabalhou é prata, terminou é lata. Após um produto ficar pronto se não for vendido ou se ficar em estoque é prejuízo.
Just in Time é uma filosofia de administração, um conjunto de técnicas de gestão, com sistema de produção "puxado". Combate o desperdício, evidencia problemas e gargalos...
O JIT tem como método de planejamento e controle:
- Programação puxada
- Controle Kanban
- Programação nivelada
- Modelos mesclados
-
Eliminar os 7 Desperdícios (vai cair na prova)
1- Excesso de produção
2- Tempos de espera
3- Transporte
4- Estoques
5- Processamento
6- Movimentação, interna na fábrica
7- Por defeito de produto
Práticas Básicas de Trabalho
- Disciplina e padrões
- Flexibilidade
- Igualdade
- Autonomia: por exemplo para parar a linha de produção por programação de materiais, coleta de dados e resolução de problemas, qualquer funcionário pode parar a linha de produção, isso vem da igualdade, hoje chamado de empowerment, dar poder ao funcionário. Isto faz com o funcionário tenha que ser estudado, ser bom, por isso na Coréia cerca de 25% dos jovens cursam Engenharias, para trabalhar em fábricas isso se tornou básico.
- Desenvolvimento pessoal
- Qualidade de vida no trabalho
*Os estoques escondem problemas, as vezes há problemas mas como há estoque você não resolve/vê...
Kanban
- Requer a determinação do número de kanbans (ou containers) necessários.
k = (demanda esperada durante o lead time + estoque de segurança) / tamanho do container = dL(1+S)/C = 5(2)(1,1)/4 = 2,75 (ou 3)
>>SEMPRE arredonde para cima!
Takt time é o período (tempo de um ciclo) necessário para sincronizar o tempo de produção à demanda. Todos os setores sabem que têm um "ritmo", que é dado pelo takt time, o tempo de cada setor é igual. Exemplo, o corte leva 3 minutos, solda 3 minutos, montagem 3 minutos... no final, a cada 3 minutos sai um produto pronto. É utilizado o mínimo múltiplo comum dos tempos de fabricação de diversos produtos para definir takttime da fábrica...
*Sobre o livro A Meta, diz que pra prova precisa saber a cor do carro do gerente que estacionou na vaga... o que aconeteceu na sexta que foram comemorar e a mulher caiu em cima... só coisa mundana rsrsrs
Gerenciamento das Restrições na Produção - GRP
* TOC: Theory of Constraints
- TOC é um conjunto de soluções geradas pelo seus processos de racicínio, buscando elevar as restrições...
A Meta das empresas é ganhar dinheiro. Para saber se está alcançando a meta pode-se observar o lucro (receita - custo - despesas), o retorno sobre o investimento (lucro / capital investido) e o fluxo de caixa.
Segundo a TOC precisamos conhecer o GANHO, o INVENTÁRIO e a DESPESA OPERACIONAL. Sair do "Mundo do Custo" e entrar no "Mundo do Ganho".
Para melhorar o desempenho global deve-se melhorar apenas as restrições e não toda a fábrica.
Caso: Porto de Paranagua tinha uma fila de espera grande de caminhões para carregar o navio, a Cotriguaçu que mandava os caminhões passou a receber os pedidos do porto para enviar os caminhões de acordo com a necessidade/capacidade de carregar no navio (que era a restrição), diminuindo a fila de espera (estoque produtos semiacabados)...
TOC é algo que faz sentido, recomendo a leitura de A Meta e Corrente Crítica, que são livros do autor Goldratt e falam a respeito da aplicacão da idéia em fábricas e em gerenciamento de projetos.
Instalar JDownloader no Linux
Crie/vá ao diretório onde deseja instalar, no meu caso:
Baixe o arquivo com os passos da instalacao pronto feito pela equipe do JDowloader
Dê permissão de execucao para o arquivo
Execute para iniciar a instalacão.
Aguarde, agora o JDownloader será baixado e instalado automaticamente. Se você não é muito bom em usar a linha de comando, eu recomendo que você use este wallpaper https://picasaweb.google.com/lh/photo/EsySHUmu8eDGCxxhLlPHHg por um tempo, é um guia rápido para iniciantes no terminal.
Mais informacoes: http://www.vivaolinux.com.br/dica/Instalando-o-JDownloader-no-Linux
cd /opt/JDownloader
Baixe o arquivo com os passos da instalacao pronto feito pela equipe do JDowloader
wget http://212.117.163.148/jd.sh
Dê permissão de execucao para o arquivo
chmod +x jd.sh
Execute para iniciar a instalacão.
sh jd.sh
Aguarde, agora o JDownloader será baixado e instalado automaticamente. Se você não é muito bom em usar a linha de comando, eu recomendo que você use este wallpaper https://picasaweb.google.com/lh/photo/EsySHUmu8eDGCxxhLlPHHg por um tempo, é um guia rápido para iniciantes no terminal.
Mais informacoes: http://www.vivaolinux.com.br/dica/Instalando-o-JDownloader-no-Linux
A Matemática é Linda
Problema? Confira este vídeo, Nature by Numbers!
Pode conferir um pouco mais sobre as fórmulas do vídeo no site da Eterea Studios que fez o vídeo.
http://www.etereaestudios.com/docs_html/nbyn_htm/about_index.htm
Pode conferir um pouco mais sobre as fórmulas do vídeo no site da Eterea Studios que fez o vídeo.
http://www.etereaestudios.com/docs_html/nbyn_htm/about_index.htm
Configurando diretórios httpd.conf Alias Apache 2.x
Após instalar os softwares na sua máquina como Apache, PHP, MySQL e alguma IDE como Netbeans ou Eclipse, muitos tem dificuldades em alterar algumas configurações do Apache, antigamente quando aprendi configurar isso o Apache estava sei lá em qual versão e após muito tempo sem usar essa semana eu também fiquei um pouco perdido, pois o arquivo httpd.conf que eu constumava alterar estava vazio.
Bom, dei uma olhada nos outros arquivos e vi que isso foi feito apenas por questões de organização e pra evitar que nós façamos alguns charques e alterar o que não devemos alterar, basicamente este arquivo está sendo incluído dentro de outro agora.
Em resumo, você faz a mesma coisa que antigamente, pra dizer ao apache que quando você acessar "http://localhost/netbeans" ele deve pegar os arquivos lá em "/home/bolivar/NetBeansProjects/" você escreve dentro do arquivo /etc/apache2/httpd.conf o tal do Alias conforme o exemplo abaixo, precisa ser root.
Pra abrir o arquivo com root, abra o terminal.
Poder de root
Editar arquivo no gedit
Agora crie o alias pelo gedit, moleza né!
Reiniciar
Também pode desligar/ligar, dá no mesmo
Agora ao digitar "http://localhost/netbeans" seu navegador vai exibir os diretórios com seus projetos do Netbeans.
Quando você criar um novo projeto PHP no Netbeans já configure ele pro caminho certo, na Project URL adicione após o localhost o alias/apelido que você botou no apache,, ai quando você rodar o site (F6 no NetBeans) ele já vai rodar certinho, olha o print abaixo.
Sobre o arquivo httpd.conf, se você estiver usando Windows acredito que precisa inverter as barras (/), usa contra barra (\). Qualquer coisa comentem ai.
Bom, dei uma olhada nos outros arquivos e vi que isso foi feito apenas por questões de organização e pra evitar que nós façamos alguns charques e alterar o que não devemos alterar, basicamente este arquivo está sendo incluído dentro de outro agora.
Em resumo, você faz a mesma coisa que antigamente, pra dizer ao apache que quando você acessar "http://localhost/netbeans" ele deve pegar os arquivos lá em "/home/bolivar/NetBeansProjects/" você escreve dentro do arquivo /etc/apache2/httpd.conf o tal do Alias conforme o exemplo abaixo, precisa ser root.
Pra abrir o arquivo com root, abra o terminal.
Poder de root
sudo su
Editar arquivo no gedit
gedit /etc/apache2/httpd.conf
Agora crie o alias pelo gedit, moleza né!
Alias /netbeans/ "/home/bolivar/NetBeansProjects/"Cuidado, tira o espaço no < Directory ... e ao fechar a tag </ Directory>, tive que colocar espaço para aparecer no blog... Bom. pra que esta mudança faça efeito reinicie o Apache, os comandos são (Ubuntu/Mint):< Directory "/home/bolivar/NetBeansProjects"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </ Directory>
Reiniciar
/etc/init.d/apache2 restart
Também pode desligar/ligar, dá no mesmo
/etc/init.d/apache2 stop /etc/init.d/apache2 start
Agora ao digitar "http://localhost/netbeans" seu navegador vai exibir os diretórios com seus projetos do Netbeans.
Quando você criar um novo projeto PHP no Netbeans já configure ele pro caminho certo, na Project URL adicione após o localhost o alias/apelido que você botou no apache,, ai quando você rodar o site (F6 no NetBeans) ele já vai rodar certinho, olha o print abaixo.
Sobre o arquivo httpd.conf, se você estiver usando Windows acredito que precisa inverter as barras (/), usa contra barra (\). Qualquer coisa comentem ai.
Desarollando Software Libre com Scrum
Palestra na LatinoWare do Diego Martin Lima, Desarollando Software Libre com Scrum. Scrum é um método ágil para desenvolvimento iterativo e incremental de software, bastante conhecido mas ainda pouco utilizado, requer uma equipe de desenvolvedores experiente.
Na realidade, este (equipe experiente) é o principal ponto que todas as metodologias de desenvolvimento esquecem, se você possui uma boa equipe, qualquer metodologia servirá e o software será bom, agora se a equipe for ruim, não adianta culpar a metodologia, apesar que algumas metodologias são melhores do que outras dependendo do tamanho da equipe e do tamanho e duração do projeto. Este foi o tema de uma outra grande palestra da LatinoWare, do Fábio Akita, a Semente não Entendida de Todas as Metodologias Ágeis, que parte do pressuposto que todas as metodologias envolvem pessoas, então, este é um fator primordial. Abaixo os slides dessa outra palestra, aproveite para pensar/refletir sobre alguns pontos de engenharia de software.
Tem um vídeo no Youtube também, não cheguei a olhar, mas se for a mesma palestra vale a pena, vou olhar mais tarde... http://www.youtube.com/watch?v=wvKHU7pA02c
Bom, voltando as anotações, minha opinião é que uma das melhores coisas do SCRUM é a reunião diária, máximo 15 minutos, em pé, onde cada um fala o que fez no dia anterior, ou se não fez fala qual foi o impedimento e diz o que vai fazer no dia atual. Nessa reunião todos vão se sentir parte do grupo, todos vão saber o que cada um está fazendo e caso algum não esteja trabalhando como deve, logo a equipe vai perceber através das reuniões e pode tomar alguma atitude.
Alguns problemas comuns:
- Começar do zero
- Não ter informações prévias, capacidade da equipe, dificulta previsões de tempo
- Não realizar Scrum Diário
- Não manter corretamente gráfico burndown
- Más adaptações da metodologia
Durante a palestra anotei um modelo para SCRUM rapidamente, refiz no Astah UML na forma de um diagrama de atividades pra facilitar, gostaria de postar os slides originais também mas está difícil de encontrar.
Na realidade, este (equipe experiente) é o principal ponto que todas as metodologias de desenvolvimento esquecem, se você possui uma boa equipe, qualquer metodologia servirá e o software será bom, agora se a equipe for ruim, não adianta culpar a metodologia, apesar que algumas metodologias são melhores do que outras dependendo do tamanho da equipe e do tamanho e duração do projeto. Este foi o tema de uma outra grande palestra da LatinoWare, do Fábio Akita, a Semente não Entendida de Todas as Metodologias Ágeis, que parte do pressuposto que todas as metodologias envolvem pessoas, então, este é um fator primordial. Abaixo os slides dessa outra palestra, aproveite para pensar/refletir sobre alguns pontos de engenharia de software.
Tem um vídeo no Youtube também, não cheguei a olhar, mas se for a mesma palestra vale a pena, vou olhar mais tarde... http://www.youtube.com/watch?v=wvKHU7pA02c
Bom, voltando as anotações, minha opinião é que uma das melhores coisas do SCRUM é a reunião diária, máximo 15 minutos, em pé, onde cada um fala o que fez no dia anterior, ou se não fez fala qual foi o impedimento e diz o que vai fazer no dia atual. Nessa reunião todos vão se sentir parte do grupo, todos vão saber o que cada um está fazendo e caso algum não esteja trabalhando como deve, logo a equipe vai perceber através das reuniões e pode tomar alguma atitude.
Alguns problemas comuns:
- Começar do zero
- Não ter informações prévias, capacidade da equipe, dificulta previsões de tempo
- Não realizar Scrum Diário
- Não manter corretamente gráfico burndown
- Más adaptações da metodologia
![]() | |
Processo SCRUM (Wikipedia, 2011) |
Durante a palestra anotei um modelo para SCRUM rapidamente, refiz no Astah UML na forma de um diagrama de atividades pra facilitar, gostaria de postar os slides originais também mas está difícil de encontrar.
![]() |
Modelo que rabisquei durante a palestra... |
Processamento Linguagem Natural com PHP
Palestra do Ivo Nascimento na Latinoware sobre processamento de linguagem natural no PHP, isto não existe, e seu projeto de criar algo semelhante com nltk.org (Python?), no github.com/iannsp/texta, o Text Analizer.
TF-IDF: Term Frequency - Inverse Document Frequency: calcula a importância de um termo em um texto.
- Tokenizacão: no PHP seria um explode, guarda um array
- Normalizacao: correcão portugues, maiúsculas e minúsculas, ...
- Stop-words: e, de, mas, o, a .... tirar palavras que não interessam
- Aprendizado: % das palavras positivas vs negativas
#Hashtags: semântica
N-GRAM: Conjuntos de termos, tokens. Bigram, Trigram, ...
- Análise: Filtro Bayesiano, Coef. Dice, Qui-quadrado, Coeficiente de Jaccard, coef. Relacão Pearson, Distância Euclidiana...
Last.fm e Grooveshark usam algumas dessas fórmulas matemáticas como Pearson e Dist. Euclidiana para identificar as pessoas semelhantes e sugerir as músicas que elas gostaram uma para outra.
Problemas! Homógrafos, como: Quem casa quer casa... A mesma palavra com sentidos diferentes.
Ele sugeriu o PIP, Python em PHP caso queira usar PHP com o NLTK, também ficou de levantar os slides no slideshare.net/ivonascimento, vamos aguardar.
TF-IDF: Term Frequency - Inverse Document Frequency: calcula a importância de um termo em um texto.
- Tokenizacão: no PHP seria um explode, guarda um array
- Normalizacao: correcão portugues, maiúsculas e minúsculas, ...
- Stop-words: e, de, mas, o, a .... tirar palavras que não interessam
- Aprendizado: % das palavras positivas vs negativas
#Hashtags: semântica
N-GRAM: Conjuntos de termos, tokens. Bigram, Trigram, ...
- Análise: Filtro Bayesiano, Coef. Dice, Qui-quadrado, Coeficiente de Jaccard, coef. Relacão Pearson, Distância Euclidiana...
Last.fm e Grooveshark usam algumas dessas fórmulas matemáticas como Pearson e Dist. Euclidiana para identificar as pessoas semelhantes e sugerir as músicas que elas gostaram uma para outra.
Problemas! Homógrafos, como: Quem casa quer casa... A mesma palavra com sentidos diferentes.
Ele sugeriu o PIP, Python em PHP caso queira usar PHP com o NLTK, também ficou de levantar os slides no slideshare.net/ivonascimento, vamos aguardar.
TDD - Desenvolvimento dirigido por testes
De volta da Latinoware, agora publicar anotações, começando pela palestra assertTrue($tdd); do Alexandre Gaigalas.
Segundo a Wikipedia: Test Driven Development (TDD) ou em português Desenvolvimento dirigido por testes é uma técnica de desenvolvimento de software que baseia em um ciclo curto de repetições: Primeiramente o desenvolvedor escreve um caso de teste automatizado que define uma melhoria desejada ou uma nova funcionalidade. Então, é produzido código que possa ser validado pelo teste para posteriormente o código ser refatorado para um código sob padrões aceitáveis. Kent Beck, considerado o criador ou o 'descobridor' da técnica, declarou em 2003 que TDD encoraja designs de código simples e inspira confiança[1]. Desenvolvimento dirigido por testes é relacionado a conceitos de programação de Extreme Programming, iniciado em 1999,[2] mas recentemente tem-se criado maior interesse pela mesma em função de seus próprios ideais.[3] Através de TDD, programadores podem aplicar o conceito de melhorar e depurar código legado desenvolvido a partir de técnicas antigas.[4]
Após esta breve definição, vamos as minhas anotações. Como você faz pra testar JS ou PHP? Toda vez abre o navegador, preenche trocentos campos validando CPF, data etc e clica em enviar pra ver está funcionando? Há muita perda de tempo nisso, é muito escroto, programador gosta de programar e não gosta de perder tempo fazendo testes, então, por que não criar um software para testar o software?
Método antigo de teste: var_dump($user);
Agora: // var_dump($user); :D
Os métodos de teste evoluíram muito nos últimos anos, Breakpoints (usava muito isso no Delphi), Watchers, ... chegando ao TDD.
PHPUnit criado por Sebastian Bergman, uma boa ferramenta.
TDD (Test) + BDD (Behavior) + CI (Integração Contínua) = :D
O TDD foi feito para os desenvolvedores, para facilitar a vida deles e melhorar muito a qualidade do software.
Cuidar com Dependency Injection, não conecta ao banco real para testar.
Abaixo os slides da palestra, veja os gráficos dos tempos sem TDD e com TDD, formas de convencer seu chefe a mudar, etc. Confira também o texto do próprio autor em http://php5.net.br/tdd
Segundo a Wikipedia: Test Driven Development (TDD) ou em português Desenvolvimento dirigido por testes é uma técnica de desenvolvimento de software que baseia em um ciclo curto de repetições: Primeiramente o desenvolvedor escreve um caso de teste automatizado que define uma melhoria desejada ou uma nova funcionalidade. Então, é produzido código que possa ser validado pelo teste para posteriormente o código ser refatorado para um código sob padrões aceitáveis. Kent Beck, considerado o criador ou o 'descobridor' da técnica, declarou em 2003 que TDD encoraja designs de código simples e inspira confiança[1]. Desenvolvimento dirigido por testes é relacionado a conceitos de programação de Extreme Programming, iniciado em 1999,[2] mas recentemente tem-se criado maior interesse pela mesma em função de seus próprios ideais.[3] Através de TDD, programadores podem aplicar o conceito de melhorar e depurar código legado desenvolvido a partir de técnicas antigas.[4]
Após esta breve definição, vamos as minhas anotações. Como você faz pra testar JS ou PHP? Toda vez abre o navegador, preenche trocentos campos validando CPF, data etc e clica em enviar pra ver está funcionando? Há muita perda de tempo nisso, é muito escroto, programador gosta de programar e não gosta de perder tempo fazendo testes, então, por que não criar um software para testar o software?
Método antigo de teste: var_dump($user);
Agora: // var_dump($user); :D
Os métodos de teste evoluíram muito nos últimos anos, Breakpoints (usava muito isso no Delphi), Watchers, ... chegando ao TDD.
PHPUnit criado por Sebastian Bergman, uma boa ferramenta.
TDD (Test) + BDD (Behavior) + CI (Integração Contínua) = :D
O TDD foi feito para os desenvolvedores, para facilitar a vida deles e melhorar muito a qualidade do software.
Cuidar com Dependency Injection, não conecta ao banco real para testar.
Abaixo os slides da palestra, veja os gráficos dos tempos sem TDD e com TDD, formas de convencer seu chefe a mudar, etc. Confira também o texto do próprio autor em http://php5.net.br/tdd
Modelo Resumo SAPS e Práticas SI e TRC
Segue abaixo modelo de Resumo exigido para o maior evento Científico da SETREM, o SAPS. Este modelo acabou de ser enviado pela coordenadora de SI (Sistemas de Informação) e TRC (Tecnologia em Redes de Computadores) para todos acadêmicos e professores dos cursos pois para o ano 2012, este será o modelo nos resumos das Práticas Profissionais, deste este semestre.
GÜLLICH, Roque Ismael da Costa; LOVATO, Adalberto; EVANGELISTA, Mário dos
Santos. Metodologia da pesquisa -
normas para apresentação de trabalhos: redação, formatação e editoração. 2 Ed. Três de Maio: SETREM,
2007.
Este é
um modelo de resumo a ser utilizado para os trabalhos da Mostra Estadual de
Pesquisa e do Salão de Iniciação Científica. Para o corpo deste documento, use fonte
Arial 12 pontos, letras maiúsculas e minúsculas, espaçamento entre linhas
simples e o texto deve ser justificado (apenas para melhor visualização antes da
inscrição). O resumo deve conter no máximo 3.000 e no mínimo de 800 caracteres,
podendo ser digitado diretamente no sistema de inscrição na internet (ou seja,
esse modelo é só um rascunho de trabalho antes de fazer a inscrição) ou
utilizado o recurso de editar copiar/colar de um aplicativo de texto previamente
utilizado. Na parte superior do sistema de inscrição existe um campo automático
que ilustra a quantidade de caracteres que ainda faltam para concluir o limite
determinado. No corpo do resumo não deve haver nenhuma indicação de autoria,
formação e o título. Estes dados devem ser preenchidos corretamente no sistema
de inscrição, sendo esta informação considerada como oficial na divulgação dos
dados de autoria e formação. A comissão organizadora do evento não é responsável
por nomes de autores e orientadores digitados erroneamente ou incompletos. Caso
seja necessária nova impressão ou correção de documentos por erros desta
natureza será cobrado dos autores o valor correspondente a uma inscrição extra.
O resumo deve procurar relatar o tema da pesquisa,
os objetivos, o problema, os principais referenciais e conceitos utilizados, a
metodologia, os resultados parciais ou finais da pesquisa, recomendações e a
conclusão, evidenciando as contribuições que este estudo proporcionou para o
crescimento do seu conhecimento ou da
ciência.
Palavras
chaves: resumo,
formatação, orientador.
Referenciais
Licenças de Produtos Gratuitas
Recebi por e-mail da Microsoft e achei importante compartilhar.....
Olá, Você sabia que cerca de 95% das nossas licenças na área técnica são gratuitas? Para os profissionais de desenvolvimento, temos as versões Express dos produtos: Visual Studio, SQL Server, e Visual Studio LightSwitch. E ainda para estudantes, Web Developers ou empreendedores de Startups, a Microsoft disponibiliza não só licenças gratuitas como também programas com benefícios específicos para atender às suas necessidades. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Confira na próxima edição informações sobre nosso Programa de Avaliação de Softwares. Atenciosamente, Equipe Audiência Técnica - Microsoft |
Ibovespa Semanal 30/09/2011 11:53
No momento bem próximo a um suporte nos 52k, se fechar abaixo disso hoje acredito em mais quedas pra semana que vem, podendo buscar o suporte nos 48k de janeiro de 2009 e que respeitou em agosto de 2011.
Algumas frases famosas
A pior estratégia é não ter uma estratégia.
Para o sucesso é necessário ter o DEP! Disciplina, Estratégia e Paciência.
"As ações são o maior mecanismo de transferência de riqueza dos apressados aos tranquilos." (Warren Buffett)
A palavra "crise" em chinês é composta por dois ideogramas: o primeiro, símbolo do perigo; o segundo, da oportunidade.
"Existe apenas um lado do mercado e não é o do touro nem do urso, mas o lado certo." Jesse Livermore
"O pior erro que investidores cometem é realizar lucros muito rápido e prejuízos tarde demais." Michael Price - Mutural Shares Fund
Atenção
As informações contidas neste post são apenas estudos ou opiniões pessoais e não representam, de maneira alguma, recomendações de investimento, isentando a todos sobre qualquer responsabilidade resultante da tomada de decisão com base no conteúdo aqui apresentado. O investimento em ações é um investimento de risco e rentabilidade passada não é garantia de rentabilidade futura. Na realização de operações com derivativos existe a possibilidade de perdas superiores aos valores investidos, podendo resultar em significativas perdas patrimoniais.
Criação de um Sistema para Controle de Viagens no Delphi com Firebird Parte II
Olá pessoal, este tutorial é bem antigo e estava perdido aqui nos meus Rascunhos, acho que não tinha terminado ele, era pra ser a continuação deste que na verdade acabou sendo continuado por este. Era pra ser um passo a passo de como montar os cadastros da nossa aplicação para controle de Viagens no Delphi, mas foi feito apenas o início da parte dos menus... #FAIL mas algo sempre se aproveita, então, boa leitura.
Abra o Delphi e crie uma nova aplicação pelo menu File → New → VCL Forms Application – Delphi for Win32, o Delphi vai abrir um Form vazio pra começarmos a trabalhar, no Object Inspector vamos alterar as seguintes propriedades deste form:
Name: FrmPrincipal
Caption: Controle de Viagens
WindowState: wsMaximized
Clique dentro do form e pressione CTRL+ALT+P, digite TMainMenu e pressione ENTER. O atalho serve para começar a filtrar os componentes da Tool Palette do lado esquerdo, note que enquanto você digitava os componentes vão sendo filtrados até sobrar apenas um, com o ENTER ele foi automaticamente inserido no formulário principal.
Este componente serve para montarmos o nosso menu, de um duplo clique nele, será aberto um novo form em branco com um menu vazio selecionado, no Object Inspector vamos procurar a propriedade Caption e digitar "Arquivo", note que vai aparecer um menu "Arquivo" no formulário, clicando em Arquivo ele abre um menu suspenso para baixo onde podem ser cadastrados mais menus, selecione um espaço em branco logo abaixo de "Arquivo" no menu e preencha a propriedade Caption como "Sair", depois vá na aba Events do Object Inspector, então dê um duplo clique no evento OnClick, o Delphi vai sair do modo Design e vai para o Code, ou código, digite a seguinte instrução para fechar a aplicação quando clicado neste menu (Sair):
Abra o Delphi e crie uma nova aplicação pelo menu File → New → VCL Forms Application – Delphi for Win32, o Delphi vai abrir um Form vazio pra começarmos a trabalhar, no Object Inspector vamos alterar as seguintes propriedades deste form:
Name: FrmPrincipal
Caption: Controle de Viagens
WindowState: wsMaximized
Clique dentro do form e pressione CTRL+ALT+P, digite TMainMenu e pressione ENTER. O atalho serve para começar a filtrar os componentes da Tool Palette do lado esquerdo, note que enquanto você digitava os componentes vão sendo filtrados até sobrar apenas um, com o ENTER ele foi automaticamente inserido no formulário principal.
Este componente serve para montarmos o nosso menu, de um duplo clique nele, será aberto um novo form em branco com um menu vazio selecionado, no Object Inspector vamos procurar a propriedade Caption e digitar "Arquivo", note que vai aparecer um menu "Arquivo" no formulário, clicando em Arquivo ele abre um menu suspenso para baixo onde podem ser cadastrados mais menus, selecione um espaço em branco logo abaixo de "Arquivo" no menu e preencha a propriedade Caption como "Sair", depois vá na aba Events do Object Inspector, então dê um duplo clique no evento OnClick, o Delphi vai sair do modo Design e vai para o Code, ou código, digite a seguinte instrução para fechar a aplicação quando clicado neste menu (Sair):
procedure TFRMPRINCIPAL.Sair1Click(Sender: TObject); begin Close; end;
Agora pressione F12 para voltar para o modo Design, esta é a tecla de atalho pra alterar entre Design e Code. Bom, agora você já sabe como criar mais menus e adicionar eventos para eles, crie um menu ao lado de "Arquivo" chamado de "Manutenções" e dentro dele (menu suspenso para baixo) crie os seguintes subMenus: Cidades, Pontos Turísticos, Passageiros, Guias, Veículos e Viagens. Se quiser ainda pode criar mais um menu ao lado deste para "Ajuda" sobre o sistema mas isso vai de cada um, documentar sempre é importante, se for distribuir o sistema também é importante colocar um "Sobre" com dados para contato em caso de dúvida ou coisa assim.
Bom, temos a estrutura do nosso menu pronta, agora precisamos criar os formulários de manutenção dos dados e adicionar uma instrução no evento OnClick dos menus que vai exibir este formulários, veremos isto mais adiante.
Com o início da aplicação ok vamos salvar nossa aplicação, como é a primeira vez temos que ir no menu File → Save Project As... para que seja salvo um projeto com executável e tudo o mais, caso contrário o Delphi salvará apenas o formulário o que nos trará alguns problemas mais adiante, este procedimento deve ser feito na primeira vez que vamos salvar, depois um CTRL+S serve pra nós, continuando, ao clicar em Save Project As... o Delphi abriu uma janela pedindo local e nome do arquivo da Unit1, utilize a mesma pasta que já tem o diagrama e tudo mais, renomeie para UntPrincipal e clique em Salvar, agora ele vai abrir uma nova janela para salvar o Projeto, de o nome de CONTROLEDEVIAGENS ou algo assim e clique em Salvar.
Sistemas Operacionais - Anotações de 23/09/2011
Princípios básicos de hardware
- Periférico é um dispositivo conectado a um computador de forma a possbilitar sua interação com o mundo externo.
- Os periféricos são conectados ao computador através de um componente de hardware denominado de interface.
- As interfaces são interconectadas aos barramentos internos de um computador, elemento chave na coordenação da transferência de dados.
- Interfaces se utilizam de um processador dedicado a realização e controle das operações de entrada e saída, são as controladoras.
- Driver é um software que permite/explica ao sistema operacional se comunicar com cada periférico através dos comandos das controladores.
*** O computador de verdade é o processador, todo o resto é periférico, interno ou externo, conectado de alguma forma com o processador.
* Classificados como:
- Orientado a caracter: cada caracter causa uma ação no dispositivo, exemplo teclado e interface serial.
- Orientado a bloco: bloco de caracteres, exemplo disco, fitas DAT.
* Classificados também como:
- Com usuário
- Eletrônicos
- Remotos
Os periféricos possuem características próprias como taxa de transferência de dados, complexidade de controle, unidade de transferência (caracter, bloco ou stream), representação de dados e tratamento de erros.
* Tipo de conexão e transferência de dados
- Serial: bit a bit, uma linha de transferência
- Paralela: n x 8 bits, mais de uma linha de transferência
O sistema operacional interage com os periféricos pela controladora, escrevendo nas memórias próprias do periférico os comandos dizendo o que precisa, estas memórias são chamadas de registradores de configuração. O SO sabe quais comandos pode executar nos registradores através dos drivers.
Os registradores de configuração das controladoras recebem ordens do processador, fornecem estados de operação e fazem a leitura e escrita de dados do periférico. Registradores são vistos pelo SO como posições de memória "a parte", quando o SO vai interagir ele grava os comandos no endereço de memória do registrador. Dependendo do tipo de controladora pode fazer mapeamento em memória, com comandos iguais aos utilizados para mapear RAM, outros tem uma mapeamento de entrada e saída que utiliza alguns comandos diferentes.
* E/S programada
É mais simples de implementar, mais leve, mas tem busy waiting, enquanto as controladoras estão ocupadas o processador fica esperando elas terminarem para então passar ao próximo tarefa.
* E/S orientada a interrupção
Processa outras tarefas enquanto aguarda a controladora terminar sua atividade, é avisado via interrupções.
* DMA - Acesso direto a memória
É uma maneira de diminuir o número de interrupções, fazendo isso após executar uma gama de comandos como a leitura de vários blocos em um HD, no normal faz uma interrupção a cada bloco lido.
Gerência de entrada e saída
Tem como objetivo a eficiência, generacidade é importante, esconder os detalhes do serviço de entrada e saída em camadas de baixo nível, ...
*** Os driver são instalados na camada do sistema operacional, podemos dizer que é o manual que o SO olha pra saber como usar as controladoras, e os drivers possuem direitos de execução administrativos (são inseridos no kernel) podendo causar panes nos sistemas quando mal desenvolvidos. Placas de vídeos tem alguns fabricantes alternativos que visam tirar mais das placas e lançam versões de driver não oficiais e esculhambam o sistema. O ideal é utilizar drivers homologados pelo fabricante do sistema operacional além da homologação do desenvolvedor do periférico.
* Subsitema de entrada e saída
É aquela porção do núcleo do SO que controla a parte independente e interage com o driver de dispositivo.
Tem como funcionalidades básicas:
- Escalonamento de E/S:
- Bufferização:
- Cache:
- Spooling:
- Reserva de dispositivos:
*** Buffer armazena somente dados somente enquanto está utilizando e já libera memória, cache mantém os dados enquanto houver memória disponível, quando acaba vai liberando os dados mais antigos a medida que necessita de mais.
* Interface de programação
- Bloqueante:
- Não bloqueante:
- Assíncrono:
... continua próxima aula ...
### Aula que vem acaba capítulo 5 e teremos uma revisão, na outra semana jé é prova. Pra prova pode levar uma folha A4 com anotações feitas a mão para consulta.
- Periférico é um dispositivo conectado a um computador de forma a possbilitar sua interação com o mundo externo.
- Os periféricos são conectados ao computador através de um componente de hardware denominado de interface.
- As interfaces são interconectadas aos barramentos internos de um computador, elemento chave na coordenação da transferência de dados.
- Interfaces se utilizam de um processador dedicado a realização e controle das operações de entrada e saída, são as controladoras.
- Driver é um software que permite/explica ao sistema operacional se comunicar com cada periférico através dos comandos das controladores.
*** O computador de verdade é o processador, todo o resto é periférico, interno ou externo, conectado de alguma forma com o processador.
Retângulos cinzas são controladores |
* Classificados como:
- Orientado a caracter: cada caracter causa uma ação no dispositivo, exemplo teclado e interface serial.
- Orientado a bloco: bloco de caracteres, exemplo disco, fitas DAT.
* Classificados também como:
- Com usuário
- Eletrônicos
- Remotos
Os periféricos possuem características próprias como taxa de transferência de dados, complexidade de controle, unidade de transferência (caracter, bloco ou stream), representação de dados e tratamento de erros.
* Tipo de conexão e transferência de dados
- Serial: bit a bit, uma linha de transferência
- Paralela: n x 8 bits, mais de uma linha de transferência
O sistema operacional interage com os periféricos pela controladora, escrevendo nas memórias próprias do periférico os comandos dizendo o que precisa, estas memórias são chamadas de registradores de configuração. O SO sabe quais comandos pode executar nos registradores através dos drivers.
Os registradores de configuração das controladoras recebem ordens do processador, fornecem estados de operação e fazem a leitura e escrita de dados do periférico. Registradores são vistos pelo SO como posições de memória "a parte", quando o SO vai interagir ele grava os comandos no endereço de memória do registrador. Dependendo do tipo de controladora pode fazer mapeamento em memória, com comandos iguais aos utilizados para mapear RAM, outros tem uma mapeamento de entrada e saída que utiliza alguns comandos diferentes.
* E/S programada
É mais simples de implementar, mais leve, mas tem busy waiting, enquanto as controladoras estão ocupadas o processador fica esperando elas terminarem para então passar ao próximo tarefa.
* E/S orientada a interrupção
Processa outras tarefas enquanto aguarda a controladora terminar sua atividade, é avisado via interrupções.
* DMA - Acesso direto a memória
É uma maneira de diminuir o número de interrupções, fazendo isso após executar uma gama de comandos como a leitura de vários blocos em um HD, no normal faz uma interrupção a cada bloco lido.
Gerência de entrada e saída
Tem como objetivo a eficiência, generacidade é importante, esconder os detalhes do serviço de entrada e saída em camadas de baixo nível, ...
*** Os driver são instalados na camada do sistema operacional, podemos dizer que é o manual que o SO olha pra saber como usar as controladoras, e os drivers possuem direitos de execução administrativos (são inseridos no kernel) podendo causar panes nos sistemas quando mal desenvolvidos. Placas de vídeos tem alguns fabricantes alternativos que visam tirar mais das placas e lançam versões de driver não oficiais e esculhambam o sistema. O ideal é utilizar drivers homologados pelo fabricante do sistema operacional além da homologação do desenvolvedor do periférico.
* Subsitema de entrada e saída
É aquela porção do núcleo do SO que controla a parte independente e interage com o driver de dispositivo.
Tem como funcionalidades básicas:
- Escalonamento de E/S:
- Bufferização:
- Cache:
- Spooling:
- Reserva de dispositivos:
*** Buffer armazena somente dados somente enquanto está utilizando e já libera memória, cache mantém os dados enquanto houver memória disponível, quando acaba vai liberando os dados mais antigos a medida que necessita de mais.
* Interface de programação
- Bloqueante:
- Não bloqueante:
- Assíncrono:
... continua próxima aula ...
### Aula que vem acaba capítulo 5 e teremos uma revisão, na outra semana jé é prova. Pra prova pode levar uma folha A4 com anotações feitas a mão para consulta.
Utilizando o Solver Excel para Programação Fina
Em Sistemas de Produção estamos estudando muitas coisas bem legais, algumas realmente complexas e, por isso mesmo, bastante divertidas. Entre elas, depois de ver MRP, Plano Agregado, MRP II, agora estamos estudando Sequenciamento ou Programação Fina, que é a definição de qual a melhor sequencia de produção ou de utilização das máquinas conforme alguns critérios como tempo médio de atraso na entrega.
Bom, voltando ao assunto do título do post, pra distribuir tarefas de modo a minimizar o tempo total de execução podemos utilizar um complemento do Excel chamado Solver, para instalar clique no botão do Office bem no topo esquerdo e clique em Opções do Excel, vai abrir a seguinte janela.
Bom, com o complemento instalado, ele vai aparecer na aba Dados -> Análise -> Solver. Antes de utilizarmos o Solver precisamos montar uma estrutura no Excel para resolvermos nosso problema, digamos que a matriz abaixo mostra os custos em milhares de dólares na atribuição de trabalhos aos indivíduos A, B, C e D para as tarefas 1, 2, 3 e 4 e nós queremos descobrir qual a melhor atribuição final para minimizar os custos.
Cada indivíduo vai fazer um trabalho (apenas 1 por linha) e cada trabalho deve ser feito somente uma vez (apenas 1 por coluna), essa são nossas restrições. Vamos começar por ai, crie duas matrizes novas do mesmo tamanho dessa inicial (4x4), deixe uma em branco e na outra crie as restrições conforme imagem abaixo. Para criar as restrições utilize a função do Excel SOMARPRODUTO que faz a multiplicação e adição dos valores nas linhas das matrizes selecionadas.
Após ter definido as restrições, precisa fazer isso pra usar o Solver, utilize a mesma função SOMARPRODUTO mas desta vez para nossa "função Objetivo", selecione a matriz inicial com os custos e também a que está vazia, deve ficar zero. Salve a planilha Excel.
Agora vamos achar a solução para este problema com o Solver, clique em Solver na aba Dados, na janela que abrir, defina a célula de destino a célula que temos o resultado do somarProduto ao lado de "Função Objetivo" e marque "Igual a " * Mín. Nas células variáveis selecione a matriz em branco, que é onde o Solver vai preencher para nós de maneira que tenhamos o mínimo de custo.
Agora vamos configurar as restrições no Solver, para isso clique no botão "Adicionar", na janela que abrir selecione as restrições conforme figura abaixo.
Após adicionar as restrições, clique em Opções na janela do Solver e marque a opção "Presumir modelo linear" para resolver este tipo de problema.
Agora basta clicar em Resolver e rezar pra não dar pau no Excel, pra mim ele ainda não conseguiu ir até o fim, mas ai clico em "Manter solução do solver" e consigo ver o que ele conseguiu fazer pra mim.
Bom, meu resultado final foi 17 milhões, veja planilha.
Bem, pode notar que ele respeitou as restrições e conseguiu chegar a um resultado minizando os custos, fazer com apenas 4 indivíduos e 4 trabalhos eu até me arriscava fazer no olho, mas imagina fazer algo com 100 máquinas e 100 trabalhos, ai melhor usar o Solver mesmo!
Depois de ler A Meta, Corrente Crítica e estar estudando essa cadeira de Sistemas de Produção estou gostando desse tipo de sistema, acho que vale a pena desenvolver algo na área, talvez com IA, idéias pro meu TCC ano que vem, alguma sugestão?
Abraços!
Bom, voltando ao assunto do título do post, pra distribuir tarefas de modo a minimizar o tempo total de execução podemos utilizar um complemento do Excel chamado Solver, para instalar clique no botão do Office bem no topo esquerdo e clique em Opções do Excel, vai abrir a seguinte janela.
Opções do Excel -> Suplementos -> Solver -> Ir |
Marcou Solver, clicar em Ok e aguardar a instalação. |
Bom, com o complemento instalado, ele vai aparecer na aba Dados -> Análise -> Solver. Antes de utilizarmos o Solver precisamos montar uma estrutura no Excel para resolvermos nosso problema, digamos que a matriz abaixo mostra os custos em milhares de dólares na atribuição de trabalhos aos indivíduos A, B, C e D para as tarefas 1, 2, 3 e 4 e nós queremos descobrir qual a melhor atribuição final para minimizar os custos.
Custos em milhares |
Cada indivíduo vai fazer um trabalho (apenas 1 por linha) e cada trabalho deve ser feito somente uma vez (apenas 1 por coluna), essa são nossas restrições. Vamos começar por ai, crie duas matrizes novas do mesmo tamanho dessa inicial (4x4), deixe uma em branco e na outra crie as restrições conforme imagem abaixo. Para criar as restrições utilize a função do Excel SOMARPRODUTO que faz a multiplicação e adição dos valores nas linhas das matrizes selecionadas.
Crie restrições na linha e na coluna! |
Função objetivo, vai nos dizer o custo final |
Agora vamos configurar as restrições no Solver, para isso clique no botão "Adicionar", na janela que abrir selecione as restrições conforme figura abaixo.
Executar cada tarefa apenas uma vez e cada pessoa executar uma tarefa. |
Também os valores que serão preenchidos devem ser binários, apenas 0 ou 1. |
Após adicionar as restrições, clique em Opções na janela do Solver e marque a opção "Presumir modelo linear" para resolver este tipo de problema.
Parâmetros do Solver |
Bom, meu resultado final foi 17 milhões, veja planilha.
Resultados |
Depois de ler A Meta, Corrente Crítica e estar estudando essa cadeira de Sistemas de Produção estou gostando desse tipo de sistema, acho que vale a pena desenvolver algo na área, talvez com IA, idéias pro meu TCC ano que vem, alguma sugestão?
Abraços!
Dicas Computação Gráfica - Luz
Anotações durante atividades da aula de hoje...
Para fazer uma luz ter menos intensidade você seleciona ela,
vai ao lado direito a modificar e clica no quadrado branco que tem na aba intensidade,
vai abrir pra selecionar a cor da luz, ai coloca mais escuro pra ela ficar mais
fraca.
Para o ambiente ficar com uma aparência mais real vai no
menu Rendering->Environment (8), na janela que abrir, em Athmosfere você clica
em Add -> Volume Light, logo abaixo em Volume Light Parameters clique no
botão PickLight e selecione a sua luz tipo target, meu caso Spot01.
Para tirar a sombra de uma luz em um objeto, selecione a luz
e vá em modificar, clique em Exclude.., na janela que abrir basta passar para
lista de exclusão os objetos desejados.
Pra gerar um vídeo, pressione F10 ou vá ao menu Rendering -> Render Setup e na janela que abrir, marque os frames que quer gerar o vídeo, mais abaixo selecione Save File em Render Output, clique em Files para selecionar local e nome arquivo, também selecione o tipo de arquivo para AVI a pode alterar a compressão em Setup. Feito isso só clicar em Render. Vai gerar o video da visão que você estava trabalhando, mas também pode selecionar uma camera ou outra visão antes de renderizar.
E abaixo o video que gerei...
Assinar:
Postagens (Atom)