O documento discute logs e o padrão PSR-3 para logs. Apresenta a biblioteca Monolog que implementa o PSR-3 e permite enviar logs para arquivos, e-mail, bases de dados e outros destinos. Detalha os diferentes níveis de log, handlers, formatters e processors disponíveis no Monolog.
Sempre é bom ter mais tempo para fazer as coisas, então por que não automatizar algumas delas? Com o aumento da demanda e cada vez menos tempo, cada segundo conta e automatizar as coisas ajuda a ganhar tempo e a ter mais controle.
React e Ratchet, async e websockets com PHP, por Gabriel CoutoiMasters
Gabriel Couto, CTO e Founder da R3C, falou sobre 'React e Ratchet, async e websockets com PHP' no iMasters PHP Experience 2015.
O iMasters PHP Experience 2015 aconteceu dia 25 de Abril de 2015, no Hotel Renaissance em São Paulo-SP - http://phpexperience.imasters.com.br/
Sempre é bom ter mais tempo para fazer as coisas, então por que não automatizar algumas delas? Com o aumento da demanda e cada vez menos tempo, cada segundo conta e automatizar as coisas ajuda a ganhar tempo e a ter mais controle.
React e Ratchet, async e websockets com PHP, por Gabriel CoutoiMasters
Gabriel Couto, CTO e Founder da R3C, falou sobre 'React e Ratchet, async e websockets com PHP' no iMasters PHP Experience 2015.
O iMasters PHP Experience 2015 aconteceu dia 25 de Abril de 2015, no Hotel Renaissance em São Paulo-SP - http://phpexperience.imasters.com.br/
Neste talk você vai aprender alguns hacks de JavaScript úteis na prática. Entendendo quando e como usá-las de forma que torne suas aplicações JavaScript/Meteor/Node.js mais rápidas.
Workshop de introdução ao rápida a linguagem JavaScript, a plataforma Node.js e o framework Socket.IO.
Nesta talk é apresentado suas principais características, de forma prática, contando um exercício sobre orientação a objetos com javascript e um exercício sobre criação de um microblog realtime usando Socket.IO.
Node.js - #3 - Global Objects - Rodrigo BranasRodrigo Branas
Nesta apresentação, vamos falar sobre os Global Objects.
Não deixe de assistir a série no YouTube, em: https://www.youtube.com/watch?v=KtDwdoxQL4A&list=PLQCmSnNFVYnTFo60Bt972f8HA4Td7WKwq
Aula referente ao uso de funções para envio de e-mails, além do conceito de Cookies e Sessões em PHP. Controle de acesso a páginas e de conteúdo identificado por usuário.
Como utilizar Profilers para analisar Apps Django. Quando necessário otimizar a performance de uma App, é importante saber onde otimizar, não dispendando tempo para otimizar funções raramente usadas ou que não sejam o real problema, é preciso saber em que parte do programa a maior parte do tempo é gasto.
Este foi o Desafio dos 15 minutos no II Encontro do PHP-PB concorrendo ao elePHPant e que, mesmo na pressa de fazê-lo rapidamente, levou o grande prêmio para casa.
Desenvolvendo mobile apps modernas e matadoras com IONIC, utilizando todos os recursos disponíveis como geolocalização, notificações push, camera e muito mais.
Neste talk você vai aprender alguns hacks de JavaScript úteis na prática. Entendendo quando e como usá-las de forma que torne suas aplicações JavaScript/Meteor/Node.js mais rápidas.
Workshop de introdução ao rápida a linguagem JavaScript, a plataforma Node.js e o framework Socket.IO.
Nesta talk é apresentado suas principais características, de forma prática, contando um exercício sobre orientação a objetos com javascript e um exercício sobre criação de um microblog realtime usando Socket.IO.
Node.js - #3 - Global Objects - Rodrigo BranasRodrigo Branas
Nesta apresentação, vamos falar sobre os Global Objects.
Não deixe de assistir a série no YouTube, em: https://www.youtube.com/watch?v=KtDwdoxQL4A&list=PLQCmSnNFVYnTFo60Bt972f8HA4Td7WKwq
Aula referente ao uso de funções para envio de e-mails, além do conceito de Cookies e Sessões em PHP. Controle de acesso a páginas e de conteúdo identificado por usuário.
Como utilizar Profilers para analisar Apps Django. Quando necessário otimizar a performance de uma App, é importante saber onde otimizar, não dispendando tempo para otimizar funções raramente usadas ou que não sejam o real problema, é preciso saber em que parte do programa a maior parte do tempo é gasto.
Este foi o Desafio dos 15 minutos no II Encontro do PHP-PB concorrendo ao elePHPant e que, mesmo na pressa de fazê-lo rapidamente, levou o grande prêmio para casa.
Desenvolvendo mobile apps modernas e matadoras com IONIC, utilizando todos os recursos disponíveis como geolocalização, notificações push, camera e muito mais.
Nesta palestra Maujor mostra alguns exemplos de sintaxe para inserção de imagens responsivas com uso do elemento PICTURE. A teoria é complementada com exemplos práticos.
7Masters jQuery - Acessibilidade com jQuery Validate, com Deivid MarquesiMasters
Deivid Marques falou sobre como deixar formulários acessíveis com o jQuery Validate. Ele é Desenvolvedor front-end na Locaweb; organizador da Conferência CSS Brasil e do Front In Sampa.
Quantas vezes você já teve que priorizar itens no backlog sem saber direito quanto de valor agregaria para o produto? O objetivo desta palestra é prover ferramentas para que você consiga transformar a percepção de importância dos seus stakeholders (aqueles que querem aquela feature "para ontem") em algo mensurável e fácil de priorizar frente aos demais itens do backlog. As técnicas mostradas nesta palestra vêm se provando um diferencial para ajudar POs e stakeholders a colocar as prioridades em perspectiva, e reduzir o atrito no processo de refinamento e priorização dos itens de backlog.
7Masters jQuery - jQuery além do código, com Leon KulikowskiiMasters
Leon Kulikowski é desenvolvedor mobile, front-end e Solutions Consultant da Adobe. Nesta edição do 7Masters ele levou o jQuqery para além do código e falou sobre inovação, replicação de conhecimento e zona de conforto.
#NoEndState : Plataformas, Produtores e Interfaces no Product tank meetupPedro Donati
Há uma nova economia de mercado. Você será Plataforma, Produtor ou Interface ?
Porque as empresas são como são e como abordar #NoEndState (não existe mais end-state, vivemos em constante transition state)
Pense produtos pelo propósito e não pelo produto. O que importa não é o que você criou mas o que ele mudou no mercado.
Apresentado no QConSP 2016 por Eiti Kimura e Fernando Gonçalves
Muito se tem falado em ingestão e processamento de grandes volumes de dados, mas há ainda muito a se fazer quanto à arquitetura de sistemas distribuídos capazes de realizar esse feito, assim como as ferramentas de apoio.
Desde 2009 a Movile adotou o banco NoSQL Apache Cassandra como uma de suas soluções para dados. E desde então trabalha na evolução de suas plataformas. Com base em 6 anos nas trincheiras do desenvolvimento, vamos compartilhar como sistemas de arquitetura simples tiveram que evoluir para acompanhar o crescimento exponencial da empresa.
Mostraremos os desafios da adoção do Cassandra (e de NoSQL em geral) em sistemas críticos de alto desempenho, processando bilhões de transações por dia. Vamos mostrar também os problemas enfrentados, o que deu certo, o que deu errado e o que aprendemos com isso.
Palestra apresentada por mim, Felipe Ribeiro, na PHP Conference Brasil 2009 mostrando os novos recursos do PHP 5.3 no que diz respeito a estruturas de dados
Como lidar com dados temporais e intervalos com a linguagem SQLpichiliani
A manipulação de dados por meio de intervalos de datas é uma das poucas tarefas na qual a linguagem SQL não é muito útil. O motivo é operações como intersecção , precedência, combinação e operações relacionadas a intervalos de datas requerem a construções de instruções SQL muito complexas e com pouca manutenabilidade. Esta palestra vai apresentar os principais problemas relacionados à pesquisas por intervalos de data e explicar porquê a linguagem SQL não é adequada para lidar com eles. Em seguida a palestra vai se conentrar nas soluções existentes, incluindo as extensões da linguagem SQL para manipulação de data, interfaces para ferramentas OLAP e ferramentas específicas para pesquisas por intervalo.
Como o ViajaNet aumentou suas vendas com SEOConversion
Como o ViajaNet aumentou suas vendas com SEO - Rafael Medeiros é Chief Performance Officer (CPO) da Conversion, graduou-se pela Universidade de São Paulo (USP) e é certificado PMP/PMI; Gustavo Mariotto, gerente de marketing, participou da fundação do site de venda de passagens aéreas ViajaNet. Especialista em Marketing Digital, possui vasta experiência em SEO, SEM, CRM e programa de afiliados.
Gustavo Mariotto e Rafael Medeiros irão apresentar o case de sucesso da ViajaNet, que por meio do SEO conseguiu se estabelecer e aumentar suas vendas em um dos mercados mais concorridos do e-commerce, o de venda de passagens aéreas.
Não basta acrescentar media-queries em seu projeto web para torná-lo responsivo. Neste painel o campuseiro poderá repensar o Design, tendo como foco a interação do usuário em diferentes cenários e devices, além do impacto no Front-end dessas adaptações.
Códigos utilizados nessa palestra:
https://github.com/gmsantos/tdc-php-logs
Vamos entender importância dos logs e como eles podem ser utilizados além de uma forma de debug. Vamos conhecer níveis de criticidade definidos pela PSR-3, como funciona o Monolog e como podemos configurá-lo para permitir um melhor aproveitamento dos logs gerados pelas nossas aplicações.
Implementando PSR-3 com Monolog @ PHP Community Summit 2019Gabriel Machado
Acompanhe as atualizações desse workshop nos repositórios abaixo:
https://github.com/gmsantos/tdc-php-logs
https://github.com/gmsantos/url-shortener
Nesse workshop vamos entender importância dos logs e como eles podem ser utilizados além de uma forma de debug. Vamos conhecer níveis de criticidade definidos pela PSR-3, como funciona o Monolog e como podemos configurá-lo para permitir um melhor aproveitamento dos logs gerados pelas nossas aplicações.
Veremos tudo isso implementado em um projeto de exemplo onde esses logs serão enviados para uma cluster ELK (Elasticsearch, Logstash e Kibana) para analise através de dashboards do Kibana.
Como ser programador durante o dia e mesmo assim dormir bem à noiteComunidade NetPonto
Apresentação do Bruno Lopes sobre variados temas como instrumentação, profiling, logging e boas práticas de programação e desenvolvimento de software, incluindo lições tiradas do processo de desenvolvimento, manutenção e suporte à produção de várias aplicaçoes e produtos, na 2a Reunião Presencial da Comunidade NetPonto (http://netponto.org) no Porto.
Como usar plugins, ferramentas da linguagem PHP, e a linha de comando para identificar e corrigir problemas de lógica ou gargalos de performance. Analise fluxo de código, consultas ao banco, consumo de recursos, ações e filtros, qual arquivo em uso, e muito mais.
A palestra tem como objetivo mostrar ferramentas do mercado atual, como editores, funções úteis, micro-frameworks e algumas boas práticas que agilizem o processo de codificação. Apresentada na PHP Conference de 2013 - Osasco SP.
Códigos utilizados nessa palestra:
https://github.com/gmsantos/tdc-php-logs
Vamos entender importância dos logs e como eles podem ser utilizados além de uma forma de debug. Vamos conhecer níveis de criticidade definidos pela PSR-3, como funciona o Monolog e como podemos configurá-lo para permitir um melhor aproveitamento dos logs gerados pelas nossas aplicações.
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Tchelinux
O objetivo da palestra é explicar como compreender os principios básicos de construção de aplicativos em php, e mostrar como é rápido o desenvolvimento com este framework.
Go e Microserviços - Nascidos um para o outroElton Minetto
Nesta palestra apresento uma introdução à linguagem Go, com suas características, vantagens e porque ela se tornou uma das mais usadas para o desenvolvimento de projetos baseados na arquitetura de microserviços .
Em seu livro "Clean Architecture: A Craftsman's Guide to Software Structure and Design" o famoso autor Robert "Uncle Bob" Martin apresenta uma arquitetura com alguns pontos importantes como testabilidade e independência de frameworks, bancos de dados e interfaces.
Nesta apresentação vou mostrar exemplos de como aplicar estes conceitos em projetos escritos em Golang e PHP
Nesta palestra vou mostrar os desafios para modernizar um projeto usando conceitos como API Gateway, Webhooks e eventos. Vou apresentar o caso de sucesso de um de nossos clientes e como resolvemos estes e outros desafios usando Zend Expressive 2, containers e testes automatizados.
Os 12 fatores são uma lista de boas práticas que projetos e times podem aplicar para rodar seus aplicativos na núvem Nesta palestra vou apresentar cada um dos fatores, suas vantagens e como aplicá-los em projetos PHP
2. About
Graduação em Ciência de Computação pela Unochapecó e
especialização em Ciência da Computação pela UFSC/UNOESC.
Autor do livro Frameworks para Desenvolvimento em PHP, co-autor
do livro Grid Computing in Research and Education e autor dos e-
books Zend Framework na prática, Zend Framework 2 na prática,
Iniciando com o Zend Framework 2 e Doctrine na Prática.
É co-fundador da Coderockr e do Planrockr
eminetto@gmail.com
3. • O que gera logs?
• aplicações
• infra
• algumas ferramentas externas : stats, CI, etc
• Qual o propósito?
• acompanhar ocorrência de eventos
• debug
• segurança
• ações ligadas ao negócio
• Quem usa os logs e para que?
• Ter um grande log ou múltiplos?
5. PSR-3
A LoggerInterface define 8 métodos para escrevermos logs
Emergency – o sistema não está operante
Alert – ação imediata é requerida
Critical – condições críticas
Error – erros que não requerem ação imediata mas que devem ser monitorados
Warning – ocorrências fora do normal mas que não são erros
Notice – eventos normais mais significantes
Info – eventos interessantes
Debug – informações detalhadas para debug
6. Monolog
O Monolog é uma biblioteca compatível com o PSR-3 criada pelo
Jordi Boggiano (também criador do Composer)
https://github.com/seldaek/monolog
Permite enviar logs para arquivos, sockets, e-mail, bases de dados e
outros serviços.
"Handlers" especiais permitem construir estratégias avançadas de log
7. Arquitetura
• Handler
• Transporta a informação para o destino
• Formatter
• Transforma o evento de log em algo que pode ser compreendido
pelo handler
• Processor
• Adiciona informações extras ao evento de log (Memory usage,
Request information, Environment details)
11. <?php
include __DIR__.'/vendor/autoload.php';
// log channel
$log = new MonologLogger('SimpleDemoLetsLog');
//handler
$log->pushHandler(new MonologHandlerStreamHandler('/tmp/monolog.log', MonologLogger::WARNING));
$browserConsoleHandler = new MonologHandlerBrowserConsoleHandler();
$browserConsoleHandler->setFormatter(new MonologFormatterJsonFormatter());
$log->pushHandler($browserConsoleHandler);
//processor
$log->pushProcessor(new MonologProcessorIntrospectionProcessor());
$log->pushProcessor(new MonologProcessorMemoryUsageProcessor());
$log->pushProcessor(new MonologProcessorProcessIdProcessor());
$log->pushProcessor(new MonologProcessorWebProcessor());
// add records to the log
$log->warning('Aviso');
$log->error('Erro');
echo "Hello, Monolog!";
12. Handlers
Salvam log para arquivos e syslog
• StreamHandler: Salva para streams de PHP, geralmente arquivos
• RotatingFileHandler: Salva em arquivo e automaticamente cria um
por dia, apagando os antigos após $maxFiles
• SyslogHandler: Envia os registros para o syslog.
• ErrorLogHandler: Usa a função nativa do PHP error_log()
13. Handlers
Enviam alertas e e-mails
• NativeMailerHandler: Usa a função nativa mail()
• SwiftMailerHandler: Envia e-mail usando o Swift_Mailer
• HipChatHandler: Envia os registros para o HipChat
• SlackHandler: Envia os registros para o Slack
14. Handlers
Enviam registros para servidores de rede
• SocketHandler: Envia usando sockets UNIX ou TCP
• ZendMonitorHandler: Envia para o Zend Server
• AmqpHandler: Envia para o RabbitMQ usando a extensão php-amqp
• GelfHandler, CubeHandler, RavenHandler, NewRelicHandler,
LogglyHandler, RollbarHandler, SyslogUdpHandler,
LogEntriesHandler.
15. Handlers
Log em ambiente de desenvolvimento
• FirePHPHandler: Envia registros para a extensão FirePHP do Firefox
• ChromePHPHandler: Envia registros para o Chrome
• BrowserConsoleHandler: Envia os dados para o console JavaScript
de qualquer navegador, sem a necessidade de extensões
16. Handlers
Log em base de dados
• RedisHandler, MongoDBHandler, CouchDBHandler,
DoctrineCouchDBHandler, ElasticSearchHandler,
DynamoDbHandler