O documento descreve a evolução dos frameworks web em Perl e a introdução do Plack e PSGI. Resume-se o documento da seguinte forma:
- PSGI foi introduzido como uma interface comum para aplicações web em Perl, inspirada pelo WSGI do Python e Rack do Ruby. Isto permitiu a criação de middleware e servidores compartilhados.
- O Plack implementa o PSGI e fornece middleware, handlers de servidores e ferramentas como o plackup. Muitos frameworks web em Perl como Catalyst, Dancer e Mojolicious adotaram o
Este é uma aula sobre Typescript, NodeJS, Docker.
Este é o repositório com os arquivos para acompanhar a aula:
https://github.com/kenjishiromajp/typescript_serverside_starterkit
Yet Another Ruby Framework - Como o Rails funciona por dentroCarlos Brando
“Yet Another Ruby Framework – Como o Rails funciona por dentro”: Minha palestra tratará exatamente deste tema: o processo de construção de um framework utilizando Ruby. Se você realmente quer entender como o Rails funciona, então crie o seu próprio framework. Nesta palestra vou comentar sobre algumas das dificuldades que encontrei durante este projeto e quais as soluções encontradas. O processo de renderização, geradores de códigos, helpers e banco de dados estão entre os assuntos que serão tratados. Acredito que ao analisar este tópicos de um ponto de vista mais simplista fará com que você entenda melhor como algumas coisas funcionam internamente no Rails.
Beyond Ruby with NodeJS - RubyConf Brasil 2010Emerson Macedo
Nessa apresentação eu descrevo o quanto eu gosto do Ruby e do Rails, mas onde ele pode não ser a melhor opção. NodeJS é uma tecnologia de certa forma recente, mas que pode cobrir algumas lacunas que o Ruby e Rails não fazem tão bem.
Entre na fila. Processamento distribuído usando GearmanElton Minetto
Nesta palestra é apresentado o Gearman, framework Open Source desenvolvido inicialmente pela Danga Interactive. O Gearman é um framework genérico para gerenciar filas de tarefas de forma que possam ser executadas em paralelo, com balanceamento de carga e acessíveis a múltiplas linguagens de programação. É de extrema utilidade em sites e aplicativos com grande carga de processamento e necessidades de escalabilidade.
Este é uma aula sobre Typescript, NodeJS, Docker.
Este é o repositório com os arquivos para acompanhar a aula:
https://github.com/kenjishiromajp/typescript_serverside_starterkit
Yet Another Ruby Framework - Como o Rails funciona por dentroCarlos Brando
“Yet Another Ruby Framework – Como o Rails funciona por dentro”: Minha palestra tratará exatamente deste tema: o processo de construção de um framework utilizando Ruby. Se você realmente quer entender como o Rails funciona, então crie o seu próprio framework. Nesta palestra vou comentar sobre algumas das dificuldades que encontrei durante este projeto e quais as soluções encontradas. O processo de renderização, geradores de códigos, helpers e banco de dados estão entre os assuntos que serão tratados. Acredito que ao analisar este tópicos de um ponto de vista mais simplista fará com que você entenda melhor como algumas coisas funcionam internamente no Rails.
Beyond Ruby with NodeJS - RubyConf Brasil 2010Emerson Macedo
Nessa apresentação eu descrevo o quanto eu gosto do Ruby e do Rails, mas onde ele pode não ser a melhor opção. NodeJS é uma tecnologia de certa forma recente, mas que pode cobrir algumas lacunas que o Ruby e Rails não fazem tão bem.
Entre na fila. Processamento distribuído usando GearmanElton Minetto
Nesta palestra é apresentado o Gearman, framework Open Source desenvolvido inicialmente pela Danga Interactive. O Gearman é um framework genérico para gerenciar filas de tarefas de forma que possam ser executadas em paralelo, com balanceamento de carga e acessíveis a múltiplas linguagens de programação. É de extrema utilidade em sites e aplicativos com grande carga de processamento e necessidades de escalabilidade.
Palestra aplicada no Serpro BH cobrindo uma introdução ao Rails e ao Ruby em conjunto com seu ecosistema.
Obrigado Fábio Akita por ceder vários slides (http://www.slideshare.net/akitaonrails)
Apresentação introdutória sobre a MEAN Stack, contando com o desenvolvimento, passo-a-passo, de uma aplicação simples.
Apresentação para o JSDay Campina Grande.
Apresentação intitulada "Modern PHP" que será apresentada na semana acadêmica da FACCAT (Taquara) entre os dias 25 a 29 de abril: http://techparty.faccat.br
Autenticação, Documentação, Padronização, Negociação de Conteúdo, escolha do framework (Laravel vs Lumen), pacotes que podem ajudar, boas práticas, dicas de segurança, recursos úteis. Várias lições aprendidas ao se montar uma API pública para outros devs utilizarem.
Link para o vídeo da apresentação: https://youtu.be/3GAF2t5Qohc
Não é fácil escrever uma biblioteca confortável de usar. É difícil agradar a todos. Mas também é difícil agradar até quem acha que a nossa biblioteca faz algo útil. Não é fácil nem mesmo quando fazemos algo reusável só para nós mesmos.
Ainda bem que muitos outros programadores já erraram antes de nós. E existem em Python e fora dele diversos exemplos de boas libs nas quais podemos nos inspirar.
Essa palestra resumirá o que torna uma biblioteca boa, de acordo com nossa experiência e com a experiência de outros programadores que já escreveram sobre isso. Algumas características de boas bibliotecas são:
- Alta Consistência
- Muitos dados puros
- Baixa Verbosidade
- Respeito ao Principle of Least Astonishment
- Alta Extensibilidade
- Baixa Retenção
- Vários níveis de abstrações
- Alta granularidade
- Interesses claros e separados
- Pythonica
Como você pode ver, alguns aspectos acima são similares ao Zen of Python. Por isso também mostraremos funcionalidades do Python que ajudam a programar boas interfaces. Além disso, para resumir tudo definiremos um checklist que você poderá usar sempre que for escrever um módulo reusável. Esperamos que isso ajude você a programar melhor, o que certamente agradará seus parceiros de trabalho e a comunidade.
Descrição introdutória de uma arquitetura para o desenvolvimento de aplicações web com funcionalidades offline.
Tecnologias envolvidas: HTML5, Javascript, Handlebards, etc.
Última aula do curso de Python, aqui mostramos de forma superficial como fazer a integração do Django com Adobe Flex, como utilizar o módulo do PagSeguro, PyGame e como integrar sua aplicação com o Apache
Minha aplicação Java vai pra nuvem. E agora?Felipe Mamud
Estamos acostumados a trabalhar com Java em ambiente local ou em algum servidor de desenvolvimento. Nesta talk tentarei mostrar os principais desafios encontrados quando utilizamos Java em um cenário de Cloud, utilizando um PaaS de mercado.
Palestra aplicada no Serpro BH cobrindo uma introdução ao Rails e ao Ruby em conjunto com seu ecosistema.
Obrigado Fábio Akita por ceder vários slides (http://www.slideshare.net/akitaonrails)
Apresentação introdutória sobre a MEAN Stack, contando com o desenvolvimento, passo-a-passo, de uma aplicação simples.
Apresentação para o JSDay Campina Grande.
Apresentação intitulada "Modern PHP" que será apresentada na semana acadêmica da FACCAT (Taquara) entre os dias 25 a 29 de abril: http://techparty.faccat.br
Autenticação, Documentação, Padronização, Negociação de Conteúdo, escolha do framework (Laravel vs Lumen), pacotes que podem ajudar, boas práticas, dicas de segurança, recursos úteis. Várias lições aprendidas ao se montar uma API pública para outros devs utilizarem.
Link para o vídeo da apresentação: https://youtu.be/3GAF2t5Qohc
Não é fácil escrever uma biblioteca confortável de usar. É difícil agradar a todos. Mas também é difícil agradar até quem acha que a nossa biblioteca faz algo útil. Não é fácil nem mesmo quando fazemos algo reusável só para nós mesmos.
Ainda bem que muitos outros programadores já erraram antes de nós. E existem em Python e fora dele diversos exemplos de boas libs nas quais podemos nos inspirar.
Essa palestra resumirá o que torna uma biblioteca boa, de acordo com nossa experiência e com a experiência de outros programadores que já escreveram sobre isso. Algumas características de boas bibliotecas são:
- Alta Consistência
- Muitos dados puros
- Baixa Verbosidade
- Respeito ao Principle of Least Astonishment
- Alta Extensibilidade
- Baixa Retenção
- Vários níveis de abstrações
- Alta granularidade
- Interesses claros e separados
- Pythonica
Como você pode ver, alguns aspectos acima são similares ao Zen of Python. Por isso também mostraremos funcionalidades do Python que ajudam a programar boas interfaces. Além disso, para resumir tudo definiremos um checklist que você poderá usar sempre que for escrever um módulo reusável. Esperamos que isso ajude você a programar melhor, o que certamente agradará seus parceiros de trabalho e a comunidade.
Descrição introdutória de uma arquitetura para o desenvolvimento de aplicações web com funcionalidades offline.
Tecnologias envolvidas: HTML5, Javascript, Handlebards, etc.
Última aula do curso de Python, aqui mostramos de forma superficial como fazer a integração do Django com Adobe Flex, como utilizar o módulo do PagSeguro, PyGame e como integrar sua aplicação com o Apache
Minha aplicação Java vai pra nuvem. E agora?Felipe Mamud
Estamos acostumados a trabalhar com Java em ambiente local ou em algum servidor de desenvolvimento. Nesta talk tentarei mostrar os principais desafios encontrados quando utilizamos Java em um cenário de Cloud, utilizando um PaaS de mercado.
A partir de um arquivo em branco é possível escrever algumas linhas de código e criar uma loja virtual completa. Com 500 linhas de código em PHP foi desenvolvido um e-commerce com gateway de pagamento em menos de um dia.
PyData - Consumindo e publicando web APIs com PythonBruno Rocha
Apresentado no auditório da NuBank em São Paulo dia 28 de Março de 2017 - PyData Meetup.
- O que são Web APIs
- Consumindo web APIs com Python
- O que fazer com os dados?
- Publicando web APIs com Python.
http://github.com/rochacbruno/flasgger
31. Posto de outra forma
Vamos importar ideias
estruturantes que provaram ser
populares noutros contextos
dinâmicos, criando sinergias que
nos permitem agilizar a nossa
entrada no mercado global com
uma proposta de valor vencedora
45. Atenção!
o próximo programa inclui
cenas de Perl explicito, só
recomendadas a programadores
de Frameworks Perl, ou pessoas
à procura de novas experiências
59. my $app = sub {
my $env = shift;
return sub {
my $respond = shift;
# Aqui podem delegar num event-loop estilo
# POE ou AnyEvent para implementar cenas
# tipo Comet
$respond->([ $status, $header, $body ]);
};
};
60. my $app = sub {
my $env = shift;
return sub {
my $respond = shift;
my $w = $respond->([ $status, $header ]);
$w->write($body);
$w->write($body);
...
$w->close;
};
};
61. Interface de Streaming
Inicialmente desenhado para servidores “non-blocking”
Já disponível para a maioria dos servidores incluindo
CGI e Apache
69. # Dancer
use Dancer;
get ‘/’ => sub {
“Hello World”;
};
use Dancer::Config ‘setting’;
setting apphandler => ‘PSGI’;
my $app = sub {
my $r = Dancer::Request->new(shift);
Dancer->dance($r);
};
# $app é uma aplicação PSGI!
81. my $app = sub {
my $env = shift;
return [ $status, $header, $body ];
};
my $mw = sub {
my $env = shift;
# do something with $env
my $res = $app->($env);
# do something with $res;
return $res;
};
87. use CatApp;
use CGIApp;
my $c1 = sub { CatApp->run };
my $c2 = sub { CGIApp->run_psgi };
use Plack::Builder;
builder {
mount “/cat” => $c1;
mount “/cgi-app” => builder {
enable “StackTrace”;
$c2;
};
}
92. use Plack::Test;
use HTTP::Request::Common;
my $app = sub {
my $env = shift;
return [ $status, $header, $body ];
};
test_psgi app => $app, client => sub {
my $cb = shift;
my $req = GET “http://localhost/foo”;
my $res = $cb->($req);
# test $res;
};
93. use Plack::Test;
use HTTP::Request::Common;
$Plack::Test::Impl = “Server”;
my $app = sub {
my $env = shift;
return [ $status, $header, $body ];
};
test_psgi app => $app, client => sub {
my $cb = shift;
my $req = GET “http://localhost/foo”;
my $res = $cb->($req);
# test $res;
};
113. Resumo
• PSGI é o interface, Plack é uma
implementação
• Temos vários servidores PSGI, muito bons
e bem rápidos
• Temos adaptadores e ferramentas para a
maioria das frameworks Web
• Pronto a usar!
114. Processo
• Partilhar é importante
• Utilizar as ideias das outras comunidades é
um bom inicio
• Integrar algo com utilidade comprovada é
excelente