O documento discute a biblioteca Libpurple, que fornece funcionalidades de mensagens instantâneas, e o Python-purple, que permite o uso da Libpurple em Python. O Python-purple é escrito em Cython e mapeia a API da Libpurple para Python, permitindo acesso completo à biblioteca a partir de programas Python.
O documento discute as diferenças entre Python, CPython, Pythonico e Cython. Pythonico refere-se a seguir as melhores práticas de codificação Python como definido na PEP 8. CPython é a implementação original da linguagem Python. Cython é uma ferramenta que converte código Python em C para melhorar o desempenho.
O documento discute os termos Python, CPython e Cython, explicando que Pythonico se refere a seguir as melhores práticas de estilo de codificação em Python. Também descreve como o Cython pode ser usado para acelerar códigos Python ao converter para C/C++ mantendo a sintaxe e semântica de Python.
Módulos são programas reutilizáveis que contêm funções e outros objetos. Podem ser importados para fornecer funcionalidade comum a outros programas. A biblioteca padrão do Python é dividida em módulos como sys, os e math. Qualquer programa Python pode ser usado como um módulo.
Este documento apresenta Jeronimo Zucco, um analista de suporte da UCS especializado em Linux e código aberto. Zucco argumenta que Python é uma linguagem de programação útil para sysadmins por ser fácil de aprender e usar para tarefas repetitivas, além de ter melhor performance que shell scripts. Ele apresenta exemplos de códigos em Python, Bash e Perl para ilustrar como Python produz códigos mais legíveis e descritivos.
O documento apresenta uma introdução à linguagem de programação Python, descrevendo o que é Python, onde é usada, como roda, suas características, tipos de dados, controle de fluxo, funções, módulos, classes, bibliotecas padrão e sites relacionados.
O documento discute estratégias para implementar programação paralela implícita em Python através de threads e transações. A proposta é criar unidades paralelas de forma automática ao invés de explicitamente como nos modelos atuais. Isso facilitaria a construção de programas paralelos em Python. O autor também discute pré-processamento do código para inserir conceitos como exclusividade, barreiras e transações atômicas. Há dúvidas se o foco deveria ser um novo módulo ou pré-processamento do código.
O documento discute a importância de agendar tarefas no Linux e as duas opções principais para isso: cron e at. O cron é mais usado e permite agendar a execução de comandos/scripts em determinadas datas e horários usando uma tabela de parâmetros. Existem várias formas de interagir com o cron, como crontab e arquivos de configuração.
O documento discute as diferenças entre Python, CPython, Pythonico e Cython. Pythonico refere-se a seguir as melhores práticas de codificação Python como definido na PEP 8. CPython é a implementação original da linguagem Python. Cython é uma ferramenta que converte código Python em C para melhorar o desempenho.
O documento discute os termos Python, CPython e Cython, explicando que Pythonico se refere a seguir as melhores práticas de estilo de codificação em Python. Também descreve como o Cython pode ser usado para acelerar códigos Python ao converter para C/C++ mantendo a sintaxe e semântica de Python.
Módulos são programas reutilizáveis que contêm funções e outros objetos. Podem ser importados para fornecer funcionalidade comum a outros programas. A biblioteca padrão do Python é dividida em módulos como sys, os e math. Qualquer programa Python pode ser usado como um módulo.
Este documento apresenta Jeronimo Zucco, um analista de suporte da UCS especializado em Linux e código aberto. Zucco argumenta que Python é uma linguagem de programação útil para sysadmins por ser fácil de aprender e usar para tarefas repetitivas, além de ter melhor performance que shell scripts. Ele apresenta exemplos de códigos em Python, Bash e Perl para ilustrar como Python produz códigos mais legíveis e descritivos.
O documento apresenta uma introdução à linguagem de programação Python, descrevendo o que é Python, onde é usada, como roda, suas características, tipos de dados, controle de fluxo, funções, módulos, classes, bibliotecas padrão e sites relacionados.
O documento discute estratégias para implementar programação paralela implícita em Python através de threads e transações. A proposta é criar unidades paralelas de forma automática ao invés de explicitamente como nos modelos atuais. Isso facilitaria a construção de programas paralelos em Python. O autor também discute pré-processamento do código para inserir conceitos como exclusividade, barreiras e transações atômicas. Há dúvidas se o foco deveria ser um novo módulo ou pré-processamento do código.
O documento discute a importância de agendar tarefas no Linux e as duas opções principais para isso: cron e at. O cron é mais usado e permite agendar a execução de comandos/scripts em determinadas datas e horários usando uma tabela de parâmetros. Existem várias formas de interagir com o cron, como crontab e arquivos de configuração.
O documento descreve o uso do daemon Cron no Linux para agendamento de tarefas. O Cron controla agendamentos através do arquivo /etc/crontab e permite especificar tarefas a serem executadas em tempos específicos, como minutos, horas, dias. O Cron também permite que usuários agendem tarefas que serão executadas com suas permissões por meio do comando crontab. Há diretórios para executar scripts em intervalos como hourly, daily e weekly.
O cron é um programa de agendamento de tarefas no Linux que permite executar tarefas periodicamente ou em datas e horários específicos. Ele é usado comumente para automatizar tarefas administrativas como backup e análise de segurança. Os usuários configuram suas tarefas agendadas usando o comando crontab para editar ou remover suas entradas.
Plasma Animations Overview (aka. Pimp my Plasmoids!)Bruno Abinader
This document provides an overview of the different types of plasma animations available, including fade, geometry, grow, pixmap transition, pulser, rotation, rotation stacked, slide, and zoom animations. It describes the purpose and key properties of each animation type. It also mentions that future plasma animations may be implemented using JavaScript for improved maintainability and without significant performance loss compared to C++ animations.
Computação paralela utilizando OpenMP para aplicações matemáticosbshecht
Apresentação final do Trabalho de Conclusão de Curso focado em Computação Paralela por memória compartilhada utilizando a bliblioteca OpenMP para paralelização de aplicações matemáticas
O documento descreve como agendar tarefas no Linux usando o cron e at. O cron é um daemon que permite agendar scripts, programas ou comandos para execução em dias, meses, horas específicos. As tarefas são definidas em arquivos de crontab. Há também diretórios para agendamento de tarefas a serem executadas de hora em hora, diariamente, semanalmente ou mensalmente. Valores como minuto, hora, dia do mês e outros podem ser especificados ou usando asteriscos para qualquer valor.
XVII SAMET - Dr. Gerson Cavalheiro [Programação com Open MP - 01.12.2010 4ª ...Dafmet Ufpel
1) O documento discute programação concorrente em arquiteturas multi-core, apresentando a ferramenta OpenMP. 2) É introduzida a programação multithread e modelos de decomposição paralela, como paralelismo de tarefas e dados. 3) A ferramenta OpenMP é apresentada como uma forma de programação concorrente que facilita a exploração do paralelismo em arquiteturas multi-core.
[1] O documento apresenta os conceitos fundamentais de programação paralela utilizando OpenMP, incluindo memória compartilhada, threads e diretivas de compilação. [2] É introduzido o modelo de programação fork-join do OpenMP e suas principais diretivas como PARALLEL, DO e SECTIONS. [3] São descritos exemplos de uso das diretivas e exercícios para treinar a aplicação do OpenMP.
O documento resume as principais mudanças na versão 2.0 do framework CakePHP, incluindo o abandono do suporte ao PHP 4, a adoção do PHPUnit para testes de unidade, a reestruturação de componentes, sessões e visões, a adição de novas funcionalidades como PDO e reescrita de URLs.
O documento apresenta um mini-curso sobre programação paralela utilizando OpenMP. Ele introduz os palestrantes e seus backgrounds, objetivos do curso, e um roteiro que inclui a evolução dos microprocessadores, programação paralela, OpenMP e desafios futuros.
O documento discute arquiteturas de computação paralela avançadas como CUDA e OpenCL. Explica o que é CUDA, sua história, arquitetura de GPU, modelo de memória e programação. Também aborda OpenCL e aplicações dessas tecnologias em ciência de dados e computação científica.
Este documento descreve um grupo de estudos sobre software livre na Universidade Estadual de Campinas. Ele discute a motivação para o grupo, seus membros, como as reuniões irão funcionar e o próximo tópico de discussão.
(08)inicializacao e gerencia_de_processosAnderson Lago
O documento discute a inicialização de serviços e gerenciamento de processos no Linux. Explica como o SysV init controla os runlevels para iniciar/parar serviços e como configurar serviços para iniciar automaticamente no boot. Também descreve como gerenciar processos usando ferramentas como ps, kill, nice e renice.
Desenvolvendo Aplicações de Uso Geral para GPU com CUDAFilipo Mór
O documento apresenta um mini-curso sobre desenvolvimento de aplicações para GPU usando CUDA. A agenda inclui conceitos básicos sobre GPUs, uma breve história, programação CUDA e um estudo de caso comparativo entre CPU, OpenMP e CUDA para o problema de N-corpos.
O documento apresenta uma introdução à shell script, descrevendo a filosofia dos sistemas Unix, o que é shell e bash, estruturas de controle e utilitários úteis como awk, sed e grep. O palestrante também discute como criar e executar scripts shell.
Desenvolvendo aplicações Mobile em PythonRelsi Maron
Apresentação da biblioteca python de desenvolvimento multiplataforma Kivy. Usando a simplicidade, e o poder, de Python é possível criar desde simples projetos à aplicações interativas com suporte a multi-toques e games, e gerar uma aplicação nativa para o dispositivo.
NumPy is a Python library used for working with multidimensional arrays and matrices for scientific computing. It allows fast operations on arrays through optimized C code and is the foundation of the Python scientific computing stack. NumPy arrays can be created in many ways and support operations like indexing, slicing, broadcasting, and universal functions. NumPy provides many useful features for linear algebra, Fourier transforms, random number generation and more.
O documento apresenta um curso introdutório sobre a linguagem de programação Python, abordando tópicos como:
1) O que é Python, incluindo sua tipagem dinâmica e delimitação por indentação;
2) Por que aprender Python, destacando sua simplicidade, expressividade e suporte a múltiplas plataformas;
3) Conceitos básicos da linguagem como tipos numéricos e de dados, listas e métodos.
O documento introduz o conceito de Python como uma linguagem de programação interpretada e dinamicamente tipada. Apresenta alguns tópicos básicos como estruturas de dados como listas e dicionários, além de operadores e funções.
Este documento fornece um resumo de 3 frases ou menos sobre o documento:
O documento discute a história e uso da linguagem de programação Python, desde sua criação até versões atuais. A linguagem é de código aberto e licenciada pela Python Software Foundation. O documento também fornece instruções sobre como instalar e usar o interpretador Python em diferentes sistemas operacionais, incluindo Windows.
O documento descreve o uso do daemon Cron no Linux para agendamento de tarefas. O Cron controla agendamentos através do arquivo /etc/crontab e permite especificar tarefas a serem executadas em tempos específicos, como minutos, horas, dias. O Cron também permite que usuários agendem tarefas que serão executadas com suas permissões por meio do comando crontab. Há diretórios para executar scripts em intervalos como hourly, daily e weekly.
O cron é um programa de agendamento de tarefas no Linux que permite executar tarefas periodicamente ou em datas e horários específicos. Ele é usado comumente para automatizar tarefas administrativas como backup e análise de segurança. Os usuários configuram suas tarefas agendadas usando o comando crontab para editar ou remover suas entradas.
Plasma Animations Overview (aka. Pimp my Plasmoids!)Bruno Abinader
This document provides an overview of the different types of plasma animations available, including fade, geometry, grow, pixmap transition, pulser, rotation, rotation stacked, slide, and zoom animations. It describes the purpose and key properties of each animation type. It also mentions that future plasma animations may be implemented using JavaScript for improved maintainability and without significant performance loss compared to C++ animations.
Computação paralela utilizando OpenMP para aplicações matemáticosbshecht
Apresentação final do Trabalho de Conclusão de Curso focado em Computação Paralela por memória compartilhada utilizando a bliblioteca OpenMP para paralelização de aplicações matemáticas
O documento descreve como agendar tarefas no Linux usando o cron e at. O cron é um daemon que permite agendar scripts, programas ou comandos para execução em dias, meses, horas específicos. As tarefas são definidas em arquivos de crontab. Há também diretórios para agendamento de tarefas a serem executadas de hora em hora, diariamente, semanalmente ou mensalmente. Valores como minuto, hora, dia do mês e outros podem ser especificados ou usando asteriscos para qualquer valor.
XVII SAMET - Dr. Gerson Cavalheiro [Programação com Open MP - 01.12.2010 4ª ...Dafmet Ufpel
1) O documento discute programação concorrente em arquiteturas multi-core, apresentando a ferramenta OpenMP. 2) É introduzida a programação multithread e modelos de decomposição paralela, como paralelismo de tarefas e dados. 3) A ferramenta OpenMP é apresentada como uma forma de programação concorrente que facilita a exploração do paralelismo em arquiteturas multi-core.
[1] O documento apresenta os conceitos fundamentais de programação paralela utilizando OpenMP, incluindo memória compartilhada, threads e diretivas de compilação. [2] É introduzido o modelo de programação fork-join do OpenMP e suas principais diretivas como PARALLEL, DO e SECTIONS. [3] São descritos exemplos de uso das diretivas e exercícios para treinar a aplicação do OpenMP.
O documento resume as principais mudanças na versão 2.0 do framework CakePHP, incluindo o abandono do suporte ao PHP 4, a adoção do PHPUnit para testes de unidade, a reestruturação de componentes, sessões e visões, a adição de novas funcionalidades como PDO e reescrita de URLs.
O documento apresenta um mini-curso sobre programação paralela utilizando OpenMP. Ele introduz os palestrantes e seus backgrounds, objetivos do curso, e um roteiro que inclui a evolução dos microprocessadores, programação paralela, OpenMP e desafios futuros.
O documento discute arquiteturas de computação paralela avançadas como CUDA e OpenCL. Explica o que é CUDA, sua história, arquitetura de GPU, modelo de memória e programação. Também aborda OpenCL e aplicações dessas tecnologias em ciência de dados e computação científica.
Este documento descreve um grupo de estudos sobre software livre na Universidade Estadual de Campinas. Ele discute a motivação para o grupo, seus membros, como as reuniões irão funcionar e o próximo tópico de discussão.
(08)inicializacao e gerencia_de_processosAnderson Lago
O documento discute a inicialização de serviços e gerenciamento de processos no Linux. Explica como o SysV init controla os runlevels para iniciar/parar serviços e como configurar serviços para iniciar automaticamente no boot. Também descreve como gerenciar processos usando ferramentas como ps, kill, nice e renice.
Desenvolvendo Aplicações de Uso Geral para GPU com CUDAFilipo Mór
O documento apresenta um mini-curso sobre desenvolvimento de aplicações para GPU usando CUDA. A agenda inclui conceitos básicos sobre GPUs, uma breve história, programação CUDA e um estudo de caso comparativo entre CPU, OpenMP e CUDA para o problema de N-corpos.
O documento apresenta uma introdução à shell script, descrevendo a filosofia dos sistemas Unix, o que é shell e bash, estruturas de controle e utilitários úteis como awk, sed e grep. O palestrante também discute como criar e executar scripts shell.
Desenvolvendo aplicações Mobile em PythonRelsi Maron
Apresentação da biblioteca python de desenvolvimento multiplataforma Kivy. Usando a simplicidade, e o poder, de Python é possível criar desde simples projetos à aplicações interativas com suporte a multi-toques e games, e gerar uma aplicação nativa para o dispositivo.
NumPy is a Python library used for working with multidimensional arrays and matrices for scientific computing. It allows fast operations on arrays through optimized C code and is the foundation of the Python scientific computing stack. NumPy arrays can be created in many ways and support operations like indexing, slicing, broadcasting, and universal functions. NumPy provides many useful features for linear algebra, Fourier transforms, random number generation and more.
O documento apresenta um curso introdutório sobre a linguagem de programação Python, abordando tópicos como:
1) O que é Python, incluindo sua tipagem dinâmica e delimitação por indentação;
2) Por que aprender Python, destacando sua simplicidade, expressividade e suporte a múltiplas plataformas;
3) Conceitos básicos da linguagem como tipos numéricos e de dados, listas e métodos.
O documento introduz o conceito de Python como uma linguagem de programação interpretada e dinamicamente tipada. Apresenta alguns tópicos básicos como estruturas de dados como listas e dicionários, além de operadores e funções.
Este documento fornece um resumo de 3 frases ou menos sobre o documento:
O documento discute a história e uso da linguagem de programação Python, desde sua criação até versões atuais. A linguagem é de código aberto e licenciada pela Python Software Foundation. O documento também fornece instruções sobre como instalar e usar o interpretador Python em diferentes sistemas operacionais, incluindo Windows.
O documento apresenta um guia introdutório sobre como usar a linguagem Python para desenvolver projetos de conclusão de curso ou trabalhos para clientes. Ele descreve as reações iniciais de confusão ao receber um novo projeto e como o Python pode ajudar por ser fácil de aprender. Em seguida, explica bibliotecas úteis como Tkinter para GUI, SQLite para bancos de dados, gzip para compactação e outras. Por fim, incentiva o leitor a programar usando apenas os recursos do "canivete suíço" Python.
O documento descreve a história e características da linguagem de programação Python, desde sua criação por Guido van Rossum até versões atuais. Python tem tipagem dinâmica, sintaxe simples e é interpretada, possibilitando programação em diversas plataformas. Existem várias ferramentas para desenvolvimento com Python.
Programando para web com python - Introdução a PythonAlvaro Oliveira
O documento apresenta uma palestra sobre a linguagem de programação Python. Resume os principais pontos da seguinte forma:
1) Apresenta breve histórico da linguagem Python, criada em 1990 por Guido van Rossum com foco em usuários como físicos e engenheiros.
2) Discutem as principais características da linguagem como interpretação, tipagem dinâmica, controle de fluxo por indentação, orientação a objetos e biblioteca padrão rica.
3) Explicam porque Python é uma boa opção para
Cherrypy - um framework para desenvolvimento rápido de aplicações webAlvaro Oliveira
O documento fornece uma introdução ao framework CherryPy para desenvolvimento web em Python. Ele discute brevemente a história de Python e CherryPy, características e vantagens de Python, empresas que usam Python, e como usar CherryPy para desenvolvimento web rápido.
O documento descreve a licença, desenvolvimento, módulos, frameworks e aplicações da linguagem de programação Python. Detalha os processos de desenvolvimento como PEPs e gerenciamento de erros, além de frameworks como Django e bibliotecas como Matplotlib. Apresenta também exemplos de uso de Python em grandes organizações e softwares.
Este documento fornece informações sobre uma licença Creative Commons que permite o uso não comercial e compartilhamento da obra desde que mantenha a mesma licença. Também apresenta detalhes sobre o livro "Python para desenvolvedores" de Luiz Eduardo Borges.
Este documento fornece uma introdução sobre manipulação de arquivos, módulos e scripts em Python, orientação a objetos e exercícios relacionados. Ele discute como abrir, ler e escrever arquivos, importar módulos, criar classes e herança, e pede ao leitor para completar exercícios práticos sobre esses tópicos.
A linguagem Python é uma linguagem de programação de alto nível, interpretada e de tipagem dinâmica, projetada para priorizar a legibilidade do código. O documento discute a representação numérica em computadores digitais e os problemas de precisão que podem surgir, além de apresentar conceitos básicos de estruturas de programação como sequenciais, de seleção, repetição, funções, variáveis compostas unidimensionais e bidimensionais em Python."
Conheça mais sobre Composer, a ferramenta que trouxe uma das maiores revoluções para o PHP. Composer vai muito além de instalação de dependências, aprenda a poupar dias e meses de trabalho e passe a ser um dev feliz focado em trazer as melhores soluções técnicas para as necessidades do negócio.
Django é um framework web escrito em Python que utiliza o padrão MTV, foi criado originalmente para gerenciar um site jornalístico e se tornou um projeto de código aberto em 2005 sob a licença BSD.
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
Flávio Ribeiro apresenta sobre sistemas embarcados e desenvolvimento de software para esses sistemas usando Python. Ele discute conceitos de sistemas embarcados, por que usar Python, e dicas para desenvolvimento eficiente como desacoplamento, uso de threads e otimização.
Git é um software de controle de versão criado por Linus Torvalds em 2005 para controlar modificações de forma rápida, fácil e gratuita, inspirando-se em ferramentas como BitKeeper e Monotone.
Aula 02 - Análise de Dados - Introdução ao Python.pdfAcauan Ribeiro
O documento apresenta uma aula introdutória sobre análise de dados com Python. Aborda o crescimento da linguagem, conceitos básicos como variáveis, funções, listas e dicionários, e demonstra a instalação e uso do Jupyter Notebook.
Automação de Aplicativos: Scripting com PythonFabio Spanhol
O documento discute linguagens de script e o uso de Python para automatizar aplicativos. Python pode ser usado para controlar o aplicativo de edição de imagem GIMP, através de plug-ins registrados na base de dados procedural do GIMP. Os plug-ins em Python podem acessar as ferramentas e funcionalidades do GIMP para automatizar tarefas.
O documento introduz os principais conceitos da linguagem de programação Python, incluindo o que é Python, quem usa, o interpretador interativo, regras de sintaxe, tipos de dados, funções, orientação a objetos, código fonte e bibliotecas inclusas.
Semelhante a Python-purple: Desenvolvendo bindings para Python usando o Cython (20)
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
3. Agenda
1 Cython
O que é?
Objetivos
Aspectos Gerais
Exemplo
2 Libpurple
Histórico
O que é?
Aspectos Gerais
4. Agenda
1 Cython
O que é?
Objetivos
Aspectos Gerais
Exemplo
2 Libpurple
Histórico
O que é?
Aspectos Gerais
3 Python-purple
Histórico
O que é?
Aspectos Gerais
5. Agenda
1 Cython
O que é?
Objetivos
Aspectos Gerais
Exemplo
2 Libpurple
Histórico
O que é?
Aspectos Gerais
3 Python-purple
Histórico
O que é?
Aspectos Gerais
4 Referências
14. Cython
Aspectos Gerais
O Cython usa três tipos de arquivo-fonte:
Arquivo de implementação .pyx
Contém as implementações (funções em C, C++ ou Python)
Arquivo de definição .pxd
15. Cython
Aspectos Gerais
O Cython usa três tipos de arquivo-fonte:
Arquivo de implementação .pyx
Contém as implementações (funções em C, C++ ou Python)
Arquivo de definição .pxd
Possui apenas declarações em C para uso em módulos do Cython
16. Cython
Aspectos Gerais
O Cython usa três tipos de arquivo-fonte:
Arquivo de implementação .pyx
Contém as implementações (funções em C, C++ ou Python)
Arquivo de definição .pxd
Possui apenas declarações em C para uso em módulos do Cython
Não corresponde necessariamente a um arquivo .pyx ou módulo Python
17. Cython
Aspectos Gerais
O Cython usa três tipos de arquivo-fonte:
Arquivo de implementação .pyx
Contém as implementações (funções em C, C++ ou Python)
Arquivo de definição .pxd
Possui apenas declarações em C para uso em módulos do Cython
Não corresponde necessariamente a um arquivo .pyx ou módulo Python
Útil para armazenar declarações comuns (ex: bibliotecas externas)
18. Cython
Aspectos Gerais
O Cython usa três tipos de arquivo-fonte:
Arquivo de implementação .pyx
Contém as implementações (funções em C, C++ ou Python)
Arquivo de definição .pxd
Possui apenas declarações em C para uso em módulos do Cython
Não corresponde necessariamente a um arquivo .pyx ou módulo Python
Útil para armazenar declarações comuns (ex: bibliotecas externas)
Arquivo de inclusão textual .pxi
19. Cython
Aspectos Gerais
O Cython usa três tipos de arquivo-fonte:
Arquivo de implementação .pyx
Contém as implementações (funções em C, C++ ou Python)
Arquivo de definição .pxd
Possui apenas declarações em C para uso em módulos do Cython
Não corresponde necessariamente a um arquivo .pyx ou módulo Python
Útil para armazenar declarações comuns (ex: bibliotecas externas)
Arquivo de inclusão textual .pxi
Similar a diretiva #include do C
20. Cython
Aspectos Gerais
O Cython usa três tipos de arquivo-fonte:
Arquivo de implementação .pyx
Contém as implementações (funções em C, C++ ou Python)
Arquivo de definição .pxd
Possui apenas declarações em C para uso em módulos do Cython
Não corresponde necessariamente a um arquivo .pyx ou módulo Python
Útil para armazenar declarações comuns (ex: bibliotecas externas)
Arquivo de inclusão textual .pxi
Similar a diretiva #include do C
Sub-utilizado após o uso do cimport *
21. Cython
Exemplo
Hello World em Cython
# salve este arquivo como test.pyx
cdef char *__hello_world ():
cdef char *c_string = "Hello World!"
cdef object string
string = c_string + " :)"
return string
def hello_world ():
print __hello_world ()
22. Cython
Exemplo (2)
Arquivo de setup do python
# salve este arquivo como setup.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
setup (
cmdclass = {'build_ext ': build_ext},
ext_modules = [Extension("test",
["test.pyx"])]
)
28. Libpurple
O que é?
A Libpurple é:
Biblioteca que provê funcionalidades clientes de mensagens
instantâneas
29. Libpurple
O que é?
A Libpurple é:
Biblioteca que provê funcionalidades clientes de mensagens
instantâneas
Suporta vários protocolos (MSN, Yahoo, IRC, Jabber, entre outros)
30. Libpurple
O que é?
A Libpurple é:
Biblioteca que provê funcionalidades clientes de mensagens
instantâneas
Suporta vários protocolos (MSN, Yahoo, IRC, Jabber, entre outros)
Pidgin: Front-end da libpurple
31. Libpurple
O que é?
A Libpurple é:
Biblioteca que provê funcionalidades clientes de mensagens
instantâneas
Suporta vários protocolos (MSN, Yahoo, IRC, Jabber, entre outros)
Pidgin: Front-end da libpurple
Outros clientes: Adium (Mac), Finch (Console), Meebo (Web)
34. Libpurple
Aspectos Gerais
Características da Libpurple:
Gerencia conexões a redes de mensagem instantânea
Gerencia contas e preferências de usuário
Possui API unificada para todos os protocolos
35. Libpurple
Aspectos Gerais
Características da Libpurple:
Gerencia conexões a redes de mensagem instantânea
Gerencia contas e preferências de usuário
Possui API unificada para todos os protocolos
Implementa o que é genérico entre todos os protocolos
36. Libpurple
Aspectos Gerais
Características da Libpurple:
Gerencia conexões a redes de mensagem instantânea
Gerencia contas e preferências de usuário
Possui API unificada para todos os protocolos
Implementa o que é genérico entre todos os protocolos
API específica para exceções
38. Libpurple
Aspectos Gerais (2)
Sinais e callbacks:
Registro de callbacks para diversos tipos de eventos (UI operations)
Eventos da conta, lista de usuários, mensagens, entre outros
39. Libpurple
Aspectos Gerais (2)
Sinais e callbacks:
Registro de callbacks para diversos tipos de eventos (UI operations)
Eventos da conta, lista de usuários, mensagens, entre outros
Estruturas de callbacks populadas no início da execução do cliente
40. Libpurple
Aspectos Gerais (2)
Sinais e callbacks:
Registro de callbacks para diversos tipos de eventos (UI operations)
Eventos da conta, lista de usuários, mensagens, entre outros
Estruturas de callbacks populadas no início da execução do cliente
Sinais que podem ser associados a callbacks
43. Libpurple
Aspectos Gerais (3)
Extensões e exceções:
Extensível através de plugins
Suporte a um protocolo específico é um plugin
Lidos no início da execução do cliente
44. Libpurple
Aspectos Gerais (3)
Extensões e exceções:
Extensível através de plugins
Suporte a um protocolo específico é um plugin
Lidos no início da execução do cliente
Não possui suporte a threads
Cliente não pode lidar com a biblioteca em threads separadas
45. Libpurple
Aspectos Gerais (3)
Extensões e exceções:
Extensível através de plugins
Suporte a um protocolo específico é um plugin
Lidos no início da execução do cliente
Não possui suporte a threads
Cliente não pode lidar com a biblioteca em threads separadas
Facilidade para fazer encapsulamento
46. Libpurple
Aspectos Gerais (3)
Extensões e exceções:
Extensível através de plugins
Suporte a um protocolo específico é um plugin
Lidos no início da execução do cliente
Não possui suporte a threads
Cliente não pode lidar com a biblioteca em threads separadas
Facilidade para fazer encapsulamento
Loop principal diferente para cada tipo de cliente
50. Python-purple
O que é?
O Python-purple é:
Spin-off de funcionalidade de compartilhamento de informações entre
amigos no Carman
51. Python-purple
O que é?
O Python-purple é:
Spin-off de funcionalidade de compartilhamento de informações entre
amigos no Carman
Escrito em Cython
52. Python-purple
O que é?
O Python-purple é:
Spin-off de funcionalidade de compartilhamento de informações entre
amigos no Carman
Escrito em Cython
Provê acesso completo à implementação da Libpurple para programas
Python
53. Python-purple
O que é?
O Python-purple é:
Spin-off de funcionalidade de compartilhamento de informações entre
amigos no Carman
Escrito em Cython
Provê acesso completo à implementação da Libpurple para programas
Python
Único passo: Importar o módulo purple
56. Python-purple
Aspectos Gerais
Características do Python-purple:
Headers da API da Libpurple separados em arquivos .pxd
Declaração das funções e variáveis (extern)
Forward declarations usados para evitar loops recursivos no Cython
57. Python-purple
Aspectos Gerais
Características do Python-purple:
Headers da API da Libpurple separados em arquivos .pxd
Declaração das funções e variáveis (extern)
Forward declarations usados para evitar loops recursivos no Cython
Mesmo vínculo com o mainloop da GLib que o Pidgin
58. Python-purple
Aspectos Gerais
Características do Python-purple:
Headers da API da Libpurple separados em arquivos .pxd
Declaração das funções e variáveis (extern)
Forward declarations usados para evitar loops recursivos no Cython
Mesmo vínculo com o mainloop da GLib que o Pidgin
glib_input_add implementado em C e importado pelo Cython
59. Python-purple
Aspectos Gerais
Características do Python-purple:
Headers da API da Libpurple separados em arquivos .pxd
Declaração das funções e variáveis (extern)
Forward declarations usados para evitar loops recursivos no Cython
Mesmo vínculo com o mainloop da GLib que o Pidgin
glib_input_add implementado em C e importado pelo Cython
Outras funções da mainloop implementadas pela Libpurple
Core: Inicia a execução da biblioteca
60. Python-purple
Aspectos Gerais
Características do Python-purple:
Headers da API da Libpurple separados em arquivos .pxd
Declaração das funções e variáveis (extern)
Forward declarations usados para evitar loops recursivos no Cython
Mesmo vínculo com o mainloop da GLib que o Pidgin
glib_input_add implementado em C e importado pelo Cython
Outras funções da mainloop implementadas pela Libpurple
Core: Inicia a execução da biblioteca
Inicializa o núcleo da Libpurple e as estruturas de operações na UI
62. Python-purple
Aspectos Gerais (2)
Callbacks e sinais:
Armazenados em dicionários lidos pelas callbacks genéricas
implementadas em C
Chamam sequencialmente de acordo com o evento ou sinal associado
63. Python-purple
Aspectos Gerais (2)
Callbacks e sinais:
Armazenados em dicionários lidos pelas callbacks genéricas
implementadas em C
Chamam sequencialmente de acordo com o evento ou sinal associado
Traduzem os parâmetros das chamadas em Python para C e vice-versa
64. Python-purple
Aspectos Gerais (2)
Callbacks e sinais:
Armazenados em dicionários lidos pelas callbacks genéricas
implementadas em C
Chamam sequencialmente de acordo com o evento ou sinal associado
Traduzem os parâmetros das chamadas em Python para C e vice-versa
Quando um retorno é necessário:
Função em C intercepta o retorno da callback
65. Python-purple
Aspectos Gerais (2)
Callbacks e sinais:
Armazenados em dicionários lidos pelas callbacks genéricas
implementadas em C
Chamam sequencialmente de acordo com o evento ou sinal associado
Traduzem os parâmetros das chamadas em Python para C e vice-versa
Quando um retorno é necessário:
Função em C intercepta o retorno da callback
Vide add_callback() e signal_connect()