SlideShare uma empresa Scribd logo
1 de 41
PHP-GTK2
Pablo Dall'Oglio
Adianti Solutions
www.adianti.com.br

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2
Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
TalkLog
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

FISL - Porto Alegre, May 4, 2002;
SICOMP - Univates, April 11, 2002;
1ª sem. Informática, Urcamp, May, 27, 2002;
2ª sem. Informática, Urcamp, October, 18, 2002;
I SDSL, Unisinos, July, 17, 2003;
Tríade Acadêmica, Feevale, Oct, 2003;
Conf. SL Brasil, Curitiba, Nov, 6, 2003;
UniInfo, Unisinos, Nov, 14 2003;
II SDSL, Unicamp, Dec, 24, 2003;
I SCSL, Brasília, April, 29, 2004;
5 FISL, Porto Alegre, June, 3, 2004;
III SDSL, Univates, July, 20, 2004;
Criciúma, SC, Aug, 14, 2004;
UniInfo, Unisinos, Oct, 2004;
Fórum do Gnome, Foz do Iguaçu, Nov, 2004;
FURG, Rio Grande, Out, 2005;
Fórum do Gnome, Curitiba, Nov, 2005;
II Jornadas de Informática, Fac. Int. Itararé, Maio, 2006;
PHP Conference Brasil, Novembro, 2006;
PHP Road Show, Brasília, Maio, 2007;
PHP Now, Petrópolis-RJ, Novembro, 2007;

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
O que é o PHP-GTK ?
●

Agenda;

●

Chat;

●

Grafico (jpgraph);

●

PhotoManager;

●

Excel;

●

Tulip;

●

Agata;

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
História
PHP 1,2,3
▪ 1994 Rasmus Lerdorf (Personal Home Pages);
▪ Ferramenta para criar páginas dinâmicas;
▪ Voltada para web (comércio eletrônico, portais);
PHP 4
▪ Independência da Web;
▪ Scripts shell;
▪ PHP-GTK;
PHP 5
▪ Fortemente OO;
▪ Interfaces, visibilidade, membros estáticos,
abstract, final;
▪ Object Clonning, objetos como referência;
▪ Construtores, Destrutores, Manipulação de erros;
Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Considerações
• Extremamente fácil de utilizar;
• Possivelmente a linguagem de script mais utilizada na
web;
• Vasta Bibliografia a respeito;
• Muitas funções (arquivos, arrays, strings, XML, Imagens,
ZIP, PDF, FTP, LDAP);
• Postgres, Oracle, Mysql, Sql$erver, SQLite, Firebird,
Sybase, Frontbase, Informix, ODBC, DBase, SapDB,
Adabas, DB2...
• Rápida, Flexível, não-rígida, tipagem dinâmica;
• Permite tanto abordagem Procedural quanto OO;
• A maioria de quem trabalha com PHP, não usa OO;
Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
GTK

Toolkit multi-plataforma para criar aplicações
gráficas;
Gtk+ foi desenvolvido para o GIMP, o GNU Image
Manipulation Program. Gtk+ significa GIMP Tool Kit.
O GTK+ tem crescido desde os primórdios e agora é
usado como parte central do Gnome, o ambiente
desktop GNU .
Gtk+ tem sido portado para o BeOS e Win32,
fazendo-se a escolha perfeita para ser usado como
base para uma extensão do PHP, mantendo o PHP
independente de plataforma e permitindo a criação
de aplicações "janelizadas" em PHP para linux, BeOS
e Windows.

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Gimp

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Gnome

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Firefox

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Evolution

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Tudo Começou...

• PHP-GTK é uma extensão do PHP;
• Criado por Andrei Zmievski;
• Nasceu como um experimento;
• Desenvolvido no outono de 2000;
• Primeira versão em Março de 2001;
• 2006 => PHP-GTK2 (PHP5 com GTK2);

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Sistema de Biblioteca

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Web versus Client

Aplicações Web
• Dirigida à requisição de páginas;
• Execução procedural;
• Total integração com o servidor;

Aplicações Cliente
• Dirigidas à eventos;
• O programador cria a interface, e esta aguarda por
eventos ou sinais;
• Tem acesso aos recursos da máquina cliente, além
do servidor;
Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Reuso

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Widgets

• Widgets é uma palavra derivada de “Windows” +
“Gadgets”. Um widget é um componente da
interface gráfica com o qual o usuário pode
interagir. Como uma caixa de texto, label,
frame;

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Instanciando Objetos
<?php
// criar janela
$janela = new GtkWindow;
// chamar método
$janela­>set_title('Título da Janela');
// criar botão
$botao = new GtkButton('Clique ME!');
// chamar método
$janela­>add($botao);
?> 

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Signals

• São notificações (mensagens) emitidas por
widgets. Quando se programa Interfaces Gráficas
(GUI) geralmente é necessário responder a ações
realizadas pelo usuário ou iniciadas dentro do
próprio programa. Quando um usuário clica em
um botão, um sinal é emitido.
•
•
•
•

destroy
row-activated
activate
pressed, released, clicked

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Callbacks

• São funções que são registradas pelo
programador para reagir a sinais emitidos por
widgets.
$widget­>connect('signal','callback');
Exemplo:
$button­>connect('clicked', 'alerta_usuario');

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Empacotamento

• Construção da interface através de Containers:
• GtkHBox, GtkVBox, GtkFrame, GtkNotebook;
Exemplo:
$janela = new GtkWindow;
$hbox   = new GtkHBox;
$janela­>add($hbox);
$hbox­>pack_start(new GtkLabel('Código...:'));
$hbox­>pack_start(new GtkEntry);

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Posições Fixas

Exemplo:
$janela = new GtkWindow;
$fixed  = new GtkFixed;
$janela­>add($fixed);
$label  = new GtkLabel('Código...:')
$fixed­>put($label, 10, 20);
Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Exemplo
<?
function onClick()
{
    echo "Você clicou no botãon";
}
function onExit()
{
    echo "Você fechou o programan";
    Gtk::main_quit();
}
$janela = new GtkWindow;
$janela­>connect('destroy', 'onExit');
$botao = new GtkButton(' Click here ! ');
$botao­>connect('clicked', 'onClick');
$janela­>add($botao);
$janela­>show_all();
Gtk::main();
?>
Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Glade

O Glade é uma ferramenta para
acelerar a construção da interface da
aplicação, os projetos desenvolvidos
nele são gravados no formato XML.

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Glade
<?php
$glade = new GladeXML('exemplo.glade');
$botao = $glade­>get_widget('botao');
$entry = $glade­>get_widget('caixa_texto');
$botao­>connect('clicked', 'hello_world');
function hello_world()
{
    global $entry;
    $entry­>set_text('Hello World');
}
Gtk::Main();
?> 

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Text Markup
<?
$window = new GtkWindow;
$window­>set_default_size(200,200);
$vbox = new GtkVBox;
$label = new GtkLabel();
$label­>set_markup('<b><i><u>
negrito,
italico e
sublinhado</u></i></b>');
$vbox­>pack_start($label);
$label = new GtkLabel();
$label­>set_markup('<span foreground="blue" background="gray">
<b>Texto: Azul fundo cinza</b></span>');
$vbox­>pack_start($label);
//...
$window­>add($vbox);
$window­>show_all();
gtk::main();
?>
Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Stock Items
<?
// cria nova janela
$window = new GtkWindow;
$window­>set_default_size(120,100);
// cria caixa vertical
$vbox = new GtkVBox;
// cria botão a partir do estoque, usando
// uma constante para representar...
$button = GtkButton::new_from_stock(Gtk::STOCK_OK);
$vbox­>pack_start($button);
$button = GtkButton::new_from_stock(Gtk::STOCK_CANCEL);
$vbox­>pack_start($button);
$button = GtkButton::new_from_stock(Gtk::STOCK_FLOPPY);
$vbox­>pack_start($button);
// adiciona caixa vertical à janela e a exibe
$window­>add($vbox);
$window­>show_all();
gtk::main();
?>
Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Diálogos
<?php
$dialog = new GtkMessageDialog(null, Gtk::DIALOG_MODAL,
      Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO,
      'Deseja continuar ?');
$response = $dialog­>run();
var_dump($response);
if ($response == Gtk::RESPONSE_YES)
    echo 'sim';
if ($response == Gtk::RESPONSE_DELETE_EVENT)
    echo 'fechou';
$dialog­>destroy();
?> 

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
TreeView

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
TreeView
$list = new GtkTreeView;
$model = new GtkListStore(Gtk::TYPE_STRING, Gtk::TYPE_STRING);
$list­>set_model($model);
$column1 = new GtkTreeViewColumn('Name');
$column2 = new GtkTreeViewColumn('Points');
$cell_renderer1 = new GtkCellRendererText();
$cell_renderer2 = new GtkCellRendererText();
$column1­>pack_start($cell_renderer1, true);
$column2­>pack_start($cell_renderer2, true);
$list­>append_column($column1);
$list­>append_column($column2);
$dados[] = array('Gustavo Kuerten','3258 pontos');
$dados[] = array('Andre Agassi',   '2986 pontos');
foreach ($dados as $jogador)
{
    $iter = $model­>append($jogador);
}
Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
TextView

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Interface

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
SQLite

• Embutido no PHP5;
• Iniciado no ano de 2000
por Richard Hipp;
• Banco de Dados composto
por simples arquivos;
• Subselect, triggers,
transações, views, 2-3x
mais rápido que MySQL,
limite de 2 Terabytes,
views são read-only, sem
foreign keys;

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
SQLite
<?php
// Abre o BD (cria se não existir);
$db = sqlite_open("cidades.db"); 
// Consultas
$result = sqlite_query($db, "SELECT * from cidades"); 
// Retornando os dados
while ($row = sqlite_fetch_array($result))
{
    print_r($row); 
}
// Fecha a conexão
sqlite_close($db);
?> 

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
SQLite
<?php
$janela = new GtkWindow;
$vbox   = new GtkVBox;
$label1 = new GtkLabel('Código');
$label2 = new GtkLabel('Nome');
$codigo = new GtkEntry;
$nome   = new GtkEntry;
$vbox­>pack_start($label1);
$vbox­>pack_start($codigo);
$vbox­>pack_start($label2);
$vbox­>pack_start($nome);
$botao = GtkButton::new_from_stock(GTK::STOCK_OK);
$botao­>connect('clicked', 'onClick');
$vbox­>pack_start($botao);
$janela­>add($vbox);
$janela­>show_all();

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
SQLite

function onClick()
{
    global $codigo, $nome;
    // obtém valores dos campos
    $texto_codigo = $codigo­>get_text();
    $texto_nome   = $nome­>get_text();
    $db = sqlite_open("pessoas.db");
    sqlite_query($db, "insert into pessoas (codigo, nome)
                values ('$texto_codigo', '$texto_nome')");
    sqlite_close($db);
    $codigo­>set_text('');
    $nome­>set_text('');
}
Gtk::Main();
?>  
Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Adianti Studio G2

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Agata

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Linux Stock

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Referências

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Obrigado!

E-Mail
pablo@php.net
pablo@dalloglio.net

URL
http://www.php-gtk.com.br
http://www.adianti.com.br
http://www.pablo.blog.br

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=
Creative Commons

Estes slides estão disponíveis sob a licença não comercial da
creative commons 1.0;
• Você pode distribuir, copiar, exibir e realizar outros trabalhos
seguindo estas condições:
▪ Atribuição: Você deve dar os créditos ao autor original;
▪ Não-Comercial: Você não pode utilizar este trabalho para
propósitos comerciais;
▪ Não derivar trabalhos: Você não pode alterar, transformar, ou
construir algo sobre este trabalho.
▪ Para todo reuso ou distribuição, você deve deixar explícito para
os outros, os termos da licença deste trabalho;
▪ Estas condições podem ser alteradas se você obter permissão do
autor;
• O uso justo e outros direitos não são afetados pelas condições
acima.
•

Pablo Dall'Oglio [pablo@php.net]
PHP-GTK2

+

=

Mais conteúdo relacionado

Mais procurados

Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwarePablo Dall'Oglio
 
PHP: Programando com orientação a Objetos
PHP: Programando com orientação a ObjetosPHP: Programando com orientação a Objetos
PHP: Programando com orientação a ObjetosPablo Dall'Oglio
 
Implementando enterprise patterns com PHP
Implementando enterprise patterns com PHPImplementando enterprise patterns com PHP
Implementando enterprise patterns com PHPPablo Dall'Oglio
 
Clean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHPClean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHPRafael Neris
 
Reduzindo o boilerplate code com Lombok
Reduzindo o boilerplate code com LombokReduzindo o boilerplate code com Lombok
Reduzindo o boilerplate code com LombokWellington Pinheiro
 
Web2py: Desenvolvimento Ágil de Aplicações Web com Python
Web2py: Desenvolvimento Ágil de Aplicações Web com PythonWeb2py: Desenvolvimento Ágil de Aplicações Web com Python
Web2py: Desenvolvimento Ágil de Aplicações Web com Pythonchackero
 
Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Rodrigo Branas
 
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique MarksDesenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique MarksTchelinux
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkFlávio Lisboa
 
Logs, pra que te quero! @ TDC SP 2017
Logs, pra que te quero! @ TDC SP 2017Logs, pra que te quero! @ TDC SP 2017
Logs, pra que te quero! @ TDC SP 2017Gabriel Machado
 

Mais procurados (15)

Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um Software
 
Design Patterns com PHP
Design Patterns com PHPDesign Patterns com PHP
Design Patterns com PHP
 
PHP: Programando com orientação a Objetos
PHP: Programando com orientação a ObjetosPHP: Programando com orientação a Objetos
PHP: Programando com orientação a Objetos
 
Implementando enterprise patterns com PHP
Implementando enterprise patterns com PHPImplementando enterprise patterns com PHP
Implementando enterprise patterns com PHP
 
Solid
SolidSolid
Solid
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
Clean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHPClean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHP
 
Reduzindo o boilerplate code com Lombok
Reduzindo o boilerplate code com LombokReduzindo o boilerplate code com Lombok
Reduzindo o boilerplate code com Lombok
 
Web2py: Desenvolvimento Ágil de Aplicações Web com Python
Web2py: Desenvolvimento Ágil de Aplicações Web com PythonWeb2py: Desenvolvimento Ágil de Aplicações Web com Python
Web2py: Desenvolvimento Ágil de Aplicações Web com Python
 
Trabalhando com as views do Web2Py
Trabalhando com as views do Web2PyTrabalhando com as views do Web2Py
Trabalhando com as views do Web2Py
 
Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)
 
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique MarksDesenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend Framework
 
Logs, pra que te quero! @ TDC SP 2017
Logs, pra que te quero! @ TDC SP 2017Logs, pra que te quero! @ TDC SP 2017
Logs, pra que te quero! @ TDC SP 2017
 
Qualidade de código Android
Qualidade de código AndroidQualidade de código Android
Qualidade de código Android
 

Semelhante a PHP-GTK2: Uma introdução à extensão PHP-GTK

Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias WebRildo Pragana
 
Ruby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo CastellaniRuby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo Castellaniguest2a3a90
 
Ruby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo CastellaniRuby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo CastellaniHugo Borges
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonFabio Spanhol
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoÁlvaro Justen
 
Implementando PSR-3 com Monolog @ PHP Community Summit 2019
Implementando PSR-3 com Monolog @ PHP Community Summit 2019Implementando PSR-3 com Monolog @ PHP Community Summit 2019
Implementando PSR-3 com Monolog @ PHP Community Summit 2019Gabriel Machado
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
Frameworks Web e Python
Frameworks Web e PythonFrameworks Web e Python
Frameworks Web e PythonÁlvaro Justen
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
Dia Debian 2007 - Desenvolvendo aplicações no Linux
Dia Debian 2007 - Desenvolvendo aplicações no LinuxDia Debian 2007 - Desenvolvendo aplicações no Linux
Dia Debian 2007 - Desenvolvendo aplicações no LinuxJorge Pereira
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - gitThiago Filadelfo
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Luís Cobucci
 
Palestra: Desenvolvendo Produtos sobre a Plataforma Pentaho - Pentaho Day 2013
Palestra: Desenvolvendo Produtos sobre a Plataforma Pentaho - Pentaho Day 2013Palestra: Desenvolvendo Produtos sobre a Plataforma Pentaho - Pentaho Day 2013
Palestra: Desenvolvendo Produtos sobre a Plataforma Pentaho - Pentaho Day 2013Marcio Junior Vieira
 
Desenvolvendo Produtos sobre a Plataforma Pentaho
Desenvolvendo Produtos sobre a Plataforma PentahoDesenvolvendo Produtos sobre a Plataforma Pentaho
Desenvolvendo Produtos sobre a Plataforma PentahoAmbiente Livre
 
Desenvolvendo Produtos sobre a Plataforma Pentaho
Desenvolvendo Produtos sobre a Plataforma PentahoDesenvolvendo Produtos sobre a Plataforma Pentaho
Desenvolvendo Produtos sobre a Plataforma PentahoPentahoBrasil
 

Semelhante a PHP-GTK2: Uma introdução à extensão PHP-GTK (20)

Php Gtk
Php GtkPhp Gtk
Php Gtk
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias Web
 
PHP Tools for Fast coding
PHP Tools for Fast codingPHP Tools for Fast coding
PHP Tools for Fast coding
 
Apresentacao sfd-poa
Apresentacao sfd-poaApresentacao sfd-poa
Apresentacao sfd-poa
 
Ruby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo CastellaniRuby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo Castellani
 
Ruby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo CastellaniRuby No Desktop - Marcelo Castellani
Ruby No Desktop - Marcelo Castellani
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com Python
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Implementando PSR-3 com Monolog @ PHP Community Summit 2019
Implementando PSR-3 com Monolog @ PHP Community Summit 2019Implementando PSR-3 com Monolog @ PHP Community Summit 2019
Implementando PSR-3 com Monolog @ PHP Community Summit 2019
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Frameworks Web e Python
Frameworks Web e PythonFrameworks Web e Python
Frameworks Web e Python
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
Dia Debian 2007 - Desenvolvendo aplicações no Linux
Dia Debian 2007 - Desenvolvendo aplicações no LinuxDia Debian 2007 - Desenvolvendo aplicações no Linux
Dia Debian 2007 - Desenvolvendo aplicações no Linux
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - git
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 
Palestra: Desenvolvendo Produtos sobre a Plataforma Pentaho - Pentaho Day 2013
Palestra: Desenvolvendo Produtos sobre a Plataforma Pentaho - Pentaho Day 2013Palestra: Desenvolvendo Produtos sobre a Plataforma Pentaho - Pentaho Day 2013
Palestra: Desenvolvendo Produtos sobre a Plataforma Pentaho - Pentaho Day 2013
 
Desenvolvendo Produtos sobre a Plataforma Pentaho
Desenvolvendo Produtos sobre a Plataforma PentahoDesenvolvendo Produtos sobre a Plataforma Pentaho
Desenvolvendo Produtos sobre a Plataforma Pentaho
 
Desenvolvendo Produtos sobre a Plataforma Pentaho
Desenvolvendo Produtos sobre a Plataforma PentahoDesenvolvendo Produtos sobre a Plataforma Pentaho
Desenvolvendo Produtos sobre a Plataforma Pentaho
 

PHP-GTK2: Uma introdução à extensão PHP-GTK