1) A palestra introduz o PostgreSQL e discute como ele se relaciona com o Python, incluindo padrões, documentação, extensibilidade e interoperabilidade entre as duas tecnologias.
2) O documento também discute conceitos importantes do PostgreSQL como tipos JSON, funções de agregação, NULL vs None e registros/tuplas.
3) Finalmente, o documento explora vários recursos avançados do SQL como VALUES, operações com NULL e infinito.
JavaScript é a linguagem do browser e mais popular do mundo. Foi criada em 1995 para o Netscape e adotada pela Microsoft em 1996. Apesar de sua má fama inicial devido a problemas como variáveis globais e parseInt, JavaScript possui "partes boas" como funções como valores, objetos dinâmicos e JSON que a tornaram uma linguagem importante.
O documento apresenta os conteúdos do módulo 5 de Desenvolvimento de páginas web dinâmicas em PHP do curso de Técnico de Gestão e Programação de Sistemas Informáticos. São abordados conceitos básicos de PHP como variáveis, operadores, constantes e estruturas de dados.
O documento apresenta uma introdução ao PHP, incluindo o que é PHP, para que serve e como funciona. Explica como o código PHP é interpretado dentro de páginas HTML para gerar conteúdo dinâmico. Também aborda variáveis, arrays, estruturas condicionais if/else e switch para controlar a execução de código.
O documento discute funções em programação estruturada em C++. Explica que funções são blocos de código reutilizáveis que executam tarefas específicas e podem receber e retornar dados. Detalha a sintaxe básica de funções, incluindo o tipo de retorno, nome, parâmetros e corpo. Fornece um exemplo simples de função para soma de dois números.
Lógica de Programação com Javascript - Aula #03Ramon Kayo
O documento apresenta os operadores aritméticos, relacionais e lógicos em JavaScript. Detalha como realizar cálculos, comparações e relações lógicas usando esses operadores e explica a prioridade de execução entre eles. Apresenta também exemplos de código e exercícios para o leitor praticar.
A criação de uma loja virtual não é uma tarefa realizada apenas por desenvolvedores experientes e com um currículo extenso. Michael, que desenvolve, junto com o UOL, pacotes e soluções para a plataforma de pagamento digital PagSeguro vai mostrar isso ao vivo e a cores.
Palestra gratuita: E-commerce: mais fácil do que parece
Dia 12 de junho, das 10h às 13h
Local: Faculdade Impacta
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...Manuel Menezes de Sequeira
Fundamentos da Programação 3:
• Funções/repórteres e listas em Snap!
• Utilizações típicas de variáveis
Apresentação 3 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
Apostila de Introdução aos Algoritmos - usando o VisualgRegis Magalhães
O Visualg é uma excelente ferramenta para o aprendizado de algoritmos, tendo sido criada por Cláudio Morgado de Souza da Apoio Informática Ltda.
As apostilas foram elaboradas por Bruno Tonet e Cristian Koliver do Núcleo de Apoio à Aprendizagem de Programação (NAPRO) da Universidade de Caxias do Sul (UCS).
JavaScript é a linguagem do browser e mais popular do mundo. Foi criada em 1995 para o Netscape e adotada pela Microsoft em 1996. Apesar de sua má fama inicial devido a problemas como variáveis globais e parseInt, JavaScript possui "partes boas" como funções como valores, objetos dinâmicos e JSON que a tornaram uma linguagem importante.
O documento apresenta os conteúdos do módulo 5 de Desenvolvimento de páginas web dinâmicas em PHP do curso de Técnico de Gestão e Programação de Sistemas Informáticos. São abordados conceitos básicos de PHP como variáveis, operadores, constantes e estruturas de dados.
O documento apresenta uma introdução ao PHP, incluindo o que é PHP, para que serve e como funciona. Explica como o código PHP é interpretado dentro de páginas HTML para gerar conteúdo dinâmico. Também aborda variáveis, arrays, estruturas condicionais if/else e switch para controlar a execução de código.
O documento discute funções em programação estruturada em C++. Explica que funções são blocos de código reutilizáveis que executam tarefas específicas e podem receber e retornar dados. Detalha a sintaxe básica de funções, incluindo o tipo de retorno, nome, parâmetros e corpo. Fornece um exemplo simples de função para soma de dois números.
Lógica de Programação com Javascript - Aula #03Ramon Kayo
O documento apresenta os operadores aritméticos, relacionais e lógicos em JavaScript. Detalha como realizar cálculos, comparações e relações lógicas usando esses operadores e explica a prioridade de execução entre eles. Apresenta também exemplos de código e exercícios para o leitor praticar.
A criação de uma loja virtual não é uma tarefa realizada apenas por desenvolvedores experientes e com um currículo extenso. Michael, que desenvolve, junto com o UOL, pacotes e soluções para a plataforma de pagamento digital PagSeguro vai mostrar isso ao vivo e a cores.
Palestra gratuita: E-commerce: mais fácil do que parece
Dia 12 de junho, das 10h às 13h
Local: Faculdade Impacta
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...Manuel Menezes de Sequeira
Fundamentos da Programação 3:
• Funções/repórteres e listas em Snap!
• Utilizações típicas de variáveis
Apresentação 3 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
Apostila de Introdução aos Algoritmos - usando o VisualgRegis Magalhães
O Visualg é uma excelente ferramenta para o aprendizado de algoritmos, tendo sido criada por Cláudio Morgado de Souza da Apoio Informática Ltda.
As apostilas foram elaboradas por Bruno Tonet e Cristian Koliver do Núcleo de Apoio à Aprendizagem de Programação (NAPRO) da Universidade de Caxias do Sul (UCS).
Este documento fornece uma introdução ao framework PHP Smarty, abordando tópicos como instalação, templates, configuração, debugging, MVC, caching e segurança. O documento destaca como o Smarty permite separar a lógica da apresentação e facilita a reutilização de código através de templates.
O documento discute conceitos e técnicas de programação, incluindo:
1) Diagramas de blocos, que representam os passos lógicos de um processamento usando símbolos com significados definidos.
2) Tipos de dados como inteiros, reais, caracteres e lógicos.
3) Variáveis e constantes, que armazenam dados durante a execução de um algoritmo.
Este documento fornece informações sobre dois engenheiros de software, Márcio Abrantes e Felipe Pimentel. Ambos trabalham com ASP.NET 4.0 e Windows Phone 7 e são da empresa Invista Tecnologia. O documento também inclui seus perfis no Twitter.
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
Existem diversas formas de se representar um algoritmo, neste slide estaremos falando sobre Pseudocódigo ou Portugol onde descrevemos algoritmo utilizando características e regras da programação mas em português. Utilizamos a ferramenta Visualg.[Aula para curso técnico]
Este documento fornece instruções básicas para converter código em pseudocódigo (Portugol) para C#. Ele explica as regras para nomes de variáveis e tipos de dados, como atribuir valores, operadores, estruturas de controle e repetição, e comandos básicos para console e janelas.
Videoulas de algoritmos e lógica de programaçãoaldoirjava
O documento apresenta exemplos de algoritmos para resolver diferentes problemas. Nos exemplos, são mostrados passo a passo como ler dados de entrada, fazer cálculos e exibir resultados. Problemas como calcular média, trocar valores de variáveis, calcular salário com comissão e outros são demonstrados com algoritmos de programação.
O documento resume conceitos básicos de programação orientada a objetos em Java, incluindo: O que é Java, JVM, JRE e JDK; Como criar um programa Java passo a passo; E o que é uma IDE e principais IDEs.
O documento apresenta conceitos básicos de programação orientada a objetos em Java, incluindo variáveis e tipos primitivos, operadores aritméticos e relacionais, estruturas condicionais e laços de repetição.
O documento apresenta uma introdução aos algoritmos, definindo o que são algoritmos computacionais e não computacionais, e descrevendo elementos básicos como variáveis, estruturas de decisão e repetição, e tipos de dados. O texto também explica a linguagem Portugol e fornece exemplos de expressões matemáticas, lógicas e algoritmos."
Este documento fornece uma introdução ao JavaScript em 3 frases ou menos:
1) Apresenta JavaScript como uma linguagem de programação usada para adicionar funcionalidades a páginas da web.
2) Discute como JavaScript atua sobre elementos do DOM após a página carregar.
3) Menciona o uso de bibliotecas como jQuery para estender as capacidades do JavaScript.
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Ricardo Valeriano
Aplicações famosas como o Instagram, Draw Something e WhatsApp, utilizam diversos recursos que muitas das vezes não fazemos ideia de que existem e estão disponíveis. Esses recursos podem ser tanto do próprio iOS, como da linguagem, influenciando no código escrito. Venha conhecer alguns desses recursos interessante que você poderá aproveitar para o seu próximo projeto!
Qualidade de código - a qualidade que faz a diferençaCaelum
O documento discute princípios de design de código e qualidade de código. Ele apresenta Guilherme Silveira como líder técnico, instrutor e palestrante sobre tópicos como escrever código limpo e evitar código ruim no futuro. O documento também fornece contatos de Guilherme Silveira.
O documento apresenta os principais comandos da linguagem C como if, for, while e #define e explica o que são funções, como passar parâmetros para funções e os tipos de variáveis globais, locais e estáticas. O documento também discute arrays e projetos práticos com controle remoto e sensor infravermelho.
O documento discute funções do PHP relacionadas a strings e arrays. Na seção de strings, explica funções como strlen, strpos, str_replace, trim e outras. Na seção de arrays, explica como imprimir, adicionar, remover e ordenar elementos de arrays, e funções como count, array_map e array_search.
O documento discute conceitos básicos de algoritmos e programação, como:
- Definição de algoritmos, variáveis, tipos de dados, expressões e comandos;
- A linguagem Visualg para representação de algoritmos no ambiente de programação do mesmo nome;
- Operações básicas de entrada e saída de dados em Visualg.
Desenvolvendo com Silverlight para WP7 Mango [Update]Felipe Pimentel
O documento apresenta Felipe Pimentel como consultor e arquiteto especializado em ASP.NET 4.0 e Windows Phone 7. Ele fornece uma introdução ao Windows Phone 7 "Mango", abordando a visão geral da plataforma, hardware, arquitetura e ciclo de desenvolvimento no Visual Studio.
O documento apresenta exemplos de projetos com Arduino, incluindo um cafeteira controlada por tweet, robôs de diferentes tipos, um quadricóptero, um capacete que imita o Daft Punk e um dispenser de comida para gato controlado por smartphone. É também apresentado um tutorial sobre programação básica em Arduino, incluindo explicações sobre funções setup() e loop(), variáveis, comandos if, for e while e o uso de sensores.
O documento discute boas práticas para desenvolvimento com jQuery. Apresenta exemplos de códigos que devem e não devem ser usados, enfatizando a importância de seguir padrões de desenvolvimento como: dividir listeners em funções separadas, evitar muitas consultas ao DOM, seguir princípios como DRY e usar convenções de nomenclatura.
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
Slides que utilizei para ministrar uma palestra sobre Desenvolvimento WEB com Ruby on Rails no IV Congresso de Iniciação Científica da Faculdade Redentor de Itaperuna / RJ.
Versão PDF aqui: https://www.dropbox.com/s/2fkwksu00chm7nu/presentation.pdf
TDC2016 Boas Práticas SQL em Banco Relacional para DesenvolvedoresFernando Franquini
Este documento fornece um resumo de uma palestra sobre boas práticas de SQL em bancos de dados relacionais para desenvolvedores. A palestra inclui tópicos como projeção, chaves, junções, views, triggers, bind variables, padrões ANSI e um exemplo real utilizando JPA. O palestrante tem mais de 18 anos de experiência em TIC e atua como DBA há 10 anos principalmente em projetos Java.
Este documento apresenta conceitos sobre SQL e stored procedures. Inicialmente descreve um exemplo de programa em Pascal que usa SQL embutido para selecionar e imprimir informações de um empregado. Em seguida, explica o conceito de cursor para permitir que linguagens de programação processem tuplas retornadas por consultas SQL. Por fim, apresenta detalhes sobre como criar e usar stored procedures em SQL/PSM e PL/SQL.
Este documento fornece uma introdução ao framework PHP Smarty, abordando tópicos como instalação, templates, configuração, debugging, MVC, caching e segurança. O documento destaca como o Smarty permite separar a lógica da apresentação e facilita a reutilização de código através de templates.
O documento discute conceitos e técnicas de programação, incluindo:
1) Diagramas de blocos, que representam os passos lógicos de um processamento usando símbolos com significados definidos.
2) Tipos de dados como inteiros, reais, caracteres e lógicos.
3) Variáveis e constantes, que armazenam dados durante a execução de um algoritmo.
Este documento fornece informações sobre dois engenheiros de software, Márcio Abrantes e Felipe Pimentel. Ambos trabalham com ASP.NET 4.0 e Windows Phone 7 e são da empresa Invista Tecnologia. O documento também inclui seus perfis no Twitter.
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
Existem diversas formas de se representar um algoritmo, neste slide estaremos falando sobre Pseudocódigo ou Portugol onde descrevemos algoritmo utilizando características e regras da programação mas em português. Utilizamos a ferramenta Visualg.[Aula para curso técnico]
Este documento fornece instruções básicas para converter código em pseudocódigo (Portugol) para C#. Ele explica as regras para nomes de variáveis e tipos de dados, como atribuir valores, operadores, estruturas de controle e repetição, e comandos básicos para console e janelas.
Videoulas de algoritmos e lógica de programaçãoaldoirjava
O documento apresenta exemplos de algoritmos para resolver diferentes problemas. Nos exemplos, são mostrados passo a passo como ler dados de entrada, fazer cálculos e exibir resultados. Problemas como calcular média, trocar valores de variáveis, calcular salário com comissão e outros são demonstrados com algoritmos de programação.
O documento resume conceitos básicos de programação orientada a objetos em Java, incluindo: O que é Java, JVM, JRE e JDK; Como criar um programa Java passo a passo; E o que é uma IDE e principais IDEs.
O documento apresenta conceitos básicos de programação orientada a objetos em Java, incluindo variáveis e tipos primitivos, operadores aritméticos e relacionais, estruturas condicionais e laços de repetição.
O documento apresenta uma introdução aos algoritmos, definindo o que são algoritmos computacionais e não computacionais, e descrevendo elementos básicos como variáveis, estruturas de decisão e repetição, e tipos de dados. O texto também explica a linguagem Portugol e fornece exemplos de expressões matemáticas, lógicas e algoritmos."
Este documento fornece uma introdução ao JavaScript em 3 frases ou menos:
1) Apresenta JavaScript como uma linguagem de programação usada para adicionar funcionalidades a páginas da web.
2) Discute como JavaScript atua sobre elementos do DOM após a página carregar.
3) Menciona o uso de bibliotecas como jQuery para estender as capacidades do JavaScript.
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Ricardo Valeriano
Aplicações famosas como o Instagram, Draw Something e WhatsApp, utilizam diversos recursos que muitas das vezes não fazemos ideia de que existem e estão disponíveis. Esses recursos podem ser tanto do próprio iOS, como da linguagem, influenciando no código escrito. Venha conhecer alguns desses recursos interessante que você poderá aproveitar para o seu próximo projeto!
Qualidade de código - a qualidade que faz a diferençaCaelum
O documento discute princípios de design de código e qualidade de código. Ele apresenta Guilherme Silveira como líder técnico, instrutor e palestrante sobre tópicos como escrever código limpo e evitar código ruim no futuro. O documento também fornece contatos de Guilherme Silveira.
O documento apresenta os principais comandos da linguagem C como if, for, while e #define e explica o que são funções, como passar parâmetros para funções e os tipos de variáveis globais, locais e estáticas. O documento também discute arrays e projetos práticos com controle remoto e sensor infravermelho.
O documento discute funções do PHP relacionadas a strings e arrays. Na seção de strings, explica funções como strlen, strpos, str_replace, trim e outras. Na seção de arrays, explica como imprimir, adicionar, remover e ordenar elementos de arrays, e funções como count, array_map e array_search.
O documento discute conceitos básicos de algoritmos e programação, como:
- Definição de algoritmos, variáveis, tipos de dados, expressões e comandos;
- A linguagem Visualg para representação de algoritmos no ambiente de programação do mesmo nome;
- Operações básicas de entrada e saída de dados em Visualg.
Desenvolvendo com Silverlight para WP7 Mango [Update]Felipe Pimentel
O documento apresenta Felipe Pimentel como consultor e arquiteto especializado em ASP.NET 4.0 e Windows Phone 7. Ele fornece uma introdução ao Windows Phone 7 "Mango", abordando a visão geral da plataforma, hardware, arquitetura e ciclo de desenvolvimento no Visual Studio.
O documento apresenta exemplos de projetos com Arduino, incluindo um cafeteira controlada por tweet, robôs de diferentes tipos, um quadricóptero, um capacete que imita o Daft Punk e um dispenser de comida para gato controlado por smartphone. É também apresentado um tutorial sobre programação básica em Arduino, incluindo explicações sobre funções setup() e loop(), variáveis, comandos if, for e while e o uso de sensores.
O documento discute boas práticas para desenvolvimento com jQuery. Apresenta exemplos de códigos que devem e não devem ser usados, enfatizando a importância de seguir padrões de desenvolvimento como: dividir listeners em funções separadas, evitar muitas consultas ao DOM, seguir princípios como DRY e usar convenções de nomenclatura.
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
Slides que utilizei para ministrar uma palestra sobre Desenvolvimento WEB com Ruby on Rails no IV Congresso de Iniciação Científica da Faculdade Redentor de Itaperuna / RJ.
Versão PDF aqui: https://www.dropbox.com/s/2fkwksu00chm7nu/presentation.pdf
TDC2016 Boas Práticas SQL em Banco Relacional para DesenvolvedoresFernando Franquini
Este documento fornece um resumo de uma palestra sobre boas práticas de SQL em bancos de dados relacionais para desenvolvedores. A palestra inclui tópicos como projeção, chaves, junções, views, triggers, bind variables, padrões ANSI e um exemplo real utilizando JPA. O palestrante tem mais de 18 anos de experiência em TIC e atua como DBA há 10 anos principalmente em projetos Java.
Este documento apresenta conceitos sobre SQL e stored procedures. Inicialmente descreve um exemplo de programa em Pascal que usa SQL embutido para selecionar e imprimir informações de um empregado. Em seguida, explica o conceito de cursor para permitir que linguagens de programação processem tuplas retornadas por consultas SQL. Por fim, apresenta detalhes sobre como criar e usar stored procedures em SQL/PSM e PL/SQL.
Removendo o cheiro ruim do seu código - SoLiSC 2011Luís Cobucci
Este documento fornece dicas para melhorar a qualidade do código removendo cheiros ruins, incluindo escolher nomes descritivos, criar métodos pequenos com uma única responsabilidade, usar comentários com moderação, aplicar padrões de codificação e realizar refatorações regularmente. O objetivo é produzir código limpo, de fácil manutenção e compreensão.
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Luís Cobucci
O documento fornece orientações sobre como melhorar o código PHP removendo más práticas e cheiros ruins. Ele discute conceitos como nomenclatura clara, funções e métodos pequenos com única responsabilidade, tratamento de erros com exceptions, classes coesas e refatoração constante para manter o código limpo.
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
O documento discute modularização e funções em programação. Explica que modularização divide um programa em partes menores para facilitar manutenção e entendimento. Funções são blocos de código reutilizáveis que executam tarefas específicas. O documento fornece exemplos de como criar, chamar e usar funções, incluindo parâmetros por valor e por referência.
1. O documento apresenta uma introdução à linguagem JavaScript, discutindo sua estrutura, tipos e como começar a programar na linguagem.
2. JavaScript é uma linguagem de programação dinamicamente tipada e baseada em protótipos usada principalmente para desenvolvimento web front-end.
3. A linguagem suporta tipos primitivos como números, strings e booleanos e tipos de referência como arrays e objetos.
Minicurso de Ruby on Rails que ocorreu de 25/11/2014 até 28/11/2014 no Instituto Federal de Educação Ciência e Tecnologia do Sudeste de Minas Campus Barbacena
Este documento apresenta uma introdução básica ao JavaScript, abordando seus principais conceitos como: sua origem e diferenças em relação ao Java; como inserir códigos JavaScript em páginas HTML; utilização de variáveis, arrays, objetos, funções, condicionais e laços de repetição; tratamento de eventos e manipulação de elementos da página; e validação de formulários.
O documento apresenta as principais novidades da especificação EcmaScript 6 (ES6). Em 3 frases: Apresenta novos recursos como valores padrão para parâmetros, blocos let e const, funções arrow, operador spread, compreensão de arrays, classes, módulos, destructuring e promises. Explica que grande parte dos recursos já está disponível em versões preliminares de navegadores e Node.js, mas a versão final é esperada para o primeiro semestre de 2016.
Desafio de Robótica - Católica de Santa Catarina - JoinvilleNatã Barbosa
Esta é a apresentação do conteúdo dos encontros do desafio de robótica nos dias 7/11, 21/11 e 28/11 de 2015 na Católica de Santa Catarina em Joinville.
Relato Sobre a Migração de uma Aplicação Legada para RailsCássio Marques
O documento descreve as dificuldades encontradas ao migrar uma grande aplicação legada escrita em C++ para Ruby on Rails, incluindo problemas com o banco de dados complexo, nomes de tabelas e colunas estranhas, e dependência de stored procedures e functions.
Talk que aborda alguns pontos da programação como SOLID, STUPID, clean code, object calisthenics, composer e algumas dicas pessoais.
Feita para o flisol 2017.
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Dickson S. Guedes
O documento discute como dividir aplicações complexas em módulos menores utilizando extensões do PostgreSQL. Isso permite melhor modularidade, reutilização de código e gerenciamento de versões. O exemplo mostra como criar validadores de CPF e e-mail como uma extensão, permitindo validações no banco de dados de forma centralizada.
Palestra ministrada na PGConf.Brasil 2022.
A linguagem SQL possui recursos que podem ser utilizados em benefício da nossa preguiça para que possamos automatizar boa parte de algumas tarefas. O forte está na geração de texto e execuções de consultas dinamicamente geradas. Passearemos por alguns exemplos com dicas, casos de usos e um pouco de código, porque ninguém é de ferro.
Este documento discute funções em programação e como elas podem ser usadas para dividir códigos complexos em partes menores e reutilizáveis. O documento apresenta exemplos de como definir e usar funções em C para realizar tarefas como somar números e desenhar casas usando caracteres ASCII. Também discute conceitos como abstração, prototipagem e como funções podem facilitar a manutenção de softwares grandes e complexos dividindo-os em módulos independentes.
Refatoração de código com Capitão Nascimento versão completaEduardo Bregaida
O documento discute o conceito de refatoração de código e apresenta um exemplo de como refatorar um código para melhorar sua estrutura e legibilidade. O Capitão Nascimento explica que a refatoração envolve reescrever um programa preservando seu comportamento para facilitar a manutenção e entendimento do código. Ele também destaca a importância de testar o código e sentir quando ele tem "mau cheiro" para identificar onde pode ser refatorado.
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
O documento apresenta uma introdução ao PostgreSQL, abordando seu breve histórico, uso no Brasil, recursos como subconsultas e linguagens procedurais, ambientes de gerenciamento, criação de bancos de dados e usuários, tipos de dados, criação de tabelas, inserção de dados, remoção de registros, busca de registros e exercícios de fixação.
O documento apresenta um roteiro sobre entrada e saída de dados em shell script, incluindo: 1) como ler dados do usuário e armazenar em variáveis, 2) como exibir saídas, e 3) tipos básicos de dados e operações aritméticas. É apresentado um exemplo passo a passo de um script que calcula o total e valor individual a ser pago por 3 amigos em uma lancheira.
O mínimo necessário que você precisa conhecer sobre computação quânticaDickson S. Guedes
O documento fornece uma introdução básica sobre computação quântica, abordando seus princípios, aplicações potenciais e desafios. Em particular, discute os conceitos de qubit, circuitos quânticos e algoritmos como o problema de Deutsch-Jozsa. O autor também fornece referências e links para recursos adicionais sobre o assunto.
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
Este documento discute como aprender várias linguagens de programação pode tornar alguém um melhor DBA (administrador de banco de dados) e desenvolvedor. Aprender novas linguagens ajuda a conectar pontos entre diferentes tecnologias e abordagens, melhorando a comunicação, percepção e pensamento crítico. É importante considerar por que cada linguagem surgiu para escolher aquelas que agregam mais valor.
Este documento apresenta uma introdução ao Machine Learning utilizando o banco de dados PostgreSQL e a biblioteca MADlib. O palestrante explica conceitos básicos de ML, como regressão, classificação e clusterização. Ele também demonstra como construir modelos de ML no PostgreSQL usando Python através de notebooks Jupyter e código exemplo disponível online.
Talk apresentada no 1o. Meetup do DBFloripa. Uma talk introdutória para apresentar alguns utilitários de linha de comando como sed, awk, xargs, csvkit e jq para o cinto de utilidades de desenvolvedores e DBAs
Este documento resume os principais conceitos de bancos de dados relacionais utilizando PostgreSQL. Inclui exemplos de criação de tabelas, tipos de busca como sequencial scan e index scan, diferentes tipos de junções como nested loop, merge join e hash join, e agregações com grupo.
Palestra ministrada no PGDay Curitiba 2016 na CELEPAR.
Nesta palestra demonstro como fazer o PostgreSQL falar conosco criando um bot para o Telegram através de Foreign Data Wrappers.
Mais detalhes em:
- http://guedesoft.net
- http://github.com/guedes/telegram_fdw
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarDickson S. Guedes
Este documento fornece várias curiosidades sobre o PostgreSQL, resumidas em 3 frases:
1) O documento apresenta diversos truques e funcionalidades avançadas do PostgreSQL, incluindo o uso de funções aninhadas, manipulação de datas e NULLs, e formas alternativas de escrever consultas.
2) Também mostra como usar recursos como o PSQL para facilitar a execução de consultas, como variáveis e conexões, e discute conceitos como serials e operadores.
3) Por fim, incentiva o leitor a apre
O documento descreve como transformar um servidor Postgres em um servidor WEB utilizando recursos como PLV8, LISTEN/NOTIFY e pg_web_app para criar uma aplicação TODO list que pode ser acessada via requisições HTTP. O documento também discute outros recursos do Postgres como extensibilidade, tipos de dados e linguagens de programação integradas.
This document provides an overview of using Logstash, Elasticsearch, and Kibana to parse, index, and visualize log data. It discusses:
1) How these tools can help "find a needle in a haystack" by extracting useful information from logs and making it searchable.
2) Setting up the ELK stack with Logstash to collect log data from stdin, Elasticsearch for indexing, and Kibana for visualization.
3) Examples of using Logstash pipelines, querying data with Elasticsearch, and visualizing results in Kibana.
Como encontrar uma agulha no palheiro de logs do PostgreSQLDickson S. Guedes
O documento discute como analisar logs do PostgreSQL para encontrar informações importantes. Ele explica o que compõe um evento de log e dá exemplos de como adicionar contexto aos logs. Também apresenta Logstash como uma ferramenta para processar logs e fala sobre a importância de registrar eventos de forma estruturada.
Gerenciando múltiplas versões do PostgreSQL com pgvmDickson S. Guedes
The document discusses PGVM, a tool for managing multiple versions of PostgreSQL. It demonstrates installing PostgreSQL version 9.1 using PGVM, creating and starting a cluster named "teste123_pgbr" running version 9.2.4, and connecting to the cluster through the PGVM console. The document ends by providing contact information for any questions.
PGXN - Como distribuir suas extensões com o PostgreSQLDickson S. Guedes
O documento discute como distribuir extensões para PostgreSQL usando o PGXN. O PGXN fornece um índice central de extensões com documentação e ferramentas para pesquisa e instalação fácil. Demostrações mostram como usar o cliente PGXN e as utilidades PGXN para criar e empacotar extensões. O documento encoraja o compartilhamento de conhecimento através de extensões de código aberto.
O documento discute como distribuir extensões para PostgreSQL usando o PGXN. O PGXN fornece um índice central de extensões com documentação e ferramentas para pesquisa e instalação fácil. Demonstrações mostram como usar o cliente PGXN e as utilidades PGXN para criar e empacotar extensões. O documento encoraja o compartilhamento de conhecimento através de extensões de código aberto.
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Dickson S. Guedes
O documento discute a importância de contribuir com software livre, seja plantando árvores, escrevendo livros ou tendo filhos. Ele explica a diferença entre software livre e gratuito e encoraja as pessoas a participarem de projetos de código aberto, seja traduzindo, documentando ou escrevendo código. Também fornece dicas sobre como começar a contribuir e como gerenciar projetos de software livre.
O documento fornece uma visão geral do banco de dados PostgreSQL, discutindo sua história, desenvolvimento, recursos necessários e funcionalidades. Ele resume a evolução do PostgreSQL desde seu início como projeto acadêmico até se tornar uma opção popular e poderosa de banco de dados open source.
O documento fornece uma introdução sobre testes unitários no PostgreSQL usando pgTAP. Ele discute conceitos como qualidade de software, testes unitários e o papel do DBA. Também explica como preparar o ambiente pgTAP, entender os scripts de teste e os diferentes tipos de testes suportados pelo pgTAP.
O documento apresenta o pgScript, uma ferramenta para geração de dados em bancos PostgreSQL. Ele discute como o pgScript pode ser usado para declarar variáveis, controlar fluxo, gerar dados aleatórios e inserir registros de exemplo em tabelas. O documento também mostra exemplos de scripts pgScript que inserem registros em tabelas de contas correntes e movimentações financeiras com dados aleatórios.
3. AVISO IMPORTANTE
Esta palestra conterá cenas fortes de assassinato às boas
práticas de códigos.
Também conterá códigos que provocarão os mais diferentes
estímulos musculares em sua face. `(leia-se "sua face" mesmo,
e não "seu feice")
Existe o risco de que alguns paradigmas seus sejam
quebrados.
Você pode querer começar a se retirar… tudo bem…
4. EMACS ROCKS!
Esta palestra é totalmente escrita e apresentada utilizando o
editor de texto Emacs com org-mode `(leia-se "não vai ter
memes")
e este talvez seja o primeiro paradigma a ser quebrado…
Além de uma tela preta e apresentação em texto você verá
códigos em Python e em SQL sendo reproduzidos aqui dentro
mesmo…
PS: ainda dá tempo de sair…
6. VAMOS ENTÃO COMEÇAR?
A language that doesn't affect the way you think about
programming, is not worth knowing. - Alan Perlis
Então vamos conhecer um pouco mais das relações entre o
Python e o Elefante?
19. FUNÇÕES, OPERADORES, TIPOS E DOMÍNIOS
Criando um dominio de dados para CPF e um operador
unário que o valida:
BEGIN;
DROP SCHEMA IF EXISTS teste CASCADE;
CREATE SCHEMA teste;
SET search_path TO teste;
CREATE OR REPLACE FUNCTION cpf_valido(numeric)
RETURNS BOOLEAN
LANGUAGE SQL
COST 10
IMMUTABLE STRICT
AS
$_$
with
cpf as (
select $1 as numero
),
cpf_formatado as (
select lpad(cpf.numero::text,11,'0') as numero
from cpf
),
matriz as (
select regexp_split_to_table( cpf_formatado.numero, E's*' ) as valor
from cpf_formatado
),
digitos_por_posicao_1 as (
select row_number() over () as posicao, valor::int
20. from matriz
),
digitos_por_posicao_2 as (
select posicao - 1 as posicao, valor
from digitos_por_posicao_1
),
digito_1 as (
select sum(posicao*valor) as soma,
sum(posicao*valor) % 11 as resto
from digitos_por_posicao_1 where posicao<=9
),
digito_2 as (
select sum(posicao*valor) as soma,
sum(posicao*valor) % 11 as resto
from digitos_por_posicao_2 where posicao<=9
),
cpf_esperado as (
select array_to_string(array_agg(valor),'')::numeric as numero
from
(
select valor from digitos_por_posicao_1 where posicao <=9
union all
select resto from digito_1
union all
select resto from digito_2
) as foo
)
select distinct cpf.numero = cpf_esperado.numero
from cpf, cpf_esperado;
$_$;
CREATE OPERATOR #? (
LEFTARG = numeric,
PROCEDURE = cpf_valido
21. );
CREATE DOMAIN cpf AS numeric CHECK ( cpf_valido(VALUE) );
COMMIT;
E agora testar para ver como funciona…
SET search_path TO teste;
DROP TABLE IF EXISTS teste.pessoa;
SELECT cpf_valido(59328253241);
SELECT 59328253241 #? AS cpf_valido;
SELECT 37821042773 #? AS cpf_valido;
SELECT 91416742433 #? AS cpf_valido;
SELECT 91416000433 #? AS cpf_valido;
SELECT 37821042003 #? AS cpf_valido;
SELECT NOT 37821042003 #? AS cpf_valido;
SELECT NOT 91416000433 #? AS cpf_valido;
CREATE TABLE teste.pessoa (
nro_cpf cpf
);
INSERT INTO teste.pessoa VALUES(88229346798);
INSERT INTO teste.pessoa VALUES(45476684425);
E se eu tentar inserir CPF INVALIDO!?
INSERT INTO pessoa VALUES(45076684425);
INSERT INTO pessoa VALUES(81249396798);
22. VIA C
#include "postgres.h"
#include <string.h>
#include "fmgr.h"
#include "utils/geo_decls.h"
#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif
PG_FUNCTION_INFO_V1(makepoint);
Datum
makepoint(PG_FUNCTION_ARGS)
{
/* Here, the pass-by-reference nature of Point is not hidden. */
Point *pointx = PG_GETARG_POINT_P(0);
Point *pointy = PG_GETARG_POINT_P(1);
Point *new_point = (Point *) palloc(sizeof(Point));
new_point->x = pointx->x;
new_point->y = pointy->y;
PG_RETURN_POINT_P(new_point);
}
E para o SQL reconhecer esta função, preciso criá-la em meu
banco.
CREATE FUNCTION makepoint(point, point) RETURNS point
AS 'DIRECTORY/funcs', 'makepoint'
LANGUAGE C STRICT;
23. VIA LINGUAGEM_DO_SEU_CORACAO
Criar a linguagem utilizando extensão:
create extension if not exists plpython2u;
create or replace function array_transpose(a float[])
returns float[]
language plpython2u
as $$
import numpy as np
return np.array(a).transpose()
$$;
E usar ela no SQL:
select array_transpose(array[1.0, 2.0, 4.5]);
Mas com algumas limitações, as vezes:
select array_transpose(array[ array[1.0, 2.0], array[4.5, 7.8]]);
24. ERRO: não pode converter matriz
multidimensional para lista python detalhe:
pl/python só suporta matrizes
unidimensionais. contexto: função pl/python
"array_transpose"/
30. PSYCOPG2
Exemplo básico de execução:
import psycopg2
dbconn = psycopg2.connect(host="/var/run/postgresql", dbname="guedes")
cursor = dbconn.cursor()
cursor.execute("""
SELECT relname
FROM pg_class
WHERE relkind='r'
""")
for row in cursor.fetchall():
print("Tabela: {}".format(row[0]))
cursor.close()
dbconn.close()
31. implementado em C, como wrapper da libpq
noti cações
COPY
…
criação de tipo personalizados
equivalencia de tipos Python vs PostgreSQL
from psycopg2.extensions import adapt, register_adapter, AsIs
class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
def adapt_point(point):
x = adapt(point.x).getquoted()
y = adapt(point.y).getquoted()
return AsIs("'(%s, %s)'" % (x, y))
register_adapter(Point, adapt_point)
cur.execute("INSERT INTO atable (apoint) VALUES (%s)",
(Point(1.23, 4.56),))
INSERT INTO atable (apoint) VALUES ('(1.23, 4.56)');
32. Um outro exemplo é o tipo
CURIOSIDADE
A biblioteca psycopg2 e o cliente de linha de comando pgxn
são de autoria de Daniele Varrazzo
39. PROBLEMA
SELECT ...,
CASE WHEN COALESCE(endereco, '') <> ''
THEN CASE WHEN COALESCE(
COALESCE(endereco, '') ||
' ' ||
COALESCE(bairro, '')
) <> ' '
THEN endereco ||' '|| bairro
ELSE COALESCE(cidade, '')
END
ELSE COALESCE(cidade,'SEM CIDADE')
END
FROM ...
LEFT JOIN ...
LEFT JOIN ...
45. ???
VARIADIC + SYNTAX SUGAR
CREATE OR REPLACE FUNCTION menor_de_todos(VARIADIC valores numeric[])
RETURNS numeric AS
$$
SELECT min($1[valor])
FROM generate_subscripts($1, 1) as g(valor);
$$
LANGUAGE SQL;
SELECT menor_de_todos(10, 11, 12, 30, -20, -30) as menor;
/*
menor
--------
-30
(1 row)
*/
Parâmetros! Não é para passar um ARRAY não!
SELECT menor_de_todos(ARRAY[10, 11, 12, 30, -20, -30]) as menor;
^^^^^^
`-- assim da ruim
51. NONE VS NULL
Qual é o resultado desta expressão em Python?
print(None + 1)
E qual é o resultado desta expressão no PostgreSQL?
SELECT NULL + 1 as resultado;
52. NULL E A ARITIMÉTICA
t
SELECT NULL = NULL;
SELECT NULL > NULL;
SELECT NULL < NULL;
53. O QUE É NULL?
t
SELECT NULL IS NULL; => true
SELECT NULL IS DISTINCT FROM NULL; => false
SELECT NULL IS NOT DISTINCT FROM NULL; => true
SELECT 1 IS NULL; => false
SELECT 1 IS DISTINCT FROM NULL; => true
SELECT 1 IS NOT DISTINCT FROM NULL; => false
68. INFINITO PARA DATAS, TAMBÉM, CLARO!
SELECT 'Infinity'::date > current_date; => true
INSERT INTO elemento(nome, validade) VALUES ('uranio', 'Infinity');
isto é um date _.^^^^^^^^
SELECT 'today'::interval = current_date; => true
SELECT 'yesterday'::date = 'today'::date - interval '1 day'; => true
SELECT 'tomorroy'::date = 'today'::date + interval '1 day'; => true
SELECT current_date + 'allballs'::time; => '2015-09-18 00:00:00'
69. E TUDO PODE SER RESCRITO COMO …
SELECT date 'Infinity' > current_date; => true
INSERT INTO elemento(nome, validade) VALUES ('uranio', 'Infinity');
isto é um date _.^^^^^^^^
SELECT interval 'today' = current_date; => true
SELECT date 'yesterday' = date 'today' - interval '1 day'; => true
SELECT date 'tomorroy' = date 'today' + interval '1 day'; => true
SELECT current_date + time 'allballs'; => '2015-09-18 00:00:00'
71. LATERAL JOIN
SELECT conta, ultimo_movimento.valor
FROM movimento m
LATERAL (SELECT valor
FROM movimento _m
WHERE _m.conta = m.conta
AND _m.data < m.data
ORDER BY data DESC
LIMIT 1) as ultimo_movimento
WHERE m.data = current_date
AND m.conta = 1214124;
72. VAMOS VOLTAR UM POUCO PARA O PYTHON?
antes… só mais uma coisinha ….
75. FDW - UM EXEMPLO NATIVO
Exemplo do postgres_fdw, ou seja, um Postgres
conversando com outro…
CREATE EXTENSION postgres_fdw;
CREATE SERVER servidor_de_consultas
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '10.100.1.1', dbname 'filial_sul', port '5432');
CREATE USER MAPPING FOR CURRENT_USER
SERVER servidor_de_consultas
OPTIONS (user 'consulta', password 'consulta');
CREATE FOREIGN TABLE pessoas (cpf numeric, nome varchar)
SERVER servidor_de_consultas
OPTIONS ( schema_name 'recursos_humanos', table_name 'tb_funcionarios');
EXPLAIN (ANALYZE,VERBOSE, BUFFERS)
SELECT * FROM pessoas
WHERE cpf = 1234567891;
QUERY PLAN
-------------------------------------------------------------------------------
Foreign Scan on public.pessoas (cost=100.00..118.06 rows=3 width=104)
Output: cpf, nome
Remote SQL: SELECT cpf, nome
77. FDW - UM EXEMPLO MULTICORN
SHOW ME THE CODE!!
–> Telegram FDW
78. CONCLUSÕES
Saiba o quanto você sabe
Saiba o quanto você ainda não sabe
Saiba que jamais saberás tudo mas seja curioso
Leia e se questione: "Será que …?"
Ensine o que aprendeu e …