SlideShare a Scribd company logo
1 of 19
Download to read offline
Electronic Resource Reminders
      in Google Calendar



              Nada O’Neal, Systems Engineer
                    nco2104@columbia.edu
               Columbia University Libraries
                        ENUG 10/28/2011
Specifics…
Specifics…
Columbia’s Problem
Some background:
•  Columbia Libraries = big, federation of many libraries
•  Electronic subscription resources = lots, expensive
•  Assessment of subscription e-resources is hard

The problem:
•  Assessment of electronic subscription resources was great in some libraries, less
   great in others
•  There wasn’t much guidance for assessors who wanted it
•  Data is available for assessors, but they must proactively get it themselves

The solution:
•  Some push technology that enforced a 5- and 3-month pre-renewal assessment
   schedule.
Wait. Why push?
Push (instead of “pull”) means the data goes to the people,
instead of people needing to go to the data. Fantastic!

Email, pop-ups, etc, are examples of push technology. Oh.

Note that push technology can backfire
because it can be very annoying, in which
case people will block/ignore it.

It works best when it fits into existing
workflow, and when users get exactly
what they want.
Columbia’s Pick
•  The Libraries had just completed a transition to Google
   Calendar.
•  Available to all staff
•  Staff were already using heavily to manage schedules
    •  This made ninja-push possible
•  Staff had been recently trained
•  IT Staff were (somewhat) experienced with the API
•  Cheap! (free)
!            gCal Caveats
•    Reminders at most 4 weeks in advance
•    The http API is slow
•    The API is limited
•    http requests can be interrupted
•    Google is “in the cloud”, man
•    Data privacy!

Understand: Columbia is using “Google Apps for your
Domain”, Education edition, which is different from a
consumer Google account, especially in terms of privacy.

Is gCal the best choice for you? Maybe.
Our App in GCal
•  Each fund code is its own calendar
    •  These are secondary calendars under the “_backup”
       service account, so they must be added to the global
       address book
•  Any Columbia Libraries staff can view any fund calendar
•  A user begins typing “Fund Code …” and the calendar pops
   up
•  A user can subscribe themselves to receive email or pop-up
   reminders for a code/calendar or a resource/event
•  Assessment working group members receive a monthly
   emailed report on who is subscribing to what
Expenditure = 3 events
•    Each fund may have hundreds of expenditures!
•    Each expenditure is entered once, on the day it happened
•    5-month and 3-month renewal reminders (for non-negative expenditures)
•    (There is no expiration event.)

Sample calendar event:
On 10/27/2011:

Title: renew   Asian philosophy $XXX by 01/26/2012


Event data:
(three months reminder) 2035E      1AEM2727 20110126 Asian philosophy.
         1        Abingdon, Oxfordshire :   enk      expenditure             $XXX
         9123215 ags1      EBS29   USD          $XXX CUL 11   EBSCO
         [1: 20(01/11)-21(12/11) - PRINT + ONLINE]    [Start Date:
2011-01-01]   [End Date: 2011-12-31]
Finding A Fund…
Viewing Funds…
Email/Popup Reminders…

On fund…       On event…
Subscriber Report…
Subject: Fundcode Calendar Subscribers (30 total)
From: nco2104@columbia.edu

Here's the latest list of people subscribed to at least one fund calendar. This is an
automated message.

1. Xxxxx Xxxxxx
   (2038E, 4317E)
2. Xxxxx Xxxxxx
   (2235E, 2235EO, 2242E, 2248E, 2248EO, 2464E)
3. Xxxxxx Xxxxxx
   (2011E, 2029EO, 2462E, 2462EO, 2464E, 2465E, 2564E)
4. Xxxxxx Xxxxxx
   (2040E, 2462E, 2462EO, 2463E, 2465E, 6255E)
5. […]
Data into Google
•  Choice of python somewhat arbitrary: Google has good,
   well-supported APIs for:
    •  python
    •  .NET
    •  Java
•  And other APIs for:
    •  php
    •  javascript
    •  ruby
•  See http://code.google.com/apis/calendar/
Data from Voyager
•  I opted to keep the current perl scripts that were producing
   “Excel” reports from Voyager’s Oracle backend, and to
   extract the data from those.
$sql = "SELECT DISTINCT FUND_TRANSACTION.TRANS_TYPE,
               FUND_TRANSACTION.AMOUNT, TO_CHAR(FUND_TRANSACTION.TRANS_DATE,'yyyymmdd'),
               FUND_TRANSACTION.TRANS_DATE,
               FUND_TRANSACTION.OPERATOR_ID,
               FUND_TRANSACTION.REFERENCE_NO,FUND_TRANSACTION.NOTE,
               FUND.INSTITUTION_FUND_ID, FUND.FUND_NAME, FUND.FUND_CODE,
               FUND.FUND_ID, FUND.EXPENDITURES,
               LEDGER.LEDGER_NAME

        FROM   $database.FUND_TRANSACTION, $database.FUND ,$database.LEDGER
        WHERE FUND.FUND_CODE = '$fundcode' AND
        FUND.FUND_ID = FUND_TRANSACTION.FUND_ID AND
           ( FUND.LEDGER_ID = '29' OR FUND.LEDGER_ID = '30') AND
        FUND.LEDGER_ID = FUND_TRANSACTION.LEDGER_ID
         AND FUND_TRANSACTION.LEDGER_ID = LEDGER.LEDGER_ID
           ORDER BY FUND.FUND_CODE,TO_CHAR(FUND_TRANSACTION.TRANS_DATE,'yyyymmddhhmiss')";
Why not?




•  customer service, support, history
•  http API verses monolithic DB-to-xls dump
Script Structure
•    Find all current Fund Codes
•    Create any new Fund Code calendars
•    Add any new calendars to global address book
•    Take new list of fund code calendars
•    For each calendar,
      •  download list of this fiscal year’s events
      •  compare to current cumulative file of transactions
      •  add any missing events and any missing reminders

… everything but the first item is an API call. The script is
designed to expect to fail, and to be able to be run over and
over.
Helper Scripts
•  For the times your script has made bad entries/duplicates:
    •  Address book cleaner
    •  Something to delete calendars matching criteria
•  For when the business logic changes:
    •  Something to empty calendars or selectively empty
       calendars
•  Something to list users subscribed to calendars
Other Resources
•  Email me at nco2104@columbia.edu!

Google Calendar as manual reminder app:
•  http://www.libraryinnovation.org/article/view/23

Google APIs: http://code.google.com/apis/

Columbia’s renewal reminder application:
•  See poster about renewal app at http://hdl.handle.net/
   10022/AC:P:9978 (includes link to code)
•  Article will be available in JERL Volume 24, Issue 2

More Related Content

Similar to O neal columbia

2013 DataCite Summer Meeting - DOIs and Supercomputing (Terry Jones - Oak Rid...
2013 DataCite Summer Meeting - DOIs and Supercomputing (Terry Jones - Oak Rid...2013 DataCite Summer Meeting - DOIs and Supercomputing (Terry Jones - Oak Rid...
2013 DataCite Summer Meeting - DOIs and Supercomputing (Terry Jones - Oak Rid...datacite
 
2011 ACRL Workshop: Collaborative Collection Development & Patron-Driven Acqu...
2011 ACRL Workshop: Collaborative Collection Development & Patron-Driven Acqu...2011 ACRL Workshop: Collaborative Collection Development & Patron-Driven Acqu...
2011 ACRL Workshop: Collaborative Collection Development & Patron-Driven Acqu...The CTW Library Consortium
 
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...UKSG: connecting the knowledge community
 
From Project to Program: Building Sustainable Digital Collections
From Project to Program: Building Sustainable Digital CollectionsFrom Project to Program: Building Sustainable Digital Collections
From Project to Program: Building Sustainable Digital Collectionsegore
 
Store, Extract, Transform, Load, Visualize. Untagged Conference
Store, Extract, Transform, Load, Visualize. Untagged ConferenceStore, Extract, Transform, Load, Visualize. Untagged Conference
Store, Extract, Transform, Load, Visualize. Untagged ConferenceAni Lopez
 
Daily expenses tracker project ppt7.pptx
Daily expenses tracker project ppt7.pptxDaily expenses tracker project ppt7.pptx
Daily expenses tracker project ppt7.pptxssusere6f5a11
 
Itt dublin mobile library catalogue
Itt dublin mobile library catalogueItt dublin mobile library catalogue
Itt dublin mobile library catalogueNiamh Walker-Headon
 
Evaluating Electronic Resources
Evaluating Electronic ResourcesEvaluating Electronic Resources
Evaluating Electronic ResourcesRichard Bernier
 
12.10.14 Slides, “The SHARE Notification Service”
12.10.14 Slides, “The SHARE Notification Service”12.10.14 Slides, “The SHARE Notification Service”
12.10.14 Slides, “The SHARE Notification Service”DuraSpace
 
Improving Module Support for Academics and Students in UCD
Improving Module Support for Academics and Students in UCDImproving Module Support for Academics and Students in UCD
Improving Module Support for Academics and Students in UCDUCD Library
 
Selecting a Digital Collections Management System: Getting Large Projects Don...
Selecting a Digital Collections Management System: Getting Large Projects Don...Selecting a Digital Collections Management System: Getting Large Projects Don...
Selecting a Digital Collections Management System: Getting Large Projects Don...Cliff Landis
 
Making the Big Move: Moving to Cloud-Based OCLC’s WorldShare Management Servi...
Making the Big Move: Moving to Cloud-Based OCLC’s WorldShare Management Servi...Making the Big Move: Moving to Cloud-Based OCLC’s WorldShare Management Servi...
Making the Big Move: Moving to Cloud-Based OCLC’s WorldShare Management Servi...Charleston Conference
 
ALA MidWinter 2013 - Electronic Resources Management Interest Group meeting -...
ALA MidWinter 2013 - Electronic Resources Management Interest Group meeting -...ALA MidWinter 2013 - Electronic Resources Management Interest Group meeting -...
ALA MidWinter 2013 - Electronic Resources Management Interest Group meeting -...dwestbrook
 
A New Service Model through Technology
A New Service Model through TechnologyA New Service Model through Technology
A New Service Model through TechnologyBrian Gray
 
Ala 2011 pda preconference
Ala 2011 pda preconferenceAla 2011 pda preconference
Ala 2011 pda preconferenceboaz22
 

Similar to O neal columbia (20)

Project proposal
Project proposalProject proposal
Project proposal
 
2013 DataCite Summer Meeting - DOIs and Supercomputing (Terry Jones - Oak Rid...
2013 DataCite Summer Meeting - DOIs and Supercomputing (Terry Jones - Oak Rid...2013 DataCite Summer Meeting - DOIs and Supercomputing (Terry Jones - Oak Rid...
2013 DataCite Summer Meeting - DOIs and Supercomputing (Terry Jones - Oak Rid...
 
amansingh.docx
amansingh.docxamansingh.docx
amansingh.docx
 
2011 ACRL Workshop: Collaborative Collection Development & Patron-Driven Acqu...
2011 ACRL Workshop: Collaborative Collection Development & Patron-Driven Acqu...2011 ACRL Workshop: Collaborative Collection Development & Patron-Driven Acqu...
2011 ACRL Workshop: Collaborative Collection Development & Patron-Driven Acqu...
 
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...
 
From Project to Program: Building Sustainable Digital Collections
From Project to Program: Building Sustainable Digital CollectionsFrom Project to Program: Building Sustainable Digital Collections
From Project to Program: Building Sustainable Digital Collections
 
Store, Extract, Transform, Load, Visualize. Untagged Conference
Store, Extract, Transform, Load, Visualize. Untagged ConferenceStore, Extract, Transform, Load, Visualize. Untagged Conference
Store, Extract, Transform, Load, Visualize. Untagged Conference
 
CTW’s Shared DDA Program
CTW’s Shared DDA ProgramCTW’s Shared DDA Program
CTW’s Shared DDA Program
 
Daily expenses tracker project ppt7.pptx
Daily expenses tracker project ppt7.pptxDaily expenses tracker project ppt7.pptx
Daily expenses tracker project ppt7.pptx
 
Itt dublin mobile library catalogue
Itt dublin mobile library catalogueItt dublin mobile library catalogue
Itt dublin mobile library catalogue
 
Evaluating Electronic Resources
Evaluating Electronic ResourcesEvaluating Electronic Resources
Evaluating Electronic Resources
 
12.10.14 Slides, “The SHARE Notification Service”
12.10.14 Slides, “The SHARE Notification Service”12.10.14 Slides, “The SHARE Notification Service”
12.10.14 Slides, “The SHARE Notification Service”
 
Improving Module Support for Academics and Students in UCD
Improving Module Support for Academics and Students in UCDImproving Module Support for Academics and Students in UCD
Improving Module Support for Academics and Students in UCD
 
Selecting a Digital Collections Management System: Getting Large Projects Don...
Selecting a Digital Collections Management System: Getting Large Projects Don...Selecting a Digital Collections Management System: Getting Large Projects Don...
Selecting a Digital Collections Management System: Getting Large Projects Don...
 
Making the Big Move: Moving to Cloud-Based OCLC’s WorldShare Management Servi...
Making the Big Move: Moving to Cloud-Based OCLC’s WorldShare Management Servi...Making the Big Move: Moving to Cloud-Based OCLC’s WorldShare Management Servi...
Making the Big Move: Moving to Cloud-Based OCLC’s WorldShare Management Servi...
 
ALA MidWinter 2013 - Electronic Resources Management Interest Group meeting -...
ALA MidWinter 2013 - Electronic Resources Management Interest Group meeting -...ALA MidWinter 2013 - Electronic Resources Management Interest Group meeting -...
ALA MidWinter 2013 - Electronic Resources Management Interest Group meeting -...
 
A New Service Model through Technology
A New Service Model through TechnologyA New Service Model through Technology
A New Service Model through Technology
 
Library projects
Library projectsLibrary projects
Library projects
 
Ala 2011 pda preconference
Ala 2011 pda preconferenceAla 2011 pda preconference
Ala 2011 pda preconference
 
Workflow Toolkit
Workflow ToolkitWorkflow Toolkit
Workflow Toolkit
 

More from ENUG

Jaffe o'brien-rosetta
Jaffe o'brien-rosettaJaffe o'brien-rosetta
Jaffe o'brien-rosettaENUG
 
Jones aleph acqorders
Jones aleph acqordersJones aleph acqorders
Jones aleph acqordersENUG
 
Yang enhance-voyager-user-innovations
Yang enhance-voyager-user-innovationsYang enhance-voyager-user-innovations
Yang enhance-voyager-user-innovationsENUG
 
Yang hofmann-next generationcatalogforenug
Yang hofmann-next generationcatalogforenugYang hofmann-next generationcatalogforenug
Yang hofmann-next generationcatalogforenugENUG
 
Bischof custom-circ-ov
Bischof custom-circ-ovBischof custom-circ-ov
Bischof custom-circ-ovENUG
 
Wenger sf xin-barton
Wenger sf xin-bartonWenger sf xin-barton
Wenger sf xin-bartonENUG
 
Guy avoiding-dat apocalypse
Guy avoiding-dat apocalypseGuy avoiding-dat apocalypse
Guy avoiding-dat apocalypseENUG
 
Collins whats buggingyou-aleph
Collins whats buggingyou-alephCollins whats buggingyou-aleph
Collins whats buggingyou-alephENUG
 
Wagner whats buggingyou-voyager
Wagner whats buggingyou-voyagerWagner whats buggingyou-voyager
Wagner whats buggingyou-voyagerENUG
 
Oneal perl-code-to-extract-from-voyager
Oneal perl-code-to-extract-from-voyagerOneal perl-code-to-extract-from-voyager
Oneal perl-code-to-extract-from-voyagerENUG
 
Schwartz ez proxy-logs
Schwartz ez proxy-logsSchwartz ez proxy-logs
Schwartz ez proxy-logsENUG
 
Moulen digital bookplates
Moulen digital bookplatesMoulen digital bookplates
Moulen digital bookplatesENUG
 
Moulen aleph update
Moulen aleph updateMoulen aleph update
Moulen aleph updateENUG
 
Enug2011 innovative use-of_sfx_with_new_interface-final
Enug2011 innovative use-of_sfx_with_new_interface-finalEnug2011 innovative use-of_sfx_with_new_interface-final
Enug2011 innovative use-of_sfx_with_new_interface-finalENUG
 
Callahan princetonenug2011
Callahan princetonenug2011Callahan princetonenug2011
Callahan princetonenug2011ENUG
 
Baksik3 enug baksik_xmlinvoice
Baksik3 enug baksik_xmlinvoiceBaksik3 enug baksik_xmlinvoice
Baksik3 enug baksik_xmlinvoiceENUG
 
Baksik2 enug baksik_ebookplates
Baksik2 enug baksik_ebookplatesBaksik2 enug baksik_ebookplates
Baksik2 enug baksik_ebookplatesENUG
 
Baksik1 enug baksik_rest
Baksik1 enug baksik_restBaksik1 enug baksik_rest
Baksik1 enug baksik_restENUG
 
Moulen batch loadingebookspdf
Moulen batch loadingebookspdfMoulen batch loadingebookspdf
Moulen batch loadingebookspdfENUG
 

More from ENUG (19)

Jaffe o'brien-rosetta
Jaffe o'brien-rosettaJaffe o'brien-rosetta
Jaffe o'brien-rosetta
 
Jones aleph acqorders
Jones aleph acqordersJones aleph acqorders
Jones aleph acqorders
 
Yang enhance-voyager-user-innovations
Yang enhance-voyager-user-innovationsYang enhance-voyager-user-innovations
Yang enhance-voyager-user-innovations
 
Yang hofmann-next generationcatalogforenug
Yang hofmann-next generationcatalogforenugYang hofmann-next generationcatalogforenug
Yang hofmann-next generationcatalogforenug
 
Bischof custom-circ-ov
Bischof custom-circ-ovBischof custom-circ-ov
Bischof custom-circ-ov
 
Wenger sf xin-barton
Wenger sf xin-bartonWenger sf xin-barton
Wenger sf xin-barton
 
Guy avoiding-dat apocalypse
Guy avoiding-dat apocalypseGuy avoiding-dat apocalypse
Guy avoiding-dat apocalypse
 
Collins whats buggingyou-aleph
Collins whats buggingyou-alephCollins whats buggingyou-aleph
Collins whats buggingyou-aleph
 
Wagner whats buggingyou-voyager
Wagner whats buggingyou-voyagerWagner whats buggingyou-voyager
Wagner whats buggingyou-voyager
 
Oneal perl-code-to-extract-from-voyager
Oneal perl-code-to-extract-from-voyagerOneal perl-code-to-extract-from-voyager
Oneal perl-code-to-extract-from-voyager
 
Schwartz ez proxy-logs
Schwartz ez proxy-logsSchwartz ez proxy-logs
Schwartz ez proxy-logs
 
Moulen digital bookplates
Moulen digital bookplatesMoulen digital bookplates
Moulen digital bookplates
 
Moulen aleph update
Moulen aleph updateMoulen aleph update
Moulen aleph update
 
Enug2011 innovative use-of_sfx_with_new_interface-final
Enug2011 innovative use-of_sfx_with_new_interface-finalEnug2011 innovative use-of_sfx_with_new_interface-final
Enug2011 innovative use-of_sfx_with_new_interface-final
 
Callahan princetonenug2011
Callahan princetonenug2011Callahan princetonenug2011
Callahan princetonenug2011
 
Baksik3 enug baksik_xmlinvoice
Baksik3 enug baksik_xmlinvoiceBaksik3 enug baksik_xmlinvoice
Baksik3 enug baksik_xmlinvoice
 
Baksik2 enug baksik_ebookplates
Baksik2 enug baksik_ebookplatesBaksik2 enug baksik_ebookplates
Baksik2 enug baksik_ebookplates
 
Baksik1 enug baksik_rest
Baksik1 enug baksik_restBaksik1 enug baksik_rest
Baksik1 enug baksik_rest
 
Moulen batch loadingebookspdf
Moulen batch loadingebookspdfMoulen batch loadingebookspdf
Moulen batch loadingebookspdf
 

Recently uploaded

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Recently uploaded (20)

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

O neal columbia

  • 1. Electronic Resource Reminders in Google Calendar Nada O’Neal, Systems Engineer nco2104@columbia.edu Columbia University Libraries ENUG 10/28/2011
  • 4. Columbia’s Problem Some background: •  Columbia Libraries = big, federation of many libraries •  Electronic subscription resources = lots, expensive •  Assessment of subscription e-resources is hard The problem: •  Assessment of electronic subscription resources was great in some libraries, less great in others •  There wasn’t much guidance for assessors who wanted it •  Data is available for assessors, but they must proactively get it themselves The solution: •  Some push technology that enforced a 5- and 3-month pre-renewal assessment schedule.
  • 5. Wait. Why push? Push (instead of “pull”) means the data goes to the people, instead of people needing to go to the data. Fantastic! Email, pop-ups, etc, are examples of push technology. Oh. Note that push technology can backfire because it can be very annoying, in which case people will block/ignore it. It works best when it fits into existing workflow, and when users get exactly what they want.
  • 6. Columbia’s Pick •  The Libraries had just completed a transition to Google Calendar. •  Available to all staff •  Staff were already using heavily to manage schedules •  This made ninja-push possible •  Staff had been recently trained •  IT Staff were (somewhat) experienced with the API •  Cheap! (free)
  • 7. ! gCal Caveats •  Reminders at most 4 weeks in advance •  The http API is slow •  The API is limited •  http requests can be interrupted •  Google is “in the cloud”, man •  Data privacy! Understand: Columbia is using “Google Apps for your Domain”, Education edition, which is different from a consumer Google account, especially in terms of privacy. Is gCal the best choice for you? Maybe.
  • 8. Our App in GCal •  Each fund code is its own calendar •  These are secondary calendars under the “_backup” service account, so they must be added to the global address book •  Any Columbia Libraries staff can view any fund calendar •  A user begins typing “Fund Code …” and the calendar pops up •  A user can subscribe themselves to receive email or pop-up reminders for a code/calendar or a resource/event •  Assessment working group members receive a monthly emailed report on who is subscribing to what
  • 9. Expenditure = 3 events •  Each fund may have hundreds of expenditures! •  Each expenditure is entered once, on the day it happened •  5-month and 3-month renewal reminders (for non-negative expenditures) •  (There is no expiration event.) Sample calendar event: On 10/27/2011: Title: renew Asian philosophy $XXX by 01/26/2012 Event data: (three months reminder) 2035E 1AEM2727 20110126 Asian philosophy. 1 Abingdon, Oxfordshire : enk expenditure $XXX 9123215 ags1 EBS29 USD $XXX CUL 11 EBSCO [1: 20(01/11)-21(12/11) - PRINT + ONLINE] [Start Date: 2011-01-01] [End Date: 2011-12-31]
  • 13. Subscriber Report… Subject: Fundcode Calendar Subscribers (30 total) From: nco2104@columbia.edu Here's the latest list of people subscribed to at least one fund calendar. This is an automated message. 1. Xxxxx Xxxxxx (2038E, 4317E) 2. Xxxxx Xxxxxx (2235E, 2235EO, 2242E, 2248E, 2248EO, 2464E) 3. Xxxxxx Xxxxxx (2011E, 2029EO, 2462E, 2462EO, 2464E, 2465E, 2564E) 4. Xxxxxx Xxxxxx (2040E, 2462E, 2462EO, 2463E, 2465E, 6255E) 5. […]
  • 14. Data into Google •  Choice of python somewhat arbitrary: Google has good, well-supported APIs for: •  python •  .NET •  Java •  And other APIs for: •  php •  javascript •  ruby •  See http://code.google.com/apis/calendar/
  • 15. Data from Voyager •  I opted to keep the current perl scripts that were producing “Excel” reports from Voyager’s Oracle backend, and to extract the data from those. $sql = "SELECT DISTINCT FUND_TRANSACTION.TRANS_TYPE, FUND_TRANSACTION.AMOUNT, TO_CHAR(FUND_TRANSACTION.TRANS_DATE,'yyyymmdd'), FUND_TRANSACTION.TRANS_DATE, FUND_TRANSACTION.OPERATOR_ID, FUND_TRANSACTION.REFERENCE_NO,FUND_TRANSACTION.NOTE, FUND.INSTITUTION_FUND_ID, FUND.FUND_NAME, FUND.FUND_CODE, FUND.FUND_ID, FUND.EXPENDITURES, LEDGER.LEDGER_NAME FROM $database.FUND_TRANSACTION, $database.FUND ,$database.LEDGER WHERE FUND.FUND_CODE = '$fundcode' AND FUND.FUND_ID = FUND_TRANSACTION.FUND_ID AND ( FUND.LEDGER_ID = '29' OR FUND.LEDGER_ID = '30') AND FUND.LEDGER_ID = FUND_TRANSACTION.LEDGER_ID AND FUND_TRANSACTION.LEDGER_ID = LEDGER.LEDGER_ID ORDER BY FUND.FUND_CODE,TO_CHAR(FUND_TRANSACTION.TRANS_DATE,'yyyymmddhhmiss')";
  • 16. Why not? •  customer service, support, history •  http API verses monolithic DB-to-xls dump
  • 17. Script Structure •  Find all current Fund Codes •  Create any new Fund Code calendars •  Add any new calendars to global address book •  Take new list of fund code calendars •  For each calendar, •  download list of this fiscal year’s events •  compare to current cumulative file of transactions •  add any missing events and any missing reminders … everything but the first item is an API call. The script is designed to expect to fail, and to be able to be run over and over.
  • 18. Helper Scripts •  For the times your script has made bad entries/duplicates: •  Address book cleaner •  Something to delete calendars matching criteria •  For when the business logic changes: •  Something to empty calendars or selectively empty calendars •  Something to list users subscribed to calendars
  • 19. Other Resources •  Email me at nco2104@columbia.edu! Google Calendar as manual reminder app: •  http://www.libraryinnovation.org/article/view/23 Google APIs: http://code.google.com/apis/ Columbia’s renewal reminder application: •  See poster about renewal app at http://hdl.handle.net/ 10022/AC:P:9978 (includes link to code) •  Article will be available in JERL Volume 24, Issue 2