O documento fornece uma introdução sobre os pontos positivos, negativos e desafios do Google App Engine para startups enxutas. Em três frases:
1. Discute os benefícios do GAE como desempenho, escalabilidade e facilidade de uso, mas também limitações como restrições de sandbox e falta de suporte para algumas tecnologias.
2. Apresenta exemplos de como hospedar sites estáticos e dinâmicos de forma gratuita no GAE, além de como configurar domínios personalizados.
3. Ab
Passo a Passo SEO - Otimização de Sites para Sistemas de BuscaEnlink
Passo a passo com sugestões para otimização de sites para sistemas de busca como Google, Yahoo e Bing. Veja também dicas para otimização de textos jornalísticos e blogs.
Passo a Passo SEO - Otimização de Sites para Sistemas de BuscaEnlink
Passo a passo com sugestões para otimização de sites para sistemas de busca como Google, Yahoo e Bing. Veja também dicas para otimização de textos jornalísticos e blogs.
Tudo que você precisa saber sobre as principais alterações no Drupal 8 Acquia
Entenda tudo que você precisa saber sobre as principais alterações no Drupal 8. Pois o novo Drupal 8 encontra-se a caminho.
O que que isto significa para você?
O Webinar, de uma hora, oferece informações descritivas sobre as principais alterações no Drupal 8. De maneira adicional, você terá acesso a diversos vídeos apresentando as novas funcionalidades e capacidades do D8.
O Webinar explica tudo sobre o novo D8 para:
- Desenvolvedores de sites: Module Views no Drupal Core, blocos aprimorados, recursos aperfeiçoados de entidades e funcionalidades. A lista é longa!
- Desenvolvedores Front- End: falamos de HTML5, bibliotecas, realce de acessibilidade, novos temas, elementos de UI e uma rápida performance.
- Desenvolvedores Back- End: novo sistema de gerenciamento de configurações, API Entity completamente reconduzido, caching melhorado, novos recursos embutidos de serviços web.
Construindo sites e sistemas com WordPressLeo Baiano
Como funciona a construção de sites e sistemas utilizando WordPress. Desde a etapa de planejamento até a escrita de códigos para construir o tema e sistemas necessários para todas as funcionalidades do site.
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoAlamo Saravali
O Ionic Framework é uma ferramenta de desenvolvimento de aplicativos híbridos.
Baseado no Cordova, o Ionic possibilita criar aplicativos para diversas plataformas, incluindo iOS, Android, Windows Phone, etc., com um único código.
A vantagem do Ionic para com os outros é a facilidade de desenvolvimento e o desempenho do aplicativo.
Descrição introdutória de uma arquitetura para o desenvolvimento de aplicações web com funcionalidades offline.
Tecnologias envolvidas: HTML5, Javascript, Handlebards, etc.
Tudo que você precisa saber sobre as principais alterações no Drupal 8 Acquia
Entenda tudo que você precisa saber sobre as principais alterações no Drupal 8. Pois o novo Drupal 8 encontra-se a caminho.
O que que isto significa para você?
O Webinar, de uma hora, oferece informações descritivas sobre as principais alterações no Drupal 8. De maneira adicional, você terá acesso a diversos vídeos apresentando as novas funcionalidades e capacidades do D8.
O Webinar explica tudo sobre o novo D8 para:
- Desenvolvedores de sites: Module Views no Drupal Core, blocos aprimorados, recursos aperfeiçoados de entidades e funcionalidades. A lista é longa!
- Desenvolvedores Front- End: falamos de HTML5, bibliotecas, realce de acessibilidade, novos temas, elementos de UI e uma rápida performance.
- Desenvolvedores Back- End: novo sistema de gerenciamento de configurações, API Entity completamente reconduzido, caching melhorado, novos recursos embutidos de serviços web.
Construindo sites e sistemas com WordPressLeo Baiano
Como funciona a construção de sites e sistemas utilizando WordPress. Desde a etapa de planejamento até a escrita de códigos para construir o tema e sistemas necessários para todas as funcionalidades do site.
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoAlamo Saravali
O Ionic Framework é uma ferramenta de desenvolvimento de aplicativos híbridos.
Baseado no Cordova, o Ionic possibilita criar aplicativos para diversas plataformas, incluindo iOS, Android, Windows Phone, etc., com um único código.
A vantagem do Ionic para com os outros é a facilidade de desenvolvimento e o desempenho do aplicativo.
Descrição introdutória de uma arquitetura para o desenvolvimento de aplicações web com funcionalidades offline.
Tecnologias envolvidas: HTML5, Javascript, Handlebards, etc.
produção de games com tecnologia livre ou proprietária, Qual usar?Renan Nespolo
Serão apresentadas o uso de tecnologias livre comparadas com tecnologias proprietárias para a criação de jogos eletrônicos com ênfase em 2D e 3D. Serão abordados criação de texturas, criação de modelos 3D, estáticos e dinâmicos, exportação e portabilização para engines como UDK e Unity3D e a diferença entre estes e o Blender game Engine. Também serão abortados os diferentes frameworks, como o PlayN do Google, para a criação de games. Por ultimo as conclusões de qual é a melhor escolha para o melhor desenvolvimento.
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...PHINEO gemeinnützige AG
Der Ratgeber gibt einen Einstieg in die gute Praxis der strategischen Unternehmensspenden. Weil es den meisten Unternehmen darum geht, mit ihren Unternehmensspenden Verantwortung zu übernehmen und wirklich
etwas für die Gesellschaft und das Unternehmen zu erreichen, zeigt dieser
Ratgeber Unternehmen, wie Gutes tun und Gutes bewirken bei Unternehmensspenden (Corporate Giving) zusammenkommen.
Jenen, die über Unternehmensspenden entscheiden oder sie koordinieren gibt er praktische Tipps, wie sie die richtigen Personen im Unternehmen an den entscheidenden Stellen einbinden, welche Tools sie für das systematische Spenden nutzen können, wie sie wirkungsvolle und sichere Spendenempfänger auswählen, wie sie die eigenen Erfolge und die der geförderten Projekte sichtbar machen und wie sie so die Glaubwürdigkeit und Wirkung der Spendenaktivitäten deutlich erhöhen.
Mit den Inxmail Remarketing Plug-ins erfolgreiche E-Mail-Kampagnen realisieren
Die Folien waren Bestandteil des Inxmail Webinars am 30.07.2015.
Das innovative Remarketing Plug-in Paket für Inxmail Professional bietet Ihnen die perfekte Basis für erfolgreiche E-Mail-Kampagnen. Mit den drei Bestandteilen Conversion Tracker, Segment Builder und Recommendation Engine maximieren Sie den Erfolg Ihrer Kampagnen innerhalb kürzester Zeit! Das Paket basiert auf dem leistungsstarken Webanalyse-Tool von econda.
Katrin Dias Assis und Jens Dittberner geben Ihnen Einblicke in Best Practices und zeigen Ihnen live das Zusammenspiel von E-Mail-Marketing und Webanalyse:
Von der detaillierten Erfolgsauswertungen direkter und indirekter Umsätze Ihrer Mailings, über die Segmentierung konkreter Retargeting Zielgruppen bis hin zu personalisierten Produkt- und Outfitempfehlungen in Ihren Kampagnen.
Estes slides oferecem uma introdução ao conceito de Máquinas de Busca e seu "coração", os Web Crawlers. É uma apresentação de 10 min., então não esperem nada de outro mundo. Dá apenas uma noção inicial.
Die Deutsche Börse hat zusammen mit Emittenten- und Investorenvertretern diesen Leitfaden erarbeitet, der Emittenten als Orientierungshilfe in der Nachhaltigkeitsberichterstattung dienen soll.
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in DortmundCybay New Media
Maklerkommunikation 2.0: Im Spannungsfeld von Individual- und Massenkommunikation während DKM 2012 in Dortmund, der Fachmesse für die Finanz- und Versicherungswirtschaft.
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
Interface de Usuário também é coisa de Programador, o objetivo deste treinamento é vivenciar um ambiente de desenvolvimento empregando estas tecnologias, abordando conceitos de testes unitários, integrados, padrões e boas práticas de desenvolvimento
Uma palestra para explorar o Google App Engine (GAE), uma plataforma de desenvolvimento e hospedagem de aplicações web na nuvem. Aplicativos fáceis de criar, manter e escalar.
Palestrante: Carlos Duarte do Nascimento
Matemático pelo IME/USP e Gerente de Produto no Apontador, faz "artesanato" de software há 20 anos, defendendo plataformas e conteúdo livres.
[Video: http://www.youtube.com/watch?feature=player_detailpage&v=nzo9dcCMi-4#t=1169s ] Palestra que introduz o desenvolvimento de aplicativos na plataforma do Google de forma pragmática, apresentada na 5a. edição (2012) do Campus Party (#cpbr5)
Apresentação sobre GWT (Google Web Toolkit), Apresentação realizada para a matéria de Programação Avançada para WEB da Universidade de Vila Velha. Alunos: Lorran Pegoretti e Hugo Corteletti Torezani.
No MasterchefBR é comum ouvir que menos é mais, será que o mesmo vale para o desenvolvimento de aplicativos?
Nessa palestra apresentei como desenvolver um App multiplataforma: iOS, Android e Web (Desktop e Mobile) usando Turbolinks 5. Ou seja, como fazer mais (4 plataformas) com menos.
Link para gravação da apresentação: https://goo.gl/KsWujQ
Link para Google Slides: https://goo.gl/BcGSgi
Sabe aquele arquivo com 5000000 linhas e que você tem que acender umas velas pra abrir ele? Então, aqui te daremos as armas corretas para exterminá-lo e para NUNCA MAIS criar monstros como ele! A equipe Meritt irá mostrar como trazer para o cotidiano as práticas de clean code e o desafio de implementação em um projeto que já está no ar.
Atualmente, o Linux vem sendo utilizado como sistema operacional de tempo real, tanto
comercialmente quando academicamente. Esta apresentação introduz os conceitos básicos do Linux em tempo real, fazendo um paralelo com a teoria de sistemas de tempo real. Das implementações do kernel do Linux com características de tempo real, duas são apresentadas: o PREEMPT_RT, a alternativa comercial, e o LitmusRT, a alternativa acadêmica. Para cada implementação, são apresentados detalhes de sua implementação e exemplos de pesquisas que estão sendo desenvolvidas atualmente nestes sistemas.
Cooperação e Codificação de Rede Aplicadas as RSSF IndustriaisPET Computação
As Redes de Sensores sem Fio (RSSF) vem apresentando uma penetração cada vez maior nas mais distintas áreas, dada a sua versatilidade e baixo custo. Mais recentemente foi proposto seu emprego no chão de fábrica, com o surgimento de diversos padrões específicos, com especial destaque ao padrão IEEE 802.15.4. O ambiente industrial possui características específicas que requerem cuidado na aplicação das RSSF: requisitos de tempo real e alto índice de ruído eletromagnético. Sendo assim, é determinante para RSSF industriaias que se maximize a confiabilidade na troca de mensagens. Uma das propostas neste sentido é o emprego de técnicas de cooperação e codificação de rede.
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e AtuaçãoPET Computação
O advento da computação embarcada permitiu o surgimento de tecnologias inovadoras tais como as redes de sensores sem fio (rssf). Uma RSSF é composta por nodos de tamanho reduzido com capacidade de sensoriamento e comunicação sem fio. Uma segunda evolução desta tecnologia é a integração de RSSF com robôs móveis – as redes de sensores e robôs. Estes robôs (aéreos, terrestres ou aquáticos) são capazes de coletar dados de nodos sensores estacionários ou de interagirem com outros robôs móveis formando esquadrôes ou times de nodos sensores móveis. Nesta palestra serão apresentadas as tendências deste novo paradigma de computação móvel.
Hoje em dia é fácil juntar quantidades absurdamente grandes de dados. Mas, uma vez de posse deles, como fazer para extrair informações dessas montanhas amorfas de dados? Nesse minicurso vamos apresentar o modelo de programação MapReduce: entender como ele funciona, para que serve e como construir aplicações usando-o. Vamos ver também como usar o Elastic MapReduce, o serviço da Amazon que cria clusters MapReduce sob-demanda, para que você não se preocupe em administrar e conseguir acesso a um cluster de máquinas, mas em como fazer seu código digerir de forma distribuída os dados que você possui. Veremos exemplos práticos em ação e codificaremos juntos alguns desafios.
Processamento e visualização tridimensional de imagens de Satelite e RadarPET Computação
Com o avanço das tecnologias de imageamento para a área de previsão meteorológica, o processamento de imagens e computação gráfica tem permitido melhorar a qualidade dos resultados no que tange aspectos de interpretação e visualização. O INCoD tem trabalhado com pesquisas e desenvolvimento inovadoras nesta área. Estas soluções são executadas em parceria com o INPE, CEMADEN e EPAGRI gerando ferramentas que auxiliam os meteorologistas e climatologistas a melhorar as previsões.
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...PET Computação
There is more to software life cycle than just software development. Software development happens once, then evolution takes up the bulk of the software life cycle. In this presentation, I will talk about some approaches needed to deal with legacy systems. This is to aid their update to new business and maintenance requirements in addition to their upgrade to continuous new technologies. Service oriented architecture will be presented to support software evolution in this fast, ever changing environment. Moreover, cloud computing that enables ubiquitous and on demand access to computing resources will be examined. Applied research, such as in health care and M2M domains, involving these innovative technologies will be presented to illustrate their benefits to the advancement of software engineering.
O desenvolvimento de soluções para problemas não-triviais exige, primeiramente, o estudo minucioso das características intrínsecas destes problemas e determinar o conjunto de ações que quando executadas em uma sequência lógica alcançam tais soluções.Planejamento Automático é uma área da Inteligência Artificial que estuda as formas adequadas de representação do conhecimento e mecanismos eficientes que permitem a agentes inteligentes raciocinar automaticamente as soluções de problemas complexos.Técnicas de Planejamento Automático são utilizadas em diversas áreas principalmente as ligadas às Engenharias, tratando problemas que envolvem alto custo, alto risco e sujeitos a restrições.Especificamente em robótica, o Planejamento Automático é aplicado tanto na construção de planos que regem a movimentação do robô quanto em nível cognitivo, onde constitui-se no processo de raciocínio deliberativo, que promove autonomia ao agente robótico. Esta palestra tem por objetivo apresentar uma visão geral da área de Planejamento Automático, abordando as suas principais técnicas, em especial a técnica que trata problemas de planejamento como um problema de satisfazibilidade em uma fórmula em lógica proposicional.
Como utilizamos um serviço de cloud para validar nossas estimativas de escalabilidade. Rodando o sistema inteiro, mais clientes de teste, num cloud a baixíssimo custo.
Bancos de dados nas nuvens: uma visão geralPET Computação
O paradigma de computação nas nuvens vem ganhando popularidade uma vez que permite a aplicações utilizar recursos computacionais remotos a custo baixo e, com isso, minimizar esforços com desenvolvimento e manutenção destes recursos no seu ambiente local. Este paradigma também está se tornando presente na área de Banco de Dados, motivado pela necessidade de gerência de um grande volume de dados pelas organizações a baixo custo. Os tradicionais bancos de dados relacionais deixam a desejar neste quesito. Esta palestra apresenta uma visão geral de bancos de dados na nuvem, enfatizando suas principais características, categorias (incluindo os bancos de dados NoSQL) e tendências de pesquisa.
Uma reflexão sobre os 28 anos de pesquisa no laboratório de integração de sof...PET Computação
O Laboratório de Integração de Software e Harwdware da UFSC foi fundado em março de 1984 com a missão de desenvolver pesquisas na fronteira entre hardware e software. Desde então, vem desenvolvendo soluções inovadoras para o desenvolvimento de sistemas computacionais dedicados através da agregação de componentes de hardware e de software previamente validados. Esta caminhada conduziu o grupo por importantes áreas de aplicação, incluindo redes de computadores, telemedicina, televisão digital, telecomunicações e, mais recentemente, cidades inteligentes, smart grid e a Internet das coisas. Prestes a completarem 30 anos, tem nesta apresentação uma reflexão sobre a caminhada até o presente com o objetivo de traçar diretrizes para o futuro próximo.
Cloud computing: evolution or redefinitionPET Computação
Campo do conhecimento: Enfoque na Modelagem Complexa ou Orientada a Objetos; Campo da comunicação humana:Diretrizes conceituais na modelagem complexa da comunicação humana , Canais Representacionais Mentais, Estilos de Aprender e Ensinar; Teste verificador dos canais representacionais; Teste verificador dos estilos pessoais; Exemplos práticos de utilização do conhecimento complexo na comunicação humana ; Trabalhando com a diversidade e suas potencialidades na comunicação interpessoal afetando positivamente o ambiente de trabalho; Conclusões e Orientações Práticas para o Desenvolvimento de Competências para o Profissional do século XXI.
Rastreamento de objetos utilizando ar dronePET Computação
Este projeto visa utilizar-se de tecnologias de processamento de imagens e reconhecimento de padrões para encontrar e rastrear um determinado objeto. Utiliza-se técnicas avançadas de classificação de padrões de cores, tais como o Polynomial Mahalanobis para identificar o alvo e rastreá-lo. O rastreamento é feito por um equipamento de vôo quadrirotor AR.Drone Parriot.
Processamento e visualização tridimensional de imagens de satelite e radarPET Computação
Com o avanço das tecnologias de imageamento para a área de previsão meteorológica, o processamento de imagens e computação gráfica tem permitido melhorar a qualidade dos resultados no que tange aspectos de interpretação e visualização. O INCoD tem trabalhado com pesquisas e desenvolvimento inovadoras nesta área. Estas soluções são executadas em parceria com o INPE, CEMADEN e EPAGRI gerando ferramentas que auxiliam os meteorologistas e climatologistas a melhorar as previsões.
Evoluindo dot project em alinhamento ao pmbokPET Computação
Projetos de software frequentemente falham, pois não são gerenciados de maneira adequada. Buscando reduzir este problema, modelos de boas práticas, como o CMMI - Capability Maturity Model Integration e o PMBOK - Project Management Body of Knowledge são desenvolvidos para auxiliar as organizações a melhorarem seu processo de gerenciamento de projetos. Entretanto, ainda não existe nenhuma ferramenta de suporte de software livre para suportar completamente um processo de gerência de projeto em conformidade com esses modelos. Dentro desse o contexto, a palestra apresentará a evolução da ferramenta dotProject relacionados a diversas áreas (iniciação, planejamento de tempo, RH e riscos, monitoramento & controle e encerramento) alinhado ao CMMI e PMBOK.
O uso de jogos para o ensino tem se tornado cada vez mais popular - inclusive no ensino da Computação. Sua utilização permite obter consideráveis melhorias nos resultados da aprendizagem como: aumento no aprendizado efetivo, melhoras no interesse e motivação, redução do tempo de formação e redução da necessidade de instrutores. No entanto, para efetivamente adotar jogos educacionais na prática, instrutores atualmente enfrentam diversas dificuldades, como a carência destes conteúdos na literatura e a carência de processos para o desenvolvimento de jogos educacionais. Neste contexto, a palestra apresenta os resultados das pesquisas com jogos aplicados ao ensino em computação.
Apresentação geral do gqs - Usabilidade na convergência digital - Customizaç...PET Computação
O GQS - Grupo de Qualidade de Software concentra-se na pesquisa científica, desenvolvimento e transferência de modelos, métodos e ferramentas de engenharia de software para apoiar a melhoria da qualidade de processos e produtos de software principalmente voltados ao contexto de micro e pequenas empresas. As áreas de pesquisa incluem melhoria e avaliação de processo de software (CMMI - ISO / IEC 15504/12207 - MPS.BR), gerenciamento de projetos de software, educação de engenharia de software e engenharia de usabilidade.
LaTeX é um sistema para preparação de textos que, ao contrário dos softwares mais comuns de edição de textos como LibreOffice Writer e MS Office Word, permite que o escritor mantenha o foco no conteúdo e na semântica do que se escreve e não no formato e na aparência ao mesmo tempo em que garante um resultado final de alta qualidade tipográfica. Este minicurso terá foco na preparação de textos (artigos, relatórios) e nas ferramentas que possam ser necessárias, e.g. inclusão de imagens, formatação de referências, fórmulas matemáticas.
Git é uma ferramenta de controle de versão distribuída que é muito usada em projetos open source e que propõe ser eficiente e simples. O minicurso terá um caráter prático, abordando as principais ações, problemas encontrados (conflitos) e uso de servidores remotos (github).
Com a cabeça nas nuvens: montando ambientes para aplicações elásticasPET Computação
Muito se fala sobre o desenvolvimento de aplicações escaláveis e elásticas que possam se adaptar à grande flutuação do volume de acesso no decorrer do dia. A infraestrutura para que esse ambiente possa funcionar, entretanto, é de igual importância. Nesse minicurso vamos lançar dezenas de servidores na cloud da Amazon para que uma aplicação possa escalar facilmente sem nenhuma preocupação.
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Biblioteca UCS
A biblioteca abriga, em seu acervo de coleções especiais o terceiro volume da obra editada em Lisboa, em 1843. Sua exibe
detalhes dourados e vermelhos. A obra narra um romance de cavalaria, relatando a
vida e façanhas do cavaleiro Clarimundo,
que se torna Rei da Hungria e Imperador
de Constantinopla.
Sequência Didática - Cordel para Ensino Fundamental ILetras Mágicas
Sequência didática para trabalhar o gênero literário CORDEL, a sugestão traz o trabalho com verbos, mas pode ser adequado com base a sua realidade, retirar dos textos palavras que iniciam com R ou pintar as palavras dissílabas ...
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24, Pr Henrique, EBD NA TV, Revista ano 11, nº 1, Revista Estudo Bíblico Jovens E Adultos, Central Gospel, 2º Trimestre de 2024, Professor, Tema, Os Grandes Temas Do Fim, Comentarista, Pr. Joá Caitano, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
7. GAE: PaaS
Vamos ao que Interessa pra sua Startup Enxuta…
8. Lição Lean Startup #1: Web Site Estático Escalável
1. Uma App no App Engine pode ter parte estática
e parte dinâmica (Python, Java, etc)
2. O Web Site de sua empresa pode começar 100%
estático
3. E pode ser escalável… (brabilhões de visitantes)
4. E sem admin Linux, EC2 etc… ($$$)
5. E sem pagar taxa de hosting pra uso normal… ($)
6. E sem se incomodar com DDoS etc
7. …
10. Matamos a Cobra e Mostramos o Pau: Site Estático no GAE
1. Vamos escolher um site estático qualquer na web o e vamos
colocá-lo no GAE. Exemplo aleatório:
http://www.promote-web-sites.com
2. Vamos fazer download de suas páginas:
wget --mirror -p --convert-links -P . http://www.promote-
web-sites.com
3. Faz de conta que esse é o meu site. Vamos colocá-lo no
GAE? è Mova as páginas HTML para uma pasta static ,
dentro do nossa pasta betdevgaenosql
mv ./www.promote-web-sites.com/* /Users/mqm/
betdevgaenosql/static
11. (2/4): Site Estático no GAE
4. Editemos app.yaml para poder servir páginas estáticas
12. (3/4): Site Estático no GAE – Testando Localmente
5. Clique Run (botão verde)
6. Visite:
http://localhost:8080/
7. Site estático!!
13. (4/4): Site Estático no GAE - Deploy
8. Clique Deploy no GAE Launcher (botão azul)
9. Visite: http://betdevgaenosql.appspot.com/
10. Site estático!!
(com URL feia L)
14. Recapitulando
• Uma Google App (em Python, Java, etc) pode
servir conteúdo estático
• Podes fazer upload de seu site hoje
• Mas… como coloco uma URL raiz com meu
domínio (ex. www.betterdeveloper.net) ao invés
de *.appspot.com ?
15. Lição Lean Startup #2: Sua Página, Seu Domínio, GAE
1. Registre seu domínio em registro.br ou web.com ou outro
Registrar qualquer
2. Crie uma conta (gratuita) em www.ZoneEdit.com
3. Adicione uma Zone no ZoneEdit, correspondente ao seu
domínio
4. No seu Registrar, aponte o DNS para os valores do
ZoneEdit.com (ex. ns10.zoneedit.com , etc)
5. Adicione a entrada A e CNAME conforme abaixo
16. Sua Página, Seu Domínio, GAE
6. Crie uma conta gratuita Google Apps (<=10 contas no seu domínio)
7. Cria sua Google App nesse domínio
8. Crie o mapeamento de www no Google App para sua App
9. Deverá funcionar, igual ao www.betterdeveloper.net
17. Lição Lean Startup #3: Versões Distintas, Rollback
1. Temos que habilitar a versão 2 do site
2. Habilite o radio button, clique Make Default
3. Clique no “2”ao lado do radio button. Ele vai disparar a versão 2 do
site
4. Clique no “1”ao lado do radio button. Ele vai disparar a versão 1 do
site (original)
18. Lição Lean Startup #4: Versione seu conteúdo
1. Use Git ou Svn pra versionar os fontes do seu site. Use TAGs por
exemplo pra mapear pra versão ativa no ar (slide anterior)
2. Use uma conta gratuita xp-dev.com – pode ter 1 projeto não Open
Source, gratuitamente
3. Agora você tem rastreabilidade e governança de fontes e versões no ar,
gratuitamente. Fontes na Cloud (XP-Dev). “Binário”/site na Cloud
(GAE)”. Super Lean.
4. Ative o TRAC como sistema de tickets no XP-DEV. Pronto, agora até
suas sprints/backlogs/feature requests/bug fixes tem Roadmap na web
e governança na empresa.
25. Coisas boas GAE - Performance
• 5 milhões de pageviews / mês gratuitamente. Chega pra ti?
• Memchache distribuído, sem você precisar instalar/
configurar
• Conteúdo estático servido por servidores dedicados,
transparentemente. Não precisas penar configurando load
balancers / nginx etc e tal.
• Mantém sua app em RAM o máximo que dá (performance)
• Suporta tasks/background, no estilo cron
• Logging fácil, memcache fácil
• Utiliza o performático Jetty, envenenado: http://
www.infoq.com/news/2009/08/google-chose-jetty
• Suporte a SDPY na sua app http://dev.chromium.org/spdy/
spdy-whitepaper
27. Coisas boas GAE – IDEs etc
• Suporte a Python, Go, Java (e linguagens que rodam na
JVM)
• Roda frameworks tipo Java Apache Wicket, Python
CherryPy. Suporta GWT etc. https://
spreadsheets.google.com/a/betterdeveloper.net/pub?
key=pRJ_0hajVrhacLjp3HqD5ew
• Suportado por Eclipse (plugin GAE), PyCharm etc
• Suporta Ant
• Podes testar localmente antes
• Console interativo Python – rode snippets direto no
servidor, “peek/poke”
• Sua app pode receber email, entra como http request (GAE
cuida disso).
28. Coisas boas GAE - Storage
• Datastore “schemaless”. Fácil prototipar e evoluir.
• O NoSQL pode buscar baseado em propriedades
• Versão dev local analisa perfil de uso e já otimiza índices
do datastore
• SDK suporta upload/download de dados em modo “bulk”
• JPA significa que podes entrar/sair do GAE com mais
facilidade (evita lock-in). Well… (veja The Ugly)
• Datastore pode gerar unique keys automaticamente
• Memcache obedece standard JCache
• Memcache viewer no Python SDK
• Podes fazer sync GAE-NoSQL ßà MySQL externo com
https://github.com/k7d/approcket/wiki
29. Coisas boas GAE – Storage Relacional
• Não é só NoSQL. MySQL também suportado (Mas sem quota
gratuita)
• http://googleappengine.blogspot.com.br/2012/05/cloud-
sql-pick-plan-that-fits-your-app.html
• https://developers.google.com/cloud-sql/
30. Coisas boas GAE
• Console pra administração
• Múltiplas versões da app rodando concorrentemente
• Podes fazer uma app só pra sua “Intranet” – apenas
membros do seuDominio.com tem acesso
• 10 apps GAE por developer
• Sem Ads, mesmo nas apps free / conta free (ex. Gmail)
• Pode-se definir um limite máximo de custo por dia
• Boa integração com APIs Google: login, gtalk, imagens, etc
• Paypal ok: http://www.dzone.com/links/
setting_up_paypal_ipn_handling_on_google_app_engi.html
• Possível mandar email pra app via XMPP, do console, pra
testes
31. Coisas boas GAE
• Duas implementações novas, não proprietárias
• http://en.wikipedia.org/wiki/AppScale
It has support for Python, Go, and Java applications, taking the open
source SDK provided by Google App Engine and implementing
scalable services such as the datastore, memcache, blobstore, users
API, and channel API.
• http://code.google.com/p/typhoonae/ (BETA)
32. Coisas boas GAE
• Google Data Centers http://www.google.com/about/datacenters/
inside/index.html
33. The Bad: L
(Coisas ruins no GAE – na nossa opinião)
34. Coisas ruins GAE…
• Livros obsoletos. Exemplo: dica de “main”/Python
pra cache em Programming Google App Engine:
não mais necessário com Python 2.7 (veja https://
developers.google.com/appengine/docs/python/
python25/migrate27#wsgi )
35. Coisas ruins GAE…
• Feito pra requests que demorem <1s. Se demorar
>60s, você é assassinado (no livro – obsoleto - fala
30s, mas https://developers.google.com/
appengine/docs/python/
runtime#The_Request_Timer diz 60.
• File Upload? Que mais demora >60s na web?
• Async URL fetch serve pra mitigar a maioria dos
cenários
36. New Relic não Rola L
“The restrictions that exist under Google App Engine,
such as those on background threads, as well as how
processes are managed, mean that the Python agent
as it is implemented at present will not work as is.
There are no plans at this point to support Google App
Engine.”
è Use o Dashboard “toco-duro” GAE… L
37. Apple iOS Push Notification não Rola L
Sandbox: não podes abrir conexão socket pros
servidores de Push da Apple
è Precisas de uma máquina na EC2 etc que
responda à sua app no GAE via REST e essa sim
faz o push pra Apple. Sugestão: RabbitMQ/REST
http://code.google.com/p/amqp-rest/
è Ou: espera o Beta graduar: http://
code.google.com/p/googleappengine/issues/detail?
id=1164
38. WebSockets não rola L
Algo tipo Trello, que usa WebSockets (segundo artigo
publicado), não funciona pelo mesmo motivo
(conexões socket persistentes / longas)
§ Mas tem a Channel API:
https://developers.google.com/appengine/docs/java/channel/
overview
The Channel API creates a persistent connection between your application
and Google servers, allowing your application to send messages to
JavaScript clients in real time without the use of polling. This is useful for
applications designed to update users about new information immediately.
è Sentiu-se atolando na areia movediça da plataforma proprietária?
39. Minha Framework Web Favorita não vem pré-carregada L
CherryPy não vem pré-carregada https://
developers.google.com/appengine/docs/python/tools/
libraries27
èTens que empacotar o zip junto e
dinamicamente adicionar no path
è Ou seja: não é problema, funciona ok
40. Coisas ruins GAE
• Modelo limitado/Sandbox – mais proteção, mas… mais
restrição
• (2011) Não suporta(va) Full Text Search (pense CMS).
Aparentemente ok em 2012: http://
googleappengine.blogspot.com.br/2012/05/looking-for-search-find-it-
on-google.html
• (2011) Algumas operações, só com SDK de linha de comando.
Inexistência de GUI Launcher pra Linux (só Windows e Mac).
• Nem todas APIs oficiais são implementadas (ex trivial:
Thread/ThreadGroup Java)
• Muita coisa JPA aponta pra JDO, que está obsoleto
• (2011) Console Java mais limitado que o Python
• (2011) Servidor DEV/PC não suporta “background tasks” no
Python (GAE Era Preview até Setembro de 2011!!!)
41. Coisas ruins GAE
• Domínio customizado requer conta Google Apps (mas é free
pra 10 contas de usuário/colaborador/funcionário/whatever)
• Ativar 1 conta GAE/Developer requer 1 telefone celular. 3
domínios? Arrume 3 celulares J
• Não faz routing de domínio puro (foo.com) pra app. Tem que
ser algo como www.foo.com
• è Se usares www, tens que primeiro habilitar Sites, mudar
esse de www pra www2 ou algo assim, pra sua app poder
servir www.seuDominio.com
• Tipo de autenticação da App não pode mudar após criado o
seu ID
• Multithreaded p/ Python demorou a ser ativado (só agora
com Python 2.7). Era CGI ao invés de WSGI. (Mas Java já era
MT ok)
42. Coisas ruins GAE: PhD pra entender Índices
• Todas as queries usam índices
• Alguns índices são gerados automaticamente pra você
• Queries mais elaboradas precisam de índices pré-definidos/
criados no arquivo index.yaml
• Caso a query precise de um índice e esse não exista ainda,
vai dar erro/exceção
• O sistema tenta criar os índices pra você baseado nas queries
de desenvolvimento DEV/PC
43. Google Could SQL é pago
è Não dá pra ser enxuto se quiseres SQL ao invés de NoSQL
44. Alguns Limites em geral
è Fique atento… https://developers.google.com/appengine/
docs/python/runtime#Quotas_and_Limits
48. Coisas bem ruins GAE
• Acesso SSH? Esquece
• Precisou de uma ferramenta extra, tipo Sphinx? Esquece!
Lembre: Não tens um console Linux. PaaS!
49. Coisas bem ruins GAE: HTTPS
• Não suporta (va) HTTPS se sua app está com um domain
“bonito” tipo foo.bar.com (mas OK na forma
foo.appspot.com). http://code.google.com/p/
googleappengine/issues/detail?id=792
• Isso vai me dificultar adicionar pagamento online VISA no
www.betterdeveloper.net
• Teoricamente arrumado em 06/2012 com SNI (Server
Name Indication) @ US$9/mês ou VIP (Virtual IP) @ US
$99/mês - http://googleappengine.blogspot.com.br/
2012/06/google-app-engine-170-released-at.html
50. Coisas bem ruins GAE: JPA “Alfa” (tvz ok em 2012?)
• (2011) Implementação JPA em cima de Datanucleous não
era oficialmente suportada pelo pessoal Datanucleous.
Muita limitação, muita dor de cabeça!!!
• Exemplo: Uma entidade "pai"e uma "filha" nao podem
ambas ter @Id sendo um Long. A do filho tem que usar a
classe proprietária Key da Google. Vejam http://
code.google.com/p/datanucleus-appengine/issues/detail?
id=26 . Foi pro espaço sua portabilidade JPA!!!!
• è Aparentemente arrumaram em 2012: http://
code.google.com/p/datanucleus-appengine/source/
browse/branches/2_0_0/dist/RELEASE_NOTES.ORM
51. Coisas bem ruins GAE: App Engine Data != Big Data
1. JÁ QUE Google tem MapReduce & tem NoSQL Datastore
2. E JÁ QUE GAE roda na infra Google
• ENTÃO OBVIAMENTE minha GAE App pode ter BigData e eu
fazer MapReduce nos dados, certo? NÃO! Infelizmente, tens
que:
a. OU usar o produto BigQuery https://cloud.google.com/
products/big-query
b. OU usar Library MapReduce http://code.google.com/p/
appengine-mapreduce/ , https://developers.google.com/
appengine/docs/python/dataprocessing/overview (“ALFA”)
• Que por ora só tem o Mapper API (sem Reduce) http://
googleappengine.blogspot.com.br/2010/07/introducing-
mapper-api.html?m=1 , https://developers.google.com/
appengine/articles/mr/mapper
52. Coisas bem ruins GAE: Queries impossíveis GQL
è Testar 2 inequalidades de 2 propriedades distintas não rola
53. Coisas ruins GAE
• Portabilidade Problemática. Será que http://
en.wikipedia.org/wiki/AppScale é viável? Não testei.
è Sentiu-se atolando na areia movediça da plataforma proprietária?
54. Conclusão
• Às Vezes o Barato Sai Caro… O Desafio é escolher o barato
certo (Linux Admin ou GAE Fees?)
• Try Before You Buy
• Your Mileage May Vary
• “Valeu à Pena? Tudo Vale a Pena se a Alma Não é
Pequena” --– Fernando Pessoa
• Investigue tb Heroku, Azure, etc
• Investigue tb Do-It-Yourself com Amazon EC2 e/ou
Amazon SimpleDB e/ou Amazon MapReduce (Hadoop)
55. Obrigado! E Lembre-se…
“To Know and not to do, is not to know”
http://en.wikipedia.org/wiki/Google_App_Engine
56. Slides em PDF no Site
http://www.BetterDeveloper.net/downloads.html