The library serves over 1 million residents and circulates around 500,000 items per month. It previously had limited automated notices for patrons, such as hold expiration alerts. The document proposes to create custom SQL queries to generate automated email notices for patrons, such as welcome messages for new patrons and due date alerts. It provides examples of SQL queries that could be used to pull patron data and item details to generate personalized notices for different situations. The goal is to leverage existing expertise to automate more customized patron communications.
Este documento habla sobre la prevención y combate de incendios. Explica las características del fuego, las causas comunes de incendios, la clasificación del fuego según la NFPA, los métodos para eliminar el fuego como enfriamiento, sofocación y separación, los tipos de extintores y sus usos, y ofrece recomendaciones para la prevención de incendios.
Curriculum Vitae Of Rolf Fehlmann EN July 2012Rolf Fehlmann
Rolf Fehlmann has over 30 years of experience in communications and marketing roles. He has worked in the chemical, IT, transportation, healthcare, and media industries. His experience includes leading communications for organizational changes, developing marketing campaigns, managing media relations, and advising executive leadership. He is now seeking a communications leadership position involving strategy, issues management, and shaping stakeholder perceptions.
Order & Pay es un sistema para pedidos y pagos a través de smartphones en restaurantes y bares, que permite a los clientes seleccionar artículos apuntando su teléfono a pegatinas y confirmar el pedido y pago. Ofrece rapidez, comodidad e incremento de ventas para los establecimientos.
Series.ly surgió como una solución para que las personas puedan organizar y compartir las series, películas y programas de televisión que ven. El nombre "Series.ly" es un guiño a la expresión en inglés "seriously". El equipo de Series.ly está entusiasmado con el futuro del proyecto y espera que 2013 sea un gran año, ya que su misión es proveer una herramienta que ayude a las personas a decidir qué ver mediante recomendaciones y lo que ven sus amigos. Ellos creen que pueden aportar valor a la indust
Este documento habla sobre la prevención y combate de incendios. Explica las características del fuego, las causas comunes de incendios, la clasificación del fuego según la NFPA, los métodos para eliminar el fuego como enfriamiento, sofocación y separación, los tipos de extintores y sus usos, y ofrece recomendaciones para la prevención de incendios.
Curriculum Vitae Of Rolf Fehlmann EN July 2012Rolf Fehlmann
Rolf Fehlmann has over 30 years of experience in communications and marketing roles. He has worked in the chemical, IT, transportation, healthcare, and media industries. His experience includes leading communications for organizational changes, developing marketing campaigns, managing media relations, and advising executive leadership. He is now seeking a communications leadership position involving strategy, issues management, and shaping stakeholder perceptions.
Order & Pay es un sistema para pedidos y pagos a través de smartphones en restaurantes y bares, que permite a los clientes seleccionar artículos apuntando su teléfono a pegatinas y confirmar el pedido y pago. Ofrece rapidez, comodidad e incremento de ventas para los establecimientos.
Series.ly surgió como una solución para que las personas puedan organizar y compartir las series, películas y programas de televisión que ven. El nombre "Series.ly" es un guiño a la expresión en inglés "seriously". El equipo de Series.ly está entusiasmado con el futuro del proyecto y espera que 2013 sea un gran año, ya que su misión es proveer una herramienta que ayude a las personas a decidir qué ver mediante recomendaciones y lo que ven sus amigos. Ellos creen que pueden aportar valor a la indust
PHP is a server-side scripting language used for web development. It allows embedding PHP code in HTML pages which will be executed on the server to generate dynamic web page content. The document outlines an agenda for a PHP training session, including a warm up on SQL and XAMPP, a presentation on PHP basics, a practical coding exercise, and questions. It also provides some background on PHP including its history, alternatives, and how it generates web pages. Key PHP concepts like variables, strings, arrays, and object-oriented programming are briefly introduced.
This is the thirteenth set of slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
The very basics of programming in PHP to store/retrieve data on a relational database management system (RDMS). For those looking for intermediate to advanced material, please see 'What Your Database Query is Really Doing'.
The document summarizes Realm, an open source database that allows developers to build mobile apps that work offline. Realm is widely adopted, with over 100k developers building apps on it and 40k of the world's most popular apps using Realm with over 2 billion installs. Realm databases are lightweight, embedded on the client, use an object-oriented data model, and support live objects that update automatically without polling. The document also provides details on Realm objects, queries, notifications, and the developers' vision for future enhancements.
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010Alex Sharp
The document discusses using MongoDB for practical projects by modeling objects in a document-oriented way rather than using an ORM with a relational database. It provides examples of accounting, logging, and blogging applications that are better suited to MongoDB's schema-less and embedded document features compared to a relational database.
The document provides an overview of NoSQL data modeling concepts and different NoSQL database types including document databases, column-oriented databases, key-value stores, and graph databases. It discusses data modeling approaches for each type and compares databases like MongoDB and CouchDB. The document also covers topics like CAP theorem, eventual consistency, and distributed system techniques from Dynamo.
Lua Workshop 2014
Moscow, Russia, September 13–14, 2014
"Lua pitfalls"
Dmitry Kotelnikov (IPONWEB)
This report is about various pitfalls somehow related to Lua. We know them firsthand because dozen of our developers use Lua to implement business logic. Even obvious traps may hit the wallet and the psyche. Additionally possible workarounds will be given. The report will contain a list of peculiarities of the Lua, missed that you can get a bug. Mainly this will be well-known things, such as nil in the table or global variables. Everything I tell you is not a revelation. All this can be seen in the pages of documentation, on the internet or learn from your colleagues. But for many it's just knowledge, not experience. The most reliable way to learn not to make mistakes is to make every mistake at least once. Preferably with serious consequences -) And for most of the knowledge we really had to pay. So for us it is truly an experience. I will try to share our experience with you, and I hope that these traps will cost you less.
With increasing levels of abstraction in frameworks, it is rare that web developers interact directly with databases. However, ORMs can slow seemingly simple queries down to a crawl. Instead of trying to maintain complex cache keys with the latest fashionable key-value store, let's revisit this 30 year old technology.
Modern Web Technologies — Jerusalem Web Professionals, January 2011Reuven Lerner
What's the current state of Web technologies, and how does it affect professionals creating Web applications? In this talk, I survey the latest trends in Web technologies, and where I believe they're going in the near future.
Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...Reuven Lerner
My talk from the Megacomm 2012 conference in Jerusalem, on February 16th, 2012. I describe the fundamental underpinnings of the Web, how things have changed on both the browser and server sides, and what these technologies mean for users..
This document summarizes Jeremy Zawodny's work with MySQL and search at Craigslist. It discusses how Craigslist uses MySQL for its classified listings but encountered scaling issues as traffic grew. To address this, Craigslist implemented the Sphinx search engine, which improved performance and allowed them to reduce their MySQL cluster size. The document also outlines Craigslist's data archiving strategy using eventual consistency and their goals for further optimizing their database and search infrastructure.
Developers love MongoDB because its flexible document model enhances their productivity. But did you know that MongoDB supports rich queries and lets you accomplish some of the same things you currently do with SQL statements? And that MongoDB's powerful aggregation framework makes it possible to perform real-time analytics for dashboards and reports?
Attend this webinar for an introduction to the MongoDB aggregation framework and a walk through of what you can do with it. We'll also demo using it to analyze U.S. census data.
The Transparent Web: Bridging the Chasm in Web Developmenttwopoint718
The document discusses the concept of a "transparent web" where the distinction between client-side and server-side code is minimized. It provides examples using Opa and Ur/Web programming languages to demonstrate "Hello World" programs that can compile and run code on both the client and server without needing to manage separate codebases. The document argues this approach can help address common problems with web applications like security, managing multiple languages, and taking on system administration tasks. It acknowledges some may be hesitant but argues the benefits of increased productivity and reduced errors will lead to this approach becoming standard.
PHP / MySQL applications are compatible to all operating systems, support all the popular databases, 100% remotely configurable, perfect for web programming & provide higher performance and speed.
PHP is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly.
MySQL is a Relational Database Management System (RDBMS) that uses Structured Query Language (SQL).
PHP is the most popular scripting language for web development. It is free, open source and server-side (the code is executed on the server).
PHP third party tool and plug-in integration such as chat, forum, blog and search engine
This document summarizes the key steps in the locality sensitive hashing (LSH) algorithm for finding similar documents:
1. Documents are converted to sets of shingles (sequences of tokens) to represent them as high-dimensional data points.
2. MinHashing is applied to generate signatures (hashes) for each document such that similar documents are likely to have the same signatures. This compresses the data into a signature matrix.
3. LSH uses the signature matrix to hash similar documents into the same buckets with high probability, finding candidate pairs for further similarity evaluation and filtering out dissimilar pairs from consideration. This improves the computation efficiency over directly comparing all pairs.
Redis is a NoSQL technology that rides a fine line between database and in-memory cache. Redis also offers "remote data structures", which gives it a significant advantage over other in-memory databases. This session will cover several PHP clients for Redis, and how to use them for caching, data modeling and generally improving application throughput.
MongoDB .local Chicago 2019: REST-less Mobile Apps: Why Offline-first & Sync ...MongoDB
Learn how Seamless Sync helps businesses empower their workforce with mobile apps that work seamlessly anywhere. Get to know what offline-first apps are, use-cases that drive this need, why sync matters and why “REST is not best” for client/server communication.
PHP is a server-side scripting language used for web development. It allows embedding PHP code in HTML pages which will be executed on the server to generate dynamic web page content. The document outlines an agenda for a PHP training session, including a warm up on SQL and XAMPP, a presentation on PHP basics, a practical coding exercise, and questions. It also provides some background on PHP including its history, alternatives, and how it generates web pages. Key PHP concepts like variables, strings, arrays, and object-oriented programming are briefly introduced.
This is the thirteenth set of slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
The very basics of programming in PHP to store/retrieve data on a relational database management system (RDMS). For those looking for intermediate to advanced material, please see 'What Your Database Query is Really Doing'.
The document summarizes Realm, an open source database that allows developers to build mobile apps that work offline. Realm is widely adopted, with over 100k developers building apps on it and 40k of the world's most popular apps using Realm with over 2 billion installs. Realm databases are lightweight, embedded on the client, use an object-oriented data model, and support live objects that update automatically without polling. The document also provides details on Realm objects, queries, notifications, and the developers' vision for future enhancements.
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010Alex Sharp
The document discusses using MongoDB for practical projects by modeling objects in a document-oriented way rather than using an ORM with a relational database. It provides examples of accounting, logging, and blogging applications that are better suited to MongoDB's schema-less and embedded document features compared to a relational database.
The document provides an overview of NoSQL data modeling concepts and different NoSQL database types including document databases, column-oriented databases, key-value stores, and graph databases. It discusses data modeling approaches for each type and compares databases like MongoDB and CouchDB. The document also covers topics like CAP theorem, eventual consistency, and distributed system techniques from Dynamo.
Lua Workshop 2014
Moscow, Russia, September 13–14, 2014
"Lua pitfalls"
Dmitry Kotelnikov (IPONWEB)
This report is about various pitfalls somehow related to Lua. We know them firsthand because dozen of our developers use Lua to implement business logic. Even obvious traps may hit the wallet and the psyche. Additionally possible workarounds will be given. The report will contain a list of peculiarities of the Lua, missed that you can get a bug. Mainly this will be well-known things, such as nil in the table or global variables. Everything I tell you is not a revelation. All this can be seen in the pages of documentation, on the internet or learn from your colleagues. But for many it's just knowledge, not experience. The most reliable way to learn not to make mistakes is to make every mistake at least once. Preferably with serious consequences -) And for most of the knowledge we really had to pay. So for us it is truly an experience. I will try to share our experience with you, and I hope that these traps will cost you less.
With increasing levels of abstraction in frameworks, it is rare that web developers interact directly with databases. However, ORMs can slow seemingly simple queries down to a crawl. Instead of trying to maintain complex cache keys with the latest fashionable key-value store, let's revisit this 30 year old technology.
Modern Web Technologies — Jerusalem Web Professionals, January 2011Reuven Lerner
What's the current state of Web technologies, and how does it affect professionals creating Web applications? In this talk, I survey the latest trends in Web technologies, and where I believe they're going in the near future.
Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...Reuven Lerner
My talk from the Megacomm 2012 conference in Jerusalem, on February 16th, 2012. I describe the fundamental underpinnings of the Web, how things have changed on both the browser and server sides, and what these technologies mean for users..
This document summarizes Jeremy Zawodny's work with MySQL and search at Craigslist. It discusses how Craigslist uses MySQL for its classified listings but encountered scaling issues as traffic grew. To address this, Craigslist implemented the Sphinx search engine, which improved performance and allowed them to reduce their MySQL cluster size. The document also outlines Craigslist's data archiving strategy using eventual consistency and their goals for further optimizing their database and search infrastructure.
Developers love MongoDB because its flexible document model enhances their productivity. But did you know that MongoDB supports rich queries and lets you accomplish some of the same things you currently do with SQL statements? And that MongoDB's powerful aggregation framework makes it possible to perform real-time analytics for dashboards and reports?
Attend this webinar for an introduction to the MongoDB aggregation framework and a walk through of what you can do with it. We'll also demo using it to analyze U.S. census data.
The Transparent Web: Bridging the Chasm in Web Developmenttwopoint718
The document discusses the concept of a "transparent web" where the distinction between client-side and server-side code is minimized. It provides examples using Opa and Ur/Web programming languages to demonstrate "Hello World" programs that can compile and run code on both the client and server without needing to manage separate codebases. The document argues this approach can help address common problems with web applications like security, managing multiple languages, and taking on system administration tasks. It acknowledges some may be hesitant but argues the benefits of increased productivity and reduced errors will lead to this approach becoming standard.
PHP / MySQL applications are compatible to all operating systems, support all the popular databases, 100% remotely configurable, perfect for web programming & provide higher performance and speed.
PHP is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly.
MySQL is a Relational Database Management System (RDBMS) that uses Structured Query Language (SQL).
PHP is the most popular scripting language for web development. It is free, open source and server-side (the code is executed on the server).
PHP third party tool and plug-in integration such as chat, forum, blog and search engine
This document summarizes the key steps in the locality sensitive hashing (LSH) algorithm for finding similar documents:
1. Documents are converted to sets of shingles (sequences of tokens) to represent them as high-dimensional data points.
2. MinHashing is applied to generate signatures (hashes) for each document such that similar documents are likely to have the same signatures. This compresses the data into a signature matrix.
3. LSH uses the signature matrix to hash similar documents into the same buckets with high probability, finding candidate pairs for further similarity evaluation and filtering out dissimilar pairs from consideration. This improves the computation efficiency over directly comparing all pairs.
Redis is a NoSQL technology that rides a fine line between database and in-memory cache. Redis also offers "remote data structures", which gives it a significant advantage over other in-memory databases. This session will cover several PHP clients for Redis, and how to use them for caching, data modeling and generally improving application throughput.
MongoDB .local Chicago 2019: REST-less Mobile Apps: Why Offline-first & Sync ...MongoDB
Learn how Seamless Sync helps businesses empower their workforce with mobile apps that work seamlessly anywhere. Get to know what offline-first apps are, use-cases that drive this need, why sync matters and why “REST is not best” for client/server communication.
1. David Noe
Orange County Library System
dnoe@ocls.info
Automating Custom Patron Notices
and Messages Using SQL
2. • Metropolitan public library
• Main downtown library and 14 branches
• Serving > 1,000,000 Orange County Residents
• > 1.7 million items
• ~ 0.5 million checkouts a month
• ~10% of that are requests delivered
• ~350 employees
• Annual budget totals approximately $35.3 million
• Migrated to Sierra in late 2012
14. <PHP?
$dbp = pg_connect("host=192.168.xxx.xxx port=1032 dbname=iii user=xxx password=xxx");
$dbm = mysql_pconnect('192.168.xxx.xxx','xxxx','xxxx');
$items = array();
$html = file_get_contents('/home/xxx/scripts/Templates/welcome_email.html');
$htmls = '';
$nl = "rn";
$q = "
SELECT
svn.patron_record_id as prid, svv.field_content as em, svn.last_name as ln, svn.first_name as fn
FROM sierra_view.patron_record svp
LEFT JOIN sierra_view.record_metadata svm
ON svp.id=svm.id
LEFT JOIN sierra_view.varfield svv
ON svp.record_id = svv.record_id
LEFT JOIN sierra_view.patron_record_fullname svn
ON svp.record_id = svn.patron_record_id
WHERE date(svm.creation_date_gmt) = current_date -15
AND svm.record_type_code='p'
AND svp.mblock_code = '-'
AND svp.ptype_code < '2'
AND svv.varfield_type_code = 'z';
";
$r = pg_query($dbp,$q); ...
WELCOME MESSAGE (only touching on core concepts)
15. if ($r) {
while ($row = pg_fetch_assoc($r)) {
$pid = $row['prid'];
$ln = ucwords(strtolower($row['ln']));
$fn = ucwords(strtolower($row['fn']));
$em = trim($row['em']);
if (@!$items[$em]) {
$items[$em][0][0] = $ln;
$items[$em][0][1] = $fn;
$items[$em][0][2] = $pid;
} else {
array_push($items[$em],array($ln,$fn,$pid));
}
}
} ...
WELCOME MESSAGE (seriously, do not attempt to read all of this)
16. foreach ($items as $h => $a) {
echo "rn<$h> "".$items[$h][0][0]." ".$items[$h][0][1]." ".$items[$h][0][2]."" rn";
$pname = $items[$h][0][1]." ".$items[$h][0][0];
$prid = $items[$h][0][2];
$em = trim($h);
$to = $h;
$subject = 'The Coolest Card In Town';
$headers = "From: <donotreply@ocls.info> "Orange County Library System"rn";
$headers .= "MIME-Version: 1.0rn";
$headers .= "Content-Type: text/html; charset=ISO-8859-1rn"; ...
WELCOME MESSAGE (not my code, so it takes me half an hour)
17. if ($dbm) {
$s = "insert into statistics.welcomenotices(pid,em,ts) values ('".$prid."','".$em."',now());";
$r = mysql_query($s,$dbm);
echo "logging data rn";
} else {
echo "no connection to mysql rn";
}
if (preg_match('/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$/',$em) == 1) {
$htmls = str_replace('<!-- PATRON -->',$pname,$html);
mail($to,$subject,$htmls,$headers);
usleep(1500000);
}
}
?>
WELCOME MESSAGE (I may try to post some of our code later)
18. DUE DATE ALERT
SELECT
svc.patron_record_id as pid,
svp.first_name as fn,
svp.last_name as ln,
svv.field_content as email,
svb.best_title as title
FROM sierra_view.checkout svc
LEFT JOIN sierra_view.patron_record_fullname svp
ON svc.patron_record_id = svp.patron_record_id
LEFT JOIN sierra_view.varfield svv
ON svp.patron_record_id = svv.record_id
LEFT JOIN sierra_view.item_record_property svi
ON svi.item_record_id = svc.item_record_id
LEFT JOIN sierra_view.bib_record_item_record_link svl
ON svl.item_record_id = svi.item_record_id
LEFT JOIN sierra_view.bib_record_property svb
ON svl.bib_record_id=svb.bib_record_id
WHERE
date(svc.due_gmt) = current_date
AND svv.varfield_type_code = 'z'
ORDER BY svp.patron_record_id;
19. HOLDS EXPIRATION ALERT
SELECT
svh.patron_record_id as pid,
date_trunc('day',svh.expires_gmt) as exp,
svp.last_name as ln,
svp.first_name as fn,
sv1.field_content as email,
sv2.field_content as title
FROM
sierra_view.hold svh
LEFT JOIN sierra_view.patron_record_fullname svp
ON (svh.patron_record_id = svp.patron_record_id)
JOIN sierra_view.varfield sv1
ON (svh.patron_record_id = sv1.record_id
AND sv1.varfield_type_code = 'z')
LEFT JOIN sierra_view.bib_record_item_record_link bil
ON (svh.record_id = bil.item_record_id)
LEFT JOIN sierra_view.varfield sv2
ON ((svh.record_id = sv2.record_id
OR bil.bib_record_id = sv2.record_id)
AND sv2.varfield_type_code = 't')
WHERE
DATE(svh.expires_gmt) > DATE (now() + interval '7days')
AND DATE(svh.expires_gmt) < DATE (now() + interval '14days')
ORDER BY svh.patron_record_id asc, exp asc;