These are the slides of our talk at Fosdem 2008 (http://fosdem.org).
We explain what REST is, how it is used in Rails, and finally we give some tips on how to architecture your application so that it follows the REST philosophy.
A rubyist's naive comparison of some database systems and toolkitsBelighted
This talk is a quick comparison of some of the many relational and non relational database systems that can be used with ruby.
It was given at Fosdem 2010 (http://fosdem.org) in the Ruby on Rails Developer Room.
MongoDB is a document database that stores data in BSON format, which is similar to JSON. It is a non-relational, schema-free database that scales easily and supports massive amounts of data and high availability. MongoDB can replace traditional relational databases for certain applications, as it offers dynamic schemas, horizontal scaling, and high performance. Key features include indexing, replication, MapReduce and rich querying of embedded documents.
The document summarizes a workshop on Drupal and Ruby on Rails that was held on September 10-11, 2011 at DDIT, Nadiad. It provides overviews of Ruby and Ruby on Rails, their uses, strengths, directory structures, MVC architecture, and supporting technologies like HTML5, CoffeeScript, Sass/SCSS, and CSS3. It also lists some major companies that use Ruby on Rails for their web applications and products.
Crate Data is a distributed SQL database that allows querying large datasets using SQL. It uses Elasticsearch for storage but adds features like SQL support, accurate aggregations, and import/export capabilities. Crate Data can start a cluster in 1 minute, is open source, and provides a simple, reliable, and scalable way to store and query distributed data using SQL.
The document discusses two Ruby gems, Ashikawa::Core and Ashikawa::AR, that provide an interface to the ArangoDB database. Ashikawa::Core provides a low-level driver that abstracts ArangoDB's REST interface, while Ashikawa::AR implements an Active Record pattern for integrating ArangoDB with Rails applications. The document also briefly mentions plans to develop a DataMapper interface (Ashikawa::DataMapper) to support various data sources including ArangoDB.
I give a talk through my Graph Database and Python learning journey at PyCon Australia 2015. It should be up on PyVideo soon enough.
Note: A great question was asked regarding why I didn't cover Postgres on the "what should I use" slide. That was a great question. Definitely consider Postgres, especially if you've got existing expertise in it. Rhys Elsemores talk (Just Use Postgres) at the same conference is excellent.
Barry Jones introduces himself as the instructor for the Ruby on Rails and PostgreSQL course. He has experience developing applications using various languages and databases. He wishes a course like this had been available when he took over a large Perl to Rails conversion project without knowing Rails or PostgreSQL, which led to issues he later had to fix. The goal of the course is to help students gain proficiency with Rails and PostgreSQL faster to avoid similar mistakes.
A rubyist's naive comparison of some database systems and toolkitsBelighted
This talk is a quick comparison of some of the many relational and non relational database systems that can be used with ruby.
It was given at Fosdem 2010 (http://fosdem.org) in the Ruby on Rails Developer Room.
MongoDB is a document database that stores data in BSON format, which is similar to JSON. It is a non-relational, schema-free database that scales easily and supports massive amounts of data and high availability. MongoDB can replace traditional relational databases for certain applications, as it offers dynamic schemas, horizontal scaling, and high performance. Key features include indexing, replication, MapReduce and rich querying of embedded documents.
The document summarizes a workshop on Drupal and Ruby on Rails that was held on September 10-11, 2011 at DDIT, Nadiad. It provides overviews of Ruby and Ruby on Rails, their uses, strengths, directory structures, MVC architecture, and supporting technologies like HTML5, CoffeeScript, Sass/SCSS, and CSS3. It also lists some major companies that use Ruby on Rails for their web applications and products.
Crate Data is a distributed SQL database that allows querying large datasets using SQL. It uses Elasticsearch for storage but adds features like SQL support, accurate aggregations, and import/export capabilities. Crate Data can start a cluster in 1 minute, is open source, and provides a simple, reliable, and scalable way to store and query distributed data using SQL.
The document discusses two Ruby gems, Ashikawa::Core and Ashikawa::AR, that provide an interface to the ArangoDB database. Ashikawa::Core provides a low-level driver that abstracts ArangoDB's REST interface, while Ashikawa::AR implements an Active Record pattern for integrating ArangoDB with Rails applications. The document also briefly mentions plans to develop a DataMapper interface (Ashikawa::DataMapper) to support various data sources including ArangoDB.
I give a talk through my Graph Database and Python learning journey at PyCon Australia 2015. It should be up on PyVideo soon enough.
Note: A great question was asked regarding why I didn't cover Postgres on the "what should I use" slide. That was a great question. Definitely consider Postgres, especially if you've got existing expertise in it. Rhys Elsemores talk (Just Use Postgres) at the same conference is excellent.
Barry Jones introduces himself as the instructor for the Ruby on Rails and PostgreSQL course. He has experience developing applications using various languages and databases. He wishes a course like this had been available when he took over a large Perl to Rails conversion project without knowing Rails or PostgreSQL, which led to issues he later had to fix. The goal of the course is to help students gain proficiency with Rails and PostgreSQL faster to avoid similar mistakes.
The document discusses SnappyDB, a key-value database for Android that uses LevelDB and Snappy compression. It provides a Java API and integrates Kryo for serialization. The presentation highlights that SnappyDB is faster than SQLite, especially for large BLOBs, and avoids boilerplate code. Installation can be done through Maven or by copying files, and code examples are provided. Benchmarks show SnappyDB outperforming SQLite with and without transactions.
Cool bonsai cool - an introduction to ElasticSearchclintongormley
An introduction to Clinton Gormley and the search engine Elasticsearch. It discusses how Elasticsearch works by tokenizing text, creating an inverted index, and using relevance scoring. It also summarizes how to install and use Elasticsearch for indexing, retrieving, and searching documents.
This document provides an overview of the Ruby on Rails web application framework. It discusses that Rails is a full-stack framework that follows the model-view-controller pattern and uses Ruby as its programming language. It was created by David Heinemeier Hansson in 2004 and uses conventions like separating data, presentation, and control logic into the model, view, and controller layers respectively. The document also provides high-level information on Rails' object-relational mapping, database persistence, and conventions over configuration approach.
This document provides an overview and introduction to Elastic Search. It discusses what Elastic Search is, why it is useful, common applications, key concepts and how to use it with Docker. Elastic Search is described as a distributed, open source, NoSQL database specialized for full-text search and analysis of structured and unstructured data. It indexes and stores data and allows for fast searching across large volumes of data.
This document provides an overview and summary of the Java Content Repository (JCR) specification and Apache Jackrabbit implementation. It discusses how JCR combines advantages of file systems and databases by allowing structured and unstructured content to be stored together in a single repository. It also summarizes how to connect to a repository, interact with nodes and properties, perform searches and queries, and leverage advanced features like observation and versioning. The document promotes JCR as a standard Java API and Apache Jackrabbit as a widely used open source implementation.
NoSQL databases should not be chosen just because a system is slow or to replace RDBMS. The appropriate choice depends on factors like the nature of the data, how the data scales, and whether ACID properties are needed. NoSQL databases are categorized by data model (document, column family, graph, key-value store) which affects querying. Other considerations include scalability based on the CAP theorem and operational factors like the distribution model and whether there is a single point of failure. The best choice depends on the specific requirements and risks losing data if chosen incorrectly.
With Java 8 adoption skyrocketing, is Scala still relevant? In our opinion, the answer is an unequivocal yes. To make our point, Tomer Gabel (system architect at Wix) will showcase practical examples where Scala's features provide a definitive advantage over Java 8. These include:
* Effective logging with traits and by-name parameters;
* Pattern matching for fun and profit;
* Type-safe, efficient serialization with type classes.
A talk given at a Wix Ukraine R&D meetup in Dnipropetrovsk, Ukraine on 6 April, 2016.
Video recording: https://youtu.be/EXxA3PlcdBg?t=3680
Sample code: https://github.com/holograph/scala-vs-java8
jRuby fixes some issues with the Ruby programming language like memory leaks and lack of kernel level threading by running Ruby code on the Java Virtual Machine which has features like a sophisticated garbage collector, just-in-time compilation for improved performance, and native threading; benchmarks show jRuby provides much higher concurrency and better performance than Ruby for background processing and web applications; deploying a Ruby application using jRuby and a Java application server like Torquebox allows it to take advantage of the reliability, scalability and deployment features of the Java platform.
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.
Roundup of what is on the web at regarding Rails 3 as of Easter 2010.
Includes outline of significant changes to Rais in Rails 3 plus how you might set about upgrading an existing app.
Acknowledges and links to to some amazing resources already elsewhere on the web.
There is a lot of confusion out there about the various kinds of NoSQL, and NewSQL, technologies. Document stores, graph databases, columnar databases, graph databases, and the list goes on. This confusion has lead to a good deal of less than optimal deployments, pain, and, ultimately, antipathy.
In this talk, Dan will walk us through a high-level explanation of the various NoSQL technologies available to us, how they work, and provide some dos and don'ts for their implementation.
Ruby on Rails is a full-stack web application framework written in Ruby. It allows developers to build database-backed web applications rapidly using conventions like MVC pattern and follows "convention over configuration" principle. Rails includes features like Active Record (ORM), validations, migrations, scaffolding, routing and helpers to help develop web applications quickly. Testing is an important part of Rails development using tools like RSpec, Factory Girl, Cucumber and Capybara.
Ruby on Rails is a full-stack web application framework written in Ruby. It uses the MVC pattern and convention over configuration principles. Rails makes it possible to develop database-backed web applications rapidly by minimizing configuration through conventions and providing scaffolding. Key Rails concepts include Active Record for ORM, migrations for schema changes, routing for URLs, controllers for application logic, views for presentation, and testing frameworks. Rails emphasizes productivity through conventions that reduce configuration overhead.
This presentation demonstrates how QueryPath can be used within Drupal to integrate web services and create rich mash-ups.
The "official" DrupalCon Paris video of this presentation can be found here: http://technosophos.com/content/querypath-mashups-and-web-services-video
This document provides an overview and introduction to NoSQL databases. It defines NoSQL as non-relational data stores that break from the traditional relational database model. The document notes that NoSQL encompasses different techniques, data types, and use cases rather than one single approach. It then discusses different NoSQL families (graph, key-value, document), flavors (standalone, distributed, embedded), and examples of products that fit within these categories. The document emphasizes priorities and tradeoffs to consider like availability, scalability, and ease of adoption. It provides Riak and CouchDB as examples that emphasize availability and scalability through replication and storage distribution.
NoSQL Tel Aviv Meetup#1: NoSQL Data ModelingNoSQL TLV
This document discusses NoSQL data modeling and provides examples of different data modeling approaches for non-relational databases, including document, columnar, graph, and relational models. It covers topics like the role of data modeling, different data domains, schema approaches, normalization vs denormalization, embedding data, and using multiple data models or a "polyglot persistence" approach. Examples are given of one-to-one, one-to-many, and many-to-many relationships and how they can be modeled in a document database.
Object Relational Mapping with Dapper (Micro ORM)Muhammad Umar
Object relational mapping (ORM) is modern technique used to make incompatible type systems collaborate. Dapper is a micro ORM, specially known for its efficiency and simplicity.
The document discusses Rails interview questions and answers. It covers common questions about what Rails is and its components like Action Pack, Action Mailer, Active Model, Active Record, Active Resource, and Active Support. Other questions addressed include RESTful architecture, advantages of Rails, scaffolding, render vs redirect_to, ORM, model associations, helpers, filters, MVC pattern, sessions vs cookies, and more.
Ruby On Rails - Rochester K Linux User GroupJose de Leon
The document provides a history and overview of Ruby and Ruby on Rails. It discusses how Ruby on Rails embodies best practices in software design such as the model-view-controller pattern, test-driven development, and principles of simplicity. Examples are given of how Rails enforces separation of concerns and automates common development tasks to improve productivity.
The document discusses SnappyDB, a key-value database for Android that uses LevelDB and Snappy compression. It provides a Java API and integrates Kryo for serialization. The presentation highlights that SnappyDB is faster than SQLite, especially for large BLOBs, and avoids boilerplate code. Installation can be done through Maven or by copying files, and code examples are provided. Benchmarks show SnappyDB outperforming SQLite with and without transactions.
Cool bonsai cool - an introduction to ElasticSearchclintongormley
An introduction to Clinton Gormley and the search engine Elasticsearch. It discusses how Elasticsearch works by tokenizing text, creating an inverted index, and using relevance scoring. It also summarizes how to install and use Elasticsearch for indexing, retrieving, and searching documents.
This document provides an overview of the Ruby on Rails web application framework. It discusses that Rails is a full-stack framework that follows the model-view-controller pattern and uses Ruby as its programming language. It was created by David Heinemeier Hansson in 2004 and uses conventions like separating data, presentation, and control logic into the model, view, and controller layers respectively. The document also provides high-level information on Rails' object-relational mapping, database persistence, and conventions over configuration approach.
This document provides an overview and introduction to Elastic Search. It discusses what Elastic Search is, why it is useful, common applications, key concepts and how to use it with Docker. Elastic Search is described as a distributed, open source, NoSQL database specialized for full-text search and analysis of structured and unstructured data. It indexes and stores data and allows for fast searching across large volumes of data.
This document provides an overview and summary of the Java Content Repository (JCR) specification and Apache Jackrabbit implementation. It discusses how JCR combines advantages of file systems and databases by allowing structured and unstructured content to be stored together in a single repository. It also summarizes how to connect to a repository, interact with nodes and properties, perform searches and queries, and leverage advanced features like observation and versioning. The document promotes JCR as a standard Java API and Apache Jackrabbit as a widely used open source implementation.
NoSQL databases should not be chosen just because a system is slow or to replace RDBMS. The appropriate choice depends on factors like the nature of the data, how the data scales, and whether ACID properties are needed. NoSQL databases are categorized by data model (document, column family, graph, key-value store) which affects querying. Other considerations include scalability based on the CAP theorem and operational factors like the distribution model and whether there is a single point of failure. The best choice depends on the specific requirements and risks losing data if chosen incorrectly.
With Java 8 adoption skyrocketing, is Scala still relevant? In our opinion, the answer is an unequivocal yes. To make our point, Tomer Gabel (system architect at Wix) will showcase practical examples where Scala's features provide a definitive advantage over Java 8. These include:
* Effective logging with traits and by-name parameters;
* Pattern matching for fun and profit;
* Type-safe, efficient serialization with type classes.
A talk given at a Wix Ukraine R&D meetup in Dnipropetrovsk, Ukraine on 6 April, 2016.
Video recording: https://youtu.be/EXxA3PlcdBg?t=3680
Sample code: https://github.com/holograph/scala-vs-java8
jRuby fixes some issues with the Ruby programming language like memory leaks and lack of kernel level threading by running Ruby code on the Java Virtual Machine which has features like a sophisticated garbage collector, just-in-time compilation for improved performance, and native threading; benchmarks show jRuby provides much higher concurrency and better performance than Ruby for background processing and web applications; deploying a Ruby application using jRuby and a Java application server like Torquebox allows it to take advantage of the reliability, scalability and deployment features of the Java platform.
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.
Roundup of what is on the web at regarding Rails 3 as of Easter 2010.
Includes outline of significant changes to Rais in Rails 3 plus how you might set about upgrading an existing app.
Acknowledges and links to to some amazing resources already elsewhere on the web.
There is a lot of confusion out there about the various kinds of NoSQL, and NewSQL, technologies. Document stores, graph databases, columnar databases, graph databases, and the list goes on. This confusion has lead to a good deal of less than optimal deployments, pain, and, ultimately, antipathy.
In this talk, Dan will walk us through a high-level explanation of the various NoSQL technologies available to us, how they work, and provide some dos and don'ts for their implementation.
Ruby on Rails is a full-stack web application framework written in Ruby. It allows developers to build database-backed web applications rapidly using conventions like MVC pattern and follows "convention over configuration" principle. Rails includes features like Active Record (ORM), validations, migrations, scaffolding, routing and helpers to help develop web applications quickly. Testing is an important part of Rails development using tools like RSpec, Factory Girl, Cucumber and Capybara.
Ruby on Rails is a full-stack web application framework written in Ruby. It uses the MVC pattern and convention over configuration principles. Rails makes it possible to develop database-backed web applications rapidly by minimizing configuration through conventions and providing scaffolding. Key Rails concepts include Active Record for ORM, migrations for schema changes, routing for URLs, controllers for application logic, views for presentation, and testing frameworks. Rails emphasizes productivity through conventions that reduce configuration overhead.
This presentation demonstrates how QueryPath can be used within Drupal to integrate web services and create rich mash-ups.
The "official" DrupalCon Paris video of this presentation can be found here: http://technosophos.com/content/querypath-mashups-and-web-services-video
This document provides an overview and introduction to NoSQL databases. It defines NoSQL as non-relational data stores that break from the traditional relational database model. The document notes that NoSQL encompasses different techniques, data types, and use cases rather than one single approach. It then discusses different NoSQL families (graph, key-value, document), flavors (standalone, distributed, embedded), and examples of products that fit within these categories. The document emphasizes priorities and tradeoffs to consider like availability, scalability, and ease of adoption. It provides Riak and CouchDB as examples that emphasize availability and scalability through replication and storage distribution.
NoSQL Tel Aviv Meetup#1: NoSQL Data ModelingNoSQL TLV
This document discusses NoSQL data modeling and provides examples of different data modeling approaches for non-relational databases, including document, columnar, graph, and relational models. It covers topics like the role of data modeling, different data domains, schema approaches, normalization vs denormalization, embedding data, and using multiple data models or a "polyglot persistence" approach. Examples are given of one-to-one, one-to-many, and many-to-many relationships and how they can be modeled in a document database.
Object Relational Mapping with Dapper (Micro ORM)Muhammad Umar
Object relational mapping (ORM) is modern technique used to make incompatible type systems collaborate. Dapper is a micro ORM, specially known for its efficiency and simplicity.
The document discusses Rails interview questions and answers. It covers common questions about what Rails is and its components like Action Pack, Action Mailer, Active Model, Active Record, Active Resource, and Active Support. Other questions addressed include RESTful architecture, advantages of Rails, scaffolding, render vs redirect_to, ORM, model associations, helpers, filters, MVC pattern, sessions vs cookies, and more.
Ruby On Rails - Rochester K Linux User GroupJose de Leon
The document provides a history and overview of Ruby and Ruby on Rails. It discusses how Ruby on Rails embodies best practices in software design such as the model-view-controller pattern, test-driven development, and principles of simplicity. Examples are given of how Rails enforces separation of concerns and automates common development tasks to improve productivity.
The document provides an overview of Ruby on Rails including: why developers may be interested in Rails, key concepts like MVC architecture and conventions over configuration, how models, views and controllers work, database persistence with ActiveRecord, and common Rails tools like migrations, validations and associations. It also briefly discusses Ruby's creator Yukihiro Matsumoto, popular Rails applications, and resources for learning more.
LF_APIStrat17_Don't Repeat Yourself - Your API is Your DocumentationLF_APIStrat
"If you find yourself maintaining a set of documents explaining the use of your API, you haven't finished it's design yet. This talk will compare various strategies with examples, while discussing ways to determine the most appropriate method for your API.
We will explore OAS (Swagger), Json-LD, Schema.org, HAL, Hydra, Siren, Semantic profiles, and other formats while comparing their relative strengths and weaknesses. After these options, we will arm you with a series of questions which direct you to the appropriate tool for your API.
Discover how you can save considerable time and headaches by incorporating a self documenting method in your API design."
This document provides an introduction and overview of REST and Jersey. It begins with an introduction of the presenter and their background and interests. It then provides brief definitions and discussions of REST, highlighting some of its key aspects like being stateless, using standard HTTP methods, and having resources with multiple representations. It introduces the Jersey framework and discusses some of its features. It maps out the topics to be covered, including explanations of REST concepts like resources having unique IDs, linking resources together, and implementing the hypermedia constraint. It also provides a demonstration of a sample REST application called Notem and discusses challenges in implementing REST concepts like generating links between resources.
Ruby on Rails is a web application framework written in Ruby that emphasizes convention over configuration and rapid development. It includes modules for modeling data with ActiveRecord, handling requests and responses with ActionController and ActionView, and additional features like routing and internationalization. The document then provides more details on the history, philosophy, main components, and features of Rails.
Ruby on Rails was presented to the Agile Atlanta group. The presentation provided an overview of Ruby, demonstrated the Rails framework, and described its principles and architecture in 3 sentences or less:
Ruby is an agile language and Ruby on Rails is its popular web application framework that promotes agile practices like convention over configuration and includes everything needed to build database-driven web apps according to the MVC pattern.
The document discusses getting started with the Ruby on Rails web application framework. It provides an overview of Rails' model-view-controller architecture and components like models, views, controllers, helpers, partials and layouts. It also covers how the University of Wisconsin-Eau Claire uses Rails for projects, Rails deployment options, performance, scalability and security considerations.
Java EE microservices architecture - evolving the monolithMarkus Eisele
With the ascent of DevOps, microservices, containers, and cloud-based development platforms, the gap between state-of-the-art solutions and the technology that enterprises typically support has greatly increased. But some enterprises are now looking to bridge that gap by building microservices-based architectures on top of Java EE.
In this webcast, Red Hat Developer Advocate Markus Eisele explores the possibilities for enterprises that want to move ahead with this architecture. However, the issue is complex: Java EE wasn't built with the distributed application approach in mind, but rather as one monolithic server runtime or cluster hosting many different applications. If you're part of an enterprise development team investigating the use of microservices with Java EE, this webcast will guide you to answers for getting started.
Elasticsearch - Devoxx France 2012 - English versionDavid Pilato
This document provides an overview of the Elasticsearch search engine. It discusses that Elasticsearch is designed for the cloud and NoSQL generation. It is based on Apache Lucene and hides complexity with RESTful and JSON interfaces. Key points are that Elasticsearch is easy to get started with, scales horizontally by adding nodes, and is powerful with Lucene and parallel processing. The document also covers storing data as documents in types and indexes, and interacting with Elasticsearch via its REST API.
The document discusses Ruby on Rails, a web application framework. It provides an overview of Ruby and Rails, explaining that Ruby is an object-oriented programming language and Rails is a full-stack framework built on Ruby that follows the model-view-controller pattern. It also discusses how Rails emphasizes conventions over configuration and helps developers build applications quickly.
Action-Domain-Responder: A Refinement of MVCPaul Jones
Using Model-View-Controller as a pattern to describe stateless HTTP interactions has always been a bit of a kludge. There simply hasn't been a better pattern web applications -- until now.
ADR (Action-Domain-Responder) represents a refinement of generic MVC as an application architecture specifically tuned to the web. In this talk, we will discuss various patterns of overall application architecture, including MVC, MVP, PAC, DCI, RMR, and others. We will find out how the ADR pattern arises from generic MVC, and how it provides a better description of how web applications actually work. Finally, we will go over examples of how to architect an ADR application, as well as how to convert from an MVC architecture to an ADR one.
This document provides an overview of a presentation on Ruby on Rails given to the Agile Atlanta group in May 2005. The presentation covered an introduction to Ruby on Rails, a demonstration of Rails, a description of the Rails framework including its Model-View-Controller architecture, ActiveRecord implementation, and other features like helpers, caching and testing. Examples were provided of how to define models, views, controllers and web services in Rails. The presenter emphasized how Rails promotes agile practices through conventions, its focus on human factors and succinct code.
Rails simplifies the software development process through conventions over configuration and by embracing agile practices. Rails uses simple naming conventions and reflection so that developers can focus on business logic rather than configuration. This allows features like MVC, DRY principles and database mapping to work automatically without extensive setup. The combination of Ruby's elegance and Rails' conventions makes building applications faster and easier for developers.
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...Tom Hofte
The document provides an agenda and overview for a 3.5 hour conference session on mapping a domain model to a RESTful web API. The session will cover discovering the domain model, mapping it to REST resources and operations, and other REST modeling topics. It introduces key REST concepts like resources, URIs, HTTP methods, and HATEOAS. It also discusses best practices like the Richardson Maturity Model and API style guides. Interactive exercises are planned to have attendees practice domain discovery and REST modeling for a sample airline booking case study.
Open Annotation Rollout, Manchester, 2013-06-25
See also PPTX version with Notes: http://www.slideshare.net/soilandreyes/2013-0624annotatingr-osopenannotationmeeting
Open Annotation Rollout, Manchester, 2013-06-25
See also PDF version: http://www.slideshare.net/soilandreyes/2013-0624annotatingr-osopenannotationmeeting-23289491
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital.AI
This document provides an overview of MetaQL, which allows composing queries across NoSQL, SQL, SPARQL, and Spark databases using a domain model. Key points include:
- MetaQL uses a domain model to define concepts and compose typed queries in code that can execute across different databases.
- This separates concerns and improves developer efficiency over managing schemas and databases separately.
- Examples demonstrate MetaQL queries in graph, path, select, and aggregation formats across SQL, NoSQL, and RDF implementations.
An introduction to repository reference modelsJulie Allinson
Presentation at CETIS Metadata and Digital Repositories SIG Meeting, 1st March 2006, HE Academy, York. Julie Allinson, Digital Repositories Support Officer, UKOLN, University of Bath
The document provides an introduction and overview of Ruby on Rails. It discusses the history and features of Ruby and compares it to other programming languages like Python and Perl. It then describes the architecture of Rails, including the Model-View-Controller pattern and ActiveRecord. The document also provides examples of migrations, validations and associations in Rails.
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
4. REST
What is REST?
How does REST work?
Why REST?
REST
5. What is REST?
It’s about communication between
computers
It’s about designing the architecture of
your applications
REST » What is REST?
6. It’s about communication
between computers
Web services!
SOAP / XML-RPC => communication
REST => communication + standardisation
REST » What is REST?
7. It’s about architecturing
your application
esis by Roy Fielding (2000)
“Architectural Styles and the Design of Network-based
Software Architectures”
REST applies some constraints to the
architecture of your application
e interface is the same for humans and
computers
(by the way: REST means Representational State Transfer... I think)
REST » What is REST?
8. How does REST work ?
Everything is a “resource”
4 basic requirements for a RESTful
system
REST » How does REST work?
9. e concept of resource
Resource = thing exposed by the system to the
outside world
Everything is a resource
http://www.frailers.net/users/1
http://www.frailers.net/users/1/memberships
Independent from its representation
user.html => http://www.frailers.net/users/1
user.jpg => http://www.frailers.net/users/1
REST » How does REST work?
10. When is a system
RESTful ?
Addressability
Statelessness
Connectivity
Uniform interface
4 standardized actions: GET - POST - PUT - DELETE
Safety (GET)
Idempotence (PUT-DELETE)
REST » How does REST work?
11. So, why REST ?
Standardisation is good
Why use so many different functions when you
always do the same (CRUD’ing objects)
Why separate the logic for computers and
humans ? (segregation is evil)
Statelessness => scalability and decoupling
REST » Why REST?
12. Enough for this theoretical
HTTP stuff!
is is a DevRoom about , right ?
REST » Why REST?
14. REST in Rails
Addressability: RESTful routes
Representation independence: respond_to
Nesting resources
Developing REST clients
...and some tasty Rails sugars
REST in Rails
15. Addressability : Routes
RESTless RESTful
VERB HREF VERB URI
POST /users/create POST /users
GET /users/1 GET /users/1
POST /users/1/update PUT /users/1
???? /users/1/delete DELETE /users/1
REST in Rails » Routes
16. Addressability : Routes
map.resources :users
Resource Verb Action
/users GET index
/users POST create
/users/1 GET show
/users/1 PUT update
/users/1 DELETE destroy
REST in Rails » Routes
17. RESTful Rails controller
A RESTful controller has 7 standard actions
Each controller deals with a resource (user) and its
collection (list of users)
REST in Rails » Routes
18. Representation independence:
respond_to
Based on:
HTTP Accept Header
Format extension
http://www.frailers.net/articles/24/comments/1.html
http://www.frailers.net/articles/24/comments/1.js
REST in Rails » respond_to
19. Making REST clients :
ActiveResource
class Project < ActiveResource::Base
self.site = “http://localhost:3000”
end
projects = Project.find(:all)
new_project = Project.new(:name => “My new
project”)
new_project.save
REST in Rails » ActiveResource
20. Nested resources
http://www.frailers.net/articles/24/comments/1
http://www.frailers.net/articles/24/author
ActionController::Routing::Routes.draw do |map|
map.resources :articles do |article|
article.resources :comments
article.resource :author
end
end
REST in Rails » Nested resources
21. More rails sugars
Scaffolding
script/generate scaffold article title:string
body:text published:boolean
Helpers
link_to @article
form_for @comment do |f| ... end
redirect_to @article
Authentication
RESTful authentication plugin
REST in Rails » Sugars
22. To sum up...
Using REST in Rails is good
lightweight controllers
API given for free
Rails is opinionated
implementation of REST is not perfect
REST in Rails » Conclusion
24. Best practices
Design methodology
Real-life examples
Best Practices
25. Disclaimer!
Maybe “best” is an overstatement
(is sounded great for the call for papers)
ere are always different solutions
Best Practices » Disclaimer
26. Design methodology
Knowing Rails’ resources API is great, but not
sufficient
e big question:
what resources do I choose ?
Best Practices » Design methodology
27. Classic beginner’s
mistakes
strictly mirroring your ActiveRecord data
model to choose your resources
thinking all 7 actions should be written for each
and every resource
and, of course, adding custom methods if the
standard ones don’t fit
Best Practices » Design methodology
28. Resources are not
models
Well, to be fair, then can (and usually)
represent models
But also:
Relations
States
Events
(DHH told me so)
Best Practices » Design methodology
29. Nouns are the new verbs
Change your way of explaining a scenario, an action
Use a noun to describe the action
e noun given to your scenario is the resource
you’re looking for
A user subscribes to a group A subscription is created
e project is validated by its owner A project validation is created
e user deactivates his account A user account activation is deleted
Best Practices » Design methodology
30. 7 is not a strict target
Resources can be read-only
Sometimes, actions are
meaningless:
update an “account activation” ? really ?
destroy a “page view” ? why ?
Best Practices » Design methodology
31. Don’t be tempted!
Rails allows extra, custom methods to be added to
controllers, if you really need them
But you’ll lose all what you were trying to do in
the first place (no uniform interface, etc.)
I have never needed that (except, maybe...)
If you do need that, it’s probable that you’d better
rethink your architecture
Best Practices » Design methodology
32. OK, you want real-life
examples
Adding/removing members from a group
Dealing with object workflows
Multi-step edition wizard
Managing a shopping cart
Manipulating several resource in one request
Best Practices » Real-life examples
33. Adding / Removing
members from a group
Best Practices » Real-life examples
34. Adding / Removing
members from a group
Best Practices » Real-life examples
35. Dealing with object
workflows
Consider a CMS with
all sorts of documents
Each document has a
status: draft, reviewed,
published, ...
Best Practices » Real-life examples
36. Dealing with object
workflows
Or another way : only “update” the document
depending on the business logic, this can be considered overloading
Best Practices » Real-life examples
37. Multi-step edition
wizard
A complex model needs to
be edited in 3 steps, in a
precise order
Best Practices » Real-life examples
38. Multi-step edition
wizard
All these steps are different, partial
representations of the same resource
Just GET the resource and put the step as a
parameter
Update the resource at each step... and redirect to
the next step representation
Best Practices » Real-life examples
40. Managing a shopping
cart
We keep in the database the state of the shopping
cart for each user:
/users/21/shopping_cart_items
Yes, but I don’t want the cart to be persistent
Delete from the database when the user logs out
Best Practices » Real-life examples
41. Manipulating two resources
simultaneously
You’re not manipulating two resources
You’re manipulating a couple of things
e resource is the couple
Create guy, create girl => Create couple
Best Practices » Real-life examples
42. Manipulating two resources
simultaneously
If you still need to do it in
several steps...
CREATE a Transaction resource
PUT the first part
PUT the second part
commit (PUT “committed”)
or revert (DELETE)
Best Practices » Real-life examples
43. ere are still some
limitations...
I want to choose items to delete from a list with
checkboxes
DELETE only works for a single resource at a time
What you’re doing is updating the parent resource
If there’s no parent resource, you’re screwed
Best Practices » Real-life examples
44. ank you!
It’s lunch time!
Let’s eat!
Let’s create some LunchEatings !
POST /lunch_eatings