O documento descreve o processo de integração contínua para projetos PHP utilizando as ferramentas CruiseControl, phpUnderControl, PHPUnit, PHP_CodeSniffer e phpDocumentor. O resumo apresenta os principais pontos sobre como configurar e utilizar essas ferramentas para automatizar builds, execução de testes, análise de código e geração de relatórios e métricas.
Integração Contínua com CruiseControl e phpUnderControlDiego Tremper
O documento descreve as ferramentas de integração contínua CruiseControl e phpUnderControl, explicando sua instalação e configuração para automatizar builds de projetos PHP. Também discute como essas ferramentas permitem geração de documentação, execução de testes, análise de código e métricas.
Integração Contínua com Cruise Control e phpUnderControlDiego Tremper
O documento descreve a integração contínua para projetos PHP usando as ferramentas CruiseControl, phpUnderControl, PHPUnit, PHP_CodeSniffer e phpDocumentor. O objetivo é integrar frequentemente o código, executar testes automatizados e gerar métricas e documentação a cada build para detectar problemas de integração rapidamente.
Este documento fornece instruções para instalação e configuração do framework Ruby on Rails, incluindo como instalar Ruby, RubyGems, Rails, PostgreSQL e bibliotecas, criar banco de dados e tabelas, gerar scaffolds, configurar servidor web e mais.
Minicurso Play Framework - Tão fácil que nem parece JavaWandesson Soares
O documento fornece informações sobre um minicurso sobre o framework Play para desenvolvimento web Java. O minicurso terá duração de 3 horas e ensinará os conceitos básicos do Play para que os participantes possam construir uma aplicação simples de CRUD. O documento explica características do Play como arquitetura, facilidade de uso, templates em Scala e casos de uso reais.
Este documento fornece informações sobre:
1) Linguagem dinâmica Groovy, arquitetura MVC, mapeamento objeto-relacional Hibernate e convenção sobre configuração no Grails;
2) Princípios do Grails como DRY, YAGNI e KISS;
3) Grails como uma plataforma full-stack que fornece servidor web e banco de dados.
Apresentação feita no MeetUp do SouJava Campinas.
Nessa apresentação explicamos os conceitos básicos de Gradle utilizando diversos exemplos. No final apresentamos algumas características que fazem de Gradle uma ótima opção para usar no seu próximo projeto.
Exemplos disponíveis em: https://github.com/wrpinheiro/gradle-soujava-meetup
Este documento fornece um resumo sobre o framework Grails:
1) Grails é um framework para desenvolvimento web baseado em Java que utiliza a linguagem Groovy;
2) Ele permite alta produtividade através de convenções que eliminam a necessidade de configuração;
3) Grails usa o padrão MVC e o ORM Hibernate para mapear classes de domínio em tabelas do banco de dados.
O documento apresenta uma introdução rápida sobre o Apache Maven, incluindo sua história, propósito, instalação, configuração, criação de um projeto Java simples utilizando Maven e execução de testes no projeto gerado.
Integração Contínua com CruiseControl e phpUnderControlDiego Tremper
O documento descreve as ferramentas de integração contínua CruiseControl e phpUnderControl, explicando sua instalação e configuração para automatizar builds de projetos PHP. Também discute como essas ferramentas permitem geração de documentação, execução de testes, análise de código e métricas.
Integração Contínua com Cruise Control e phpUnderControlDiego Tremper
O documento descreve a integração contínua para projetos PHP usando as ferramentas CruiseControl, phpUnderControl, PHPUnit, PHP_CodeSniffer e phpDocumentor. O objetivo é integrar frequentemente o código, executar testes automatizados e gerar métricas e documentação a cada build para detectar problemas de integração rapidamente.
Este documento fornece instruções para instalação e configuração do framework Ruby on Rails, incluindo como instalar Ruby, RubyGems, Rails, PostgreSQL e bibliotecas, criar banco de dados e tabelas, gerar scaffolds, configurar servidor web e mais.
Minicurso Play Framework - Tão fácil que nem parece JavaWandesson Soares
O documento fornece informações sobre um minicurso sobre o framework Play para desenvolvimento web Java. O minicurso terá duração de 3 horas e ensinará os conceitos básicos do Play para que os participantes possam construir uma aplicação simples de CRUD. O documento explica características do Play como arquitetura, facilidade de uso, templates em Scala e casos de uso reais.
Este documento fornece informações sobre:
1) Linguagem dinâmica Groovy, arquitetura MVC, mapeamento objeto-relacional Hibernate e convenção sobre configuração no Grails;
2) Princípios do Grails como DRY, YAGNI e KISS;
3) Grails como uma plataforma full-stack que fornece servidor web e banco de dados.
Apresentação feita no MeetUp do SouJava Campinas.
Nessa apresentação explicamos os conceitos básicos de Gradle utilizando diversos exemplos. No final apresentamos algumas características que fazem de Gradle uma ótima opção para usar no seu próximo projeto.
Exemplos disponíveis em: https://github.com/wrpinheiro/gradle-soujava-meetup
Este documento fornece um resumo sobre o framework Grails:
1) Grails é um framework para desenvolvimento web baseado em Java que utiliza a linguagem Groovy;
2) Ele permite alta produtividade através de convenções que eliminam a necessidade de configuração;
3) Grails usa o padrão MVC e o ORM Hibernate para mapear classes de domínio em tabelas do banco de dados.
O documento apresenta uma introdução rápida sobre o Apache Maven, incluindo sua história, propósito, instalação, configuração, criação de um projeto Java simples utilizando Maven e execução de testes no projeto gerado.
O documento resume os principais conceitos do framework Grails e da linguagem Groovy. Em 3 frases:
Groovy é uma linguagem dinâmica e orientada a objetos que roda na máquina virtual Java, oferecendo recursos modernos e sintaxe mais limpa em comparação ao Java. Grails é um framework para desenvolvimento web baseado em Groovy que elimina a necessidade de código boilerplate e arquivos de configuração complexos, provendo um modelo convencional para o desenvolvimento rápido de aplicações web. Grails utiliza o framework Spring e o ORM Hibernate para
Descrição introdutória de uma arquitetura para o desenvolvimento de aplicações web com funcionalidades offline.
Tecnologias envolvidas: HTML5, Javascript, Handlebards, etc.
Criando uma grid para execução de testes paralelo com AppiumElias Nogueira
Este documento descreve como criar uma "grid" para execução paralela de testes automatizados usando o Appium. A grid conecta vários dispositivos móveis a um único controlador para permitir que testes sejam executados simultaneamente em diferentes dispositivos, melhorando a cobertura e reduzindo o tempo de execução. O documento discute os desafios da fragmentação de plataformas, como configurar o Selenium Grid e nós, e como escrever testes para aproveitar a execução paralela.
O documento fornece instruções sobre como compilar e gerar um projeto Java usando Maven. Explica como chamar fases e goals do Maven, criar um projeto Maven no Eclipse, estrutura padrão de pastas de um projeto Maven e como converter um projeto existente para Maven.
O documento descreve as principais características do framework Grails:
1) Grails é um framework para desenvolvimento web baseado em Java que utiliza convenções ao invés de configurações;
2) Grails permite aumentar a produtividade dos desenvolvedores ao reduzir a complexidade de projetos Java/JEE através do uso do Spring Framework e Hibernate;
3) Grails possui características como GORM, scaffolding, internacionalização e testes que facilitam o desenvolvimento rápido de aplicações web.
Maven é uma ferramenta de gerenciamento e compreensão de projetos Java que fornece convenções sobre configuração, gerenciamento de dependências e repositórios centrais. Ele permite criar projetos Java usando templates, executar builds automatizados e gerenciar o ciclo de vida do projeto.
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTelliando dias
O documento apresenta um workshop sobre ferramentas de automação no desenvolvimento como ANT e Maven. Ele discute os conceitos e funcionalidades dessas ferramentas, incluindo vantagens e desvantagens, configuração, dependências, testes, documentação e integração com outras ferramentas.
Este documento apresenta as principais tecnologias do framework MEAN (MongoDB, Express, AngularJS e Node.js). Ele discute como construir uma aplicação utilizando essas tecnologias e mostra passo-a-passo a instalação e configuração do ambiente de desenvolvimento com essas ferramentas.
Introdução a Grails: Um framework veloz e poderosoBruno Lopes
Nesta apresentação são abordados os principais aspectos e vantagens da utilização do framework Grails no desenvolvimento de sistemas web. Um pequeno exemplo de sistema é mostrado, permitindo que o público tenha ideia de como é programar em Grails, e são ressaltadas suas diferenças em relação ao JSF.
Rodrigo Branas é um especialista em Java com mais de 10 anos de experiência. Ele possui diversas certificações como SCJA, SCJP, PMP e é instrutor na Academia Java e Agile da Globalcode, onde ministra treinamentos sobre Clean Code, Selenium e Maven. Branas também trabalhou como líder de desenvolvimento na Gennera e já palestrou em diversos eventos sobre temas relacionados a desenvolvimento Java.
Nesta palestra vamos abordar formas de criar um ambiente de desenvolvimento de software mais ágil por meio da utilização e integração das ferramentas Maven 3, Sonar e Hudson. Com isso é possível estímular a eliminação de atividades repetitivas dentro do processo de desenvolvimento além de auxiliar na redução de defeitos e aumentar a qualidade do código produzido. A palestra é montada em ferramentas feitas para a plataforma Java.
O documento apresenta uma introdução sobre Ionic 3 e Firebase. Discute brevemente Angular 4 e Ionic antes de explicar como configurar autenticação no Firebase usando Facebook e integrar um banco de dados Firebase em um projeto Ionic.
O documento descreve o framework Grails para desenvolvimento web ágil utilizando Java e Groovy. Grails permite alta produtividade através de programação por convenção, é completo e evita repetições de código.
O documento descreve (1) a sintaxe do arquivo ".feature" no Cucumber, (2) como começar com testes de aceitação legíveis para todas as partes interessadas, e (3) como o Cucumber funciona lendo arquivos de texto ".feature" e executando cenários neles descritos.
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2Cezar Souza
Este documento apresenta um cronograma para desenvolver um blog utilizando o framework Zend Framework 2 (ZF2). Ele inclui instruções para configurar o ambiente de desenvolvimento, criar os módulos e componentes do blog, como models, controllers e views, e implementar funcionalidades como autenticação, permissões e comentários.
O documento discute o Apache DeltaSpike, um conjunto de extensões portáteis para o CDI que fornece funcionalidades úteis para aplicações Java. O DeltaSpike inclui módulos como segurança, JPA, JSF e agendamento de tarefas. Ele permite injeção de dependência tipada, configuração de projeto, recursos injetáveis e internacionalização de mensagens. O DeltaSpike facilita o desenvolvimento Java usando o CDI sem ser um framework completo.
O documento apresenta uma introdução à linguagem JavaScript e à stack MEAN (MongoDB, Express, Angular e Node.js). Em 3 frases:
1) Apresenta os conceitos básicos de JavaScript como variáveis, tipos, operadores, funções e objetos.
2) Explica o que é Node.js e como usar JavaScript no backend para construir aplicações web fullstack.
3) Introduz os principais componentes da stack MEAN para desenvolvimento de aplicações web e mobile usando MongoDB, Express, Angular e Node.
Integração Contínua com CVS, CruiseControl, AntHill, GumpDenis L Presciliano
O documento apresenta três ferramentas de integração contínua - CruiseControl, AntHill e Gump - que combinam Ant, JUnit e sistemas de controle de versão como CVS. É descrito o funcionamento do CVS e como ele é usado com Ant. As ferramentas automatizam a compilação e teste do código-fonte sempre que novos commits são feitos no repositório.
Desenvolvimento Web Avançado usando PHPelliando dias
Este documento fornece uma introdução aos conceitos básicos de PHP, orientação a objetos em PHP, frameworks AJAX e PHP, bancos de dados MySQL, modelagem de banco de dados e padrões para desenvolvimento web.
O documento apresenta o framework PHP Zend Framework, descrevendo suas principais características como arquitetura MVC, componentes, vantagens e exemplos de uso. O autor é um engenheiro certificado pela Zend que discute como o framework torna o desenvolvimento web mais rápido e simplificado.
O documento resume os principais conceitos do framework Grails e da linguagem Groovy. Em 3 frases:
Groovy é uma linguagem dinâmica e orientada a objetos que roda na máquina virtual Java, oferecendo recursos modernos e sintaxe mais limpa em comparação ao Java. Grails é um framework para desenvolvimento web baseado em Groovy que elimina a necessidade de código boilerplate e arquivos de configuração complexos, provendo um modelo convencional para o desenvolvimento rápido de aplicações web. Grails utiliza o framework Spring e o ORM Hibernate para
Descrição introdutória de uma arquitetura para o desenvolvimento de aplicações web com funcionalidades offline.
Tecnologias envolvidas: HTML5, Javascript, Handlebards, etc.
Criando uma grid para execução de testes paralelo com AppiumElias Nogueira
Este documento descreve como criar uma "grid" para execução paralela de testes automatizados usando o Appium. A grid conecta vários dispositivos móveis a um único controlador para permitir que testes sejam executados simultaneamente em diferentes dispositivos, melhorando a cobertura e reduzindo o tempo de execução. O documento discute os desafios da fragmentação de plataformas, como configurar o Selenium Grid e nós, e como escrever testes para aproveitar a execução paralela.
O documento fornece instruções sobre como compilar e gerar um projeto Java usando Maven. Explica como chamar fases e goals do Maven, criar um projeto Maven no Eclipse, estrutura padrão de pastas de um projeto Maven e como converter um projeto existente para Maven.
O documento descreve as principais características do framework Grails:
1) Grails é um framework para desenvolvimento web baseado em Java que utiliza convenções ao invés de configurações;
2) Grails permite aumentar a produtividade dos desenvolvedores ao reduzir a complexidade de projetos Java/JEE através do uso do Spring Framework e Hibernate;
3) Grails possui características como GORM, scaffolding, internacionalização e testes que facilitam o desenvolvimento rápido de aplicações web.
Maven é uma ferramenta de gerenciamento e compreensão de projetos Java que fornece convenções sobre configuração, gerenciamento de dependências e repositórios centrais. Ele permite criar projetos Java usando templates, executar builds automatizados e gerenciar o ciclo de vida do projeto.
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTelliando dias
O documento apresenta um workshop sobre ferramentas de automação no desenvolvimento como ANT e Maven. Ele discute os conceitos e funcionalidades dessas ferramentas, incluindo vantagens e desvantagens, configuração, dependências, testes, documentação e integração com outras ferramentas.
Este documento apresenta as principais tecnologias do framework MEAN (MongoDB, Express, AngularJS e Node.js). Ele discute como construir uma aplicação utilizando essas tecnologias e mostra passo-a-passo a instalação e configuração do ambiente de desenvolvimento com essas ferramentas.
Introdução a Grails: Um framework veloz e poderosoBruno Lopes
Nesta apresentação são abordados os principais aspectos e vantagens da utilização do framework Grails no desenvolvimento de sistemas web. Um pequeno exemplo de sistema é mostrado, permitindo que o público tenha ideia de como é programar em Grails, e são ressaltadas suas diferenças em relação ao JSF.
Rodrigo Branas é um especialista em Java com mais de 10 anos de experiência. Ele possui diversas certificações como SCJA, SCJP, PMP e é instrutor na Academia Java e Agile da Globalcode, onde ministra treinamentos sobre Clean Code, Selenium e Maven. Branas também trabalhou como líder de desenvolvimento na Gennera e já palestrou em diversos eventos sobre temas relacionados a desenvolvimento Java.
Nesta palestra vamos abordar formas de criar um ambiente de desenvolvimento de software mais ágil por meio da utilização e integração das ferramentas Maven 3, Sonar e Hudson. Com isso é possível estímular a eliminação de atividades repetitivas dentro do processo de desenvolvimento além de auxiliar na redução de defeitos e aumentar a qualidade do código produzido. A palestra é montada em ferramentas feitas para a plataforma Java.
O documento apresenta uma introdução sobre Ionic 3 e Firebase. Discute brevemente Angular 4 e Ionic antes de explicar como configurar autenticação no Firebase usando Facebook e integrar um banco de dados Firebase em um projeto Ionic.
O documento descreve o framework Grails para desenvolvimento web ágil utilizando Java e Groovy. Grails permite alta produtividade através de programação por convenção, é completo e evita repetições de código.
O documento descreve (1) a sintaxe do arquivo ".feature" no Cucumber, (2) como começar com testes de aceitação legíveis para todas as partes interessadas, e (3) como o Cucumber funciona lendo arquivos de texto ".feature" e executando cenários neles descritos.
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2Cezar Souza
Este documento apresenta um cronograma para desenvolver um blog utilizando o framework Zend Framework 2 (ZF2). Ele inclui instruções para configurar o ambiente de desenvolvimento, criar os módulos e componentes do blog, como models, controllers e views, e implementar funcionalidades como autenticação, permissões e comentários.
O documento discute o Apache DeltaSpike, um conjunto de extensões portáteis para o CDI que fornece funcionalidades úteis para aplicações Java. O DeltaSpike inclui módulos como segurança, JPA, JSF e agendamento de tarefas. Ele permite injeção de dependência tipada, configuração de projeto, recursos injetáveis e internacionalização de mensagens. O DeltaSpike facilita o desenvolvimento Java usando o CDI sem ser um framework completo.
O documento apresenta uma introdução à linguagem JavaScript e à stack MEAN (MongoDB, Express, Angular e Node.js). Em 3 frases:
1) Apresenta os conceitos básicos de JavaScript como variáveis, tipos, operadores, funções e objetos.
2) Explica o que é Node.js e como usar JavaScript no backend para construir aplicações web fullstack.
3) Introduz os principais componentes da stack MEAN para desenvolvimento de aplicações web e mobile usando MongoDB, Express, Angular e Node.
Integração Contínua com CVS, CruiseControl, AntHill, GumpDenis L Presciliano
O documento apresenta três ferramentas de integração contínua - CruiseControl, AntHill e Gump - que combinam Ant, JUnit e sistemas de controle de versão como CVS. É descrito o funcionamento do CVS e como ele é usado com Ant. As ferramentas automatizam a compilação e teste do código-fonte sempre que novos commits são feitos no repositório.
Desenvolvimento Web Avançado usando PHPelliando dias
Este documento fornece uma introdução aos conceitos básicos de PHP, orientação a objetos em PHP, frameworks AJAX e PHP, bancos de dados MySQL, modelagem de banco de dados e padrões para desenvolvimento web.
O documento apresenta o framework PHP Zend Framework, descrevendo suas principais características como arquitetura MVC, componentes, vantagens e exemplos de uso. O autor é um engenheiro certificado pela Zend que discute como o framework torna o desenvolvimento web mais rápido e simplificado.
1) JavaScript é uma linguagem de programação interpretada utilizada para adicionar interatividade às páginas web.
2) O documento explica como incluir código JavaScript nas páginas web de diferentes formas e dá exemplos básicos de JavaScript.
3) São discutidos os tipos de dados em JavaScript, incluindo números, strings e booleanos.
Este documento descreve um projeto open source chamado EDW CENIPA que utiliza Pentaho e Docker para construir um data warehouse para análises dinâmicas de ocorrências aeronáuticas no Brasil de forma barata e escalável. Ele explica como o projeto usa ferramentas como Amazon Web Services, Docker, Pentaho e PostgreSQL para baixar dados do governo, armazená-los em um banco de dados e fornecer dashboards interativos utilizando containers Docker orquestrados.
O documento descreve como criar aplicações web usando Node.js e a plataforma Parse. Ele explica que Node.js permite usar JavaScript no backend e que o Parse fornece recursos como armazenamento de dados, notificações push e análises sem se preocupar com segurança. Também apresenta ferramentas como Git, Express, EJS e Grunt que podem ser usadas no desenvolvimento.
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
O documento discute a evolução de um framework PHP chamado Adianti Framework ao longo dos anos. Ele aborda desafios como aderir a padrões da comunidade, acrescentar novos componentes, melhorar a estrutura de diretórios e substituir tecnologias incorporadas.
1. O documento apresenta uma introdução ao framework Ruby on Rails, descrevendo suas principais características e funcionalidades.
2. É apresentado um exemplo prático de desenvolvimento de um sistema de blog usando Rails, cobrindo tópicos como geração de projeto, controllers, views e models.
3. O documento fornece instruções passo-a-passo para configurar e executar a aplicação de exemplo.
O documento discute integração contínua, testes e ferramentas. Ele explica o que é integração contínua e como ela funciona na prática, incluindo versionamento, compilação, testes e deploy. Também fornece dicas sobre como executar testes de forma paralela para reduzir o tempo do build, além de estratégias para reduzir custos com infraestrutura para testes.
O documento discute diversos tópicos sobre Python, incluindo: 1) Integração do Django com Adobe Flex para desenvolvimento de aplicações web; 2) Uso do PyGame para desenvolvimento de jogos; 3) Integração do Django com o PagSeguro para pagamentos online.
JavaScript é uma linguagem de programação interpretada utilizada para adicionar interatividade às páginas web. Pode ser incluída no HTML através de tags <script> e manipula o Document Object Model (DOM) para alterar dinamicamente o conteúdo e estilo das páginas.
Desenvolvimento em .Net - Introducao A FrameworkVitor Silva
O documento discute o desenvolvimento em .Net, comparando-o com Java e abordando tópicos como: as forças externas que levam à mudança de plataformas, as semelhanças e diferenças entre C# e VB.Net, a execução de aplicações .Net, ambientes de desenvolvimento .Net e ferramentas básicas de depuração.
O documento fornece uma introdução ao framework CakePHP para desenvolvimento web. Em poucas frases, descreve o CakePHP como um framework open source em PHP que utiliza boas práticas de engenharia de software como padrões MVC e convenções para permitir o desenvolvimento rápido de aplicações web. Também apresenta brevemente como iniciar um projeto com CakePHP usando Composer.
Play Framework - Desenvolvendo Aplicações Web com Java sem DorAllyson Barros
O documento apresenta o framework Play! para desenvolvimento de aplicações web com Java. Apresenta uma introdução ao framework, instruções de instalação e configuração, criação de modelos, controllers e views, utilização de módulos e deploy da aplicação.
Este documento fornece um resumo sobre o Apache Ant, uma ferramenta para gerenciamento de projetos Java baseada em arquivos XML. O documento explica como o Apache Ant pode ser usado para automatizar tarefas como compilação, empacotamento, documentação e teste.
Este documento apresenta o Apache Ant, uma ferramenta para gerenciamento de projetos Java baseada em scripts XML. O Ant permite automatizar tarefas como compilação, empacotamento, documentação e testes através de alvos e tarefas definidos no arquivo build.xml. Ele oferece mais de 130 tarefas pré-definidas e pode ser estendido através de novas tarefas ou scripts JavaScript.
PHP Jedi - Boas Práticas e Alta PerformanceFelipe Ribeiro
O documento fornece diretrizes sobre boas práticas de programação PHP, como estruturação do código em camadas, uso de padrões de codificação, reuso de componentes, tratamento de erros, desempenho e escalabilidade. Recomenda frameworks, bibliotecas como PEAR e cuidados com nomeação, comentários e complexidade do código.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
4. “Integração Contínua é uma prática de desenvolvimento de
software em que membros de um time integram seu trabalho
frequentemente, normalmente cada membro faz integrações
diariamente, conduzindo a multiplas integrações diárias. Cada
integração é verificada por um build automático (incluindo
testes) para detectar erros o mais rápido possível.”
Martin Fowler
5. Cotidiano de um time de desenvolvimento:
Dev A Dev C
Repositório
(CVS, SVN, etc)
Dev B Dev D
6. Como detectar problemas de integração de maneira mais rápida?
Como descobrir se a alteração na tela X não causou problemas na
telaY?
Quanto maior o projeto…
Maior a complexidade…
Maior o reaproveitamento…
Maior a probabilidade de ocorrerem problemas na integração!
7. Script
Servidor de
Repositório Integração Contínua
(CVS, SVN, etc)
Feedback
Dev B Dev C
Dev D
8. Desenvolvedor publica suas modificações em qualquer sistema de
controle de versão (SVN, CVS, etc)
A partir de uma definição, o CruiseControl periodicamente procura
por modificações no código (config.xml)
Dispara um novo build (build.xml)
Captura e armazena os logs e artefatos gerados a partir do build
Publica o resultado do build e os artefatos gerados (web, email, etc)
9. Acelera a detecção de bugs
Reduz os riscos
Reduz o tempo de integração
Aumenta a confiança do time
Agiliza o feedback
Facilita o refactoring
10. O CruiseControl é um framework para a automatização
do processo de build
Inclue plugins de integração com diversas
ferramentas de controle de código
Prove interface web para visualização de relatórios
sobre os builds realizados
É gratuíto e de código aberto (BSD license)
12. O phpUnderControl é uma customização do CruiseControl
que permite a fácil integração de ferramentas de controle de
códigos PHP
phpDocumentor
PHPUnit
xDebug
PMD
PHP_CodeSniffer
13. Modifica mecanismos de publicação do
CruiseControl para que sejam mais focados a
projetos PHP
A partir dos logs gerados no build, gera os gráficos
para visualização das métricas
Provê interface (linha de comando) para o setup de
novos projetos a serem monitorados
14. Provê feedback
Documentação do código
Execução de testes
Cobertura dos testes (code coverage)
Métricas
▪ Complexidade
▪ Risco
▪ ...
Violação de padrões
15. Instalação CruiseControl
$ unzip cruisecontrol-bin-2.7.3.zip -d /opt
$ ln -s /opt/cruisecontrol-bin-2.7.3
/opt/cruisecontrol
$ /opt/cruisecontrol/cruisecontrol.sh
Algumas configurações de startup
podem ser configuradas neste arquivo
(JAVA_HOME, porta, etc)
16.
17. Instalação phpUnderControl
$ pear config-set preferred_stable beta
$ pear channel-discover components.ez.co
$ pear channel-discover pear.phpunit.de
$ pear install –alldeps phpunit/phpUnderControl
Aplica o patch na instalação do Cruise Control.
Não esquecer de adicionar os executáveis do
PHP_CodeSniffer, PHPUnit, phpDocumentor no PATH!!!
Todos disponíveis no diretório de binários do PHP (phpcs, phpunit, phpdoc)
24. Violação de padrões (PHP_CodeSniffer)
Possibilita ao desenvolvedor visualizar possíveis
violações no padrão de código adotado para a escrita
do projeto (PHP e JavaScript).
Suporta alguns padrões de escrita conhecidos (PEAR,
Zend, etc), mas existe a possibilidade de extensão
Integra com Zend Code Analyzer
27. Complexidade Ciclomática
Mede o número de caminhos independentes de
um método
Considera contruções if, for, &&, case, while, etc.
Interpretação
Maior complexidade leva a mais erros
Maior complexidade faz o teste mais difícil
28. CRAP (Change Risk Analysis and Predictions )
Estima o esforço/tempo para a alteração de uma
unidade de código
Considera a cobertura dos testes e a complexidade
▪ Menor cobertura => Maior risco
▪ Maior cobertura => Risco similar à complexidade
29. Criando um projeto de exemplo
$ /usr/local/php5/bin/phpuc example --project-name
conaphp /opt/cruisecontrol
Opção para criação de um projeto de
Nome do novo projeto exemplo e uma sub-opção para o
nome do projeto
Diretório de instação do
CruiseControl
30. Estrutura de diretórios
/opt/cruisecontrol
|-- artifacts
| |-- conaphp
| | |-- 20081008002858 Os artefatos gerados em cada build
| | | |-- api
| | | |-- coverage ficam arquivados para visualização
| | | `-- graph
| `-- project-abc futura
| `-- project-xyz
|-- config.xml
|-- cruisecontrol.sh
|-- logs
| |-- conaphp Arquivo monitorado pelo loop
| `-- project-abc
| `-- project-xyz principal do CruiseControl
|-- projects
|-- conaphp
| |-- build
| | |-- api
| | |-- coverage
|
|
| `-- logs
|-- build.xml
Arquivo de configuração do build do
|
|
`-- source
|-- src
projeto define as tarefas a serem
|
|
| `-- Math.php
`-- tests
executadas
| `-- MathTest.php
`-- project-abc
`-- project-xyz
31. Configuração do CruiseControl (config.xml)
<cruisecontrol>
… Nome projeto
<project name=quot;conaphpquot; buildafterfailed=quot;falsequot;>
<schedule interval=quot;300quot;> Agendamento
<ant anthome=quot;apache-ant-1.7.0“
buildfile=quot;projects/${project.name}/build.xmlquot;/>
</schedule>
…
<publishers>
<currentbuildstatuspublisher file=quot;logs/${project.name}/buildstatus.txtquot;/>
<artifactspublisher dir=quot;projects/${project.name}/build/api”
dest=quot;artifacts/${project.name}quot; subdirectory=quot;apiquot;/>
<artifactspublisher dir=quot;projects/${project.name}/build/coverage“
dest=quot;artifacts/${project.name}quot; subdirectory=quot;coveragequot;/>
<execute command=quot;/usr/local/php5/bin/phpuc
graph logs/${project.name} artifacts/${project.name}quot;/>
</publishers>
</project>
…
</cruisecontrol> Gera os gráficos
32. Configuração do Ant (build.xml)
Organização
▪ Project: é a tag raiz do build.xml, ele representa todo o projeto e só pode existir
um por buildfile.
▪ Target: é uma coleção de tarefas que desejamos aplicar em determinado
momento e encadeando junto com outras tarefas.
▪ Task: é uma tarefa que desejamos que seja feita dentro do target, o Ant já
disponibiliza tarefas prontas, porém é possível criar novas.
▪ Property: é um parâmetro em forma de nome-valor necessário para configurar
nossa aplicação.