SlideShare una empresa de Scribd logo
1 de 51
Descargar para leer sin conexión
PHP e CASSANDRA
Ivan Rosolen
Graduado em Sistemas de Informação
Pós-graduado em Gerência de Projetos
Desenvolvedor a 10+ anos
Autor de vários PHPT (testes para o PHP)

Gerente de Projetos na

Arizona
CASSANDRA
O que? De onde? Quem?
NoSQL
Amazon Dynamo
Google Big Table

Facebook
Pontos Positivos
- Alta escalabilidade e disponibilidade
- Sem um único ponto de falha
- Baseado em colunas (wide-column)
- Rendimento de escrita muito alto
- Rendimento de leitura bom
- Consistência ajustável e suporte a replicação
Colunas
- Modelar os dados do jeito que você vai buscar, desnormalizado

[KeySpace][ColumnFamily][Key][SuperColumn][SubColumn]
Database = [KeySpace]
Tabela

= [ColumnFamily]

Linha

= [Key]

Valores = [Column][SuperColumn][SubColumn]
Keyspace 1
Column Family 1

RowKey 1

Name
Value
Timestamp

Name
Value
Timestamp

Name
Value
Timestamp

RowKey 2

Name
Value
Timestamp

Name
Value
Timestamp

Name
Value
Timestamp
Cases
NoSQL at Netflix

http://goo.gl/dtkRw1
2011 Cassandra SF: Cassandra at Twitter Presentation

http://goo.gl/Z6akmx
C* Summit 2013: Cassandra at Instagram

http://goo.gl/UtCMH9
Mais...
http://www.planetcassandra.org/Company/ViewCompany
Devo Usar?
- Algum outro NoSQL não aguentou (MongoDB)
- Precisa de um modelo de dados mais rebuscado?
- Precisa de uma escrita ABSURDA?
- Está disposto a reformular sua aplicação?
As vezes muito trabalhoso dependendo da arquitetura

- Está disposto a gastar $$?
PHP
Dependências
Cassandra
http://cassandra.apache.org
- Não recomendado usar o java 7 ou o OpenJDK
- Oracle Java SE Runtime Environment (JRE) 6
- Apache disponibiliza “binary tarballs” e “Debian
packages”
- Java Native Access (JNA) é necessário para
servidores de produção pois melhora a utilização
de memória do Cassandra
- Cassandra-Cli
- CQL - Cassandra Query Language
http://cassandra.apache.org/doc/cql/CQL.html
Criando
cassandra-cli
create keyspace Palestra
with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy'
and strategy_options = {replication_factor:1};
use Palestra;
create column family Users;

cqlsh
cqlsh:demo> select * from “Users”;
Thrift
http://thrift.apache.org
- Habilitar APC para melhor performace
- Dependências / Install
http://thrift.apache.org/docs/install/

- Módulo nativo do PHP (phpize)
cd ext/thrift_protocol
phpize
./configure
make
sudo make install
PHPCassa
- Compatível com Cassandra 0.7 até 1.2
- PHP 5.3+
- CQL 2.0
Links
https://github.com/thobbs/phpcassa
https://groups.google.com/forum/#!forum/phpcassa
http://thobbs.github.io/phpcassa/
http://itsallabtamil.blogspot.com.br/2012/03/cassandra-phpcassa-composite-types.html
http://www.fuzzy.cz/en/articles/php-and-cassandra-twissandra/
Criando
<?php
require_once(__DIR__.'/../lib/autoload.php');
use phpcassaConnectionConnectionPool;
use phpcassaColumnFamily;
use phpcassaSystemManager;
use phpcassaSchemaStrategyClass;
$sys = new SystemManager('127.0.0.1');
$sys->create_keyspace('Palestra', array(
"strategy_class" => StrategyClass::SIMPLE_STRATEGY,
"strategy_options" => array('replication_factor' => '1')));
$sys->create_column_family('Palestra', 'Users');
$sys->close();
Sem PHPCassa
<?php
$GLOBALS['THRIFT_ROOT'] = '/usr/share/php/Thrift';
require_once $GLOBALS['THRIFT_ROOT'].'/packages/cassandra/Cassandra.php';
require_once $GLOBALS['THRIFT_ROOT'].'/packages/cassandra/cassandra_types.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TSocket.php';
require_once $GLOBALS['THRIFT_ROOT'].'/protocol/TBinaryProtocol.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TFramedTransport.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TBufferedTransport.php';
try {
$socket = new TSocket('127.0.0.1', 9160);
$transport = new TBufferedTransport($socket, 1024, 1024);
$protocol = new TBinaryProtocolAccelerated($transport);
$client = new CassandraClient($protocol);
$transport->open();
$keyspace = 'Palestra';
$keyUserId = "user0";
$columnPath = new cassandra_ColumnPath();
$columnPath->column_family = 'Users';
$columnPath->super_column = null;
$columnPath->column = 'email';
$timestamp = time();
$consistency_level = cassandra_ConsistencyLevel::ZERO;
$value = 'user@email.com';
$client->insert($keyspace, $keyUserId, $columnPath, $value, $timestamp, $consistency_level);
$transport->close();
} catch (TException $tx) {
print 'TException: '.$tx->why. ' Error: '.$tx->getMessage() . "n";
}
Com PHPCassa
<?php
require_once(__DIR__.'/../lib/autoload.php');
use phpcassaConnectionConnectionPool;
use phpcassaColumnFamily;
$pool = new ConnectionPool('Palestra', array('127.0.0.1'));
$users = new ColumnFamily($pool, 'Users');
$users->insert('user0', array("email" => "user@email.com"));
$pool->close();
<?php
require_once(__DIR__.'/../lib/autoload.php');
use phpcassaConnectionConnectionPool;
$servers = array(“192.168.229.170:9160”,”192.168.229.171:9160”,”192.168.229.172:9160);
$pool

= new ConnectionPool ('Palestra',$servers);

$pool->close();
$sys = new SystemManager('127.0.0.1');
$pool = new ConnectionPool('Palestra', array('127.0.0.1'));
$users = new ColumnFamily($pool, 'Users');
$users->truncate();
$sys->drop_keyspace("Palestra");
$pool->close();
$sys->close();
Insert e Batch Insert
$users->insert('user0', array("name" => "ivan", "state" => "SP"));
$users->insert('user1', array("name" => "elton", "state" => "SC"));

$users->batch_insert(array("user3" => array("name" => "er"),
vvvvvvvvvvv"user4" => array("name" => "calvin")));
Select e Multi Select
$user = $users->get('user0');
$name = $user["name"];
echo "Nome do usuário $namen";

$columnNames = array('name', 'state');
$user = $users->get('user0',$column_slice = null, $column_names=$columnNames);
$many = $users->multiget(array('user0', 'user1'));
foreach($many as $user_id => $columns) {
echo "Estado do $user_id: ".$columns["state"]."n";
}

$users->get_count('user0');
// retorna 2
Where e Limit
<?php
require_once(__DIR__.'/../lib/autoload.php');
use phpcassaConnectionConnectionPool;
use phpcassaColumnFamily;
use phpcassaColumnSlice;
$pool = new ConnectionPool('Palestra', array('127.0.0.1'));
$letters = new ColumnFamily($pool, 'Letras');
$columns = array(1 => "a", 2 => "b", 3 => "c", 4 => "d", 5 => "e");
$letters->insert('linha', $columns);
…….
$pool->close();
// Where >= 2
$slice = new ColumnSlice(2);
print_slice($letters->get('linha', $slice));
// Between 2 and 4
$slice = new ColumnSlice(2, 4);
print_slice($letters->get('linha', $slice));
// Limit 3
$slice = new ColumnSlice('', '', $count=3);
print_slice($letters->get('linha', $slice));
// 3 últimas
$slice = new ColumnSlice('', '', $count=3, $reversed=true);
print_slice($letters->get('linha', $slice));
// 2 últimas antes do 4
$slice = new ColumnSlice(4, '', $count=2, $reversed=true);
print_slice($letters->get('linha', $slice));
Delete
<?php
require_once(__DIR__.'/../lib/autoload.php');
use phpcassaConnectionConnectionPool;
use phpcassaColumnFamily;
$pool = new ConnectionPool('Palestra', array('127.0.0.1'));
$users = new ColumnFamily($pool, 'Users');
$users->remove("user4");
$users>remove("user0", array("state"));
$users->truncate();
$pool->close();
Referências / Links
Planet Cassandra
http://www.planetcassandra.org/

Cassandra Summit 2013
http://www.youtube.com/watch?v=Qz6ElTdYjjU&list=PLqcm6qE9lgKJzVvwHprow9h7KMpb5hcUU

Using Cassandra with PHP
https://pressflow.atlassian.net/wiki/display/PF/Using+Cassandra+with+PHP

DataStax
http://www.datastax.com/docs

DataStax Data modeling
http://www.datastax.com/documentation/cql/3.0/webhelp/index.html#cql/ddl/ddl_anatomy_table_c.html

Apache Cassandra Wiki
http://wiki.apache.org/cassandra/ArticlesAndPresentations

Quadrinho de como o Cassandra Funciona
http://blogs.atlassian.com/2013/09/do-you-know-cassandra

Pandra
https://github.com/mjpearson/Pandra

Cassandra PHP Client Library
https://github.com/kallaspriit/Cassandra-PHP-Client-Library/

Cassandra PDO
https://github.com/Orange-OpenSource/YACassandraPDO

Más contenido relacionado

La actualidad más candente

Advanced modulinos
Advanced modulinosAdvanced modulinos
Advanced modulinosbrian d foy
 
Advanced modulinos trial
Advanced modulinos trialAdvanced modulinos trial
Advanced modulinos trialbrian d foy
 
Apostrophe
ApostropheApostrophe
Apostrophetompunk
 
16.mysql stored procedures in laravel
16.mysql stored procedures in laravel16.mysql stored procedures in laravel
16.mysql stored procedures in laravelRazvan Raducanu, PhD
 
SfCon: Test Driven Development
SfCon: Test Driven DevelopmentSfCon: Test Driven Development
SfCon: Test Driven DevelopmentAugusto Pascutti
 
Introducing Assetic (NYPHP)
Introducing Assetic (NYPHP)Introducing Assetic (NYPHP)
Introducing Assetic (NYPHP)Kris Wallsmith
 
Symfony components in the wild, PHPNW12
Symfony components in the wild, PHPNW12Symfony components in the wild, PHPNW12
Symfony components in the wild, PHPNW12Jakub Zalas
 
Symfony War Stories
Symfony War StoriesSymfony War Stories
Symfony War StoriesJakub Zalas
 
WordPress REST API hacking
WordPress REST API hackingWordPress REST API hacking
WordPress REST API hackingJeroen van Dijk
 
Symfony As A Platform (Symfony Camp 2007)
Symfony As A Platform (Symfony Camp 2007)Symfony As A Platform (Symfony Camp 2007)
Symfony As A Platform (Symfony Camp 2007)Fabien Potencier
 
The Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressThe Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressJeroen van Dijk
 
WordPress REST API hacking
WordPress REST API hackingWordPress REST API hacking
WordPress REST API hackingJeroen van Dijk
 
Parsing JSON with a single regex
Parsing JSON with a single regexParsing JSON with a single regex
Parsing JSON with a single regexbrian d foy
 
The Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressThe Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressJeroen van Dijk
 

La actualidad más candente (20)

Advanced modulinos
Advanced modulinosAdvanced modulinos
Advanced modulinos
 
Advanced modulinos trial
Advanced modulinos trialAdvanced modulinos trial
Advanced modulinos trial
 
Apostrophe
ApostropheApostrophe
Apostrophe
 
Bag of tricks
Bag of tricksBag of tricks
Bag of tricks
 
16.mysql stored procedures in laravel
16.mysql stored procedures in laravel16.mysql stored procedures in laravel
16.mysql stored procedures in laravel
 
SfCon: Test Driven Development
SfCon: Test Driven DevelopmentSfCon: Test Driven Development
SfCon: Test Driven Development
 
Introducing Assetic (NYPHP)
Introducing Assetic (NYPHP)Introducing Assetic (NYPHP)
Introducing Assetic (NYPHP)
 
Symfony components in the wild, PHPNW12
Symfony components in the wild, PHPNW12Symfony components in the wild, PHPNW12
Symfony components in the wild, PHPNW12
 
Perl5i
Perl5iPerl5i
Perl5i
 
Symfony War Stories
Symfony War StoriesSymfony War Stories
Symfony War Stories
 
WordPress REST API hacking
WordPress REST API hackingWordPress REST API hacking
WordPress REST API hacking
 
Symfony As A Platform (Symfony Camp 2007)
Symfony As A Platform (Symfony Camp 2007)Symfony As A Platform (Symfony Camp 2007)
Symfony As A Platform (Symfony Camp 2007)
 
The Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressThe Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/Press
 
WordPress REST API hacking
WordPress REST API hackingWordPress REST API hacking
WordPress REST API hacking
 
Parsing JSON with a single regex
Parsing JSON with a single regexParsing JSON with a single regex
Parsing JSON with a single regex
 
The Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressThe Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/Press
 
Perl basics for Pentesters
Perl basics for PentestersPerl basics for Pentesters
Perl basics for Pentesters
 
My shell
My shellMy shell
My shell
 
PHP pod mikroskopom
PHP pod mikroskopomPHP pod mikroskopom
PHP pod mikroskopom
 
Symfony 2.0 on PHP 5.3
Symfony 2.0 on PHP 5.3Symfony 2.0 on PHP 5.3
Symfony 2.0 on PHP 5.3
 

Destacado

Criando APIs usando o micro-framework Respect
Criando APIs usando o micro-framework RespectCriando APIs usando o micro-framework Respect
Criando APIs usando o micro-framework RespectIvan Rosolen
 
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQLDesenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQLOtávio Santana
 
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016Diana Ungaro Arnos
 
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...James Titcumb
 
Espírito de Comunidade
Espírito de ComunidadeEspírito de Comunidade
Espírito de ComunidadeAirton Zanon
 
Tirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQTirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQNelson Senna do Amaral
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowpichiliani
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoIvan Rosolen
 
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016Alexandre Brandão Lustosa
 

Destacado (10)

Criando APIs usando o micro-framework Respect
Criando APIs usando o micro-framework RespectCriando APIs usando o micro-framework Respect
Criando APIs usando o micro-framework Respect
 
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQLDesenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
 
PHPT
PHPTPHPT
PHPT
 
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
 
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...
 
Espírito de Comunidade
Espírito de ComunidadeEspírito de Comunidade
Espírito de Comunidade
 
Tirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQTirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQ
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápido
 
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016
 

Similar a Php e Cassandra

Open Source Search: An Analysis
Open Source Search: An AnalysisOpen Source Search: An Analysis
Open Source Search: An AnalysisJustin Finkelstein
 
All Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for NewbiesAll Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for NewbiesDave Stokes
 
Wordcamp Fayetteville Pods Presentation (PDF)
Wordcamp Fayetteville Pods Presentation (PDF)Wordcamp Fayetteville Pods Presentation (PDF)
Wordcamp Fayetteville Pods Presentation (PDF)mpvanwinkle
 
PHP and Rich Internet Applications
PHP and Rich Internet ApplicationsPHP and Rich Internet Applications
PHP and Rich Internet Applicationselliando dias
 
Manchester Hadoop Meetup: Spark Cassandra Integration
Manchester Hadoop Meetup: Spark Cassandra IntegrationManchester Hadoop Meetup: Spark Cassandra Integration
Manchester Hadoop Meetup: Spark Cassandra IntegrationChristopher Batey
 
Reading Cassandra Meetup Feb 2015: Apache Spark
Reading Cassandra Meetup Feb 2015: Apache SparkReading Cassandra Meetup Feb 2015: Apache Spark
Reading Cassandra Meetup Feb 2015: Apache SparkChristopher Batey
 
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014Cliff Seal
 
Store and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and CassandraStore and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and CassandraDeependra Ariyadewa
 
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014Cliff Seal
 
The Zen of Lithium
The Zen of LithiumThe Zen of Lithium
The Zen of LithiumNate Abele
 
Text in search queries with examples in Perl 6
Text in search queries with examples in Perl 6Text in search queries with examples in Perl 6
Text in search queries with examples in Perl 6Andrew Shitov
 

Similar a Php e Cassandra (20)

PHP and Cassandra
PHP and CassandraPHP and Cassandra
PHP and Cassandra
 
Open Source Search: An Analysis
Open Source Search: An AnalysisOpen Source Search: An Analysis
Open Source Search: An Analysis
 
All Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for NewbiesAll Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for Newbies
 
Php 101: PDO
Php 101: PDOPhp 101: PDO
Php 101: PDO
 
Php summary
Php summaryPhp summary
Php summary
 
Cassandra-Powered Distributed DNS
Cassandra-Powered Distributed DNSCassandra-Powered Distributed DNS
Cassandra-Powered Distributed DNS
 
Wordcamp Fayetteville Pods Presentation (PDF)
Wordcamp Fayetteville Pods Presentation (PDF)Wordcamp Fayetteville Pods Presentation (PDF)
Wordcamp Fayetteville Pods Presentation (PDF)
 
Scala in Places API
Scala in Places APIScala in Places API
Scala in Places API
 
PHP and Rich Internet Applications
PHP and Rich Internet ApplicationsPHP and Rich Internet Applications
PHP and Rich Internet Applications
 
Cli deep dive
Cli deep diveCli deep dive
Cli deep dive
 
Manchester Hadoop Meetup: Spark Cassandra Integration
Manchester Hadoop Meetup: Spark Cassandra IntegrationManchester Hadoop Meetup: Spark Cassandra Integration
Manchester Hadoop Meetup: Spark Cassandra Integration
 
Reading Cassandra Meetup Feb 2015: Apache Spark
Reading Cassandra Meetup Feb 2015: Apache SparkReading Cassandra Meetup Feb 2015: Apache Spark
Reading Cassandra Meetup Feb 2015: Apache Spark
 
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014
 
Php hacku
Php hackuPhp hacku
Php hacku
 
Store and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and CassandraStore and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and Cassandra
 
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014
 
Fatc
FatcFatc
Fatc
 
The Zen of Lithium
The Zen of LithiumThe Zen of Lithium
The Zen of Lithium
 
Php Mysql
Php Mysql Php Mysql
Php Mysql
 
Text in search queries with examples in Perl 6
Text in search queries with examples in Perl 6Text in search queries with examples in Perl 6
Text in search queries with examples in Perl 6
 

Más de Ivan Rosolen

15 mandamentos de um bom programador
15 mandamentos de um bom programador15 mandamentos de um bom programador
15 mandamentos de um bom programadorIvan Rosolen
 
Utilizando Filas com PHP
Utilizando Filas com PHPUtilizando Filas com PHP
Utilizando Filas com PHPIvan Rosolen
 
Boas Práticas com PHP
Boas Práticas com PHPBoas Práticas com PHP
Boas Práticas com PHPIvan Rosolen
 
Mercado de Tecnologia
Mercado de TecnologiaMercado de Tecnologia
Mercado de TecnologiaIvan Rosolen
 
Deploy automatizado de Aplicações no Jelastic
Deploy automatizado de Aplicações no JelasticDeploy automatizado de Aplicações no Jelastic
Deploy automatizado de Aplicações no JelasticIvan Rosolen
 
Autenticação com Json Web Token (JWT)
Autenticação com Json Web Token (JWT)Autenticação com Json Web Token (JWT)
Autenticação com Json Web Token (JWT)Ivan Rosolen
 
Tecnologias e Inovação
Tecnologias e InovaçãoTecnologias e Inovação
Tecnologias e InovaçãoIvan Rosolen
 
Cassandra 7 masters
Cassandra 7 mastersCassandra 7 masters
Cassandra 7 mastersIvan Rosolen
 
Quando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucessoQuando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucessoIvan Rosolen
 
Case: PHP como Base de Digital Asset Management – arizona.flow
Case: PHP como Base de Digital Asset Management – arizona.flowCase: PHP como Base de Digital Asset Management – arizona.flow
Case: PHP como Base de Digital Asset Management – arizona.flowIvan Rosolen
 

Más de Ivan Rosolen (15)

15 mandamentos de um bom programador
15 mandamentos de um bom programador15 mandamentos de um bom programador
15 mandamentos de um bom programador
 
Utilizando Filas com PHP
Utilizando Filas com PHPUtilizando Filas com PHP
Utilizando Filas com PHP
 
Filas com php
Filas com phpFilas com php
Filas com php
 
Boas Práticas com PHP
Boas Práticas com PHPBoas Práticas com PHP
Boas Práticas com PHP
 
Mercado de Tecnologia
Mercado de TecnologiaMercado de Tecnologia
Mercado de Tecnologia
 
Deploy automatizado de Aplicações no Jelastic
Deploy automatizado de Aplicações no JelasticDeploy automatizado de Aplicações no Jelastic
Deploy automatizado de Aplicações no Jelastic
 
Autenticação com Json Web Token (JWT)
Autenticação com Json Web Token (JWT)Autenticação com Json Web Token (JWT)
Autenticação com Json Web Token (JWT)
 
JSON Web Tokens
JSON Web TokensJSON Web Tokens
JSON Web Tokens
 
Tecnologias e Inovação
Tecnologias e InovaçãoTecnologias e Inovação
Tecnologias e Inovação
 
Rest Beer v2
Rest Beer v2Rest Beer v2
Rest Beer v2
 
Jelastic
JelasticJelastic
Jelastic
 
Aws video creator
Aws video creatorAws video creator
Aws video creator
 
Cassandra 7 masters
Cassandra 7 mastersCassandra 7 masters
Cassandra 7 masters
 
Quando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucessoQuando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucesso
 
Case: PHP como Base de Digital Asset Management – arizona.flow
Case: PHP como Base de Digital Asset Management – arizona.flowCase: PHP como Base de Digital Asset Management – arizona.flow
Case: PHP como Base de Digital Asset Management – arizona.flow
 

Último

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Último (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Php e Cassandra