This document provides tips to improve performance in Java applications. It discusses techniques and tools for diagnosing and solving performance problems in a Java environment, including understanding memory management, identifying issues related to memory, CPU usage, and I/O, and using monitoring tools, profilers, and other diagnostics.
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosAlex Hübner
[1] O documento descreve uma estratégia implementada para melhorar o desempenho e disponibilidade de um site institucional dos Correios que rodava no ColdFusion. [2] A estratégia envolveu duplicar as instâncias do ColdFusion em cada servidor para melhor aproveitar os recursos, otimizar configurações do servidor e do banco de dados, e estabelecer rotinas de reciclagem noturna. [3] As mudanças permitiram dobrar a capacidade do ambiente existente sem necessidade de novos servidores.
As bases de dados ficam alojadas no servidor onde está instalado o MySQL/MariaDB. Normalmente encontram-se na pasta "data" dentro da instalação do MySQL/MariaDB.
Por exemplo, numa instalação padrão do MySQL no Linux, as bases de dados ficam na pasta "/var/lib/mysql/". Já no Windows, a pasta padrão é "C:\Program Files\MySQL\MySQL Server x.x\data\".
Portanto, resumindo, as bases de dados ficam fisicamente alojadas no servidor MySQL/MariaDB, na pasta de dados da sua instalação. O phpMyAdmin é
Escalabilidade horizontal com PostgreSQL e Pgpool IIMatheus Espanhol
O documento discute como o PostgreSQL 9.x e o Pgpool II podem ser usados juntos para fornecer escalabilidade horizontal e alta disponibilidade. O Pgpool II oferece balanceamento de carga, replicação síncrona e failover automático entre servidores PostgreSQL. Isso permite aumentar a capacidade de processamento adicionando novos servidores de forma transparente à aplicação.
O documento descreve o servidor Apache, incluindo sua criação em 1995, características como suporte a scripts e autenticação, e arquivos de configuração e log importantes.
O seminário abordará a introdução e história do JBoss/WildFly, sua arquitetura interna, clusterização, configuração de um ambiente com Apache HTTP Server e testes práticos. Também incluirá dicas para melhorar o desempenho, como ajustes de memória, pool de EJB e estratégias de balanceamento de carga e coleta de lixo.
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )João Moura
O documento discute as tecnologias WebSocket e SocketStream, comparando os frameworks Ruby on Rails (usando Juggernaut) e SocketStream. WebSocket permite comunicação bidirecional através de protocolo TCP, enquanto SocketStream é uma biblioteca para aplicações em tempo real baseadas em Node.js e Redis. Ambas as tecnologias possibilitam aplicações mais dinâmicas com melhor desempenho.
This document provides tips to improve performance in Java applications. It discusses techniques and tools for diagnosing and solving performance problems in a Java environment, including understanding memory management, identifying issues related to memory, CPU usage, and I/O, and using monitoring tools, profilers, and other diagnostics.
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosAlex Hübner
[1] O documento descreve uma estratégia implementada para melhorar o desempenho e disponibilidade de um site institucional dos Correios que rodava no ColdFusion. [2] A estratégia envolveu duplicar as instâncias do ColdFusion em cada servidor para melhor aproveitar os recursos, otimizar configurações do servidor e do banco de dados, e estabelecer rotinas de reciclagem noturna. [3] As mudanças permitiram dobrar a capacidade do ambiente existente sem necessidade de novos servidores.
As bases de dados ficam alojadas no servidor onde está instalado o MySQL/MariaDB. Normalmente encontram-se na pasta "data" dentro da instalação do MySQL/MariaDB.
Por exemplo, numa instalação padrão do MySQL no Linux, as bases de dados ficam na pasta "/var/lib/mysql/". Já no Windows, a pasta padrão é "C:\Program Files\MySQL\MySQL Server x.x\data\".
Portanto, resumindo, as bases de dados ficam fisicamente alojadas no servidor MySQL/MariaDB, na pasta de dados da sua instalação. O phpMyAdmin é
Escalabilidade horizontal com PostgreSQL e Pgpool IIMatheus Espanhol
O documento discute como o PostgreSQL 9.x e o Pgpool II podem ser usados juntos para fornecer escalabilidade horizontal e alta disponibilidade. O Pgpool II oferece balanceamento de carga, replicação síncrona e failover automático entre servidores PostgreSQL. Isso permite aumentar a capacidade de processamento adicionando novos servidores de forma transparente à aplicação.
O documento descreve o servidor Apache, incluindo sua criação em 1995, características como suporte a scripts e autenticação, e arquivos de configuração e log importantes.
O seminário abordará a introdução e história do JBoss/WildFly, sua arquitetura interna, clusterização, configuração de um ambiente com Apache HTTP Server e testes práticos. Também incluirá dicas para melhorar o desempenho, como ajustes de memória, pool de EJB e estratégias de balanceamento de carga e coleta de lixo.
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )João Moura
O documento discute as tecnologias WebSocket e SocketStream, comparando os frameworks Ruby on Rails (usando Juggernaut) e SocketStream. WebSocket permite comunicação bidirecional através de protocolo TCP, enquanto SocketStream é uma biblioteca para aplicações em tempo real baseadas em Node.js e Redis. Ambas as tecnologias possibilitam aplicações mais dinâmicas com melhor desempenho.
Julio Viegas é um engenheiro de software e instrutor com 15 anos de experiência na área de tecnologia. Ele apresenta sobre várias tecnologias NoSQL como Redis, MongoDB, CouchDB, Memcached e Cassandra, discutindo suas características, arquitetura, instalação e uso.
O documento descreve as principais novidades da versão 9.0 do PostgreSQL, incluindo:
- Melhorias na alta disponibilidade com Hot Standby e Streaming Replication, permitindo consultas no servidor secundário;
- Mais de 200 melhorias gerais de desempenho e funcionalidade, como administração simplificada de privilégios de usuários.
O documento descreve a instalação e configuração de servidores web Apache com MySQL e PHP nos sistemas operativos Windows e Ubuntu. Inclui instruções passo-a-passo e ilustrações sobre como configurar hosts virtuais, SSL, phpMyAdmin e outros recursos.
O documento descreve a implementação de uma solução de desktop Linux na tranquilidade para mais de 420 desktops centrais e 270 portáteis, resultando em reduções de custo anual de 80% por posto de trabalho. A solução inclui servidores, thin clients, portáteis e software livre configurado centralmente para prover acesso seguro e uniformizado.
Ciclo de Palestras Infnet 2014 - Migrando o dc para Windows Server 2012 R2Invent IT Solutions
O documento discute os requisitos mínimos e cenários para migrar um controlador de domínio do Windows Server 2008 R2 para o Windows Server 2012 R2, incluindo upgrade in-place e upgrade de domínio único. O processo de migração envolve verificar cenários suportados e não suportados, transferir papéis FSMO, despromover controladores de domínio antigos e validar serviços após a migração.
A apresentação discute estratégias para desenvolver aplicações PHP de forma escalável e de alto desempenho, abordando tópicos como camadas de execução, configuração de webservers, bancos de dados, codificação, cache, balanceamento de carga e otimizações do lado do cliente.
O documento discute as vantagens do Server Core no Windows Server, incluindo menor uso de memória RAM e menos atualizações necessárias. Ele lista os papéis e recursos disponíveis no Server Core e descreve as opções de configuração, incluindo Server Core, Interface de Servidor Mínima e Servidor Completo.
O documento introduz o servidor web NGINX, descrevendo que ele é um servidor proxy reverso para vários protocolos e pode funcionar como balanceador de carga, cache HTTP e servidor web. Ele também explica como instalar e configurar o NGINX no Ubuntu para criar um site simples e como configurá-lo para funcionar como balanceador de carga entre vários servidores.
O documento resume as principais features introduzidas nas versões Java 8, 9, 10 e 11, incluindo expressões lambda, Stream, Jshell, HTTP client e interferências de tipos. Também discute sobre microserviços, protocolo HTTP, códigos de status e versionamento de contrato de APIs.
Meetup São Paulo, Maxscale Implementação e Casos de UsoWagner Bianchi
Este documento apresenta:
1) Wagner Bianchi, palestrante sobre MaxScale 2.0;
2) A agenda inclui instalação e configuração do MaxScale para ReadWriteSplit, Schemarouter e Binlogrouter;
3) É fornecido um Vagrantfile para criar ambientes virtuais com MariaDB e configurar o MaxScale.
O documento lista 10 atividades sobre servidores DHCP e Apache. As atividades incluem perguntas sobre as funções do servidor DHCP, como configurar endereços IP manualmente, os arquivos de configuração do DHCP, e as funções, configurações e serviços de segurança do servidor Apache.
O documento explica o que é um servidor web e como funciona o servidor Apache. Ele descreve os principais passos de como um servidor processa uma requisição do navegador, incluindo tradução de URL, escolha de protocolo, processamento de arquivos e retorno de resultados. Outros servidores populares como IIS e Tomcat também são mencionados.
O documento apresenta uma palestra sobre WildFly Avançado. Foi apresentado as principais novidades do WildFly 8 como suporte a Java EE 7 e melhorias de performance. Também foi discutido sobre clusterização, configuração do Apache HTTP Server, problemas comuns em clusters e demonstração prática com projetos de exemplo. Por fim, foi apresentado brevemente o WildFly 9 e OpenShift.
O documento descreve como configurar e usar um servidor DHCP para atribuir endereços IP dinamicamente na rede. Explica que o DHCP distribui IPs automaticamente à medida que hosts se conectam e permite configurar IPs fixos para determinados hosts. Detalha a instalação do pacote dhcp3-server no Debian, editar o arquivo de configuração dhcpd.conf para definir faixas de endereços e parâmetros, e reiniciar o serviço DHCP.
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SPAndré Déo
O documento fornece uma introdução sobre o UserParameter e Zabbix Sender no Zabbix. O UserParameter permite monitorar métricas customizadas através da execução de scripts, enquanto o Zabbix Sender envia dados para o servidor Zabbix sem depender do agente. Ambos requerem a criação de itens correspondentes no servidor Zabbix.
O documento fornece uma introdução abrangente ao software de monitoramento de rede Zabbix, discutindo suas funcionalidades, como funciona, como estendê-lo e a comunidade ao seu redor. É descrito como o Zabbix pode monitorar infraestrutura, serviços e aplicações de forma flexível e escalonável.
O documento descreve as características e funcionalidades de servidores web. Um servidor web pode ser um programa ou computador que recebe pedidos HTTP de clientes e responde com páginas web ou arquivos. Servidores web populares incluem IIS para Windows e Apache para Linux, e precisam ficar disponíveis 24 horas por dia para processar pedidos de clientes.
1) O documento discute o framework DataFlow para facilitar a criação de fluxos de dados em Perl.
2) O framework fornece objetos chamados "Processadores" que podem ser conectados em fluxos para processar e transformar dados.
3) Os processadores podem ser personalizados e estendidos para atender a necessidades específicas, e vários processadores prontos são fornecidos, como leitura/escrita de arquivos e processamento de CSV.
RubyMasters 2011 - Beyond Ruby with NodeJSEmerson Macedo
O documento discute conceitos de programação como:
1) Arquitetura de software escalável utilizando padrões como não bloqueio de E/S e event loop para atender alta concurrencia;
2) Vantagens do modelo de programação assimncrono e orientado a eventos do Node.js.
Julio Viegas é um engenheiro de software e instrutor com 15 anos de experiência na área de tecnologia. Ele apresenta sobre várias tecnologias NoSQL como Redis, MongoDB, CouchDB, Memcached e Cassandra, discutindo suas características, arquitetura, instalação e uso.
O documento descreve as principais novidades da versão 9.0 do PostgreSQL, incluindo:
- Melhorias na alta disponibilidade com Hot Standby e Streaming Replication, permitindo consultas no servidor secundário;
- Mais de 200 melhorias gerais de desempenho e funcionalidade, como administração simplificada de privilégios de usuários.
O documento descreve a instalação e configuração de servidores web Apache com MySQL e PHP nos sistemas operativos Windows e Ubuntu. Inclui instruções passo-a-passo e ilustrações sobre como configurar hosts virtuais, SSL, phpMyAdmin e outros recursos.
O documento descreve a implementação de uma solução de desktop Linux na tranquilidade para mais de 420 desktops centrais e 270 portáteis, resultando em reduções de custo anual de 80% por posto de trabalho. A solução inclui servidores, thin clients, portáteis e software livre configurado centralmente para prover acesso seguro e uniformizado.
Ciclo de Palestras Infnet 2014 - Migrando o dc para Windows Server 2012 R2Invent IT Solutions
O documento discute os requisitos mínimos e cenários para migrar um controlador de domínio do Windows Server 2008 R2 para o Windows Server 2012 R2, incluindo upgrade in-place e upgrade de domínio único. O processo de migração envolve verificar cenários suportados e não suportados, transferir papéis FSMO, despromover controladores de domínio antigos e validar serviços após a migração.
A apresentação discute estratégias para desenvolver aplicações PHP de forma escalável e de alto desempenho, abordando tópicos como camadas de execução, configuração de webservers, bancos de dados, codificação, cache, balanceamento de carga e otimizações do lado do cliente.
O documento discute as vantagens do Server Core no Windows Server, incluindo menor uso de memória RAM e menos atualizações necessárias. Ele lista os papéis e recursos disponíveis no Server Core e descreve as opções de configuração, incluindo Server Core, Interface de Servidor Mínima e Servidor Completo.
O documento introduz o servidor web NGINX, descrevendo que ele é um servidor proxy reverso para vários protocolos e pode funcionar como balanceador de carga, cache HTTP e servidor web. Ele também explica como instalar e configurar o NGINX no Ubuntu para criar um site simples e como configurá-lo para funcionar como balanceador de carga entre vários servidores.
O documento resume as principais features introduzidas nas versões Java 8, 9, 10 e 11, incluindo expressões lambda, Stream, Jshell, HTTP client e interferências de tipos. Também discute sobre microserviços, protocolo HTTP, códigos de status e versionamento de contrato de APIs.
Meetup São Paulo, Maxscale Implementação e Casos de UsoWagner Bianchi
Este documento apresenta:
1) Wagner Bianchi, palestrante sobre MaxScale 2.0;
2) A agenda inclui instalação e configuração do MaxScale para ReadWriteSplit, Schemarouter e Binlogrouter;
3) É fornecido um Vagrantfile para criar ambientes virtuais com MariaDB e configurar o MaxScale.
O documento lista 10 atividades sobre servidores DHCP e Apache. As atividades incluem perguntas sobre as funções do servidor DHCP, como configurar endereços IP manualmente, os arquivos de configuração do DHCP, e as funções, configurações e serviços de segurança do servidor Apache.
O documento explica o que é um servidor web e como funciona o servidor Apache. Ele descreve os principais passos de como um servidor processa uma requisição do navegador, incluindo tradução de URL, escolha de protocolo, processamento de arquivos e retorno de resultados. Outros servidores populares como IIS e Tomcat também são mencionados.
O documento apresenta uma palestra sobre WildFly Avançado. Foi apresentado as principais novidades do WildFly 8 como suporte a Java EE 7 e melhorias de performance. Também foi discutido sobre clusterização, configuração do Apache HTTP Server, problemas comuns em clusters e demonstração prática com projetos de exemplo. Por fim, foi apresentado brevemente o WildFly 9 e OpenShift.
O documento descreve como configurar e usar um servidor DHCP para atribuir endereços IP dinamicamente na rede. Explica que o DHCP distribui IPs automaticamente à medida que hosts se conectam e permite configurar IPs fixos para determinados hosts. Detalha a instalação do pacote dhcp3-server no Debian, editar o arquivo de configuração dhcpd.conf para definir faixas de endereços e parâmetros, e reiniciar o serviço DHCP.
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SPAndré Déo
O documento fornece uma introdução sobre o UserParameter e Zabbix Sender no Zabbix. O UserParameter permite monitorar métricas customizadas através da execução de scripts, enquanto o Zabbix Sender envia dados para o servidor Zabbix sem depender do agente. Ambos requerem a criação de itens correspondentes no servidor Zabbix.
O documento fornece uma introdução abrangente ao software de monitoramento de rede Zabbix, discutindo suas funcionalidades, como funciona, como estendê-lo e a comunidade ao seu redor. É descrito como o Zabbix pode monitorar infraestrutura, serviços e aplicações de forma flexível e escalonável.
O documento descreve as características e funcionalidades de servidores web. Um servidor web pode ser um programa ou computador que recebe pedidos HTTP de clientes e responde com páginas web ou arquivos. Servidores web populares incluem IIS para Windows e Apache para Linux, e precisam ficar disponíveis 24 horas por dia para processar pedidos de clientes.
1) O documento discute o framework DataFlow para facilitar a criação de fluxos de dados em Perl.
2) O framework fornece objetos chamados "Processadores" que podem ser conectados em fluxos para processar e transformar dados.
3) Os processadores podem ser personalizados e estendidos para atender a necessidades específicas, e vários processadores prontos são fornecidos, como leitura/escrita de arquivos e processamento de CSV.
RubyMasters 2011 - Beyond Ruby with NodeJSEmerson Macedo
O documento discute conceitos de programação como:
1) Arquitetura de software escalável utilizando padrões como não bloqueio de E/S e event loop para atender alta concurrencia;
2) Vantagens do modelo de programação assimncrono e orientado a eventos do Node.js.
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
O documento resume as principais características e conceitos da linguagem de programação Ruby e do framework web Ruby on Rails. Foi lançado em 1995 e projetado para tornar os programadores felizes, com sintaxe enxuta e tudo como objeto. Rails facilita o desenvolvimento web ágil com convenções sobre configuração, DRY e simplicidade.
O documento discute os princípios de arquitetura RESTful para web services. Ele explica que REST se baseia nos recursos identificados por URIs e na interface uniforme do HTTP para manipular esses recursos através de métodos como GET, PUT, POST e DELETE. A arquitetura RESTful oferece características como tolerância a falhas, escalabilidade e interoperabilidade que tornam o protocolo HTTP adequado para a maioria dos serviços web.
Investimentos da Oracle no MySQL está elevando o nível do produto a um novo patamar. Baseada na apresentação do VP de Engenharia MySQL, Tomas Ulin, esta apresentação cobre as principais novidades do MySQL 5.7, MySQL Cluster 7.4, MySQL Fabric etc.
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasCelso Crivelaro
O documento discute a arquitetura e desafios da plataforma de envio de e-mails transacionais da Locaweb. Ele descreve como a empresa escalou de processar lentamente para 2,5 milhões de e-mails por dia, discutindo apostas como separar aplicações por funcionalidade, usar Docker, caches e filas no Redis, e monitoramento com Grafana. O documento também reflete sobre lições aprendidas, como a necessidade de documentar decisões de arquitetura e usar recursos de mensageria para processamento de mensagens.
Este documento fornece uma introdução sobre serviços RESTful e mashups. Resume as seguintes informações essenciais:
1) Apresenta os conceitos fundamentais de arquitetura REST e como serviços RESTful funcionam;
2) Discutem a API JAX-RS para construir serviços RESTful em Java;
3) Explicam como consumir e testar serviços RESTful usando ferramentas como RESTClient, cURL e bibliotecas JavaScript;
4) Introduzem o conceito de mashups e como agregam conteúdo de v
Beyond Ruby with NodeJS - RubyConf Brasil 2010Emerson Macedo
O documento discute a arquitetura de software escalável utilizando Node.js. Ele explica como Node.js usa um modelo de programação não bloqueante e baseado em eventos para atender alta concorrência, evitando threads. Isso permite que um processo Node.js suporte milhares de conexões simultâneas de forma eficiente.
1) O documento apresenta uma palestra sobre construção de sistemas distribuídos usando arquitetura REST.
2) REST foi escolhido por permitir escalabilidade, performance alta, disponibilidade e evolução do sistema sem paradas. HTTP, caches e outros recursos da web foram fatores importantes.
3) A arquitetura REST implementada no sistema Alexandria da Abril usa recursos, representações e hipermídia para integrar domínios, serviços e dados de forma uniforme e escalável.
Nodejs - A performance que eu sempre quis terEmerson Macedo
O documento discute a evolução das tecnologias da web ao longo do tempo e as limitações das tecnologias atuais para suportar alta escalabilidade e concorrência. Propõe o uso de Node.js, que usa I/O não bloqueante e event loop para suportar milhares de usuários simultâneos de forma eficiente com poucos recursos.
O documento discute o crescimento do uso da internet e das redes sociais ao longo dos anos, as limitações das tecnologias web atuais para lidar com alta concorrência, e como Node.js aborda esses problemas usando I/O não bloqueante e event loop.
O documento discute a arquitetura REST e como implementá-la de forma RESTful. Ele explica os principais conceitos como recursos, identidade, interface uniforme e hipermídia. Também discute como implementar REST em Java usando JAX-RS e como frameworks como o Restfulie podem facilitar a criação de aplicações HATEOAS.
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
O documento fornece dicas sobre como otimizar o desempenho de um banco de dados PostgreSQL. Ele discute problemas comuns de desempenho, escolhas de configuração erradas, melhorias de hardware e software, parâmetros do sistema operacional e do PostgreSQL, ferramentas de teste de desempenho e escalabilidade.
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...iMasters
O appliance IBM Netezza consiste em uma plataforma de banco de dados otimizado e integrado a um hardware de alta performance. Uma nova forma de análise em grandes volumes de dados é fator chave de competitividade para as empresas.
As soluções tradicionais de datawarehouse são rígidas, complexas, lentas e caras, inibindo a agilidade na tomada de decisões. O IBM Netezza é uma plataforma que foi desenvolvida para endereçar exatamente este problema: uma solução de performance desruptiva, administração muito simples e custo reduzido, utilizado para datawarehouses de grande volume e complexidade.
Ele integra banco de dados, servidor, e discos de armazenamento em um único rack. Sua arquitetura de processamento massivo paralelo combina blades de processamento, discos e um processo de filtragem de dados através de software armazenado diretamente em chips (FPGAs: field-programmable gate arrays). Este é o diferencial de performance do IBM Netezza quando comparado aos concorrentes: sua arquitetura é única e inteligente, devido ao uso de FPGAs com software gravado diretamente em silício, lê menos dados e também move menos dados entre os componentes internos, eliminando desperdícios e gargalos de processamento. Esta arquitetura dispensa tuning, índices, particionamento, etc. tornando a administração simples, permitindo que a equipe técnica tenha mais tempo para trabalhar em projetos de negócio ao invés de gastar tempo em atividades técnicas/administrativas que não geram valor agregado.
Veja o webcast no link http://www.videolog.tv/devworksbr/videos/716598
OpenShift: NoSQL "a la carte" num PaaS 100% Open SourceEdgar Silva
A cada dia mais e mais necessidades para soluções que envolvem tecnologias NoSQL surgem nas empresas, na verdade, novas maneiras de pensar em topologias e arquiteturas de sistemas vêm fazendo com que novas demandas e desafios sejam solucionados.
Com o novo hype de Cloud, várias soluções de PaaS vem surgindo como alternativa a empreendedores e pequenos investidores tornarem reais suas idéias, além de tirá-las do papel, muitos destas idéias são grandes casos de sucesso, e até novos gigantes da nova ordem da economia digital. Entretanto, vários movimentos como : Dados Públicos, Jogos Online em HTML5 para dispositivos móveis(Tablets, SmartPhones), Geolocalização, preferências etc, são casos de usos candidatos para começarem a serem desenvolvidos nestas infraestruturas, até gratuitas como o OpenShift.
Nesta apresentação, mostraremos como você pode utilizar o Openshift, o PaaS da Red Hat, em conjunto com tecnologias como MongoDB e Infinispan para atuarem como seu recurso de armazenamento de aplicações, aplicações estas que podem ser escritas em diversas linguagens, entre elas: Python, PHP, Java e Ruby.
Entregando conteúdo em ambientes extremos na JVMRodrigo Zaccara
Este documento descreve como aumentar a disponibilidade e desempenho da entrega de conteúdo para o portal UOL usando a JVM. Ele detalha como implementar cache, detecção de user agent, e configurações da JVM para suportar altas cargas de tráfego enquanto diminui acessos aos serviços backend e simplifica a infraestrutura.
This document provides guidance on using various features of the SAPO GIS mapping API, including:
1) Adding a map, markers, and customizing markers
2) Adding GeoRSS feeds
3) Retrieving points of interest (POIs) by category from the GIS service
4) Displaying administrative divisions and searching by municipality
5) Displaying statistics and recent POIs with periodic updating
O documento fornece diretrizes para o desenvolvimento de aplicações web para a plataforma Meo, incluindo padrões suportados pelo navegador, formatos de imagem, recursos adicionais, resoluções, entrada do usuário e dicas de desempenho. Também fornece detalhes sobre a API EPG e serviços relacionados.
Este documento fornece diretrizes para o desenho de formulários online eficientes, discutindo a importância de: 1) estabelecer um diálogo com os usuários através de uma organização lógica dos campos; 2) fornecer pistas visuais como indicadores de progresso; e 3) escrever mensagens claras de erro e sucesso.
O documento discute como criar aplicações de fala usando a tecnologia de reconhecimento e síntese de fala da Microsoft. Apresenta a API SpeechFX para desenvolvimento de aplicações de fala do lado do cliente e o Speech Server 2007 para aplicações do lado do servidor, além de recursos e demonstrações disponíveis.
O documento apresenta uma introdução ao protocolo XMPP, descrevendo seus blocos básicos como mensagens, pedidos/respostas e presenças, além de exemplos de código para pequenos bots e sincronização de processos em tempo real usando XMPP.
O documento discute mitos sobre acessibilidade da web. Apresenta perspectivas de acessibilidade incluindo responsabilidade social, desenvolvimento técnico e financeira. Também discute como tornar sites acessíveis através da escrita de bom código HTML.
Getting started with mobile devices development - Openmoko Freerunnercodebits
The document discusses the Openmoko Freerunner mobile platform. It provides details on the hardware specifications and compares it to early PCs from 1980. The document outlines the available software stack, including Debian, GNOME mobile, and LAMP. It encourages developers to unleash their creativity and provides ideas for mobile apps in areas like tourism, social networking, and disaster relief. Overall, the document promotes the Openmoko as an open platform for developers to create and innovate on.
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...codebits
1) Microcontrollers are fun to play with and anyone can learn to make cool projects with them.
2) Examples of cool microcontroller projects include the TV-B-Gone universal remote, MiniPOV3 kit, Solar BugBot, LED Cube, and The Brain Machine.
3) A microcontroller is a complete computer on a chip that can accept input, perform operations, and output results. It works by fetching and executing instructions in a loop until powered off.
CouchDB is a document-oriented NoSQL database that stores data as documents with a flexible schema rather than tables. It allows for the storage of semi-structured data and uses JSON documents rather than rigid schemas. Documents are accessed and updated via a RESTful API and can be queried using views built with JavaScript MapReduce functions. The database supports features like replication for synchronization across machines and multi-master replication.
Getting started with mobile devices development - Openmoko Freerunnercodebits
The document describes the hackable ONE, an open phone platform based on the Openmoko FreeRunner. It runs Debian and GNOME with a LAMP stack, has a 450MHz CPU with 128MB RAM, 8GB storage, and built-in GPS. The phone is fully open and 100% hackable.
This document provides an overview of SAPO BUS, including:
1. What is SAPO BUS and its architecture? It is a middleware that implements authentication, caching, support for bindings, transformations, protection, routing and monitoring between clients and services.
2. How to develop services using a contract-first approach with SAPO BUS. This includes creating a schema, project, and service then publishing the operations and strategies.
3. Benefits of using SAPO BUS include standardized contracts, interoperability, and administrative simplification through the back office. It also generates contracts, stubs and proxies automatically.
Qtractor - An Audio/MIDI multi-track sequencercodebits
Qtractor is an open source, multi-track audio and MIDI sequencer software for Linux. It uses JACK and ALSA for audio and MIDI functionality. Qtractor provides a traditional multi-track recorder interface and supports unlimited tracks, clips, and plugins. It is developed and maintained by Rui Nuno Capela as a hobby project to enable music creation. Qtractor is still in alpha but fully functional for basic use. Future plans include additional features like automation and effects.
The document describes Chumby, which is both an Internet-based service and device platform. The Chumby device is an open-source hardware design that allows access to the Chumby service, which provides widgets and content to simple devices. The document outlines the Chumby service, how the device is used, why the hardware was opened, how Chumby plans to make money, and the manufacturing process for the Chumby device.
Este documento discute a teoria e implementação do GLOBS, um sistema de gestão de terminologia online. Resume os principais pontos como (1) a definição e objetivos da terminologia, (2) os objetivos do projeto GLOBS de fornecer um sistema cooperativo para criação e pesquisa de terminologias multilingues, e (3) as tecnologias usadas como Drupal e PHP para a implementação da aplicação web.
ATrad - Sistema de Garantia de Qualidade de Traduçõescodebits
O documento descreve o ATrad, um sistema de garantia de qualidade para traduções. O ATrad verificará traduções por falta de pontuação, inconsistências, erros ortográficos e de seguimento de glossário. Ele será uma aplicação web integrada com ferramentas de tradução online para ajudar equipes de tradução como Mozilla PT e Ubuntu PT a corrigir erros rapidamente.
This document provides tips and best practices for achieving high performance with Java. It discusses measuring performance, optimizing I/O, using memory-mapped files, reusing database connections, and employing techniques like concurrency to improve scaling. The document also presents a case study where various optimizations were applied to analyze call detail records within the required one hour time budget, including splitting workload across threads.
This document provides guidance on using various features of the SAPO GIS mapping API, including:
1) Adding a map, markers, and customizing markers
2) Adding GeoRSS feeds
3) Retrieving points of interest (POIs) by category from the GIS service
4) Displaying administrative divisions and searching by municipality
5) Displaying statistics and recent POIs with periodic updating
O documento apresenta os serviços e ferramentas do Sapo GIS, incluindo arquitetura, ortofotos, visitas virtuais, conteúdos georreferenciados, geoclipping, estatísticas e conclusões. A equipa do Sapo GIS fará uma demonstração e sessão prática sobre como desenvolver aplicações de mapas.
Practical Thin Server Architecture With Dojo Sapo Codebits 2008codebits
This document discusses the benefits of thin server architecture, where user interface code is moved from the server to the client. Some key benefits include improved scalability, immediate user response times, an organized programming model with clear separation of client and server code, client-side state management, support for offline applications, and improved interoperability. The document provides examples to illustrate how scenarios like styling changes, adding new features, and replacing backend code are simpler with a thin server architecture approach. It argues that separating the user interface from the server using structured data and services allows each layer to focus on its own concerns without unnecessary complexity.
3. Event-driven architecture
Mudança significativa de estado
●
minuto 49->50 !!
●
Alguns exemplos
●
mudança de temperatura de x->y
●
email que passa de recebido->apagado
●
bilhete que passa de disponível->vendido
●
4. Características de EDA
Os eventos são propagados
●
Os eventos são ”pontuais”
●
A comunicação é assíncrona
●
A granularidade dos eventos é baixa
●
Os eventos são processados
●
5. Importância de EDA
O produtor desconhece por completo o
●
consumidor
A ”informação de estado” é reduzida ou
●
mesmo completamente eliminada
Complementa SOA uma vez que os
●
serviços podem ser iniciados como
resposta a eventos
6. Message-oriented middleware
Infraestrutura que permite a troca de
●
mensagens em sistemas distríbuidos
Fornece ”queueing” e ”handling” de mensagens
●
Bastante usado em soluções de integração
●
entre sistemas díspares
Exemplos:
●
IBM MQSeries
●
TIBCO
●
ActiveMQ
●
Sapo-Broker :-)
●
8. Publish-Subscribe
Baseado em Tópicos
●
Produtores e Consumidores
●
O produtor desconhece os consumidores
●
As mensagens são entregues a todos os
●
subscritores
10. Vantagens de Pub-Sub
Ideal para publicar eventos de negócio
●
apenas os interessados recebem as mensagens
●
”Observer pattern” distríbuida
●
Promove ”Event Driven Architechture”
●
12. Point-to-Point
Baseado em Queues
●
Mensagens são enviadas para Queues
●
Entregues uma e apenas uma vez
●
Entregue apenas a um consumidor
●
Retenção de mensagens em Queue
●
Independência temporal
●
As mensagens são guardadas até serem consumidas
●
ou expiradas
14. Vantagens de P2P
Ideal para ”load-balancing” de
●
consumidores
Monitorizar Queues é fácil
●
Tamanho e ”throughput”
●
Re-entrega de mensagens
●
As falhas parciais são bem toleradas
●
por exemplo falhas devido a manutenção
●
16. Sapo-Broker
Rápido e altamente escalável
●
rede distribuída de ”brokers” que agem como um
●
só
Polivalente
●
Livrarias para C, PHP, Perl, Python e .NET
●
Fácil de usar
●
a configuração necessária é reduzida
●
Aberto
●
Código livre: GPL
●
17. Sapo-Broker: Juicy bits
Wildcard Subscriptions
●
”/foo/>”. Tudo o que está abaixo de ”foo”
●
”/foo/#/bar”. Match com ”/foo/x/bar” e ”/foo/y/bar”
●
Queues Virtuais
●
Queues que são populadas por tópicos
●
HTTP Endpoint
●
Mensagens com Prioridade
●
19. Se só se lembrarem de uma coisa!
Como é que eu vivia sem isto?!
20. Pesquisas de texto livre com Solr
”And Now for Something
Completely Different”
21. Lucene
<http://lucene.apache.org>
Livraria para pesquisa de texto livre com
●
elevada “performance”.
Foco: Indexação + Pesquisa de Documentos
●
“Documento” é apenas uma lista de tuplos nome+valor
●
Não fornece “crawlers” nem extracção de
●
texto
Análise de texto flexível (tokenizers +
●
token filters)
100% Java, sem dependências externas, sem
●
ficheiros de configuração
22. Solr
<http://lucene.apache.org/solr/>
Servidor de pesquisa baseado em Lucene
●
Interface XML/HTTP, JSON
●
Pesquisa facetada (contagem por categoria)
●
”Schema” flexível que permite definir campos
●
e tipos de dados
Hit Highlighting
●
Arquitectura extensível
●
Interface Web para administração
●
Java5, basta colocar um ficheiro WAR no
●
servidor
25. Eliminar documentos
Apagar por ID, mais eficiente
<delete>
<id>05591</id>
<id>32552</id>
</delete>
Apagar por Query
<delete>
<query>category:supervillain</query>
</delete>
26. Aplicar as alterações
<commit />
<optimize />
Todas as alterações visíveis apenas
●
depois de emitir <commit />
<optimize /> semelhante ao ”commit”
●
mas rearranja os ficheiros em disco
para permitir maior velocidade de
pesquisa
27. Sintaxe de pesquisa
carro vermelho
●
carro OR vermelho
●
por omissão o operador usado é o OR
●
+carro +vermelho -marca:ferrari
●
carro AND vermelho NOT marca:ferrari
●
tipo:desportivo^10 description:desportivo
●
description:”carro curvas”~100
●
28. Sintaxe de pesquisa (cont.)
releaseDate:[2000 TO 2007]
●
Pesquisa com wildcards: sup?r, su*r, super*
●
carro~
●
”Fuzzy search”: Distância de Levenshtein
●
Semelhança mínima: carro~0.7
●
*:*
●
30. Se só se lembrarem de uma coisa!
Rápido
●
Poderoso e configurável
●
Excelente relevância de resultados de
●
pesquisa
Produto com maturidade
●
Características semelhantes a produtos que
●
custam muito $$$
Comunidade fantástica
●
Programadores de Lucene, peritos em IR
●
Consultadoria á borla: soluções e
●
problemas são partilhados
31. Help me!
WWW
●
<http://trac.softwarelivre.sapo.pt/broker>
●
<http://lucene.apache.org/solr>
●
<http://wiki.apache.org/solr>
●
Luis Neves
●
email: <luis.neves@co.sapo.pt>
●
xmpp: <lfs_neves@sapo.pt>
●