SlideShare a Scribd company logo
1 of 30
Download to read offline
AtoM Feature DevelopmentAtoM Feature Development
An intro on how to create and contribute
Steve Breker, May 2017
AtoM Camp SJC
Feature Development
Process
Feature Development
Process
Feature development process overview
1. Feature idea
2. Technical classification
3. Development preparation
4. Creating a feature
5. Contributing a feature
1. Feature idea
● New archival standard?
● New theme?
● New way to bring data in or out?
● ???
2. Technical classification
● Plugins
● CLI tasks
● Background jobs
● Core features
2. Technical classification
● Plugins <- probably the most common
● CLI tasks
● Background jobs
● Core features
3. Preparation: design
● Think of broad use-cases
● Follow known open standards whenever relevant
● Implement as simply as possible
● Change as little as possible to get the functionality you
want
● Avoid breaking backwards compatibility
● Run your ideas by the community
3. Preparation: technical
● Read up on Symfony 1.4
● Explore AtoM’s codebase
● Ask questions in the AtoM user forum
4. Developing your feature
● Fork AtoM on GitHub to have your own repository to work
with
● Follow AtoM coding standards:
https://wiki.accesstomemory.org/Development/Coding_standard
● Review our wiki page on contributing code:
https://wiki.accesstomemory.org/Development/Contribute_code
● Make sure any third-party code libraries you add are AGPL
v3 compatible
5. Contributing your feature
1. Submit a pull request on GitHub with your work
2. Respond to feedback in the pull request until the pull
request’s approved:
https://wiki.accesstomemory.org/Development/Code_review
3. Fill in a Contributor’s agreement:
https://wiki.accesstomemory.org/Development/Contribute_code
1010101111010110101010110110110110100101010101010101010101011011010010110101010101010
1010011011011011011011010100101011101101010101010100101101010101010101010101101101100
0101101101001010101010101101101010101010101001010110110101101000010110101010101010101
0100011011011000110111010101010010101101010010010100011110110110110110011011011011000
1100001101101100110101010111010010100011011010101011110101101010101101101101101001010
1010101010101010101101101001011010101010101010100110110110110110110101001010111011010
1010101010010110101010101010101010110110110001011011010010101010101011011010101010101
0100101011011010110100001011010101010101010101000110110110001101110101010100101011010
1001001010001111011011011011001101101101100011000011011011001101010101110100101000110
1101010101111010110101010110110110110100101010101010101010101011011010010110101010101
0101010011011011011011011010100101011101101010101010100101101010101010101010101101101
1000101101101001010101010101101101010101010101001010110110101101000010110101010101010
1010100011011011000110111010101010010101101010010010100011110110110110110011011011011
0001100001101101100110101010111010010100011011010101011110101101010101101101101101001
0101010101010101010101101101001011010101010101010100110110110110110110101001010111011
0101010101010010110101010101010101010110110110001011011010010101010101011011010101010
1010100101011011010110100001011010101010101010101000110110110001101110101010100101011
0101001001010001111011011011011001101101101100011000011011011001101010101110100101000
1101101010101111010110101010110110110110100101010101010101010101011011010010110101010
1010101010011011011011011011010100101011101101010101010100101101010101010101010101101
1011000101101101001010101010101101101010101010101001010110110101101000010110101010101
0101010100011011011000110111010101010010101101010010010100011110110110110110011011011
0110001100001101101100110101010111010010100011011010101011110101101010101101101101101
0010101010101010101010101101101001011010101010101010100110110110110110110101001010111
0110101010101010010110101010101010101010110110111010101001101101101101101101010010101
Symfony 1.4Symfony 1.4
Symfony 1.4 overview
● Symfony 1.4 is the web application framework AtoM is built
with
● Symfony follows the MVC (model/view/controller) pattern
● Models represent types of data
● Views represent how data is rendered
● Controllers represent logic that determines what data ends
up being rendered by the view
Symfony models
● AtoM’s Symfony is using an ORM called Propel
● To define models, data schemas are defined using YAML files
● A CLI tool is run that uses these YAML files as a guideline to generate
PHP code to that defines model classes
● These classes are referred to as “base” models and aren’t supposed to
be manually altered
● Model characteristics can be added or overriden by creating child
classes that extend the base models
● Migrations handle changes between schema versions
Symfony controllers
● There are two main types of controllers: actions and components
● Actions define the behaviour of pages
● Components define logic shared between actions
● Both types of controllers are represented by classes
● Actions extend sfAction (or a child class)
● Components extend sfComponent (or a child class)
● If actions or components are part of a plugin they are given a class name that
includes the plugin name
● Example: sfRadPluginEditAction
Symfony views
● There are two main types of views: page templates and partials
● Page templates define how an action’s data is rendered
● Partials have multiple uses:
○ They can be used to define how a component’s data is rendered
○ They can be used by page templates to render repeating data
○ They can be used by page templates to encapsulate a complex part of a page
● The use_helper function can be used in page templates to include functions
intended to be used within templates (for rendering dates and URLs, etc.)
Symfony routing
● AtoM’s routing is largely defined in apps/qubit/config/routing.yml
● Plugins can dynamically add routes as well
● Example: the arRestApiPlugin’s configuration class adds routes
Symfony debugging/development tools
● The clear cache CLI task is useful during development:
php symfony cc
● Also useful is the CLI task to purge all user-created data:
php symfony tools:purge
● See Steve Breker’s presentation, slide 4, for how to enable debug mode
Developing PluginsDeveloping Plugins
Plugin Development Overview
● Plugins can be used to implement optional features as mentioned earlier
(support for individual archival standards, new themes, etc.)
● Plugins are also used in AtoM to escapsulate functionality (the
arElasticSearchPlugin plugin for example)
● Plugins can also be used to add new classes that other plugins can share
Plugin directory structure
● Plugins have four optional subdirectories: config, lib, modules, and web
● config is where plugin-related configuration files can be put
● lib is where plugin code libraries, such as plugin-related classes, can be put
● modules is where module-related code can be put
● web is where plugin-related web assets are put
Plugin configuration files
● Plugin configuration files are named using the convention:
<plugin name>Configuration.class.php
● An example: sfRadPluginConfiguration.class.php
● These files define a class named <plugin name>Configuration that
inherits from Symfony's sfPluginConfiguration class
● These files specify the plugin's name, version, etc.
● These files also can contain plugin initialization logic, etc.
Plugin library files
● Plugin library files are named with the plugin name included in the filename
● An example:
plugins/arOaiPlugin/lib/arOaiPluginComponent.class.php
● This is merely a convention, however
● Any class that is put in the plugin's lib directory will be auto-loaded by AtoM
once the cache is cleared
● The sfHistoryPlugin plugin is an example of a plugin whose sole
functionality is encapsulated in a class in the plugin’s lib directory
Plugin modules
● Modules are an organizational unit used in Symfony to encapsulate a bunch of
files related to a group of application web pages
sfFacebookPlugin
modules
photos
actions
indexAction.class.php
editAction.class.php
templates
indexSuccess.php
editSuccess.php
Enabling/disabling Plugins
● Plugins that consist entirely of plugin code library, put in lib, don't need to be
explicitly enabled
● Plugins must contain a configuration file in their config subdirectory in order
to be enabled by an admin
● Enable or disable plugins using the sfPluginAdminPlugin/plugins page
Developing TasksDeveloping Tasks
Task Development Overview
● Tasks are primarily used by advanced users and system administrators
● Tasks add command-line accessible features
● Task examples: cache clearing, bulk import/export, adding administrators, etc.
● Task code can be found in lib/tasks
Developing Background
Jobs
Developing Background
Jobs
Background Job Development Overview
● Jobs are used to perform "heavy lifting" in the background of an AtoM instance
● For example, if a user requests a CSV export of all descriptions the user will be
informed that the export has started, but won't have to wait for the export to
complete to get a web page response
● Users can visit a webpage to see the status of their jobs, whether in-progress,
completed, or failed
● A job is analogous to a pizza delivery order: the doorbell will ring when the pizza
arrives and when in doubt you can call the pizzaria to enquire about whether
the pizza's done or not
1010101111010110101010110110110110100101010101010101010101011011010010110101010101010
1010011011011011011011010100101011101101010101010100101101010101010101010101101101100
0101101101001010101010101101101010101010101001010110110101101000010110101010101010101
0100011011011000110111010101010010101101010010010100011110110110110110011011011011000
1100001101101100110101010111010010100011011010101011110101101010101101101101101001010
1010101010101010101101101001011010101010101010100110110110110110110101001010111011010
1010101010010110101010101010101010110110110001011011010010101010101011011010101010101
0100101011011010110100001011010101010101010101000110110110001101110101010100101011010
1001001010001111011011011011001101101101100011000011011011001101010101110100101000110
1101010101111010110101010110110110110100101010101010101010101011011010010110101010101
0101010011011011011011011010100101011101101010101010100101101010101010101010101101101
1000101101101001010101010101101101010101010101001010110110101101000010110101010101010
1010100011011011000110111010101010010101101010010010100011110110110110110011011011011
0001100001101101100110101010111010010100011011010101011110101101010101101101101101001
0101010101010101010101101101001011010101010101010100110110110110110110101001010111011
0101010101010010110101010101010101010110110110001011011010010101010101011011010101010
1010100101011011010110100001011010101010101010101000110110110001101110101010100101011
0101001001010001111011011011011001101101101100011000011011011001101010101110100101000
1101101010101111010110101010110110110110100101010101010101010101011011010010110101010
1010101010011011011011011011010100101011101101010101010100101101010101010101010101101
1011000101101101001010101010101101101010101010101001010110110101101000010110101010101
0101010100011011011000110111010101010010101101010010010100011110110110110110011011011
0110001100001101101100110101010111010010100011011010101011110101101010101101101101101
0010101010101010101010101101101001011010101010101010100110110110110110110101001010111
0110101010101010010110101010101010101010110110111010101001101101101101101101010010101
Questions?Questions?
info@artefactual.cominfo@artefactual.com

More Related Content

What's hot

AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...Artefactual Systems - AtoM
 
Open Source: What is It?
Open Source: What is It?Open Source: What is It?
Open Source: What is It?DuraSpace
 
Building the Future Together: AtoM3, Governance, and the Sustainability of Op...
Building the Future Together: AtoM3, Governance, and the Sustainability of Op...Building the Future Together: AtoM3, Governance, and the Sustainability of Op...
Building the Future Together: AtoM3, Governance, and the Sustainability of Op...Artefactual Systems - AtoM
 
Asp.net architecture
Asp.net architectureAsp.net architecture
Asp.net architectureIblesoft
 
Terraform modules and some of best-practices - March 2019
Terraform modules and some of best-practices - March 2019Terraform modules and some of best-practices - March 2019
Terraform modules and some of best-practices - March 2019Anton Babenko
 
How I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with AirflowHow I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with AirflowLaura Lorenz
 
Manual Import Data ke Eprints Berbasis XML
Manual Import Data ke Eprints Berbasis XMLManual Import Data ke Eprints Berbasis XML
Manual Import Data ke Eprints Berbasis XMLDwi Fajar Saputra
 
Angular based enterprise level frontend architecture
Angular based enterprise level frontend architectureAngular based enterprise level frontend architecture
Angular based enterprise level frontend architectureHimanshu Tamrakar
 

What's hot (20)

AtoM Implementations
AtoM ImplementationsAtoM Implementations
AtoM Implementations
 
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
 
Open Source: What is It?
Open Source: What is It?Open Source: What is It?
Open Source: What is It?
 
Serving ML easily with FastAPI
Serving ML easily with FastAPIServing ML easily with FastAPI
Serving ML easily with FastAPI
 
CSV import in AtoM
CSV import in AtoMCSV import in AtoM
CSV import in AtoM
 
Git.pptx
Git.pptxGit.pptx
Git.pptx
 
Building the Future Together: AtoM3, Governance, and the Sustainability of Op...
Building the Future Together: AtoM3, Governance, and the Sustainability of Op...Building the Future Together: AtoM3, Governance, and the Sustainability of Op...
Building the Future Together: AtoM3, Governance, and the Sustainability of Op...
 
Searching in AtoM
Searching in AtoMSearching in AtoM
Searching in AtoM
 
Asp.net architecture
Asp.net architectureAsp.net architecture
Asp.net architecture
 
Introducción a GitFlow
Introducción a GitFlowIntroducción a GitFlow
Introducción a GitFlow
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
 
AtoM Data Migrations
AtoM Data MigrationsAtoM Data Migrations
AtoM Data Migrations
 
Git in 10 minutes
Git in 10 minutesGit in 10 minutes
Git in 10 minutes
 
Terraform modules and some of best-practices - March 2019
Terraform modules and some of best-practices - March 2019Terraform modules and some of best-practices - March 2019
Terraform modules and some of best-practices - March 2019
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
Php ppt
Php pptPhp ppt
Php ppt
 
How I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with AirflowHow I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with Airflow
 
Manual Import Data ke Eprints Berbasis XML
Manual Import Data ke Eprints Berbasis XMLManual Import Data ke Eprints Berbasis XML
Manual Import Data ke Eprints Berbasis XML
 
Fluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log ManagementFluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log Management
 
Angular based enterprise level frontend architecture
Angular based enterprise level frontend architectureAngular based enterprise level frontend architecture
Angular based enterprise level frontend architecture
 

Similar to AtoM feature development

Moodle Development Best Pracitces
Moodle Development Best PracitcesMoodle Development Best Pracitces
Moodle Development Best PracitcesJustin Filip
 
Boltc CMS - a really quick overview
Boltc CMS - a really quick overviewBoltc CMS - a really quick overview
Boltc CMS - a really quick overviewdantleech
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratchtutorialsruby
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratchtutorialsruby
 
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...Chirag Thumar
 
Using Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivityUsing Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivityClaus Ibsen
 
Django interview Questions| Edureka
Django interview  Questions| EdurekaDjango interview  Questions| Edureka
Django interview Questions| EdurekaEdureka!
 
Don't Fear the Autotools
Don't Fear the AutotoolsDon't Fear the Autotools
Don't Fear the AutotoolsScott Garman
 
Dev days Szeged 2014: Plugin system in drupal 8
Dev days Szeged 2014: Plugin system in drupal 8Dev days Szeged 2014: Plugin system in drupal 8
Dev days Szeged 2014: Plugin system in drupal 8Bram Goffings
 
appengine ja night #25 Google App Engine for PHP (English)
appengine ja night #25 Google App Engine for PHP (English)appengine ja night #25 Google App Engine for PHP (English)
appengine ja night #25 Google App Engine for PHP (English)Ryo Yamasaki
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone WayTsungWei Hu
 
Plugins And Making Your Own
Plugins And Making Your OwnPlugins And Making Your Own
Plugins And Making Your OwnLambert Beekhuis
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master BuilderPhilip Norton
 

Similar to AtoM feature development (20)

Moodle Development Best Pracitces
Moodle Development Best PracitcesMoodle Development Best Pracitces
Moodle Development Best Pracitces
 
Boltc CMS - a really quick overview
Boltc CMS - a really quick overviewBoltc CMS - a really quick overview
Boltc CMS - a really quick overview
 
Selenium Training in Chennai
Selenium Training in ChennaiSelenium Training in Chennai
Selenium Training in Chennai
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratch
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratch
 
Routing
RoutingRouting
Routing
 
Bootstrap4 x pages
Bootstrap4 x pagesBootstrap4 x pages
Bootstrap4 x pages
 
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...
 
Using Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivityUsing Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivity
 
Log4e
Log4eLog4e
Log4e
 
Django interview Questions| Edureka
Django interview  Questions| EdurekaDjango interview  Questions| Edureka
Django interview Questions| Edureka
 
Don't Fear the Autotools
Don't Fear the AutotoolsDon't Fear the Autotools
Don't Fear the Autotools
 
Django
DjangoDjango
Django
 
Joomla - CMS
Joomla - CMSJoomla - CMS
Joomla - CMS
 
Python Tutorial Part 2
Python Tutorial Part 2Python Tutorial Part 2
Python Tutorial Part 2
 
Dev days Szeged 2014: Plugin system in drupal 8
Dev days Szeged 2014: Plugin system in drupal 8Dev days Szeged 2014: Plugin system in drupal 8
Dev days Szeged 2014: Plugin system in drupal 8
 
appengine ja night #25 Google App Engine for PHP (English)
appengine ja night #25 Google App Engine for PHP (English)appengine ja night #25 Google App Engine for PHP (English)
appengine ja night #25 Google App Engine for PHP (English)
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone Way
 
Plugins And Making Your Own
Plugins And Making Your OwnPlugins And Making Your Own
Plugins And Making Your Own
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 

More from Artefactual Systems - AtoM

Creating your own AtoM demo data set for re-use with Vagrant
Creating your own AtoM demo data set for re-use with VagrantCreating your own AtoM demo data set for re-use with Vagrant
Creating your own AtoM demo data set for re-use with VagrantArtefactual Systems - AtoM
 
Looking Ahead: AtoM's governance, development, and future
Looking Ahead: AtoM's governance, development, and futureLooking Ahead: AtoM's governance, development, and future
Looking Ahead: AtoM's governance, development, and futureArtefactual Systems - AtoM
 
National Archives of Norway - AtoM and Archivematica intro workshop
National Archives of Norway - AtoM and Archivematica intro workshopNational Archives of Norway - AtoM and Archivematica intro workshop
National Archives of Norway - AtoM and Archivematica intro workshopArtefactual Systems - AtoM
 
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...Artefactual Systems - AtoM
 
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...Artefactual Systems - AtoM
 
Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015Artefactual Systems - AtoM
 
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...Introducing Binder: A Web-based, Open Source Digital Preservation Management ...
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...Artefactual Systems - AtoM
 
Introducing the Digital Repository for Museum Collections (DRMC)
Introducing the Digital Repository for Museum Collections (DRMC)Introducing the Digital Repository for Museum Collections (DRMC)
Introducing the Digital Repository for Museum Collections (DRMC)Artefactual Systems - AtoM
 

More from Artefactual Systems - AtoM (16)

AtoM Community Update: 2019-05
AtoM Community Update: 2019-05AtoM Community Update: 2019-05
AtoM Community Update: 2019-05
 
Creating your own AtoM demo data set for re-use with Vagrant
Creating your own AtoM demo data set for re-use with VagrantCreating your own AtoM demo data set for re-use with Vagrant
Creating your own AtoM demo data set for re-use with Vagrant
 
Looking Ahead: AtoM's governance, development, and future
Looking Ahead: AtoM's governance, development, and futureLooking Ahead: AtoM's governance, development, and future
Looking Ahead: AtoM's governance, development, and future
 
Contributing to the AtoM documentation
Contributing to the AtoM documentationContributing to the AtoM documentation
Contributing to the AtoM documentation
 
Installing AtoM with Ansible
Installing AtoM with AnsibleInstalling AtoM with Ansible
Installing AtoM with Ansible
 
Installing and Upgrading AtoM
Installing and Upgrading AtoMInstalling and Upgrading AtoM
Installing and Upgrading AtoM
 
Command-Line 101
Command-Line 101Command-Line 101
Command-Line 101
 
National Archives of Norway - AtoM and Archivematica intro workshop
National Archives of Norway - AtoM and Archivematica intro workshopNational Archives of Norway - AtoM and Archivematica intro workshop
National Archives of Norway - AtoM and Archivematica intro workshop
 
Artefactual and Open Source Development
Artefactual and Open Source DevelopmentArtefactual and Open Source Development
Artefactual and Open Source Development
 
AtoM, Authenticity, and the Chain of Custody
AtoM, Authenticity, and the Chain of CustodyAtoM, Authenticity, and the Chain of Custody
AtoM, Authenticity, and the Chain of Custody
 
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...
 
AtoM Community Update 2016
AtoM Community Update 2016AtoM Community Update 2016
AtoM Community Update 2016
 
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...
 
Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015
 
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...Introducing Binder: A Web-based, Open Source Digital Preservation Management ...
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...
 
Introducing the Digital Repository for Museum Collections (DRMC)
Introducing the Digital Repository for Museum Collections (DRMC)Introducing the Digital Repository for Museum Collections (DRMC)
Introducing the Digital Repository for Museum Collections (DRMC)
 

Recently uploaded

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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
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
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
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
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
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
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

AtoM feature development