The slide deck for Andrew White's Technical Breakfast Club, covering how past major releases have tripped people up in upgrades and what strategies you need to adopt to make sure your upgrade path is smooth.
Matt Gauger - Git & Github web414 December 2010Matt Gauger
Git is a version control system that allows developers to track changes to code over time. The document provides a brief introduction to common Git commands like commit, push, pull, and fetch. It also discusses how GitHub builds on Git by providing a platform for hosting projects and collaborating through features like forking, pull requests, and issue tracking. The overall message is that Git and GitHub optimize the development workflow by making it easy to manage changes, work on projects together, and contribute code back to open source projects.
Best Practices for Middleware and Integration Architecture Modernization with...Claus Ibsen
This document discusses best practices for middleware and integration architecture modernization using Apache Camel. It provides an overview of Apache Camel, including what it is, how it works through routes, and the different Camel projects. It then covers trends in integration architecture like microservices, cloud native, and serverless. Key aspects of Camel K and Camel Quarkus are summarized. The document concludes with a brief discussion of the Camel Kafka Connector and pointers to additional resources.
The document introduces Git and GitHub for managing code repositories in a distributed version control system. It explains the basic Git concepts and workflows including initializing local repositories, staging and committing changes, and pushing/pulling from remote repositories hosted on services like GitHub. The document provides an overview of how distributed version control with Git differs from centralized systems and allows developers to work offline and sync changes later.
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationClaus Ibsen
In this session, we'll discuss:
- What’s Apache Camel: An overview of Camel and what you use it for and why you should care.
- Camel 3: Demos of how Camel 3, Camel K and Camel Quarkus all work together, and will provide insights into Camel’s role in the next major release of Red Hat Integration products.
- Camel K: This serverless integration platform provides low-code/no-code capabilities, where integrations can be snapped together quickly using the powers from integration patterns and Camel’s extensive set of connectors.
- Camel Quarkus: Using Knative (the fast runtime of Quarkus) and Camel K brings awesome serverless features, such as auto-scaling, scaling to zero, and event-based communication, with great integration capabilities from Apache Camel.
You will also hear about the latest Camel sub-project Camel Kafka Connectors which makes it possible to use all the Camel components as Kafka Connect connectors.
Finally we bring details of the roadmap for what is coming up in the Camel projects.
And after the presentation we have about 30 minutes of QA answering all the questions from the audience.
Camel Day Italy 2021 - What's new in Camel 3Claus Ibsen
Slides for the 50 min presentation at Camel Day Italy 2021, where Claus Ibsen and Andrea Cosentino had the opporunity to give a more deep dive talk about the journey towards Camel 3, and what we have done to re-architect camel core in v3 to make it awesome for microservices, cloud native, kubernetes, quarkus, graalvm, knative, apache kafka.
Camel Day Italy 2021: https://www.meetup.com/it-IT/red-hat-developers-italy/events/275332376/
Different ways of integrating React into Rails - Mikhail BortnykRuby Meditation
This document discusses different approaches for integrating React with Ruby on Rails applications. It outlines four cases:
1. A standalone frontend application, which provides full control but requires coordinating builds and deployments.
2. Using in-app JavaScript, which is hardly maintainable and only supports in-browser JSX.
3. The react-rails gem, which provides server-side rendering but has a fixed React version and deep assets pipeline integration.
4. The react_on_rails gem, which supports React and Redux with templates and Webpack but requires setting up hot module reloading.
The document suggests the webpacker gem may be the future approach as it easily
It's quite common now for code to be generated by some command - with help of Artisan or not. In this presentation I have an overview of existing solutions on the market.
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010 Matt Gauger
This document summarizes a talk comparing PHP and Rails web development frameworks. It discusses the evolution of web servers from Apache to more scalable options like Nginx. Nginx acts as a reverse proxy, passing requests to application servers like FastCGI that execute code and return responses. This represents a shift from simply serving static files to building full-featured web applications using the MVC pattern. Node.js is presented as the next step, allowing JavaScript to be used for server-side development in an event-driven, non-blocking way.
Moving Gigantic Files Into and Out of the Alfresco RepositoryJeff Potts
This talk is a technical case study showing show Metaversant solved a problem for one of their clients, Noble Research Institute. Researchers at Noble deal with very large files which are often difficult to move into and out of the Alfresco repository.
We start with an introduction to what Apache Camel is, and how you can use Camel to make integration much easier. Allowing you to focus on your business logic, rather than low level messaging protocols, and transports.
You will hear how Apache Camel is related Enterprise Integration
Patterns which you can use in your architectural designs and as well in Java or XML code, running on the JVM with Camel.
You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
We also take a moment to look at web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities. In addition to the web tooling we will also show you other tools in the making.
This talk was presented at JDKIO on September 13th 2016.
The document provides an overview of TorqueBox, an application server for Ruby applications. It discusses how TorqueBox allows Ruby applications to leverage features typically found in Java application servers like background jobs, messaging, and clustering. It also provides instructions for setting up TorqueBox, including downloading, configuring environment variables, and using Rake tasks to deploy and run applications on TorqueBox.
Using Apache Camel connectors for external connectivityClaus Ibsen
The document summarizes a public presentation by Claus Ibsen on using Apache Camel connectors for external connectivity. The presentation covers understanding Camel components, essential components like Direct, Bean, File, and JMS, and how to create new Camel components. It also provides information on where to find additional Camel resources.
Getting Started with Apache Camel at DevNation 2014Claus Ibsen
Get off to a good start with Apache Camel. This session will give you an introduction to Apache Camel and teach you:
- How Camel is related to enterprise integration patterns (EIPs).
- How to use EIPs in Camel routes written in Java code or XML files.
- How to get started developing with Camel, including how to set up new projects from scratch using Maven and Eclipse.
- With a live demo, how to build Camel applications in Java, Spring, and OSGi Blueprint.
- How ready-to-use features make integration much easier.
- About the web console tools that give you insight into your running Apache Camel applications, including visual route diagrams with tracing, debugging, and profiling capabilities.
- Useful resources to learn more about Camel.
This session will be taught with a 50/50 mix of slides and live demos, and it will conclude with Q&A time.
This document provides links to articles summarizing new features in Ruby on Rails 4, including asynchronous mail delivery, barebone models, the PATCH HTTP method for updates, live streaming support, routing concerns, PostgreSQL array support, strong parameters, Turbolinks, caching improvements, and other model, form, and deployment enhancements. The articles describe changes and previews of functionality to be included in the upcoming Rails 4 release.
Apache Camel is a very popular integration library that works very well with microservice architecture.
This talk introduces you to Apache Camel and how you can easily get started with Camel on your computer.
Then we cover how to create new Camel projects from scratch as micro services which you can boot using Camel or Spring Boot, or other micro containers such as Jetty or fat JARs. We then take a look at what options you have for monitoring and managing your Camel microservices
using tooling such as Jolokia, and hawtio web console.
The second part of this talk is about running Camel in the cloud. We start by showing you how you can use the Maven Docker Plugin to create a docker image of your Camel application and run it using docker on a single host. Then kubernetes enters the stage and we take a look at how you can deploy your docker images on a kubernetes cloud platform, and how thenfabric8 tooling can make this much easier for the Java developers.
At the end of this talk you will have learned about and seen in practice how to take a Java Camel project from scratch, turn that into a docker image, and how you can deploy those docker images in a scalable cloud platform based on Google's kubernetes.
Introduction to Git, from ground zero. Includes basic concepts, most common commands and workflows. Describes rebase vs merge, what push and pull do, and what the SHA1 does for you.
Apache Jackrabbit Oak - Scale your content repository to the cloudRobert Munteanu
The document discusses Apache Jackrabbit Oak, an open source content repository that can scale to the cloud. It provides an overview of content, repositories, scaling techniques using different storage backends like TarMK and MongoMK, and how Oak can be deployed in the cloud using technologies like S3 and MongoDB. The presentation covers key JCR concepts and shows how Oak can be used for applications like content management, digital asset management, and invoice management.
Getting Started with Apache Camel - Malmo JUG - March 2013Claus Ibsen
This session will teach you how to get a good start with Apache Camel.
We will introduce you to Apache Camel and how Camel its related to Enterprise Integration Patterns. And how you go about using these patterns in Camel routes, written in Java code or XML files.
We will then discuss how you can get started developing with Camel, and how to setup a new project from scratch using Maven and Eclipse tooling.
This session includes live demos that show how to build Camel applications in Java, Spring, OSGi Blueprint and alternative languages such as Scala and Groovy.
You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
At the end we demonstrate how to build custom components, allowing you to build custom adapters if not already provided by Camel.
Before opening up for QA, we will share useful links where you can dive into learning more about Camel.
This document discusses Git internals and provides examples of how Git stores files and commits as objects in a directed acyclic graph (DAG). It explains that commits point to trees, which point to blobs containing file contents or other trees representing subdirectories. Branches and tags are explained as references to commit objects. Examples are given of branching, merging, tagging, and how remote tracking references map to repositories on remote servers.
Getting started with Apache Camel - jDays 2013Claus Ibsen
In this session will teach you how to get a good start with Apache Camel. We will introduce you to Apache Camel and how Camel its related to Enterprise Integration Patterns. And how you go about using these patterns in Camel routes, written in Java code or XML files.
We will then discuss how you can get started developing with Camel, and how to setup new projects from scratch using Maven and Eclipse tooling.
This session includes live demos that show how to build Camel applications in Java, Spring, OSGi Blueprint and alternative languages such as Scala and Groovy. You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
We also take a moment to look at hawtio, then hot new web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities.
Before opening up for QA, we will share useful links where you can dive into learning more about Camel.
Simple SQL Change Management with SqitchDavid Wheeler
SQL change management has always sucked. This talk introduces Sqitch, the VCS-aware SQL change management application that doesn’t suck. Come see how it works, learn the few simple rules you need to get the most out of it, and liberate yourself from the suckitude.
This document discusses Sqitch, a tool for managing database schema changes. Sqitch uses plain SQL scripts checked into version control. It handles dependencies between changes, generates deployment plans, and tags deployed changes. The key advantages of Sqitch include reduced duplication, built-in configuration, deployment planning, and tight integration with version control systems through a Git-like workflow.
Getting started with Apache Camel - May 2013Claus Ibsen
This session will teach you how to get a good start with Apache Camel.
We will introduce you to Apache Camel and how Camel its related to Enterprise Integration Patterns. And how you go about using these patterns in Camel routes, written in Java code or XML files.
We will then discuss how you can get started developing with Camel, and how to setup a new project from scratch using Maven and Eclipse tooling.
This session includes live demos that show how to build Camel applications in Java, Spring, OSGi Blueprint and alternative languages such as Scala and Groovy.
You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
Before opening up for QA, we will share useful links where you can dive into learning more about Camel.
This presentation was video taped which you can find here: http://javagruppen.dk/index.php/moder/historiske-moder/285-javagruppemode-115-apache-camel-i-aarhus
Microservices with apache_camel_barcelonaClaus Ibsen
Apache Camel is a very popular integration library that works very well with microservice architecture.
This talk introduces you to Apache Camel and how you can easily get started with Camel on your computer.
Then we cover how to create new Camel projects from scratch as micro services which you can boot using Camel or Spring Boot, or other micro containers such as Jetty or fat JARs.
We then take a look at what options you have for monitoring and managing your Camel microservices using tooling such as Jolokia, and hawtio web console.
The second part of this talk is about running Camel in the cloud.We start by showing you how you can use the Maven Docker Plugin to create a docker image of your Camel application and run it using docker on a single host. Then kubernetes enters the stage and we take a look at how you can deploy your docker images on a kubernetes cloud platform, and how the fabric8 tooling can make this much easier for the Java developers.
At the end of this talk you will have learned about and seen in practice how to take a Java Camel project from scratch, turn that into a docker image, and how you can deploy those docker images in a scalable cloud platform based on Google's kubernetes.
Integration using Apache Camel and GroovyClaus Ibsen
Apache Camel is versatile integration library that supports a huge number of components, enterprise integration patterns, and programming languages.
In this this talk I first introduce you to Apache Camel and its concepts. Then we move on to see how you can use the Groovy programming language with Camel as a first class Groovy DSL to build integration flows.
You will also learn how to build a new Camel and Groovy app from scratch from a live demo.
And we also touch how you can use Camel from grails using the grails-camel plugin.
I will also show the web console tools that give you insight into your running Apache Camel applications, including visual route diagrams with tracing, debugging, and profiling capabilities.
This session will be taught with a 50/50 mix of slides and live demos, and it will conclude with Q&A time.
This document provides a summary of a meeting held by a partnership working on a project about positive discipline. It describes the activities over several days, including:
- A welcome dinner on the first night for participants arriving in Umbertide.
- Presentations and workshops on the second day about communication techniques in positive discipline and developing guides and materials for the project.
- A visit to Assisi that afternoon to learn about the history and architecture through frescoes.
- Continued workshops on days two and three about positive discipline methods and techniques, dividing into teams for activities.
- Site visits to environmental centers and towns in the region like Perugia and Umbertide.
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010 Matt Gauger
This document summarizes a talk comparing PHP and Rails web development frameworks. It discusses the evolution of web servers from Apache to more scalable options like Nginx. Nginx acts as a reverse proxy, passing requests to application servers like FastCGI that execute code and return responses. This represents a shift from simply serving static files to building full-featured web applications using the MVC pattern. Node.js is presented as the next step, allowing JavaScript to be used for server-side development in an event-driven, non-blocking way.
Moving Gigantic Files Into and Out of the Alfresco RepositoryJeff Potts
This talk is a technical case study showing show Metaversant solved a problem for one of their clients, Noble Research Institute. Researchers at Noble deal with very large files which are often difficult to move into and out of the Alfresco repository.
We start with an introduction to what Apache Camel is, and how you can use Camel to make integration much easier. Allowing you to focus on your business logic, rather than low level messaging protocols, and transports.
You will hear how Apache Camel is related Enterprise Integration
Patterns which you can use in your architectural designs and as well in Java or XML code, running on the JVM with Camel.
You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
We also take a moment to look at web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities. In addition to the web tooling we will also show you other tools in the making.
This talk was presented at JDKIO on September 13th 2016.
The document provides an overview of TorqueBox, an application server for Ruby applications. It discusses how TorqueBox allows Ruby applications to leverage features typically found in Java application servers like background jobs, messaging, and clustering. It also provides instructions for setting up TorqueBox, including downloading, configuring environment variables, and using Rake tasks to deploy and run applications on TorqueBox.
Using Apache Camel connectors for external connectivityClaus Ibsen
The document summarizes a public presentation by Claus Ibsen on using Apache Camel connectors for external connectivity. The presentation covers understanding Camel components, essential components like Direct, Bean, File, and JMS, and how to create new Camel components. It also provides information on where to find additional Camel resources.
Getting Started with Apache Camel at DevNation 2014Claus Ibsen
Get off to a good start with Apache Camel. This session will give you an introduction to Apache Camel and teach you:
- How Camel is related to enterprise integration patterns (EIPs).
- How to use EIPs in Camel routes written in Java code or XML files.
- How to get started developing with Camel, including how to set up new projects from scratch using Maven and Eclipse.
- With a live demo, how to build Camel applications in Java, Spring, and OSGi Blueprint.
- How ready-to-use features make integration much easier.
- About the web console tools that give you insight into your running Apache Camel applications, including visual route diagrams with tracing, debugging, and profiling capabilities.
- Useful resources to learn more about Camel.
This session will be taught with a 50/50 mix of slides and live demos, and it will conclude with Q&A time.
This document provides links to articles summarizing new features in Ruby on Rails 4, including asynchronous mail delivery, barebone models, the PATCH HTTP method for updates, live streaming support, routing concerns, PostgreSQL array support, strong parameters, Turbolinks, caching improvements, and other model, form, and deployment enhancements. The articles describe changes and previews of functionality to be included in the upcoming Rails 4 release.
Apache Camel is a very popular integration library that works very well with microservice architecture.
This talk introduces you to Apache Camel and how you can easily get started with Camel on your computer.
Then we cover how to create new Camel projects from scratch as micro services which you can boot using Camel or Spring Boot, or other micro containers such as Jetty or fat JARs. We then take a look at what options you have for monitoring and managing your Camel microservices
using tooling such as Jolokia, and hawtio web console.
The second part of this talk is about running Camel in the cloud. We start by showing you how you can use the Maven Docker Plugin to create a docker image of your Camel application and run it using docker on a single host. Then kubernetes enters the stage and we take a look at how you can deploy your docker images on a kubernetes cloud platform, and how thenfabric8 tooling can make this much easier for the Java developers.
At the end of this talk you will have learned about and seen in practice how to take a Java Camel project from scratch, turn that into a docker image, and how you can deploy those docker images in a scalable cloud platform based on Google's kubernetes.
Introduction to Git, from ground zero. Includes basic concepts, most common commands and workflows. Describes rebase vs merge, what push and pull do, and what the SHA1 does for you.
Apache Jackrabbit Oak - Scale your content repository to the cloudRobert Munteanu
The document discusses Apache Jackrabbit Oak, an open source content repository that can scale to the cloud. It provides an overview of content, repositories, scaling techniques using different storage backends like TarMK and MongoMK, and how Oak can be deployed in the cloud using technologies like S3 and MongoDB. The presentation covers key JCR concepts and shows how Oak can be used for applications like content management, digital asset management, and invoice management.
Getting Started with Apache Camel - Malmo JUG - March 2013Claus Ibsen
This session will teach you how to get a good start with Apache Camel.
We will introduce you to Apache Camel and how Camel its related to Enterprise Integration Patterns. And how you go about using these patterns in Camel routes, written in Java code or XML files.
We will then discuss how you can get started developing with Camel, and how to setup a new project from scratch using Maven and Eclipse tooling.
This session includes live demos that show how to build Camel applications in Java, Spring, OSGi Blueprint and alternative languages such as Scala and Groovy.
You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
At the end we demonstrate how to build custom components, allowing you to build custom adapters if not already provided by Camel.
Before opening up for QA, we will share useful links where you can dive into learning more about Camel.
This document discusses Git internals and provides examples of how Git stores files and commits as objects in a directed acyclic graph (DAG). It explains that commits point to trees, which point to blobs containing file contents or other trees representing subdirectories. Branches and tags are explained as references to commit objects. Examples are given of branching, merging, tagging, and how remote tracking references map to repositories on remote servers.
Getting started with Apache Camel - jDays 2013Claus Ibsen
In this session will teach you how to get a good start with Apache Camel. We will introduce you to Apache Camel and how Camel its related to Enterprise Integration Patterns. And how you go about using these patterns in Camel routes, written in Java code or XML files.
We will then discuss how you can get started developing with Camel, and how to setup new projects from scratch using Maven and Eclipse tooling.
This session includes live demos that show how to build Camel applications in Java, Spring, OSGi Blueprint and alternative languages such as Scala and Groovy. You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
We also take a moment to look at hawtio, then hot new web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities.
Before opening up for QA, we will share useful links where you can dive into learning more about Camel.
Simple SQL Change Management with SqitchDavid Wheeler
SQL change management has always sucked. This talk introduces Sqitch, the VCS-aware SQL change management application that doesn’t suck. Come see how it works, learn the few simple rules you need to get the most out of it, and liberate yourself from the suckitude.
This document discusses Sqitch, a tool for managing database schema changes. Sqitch uses plain SQL scripts checked into version control. It handles dependencies between changes, generates deployment plans, and tags deployed changes. The key advantages of Sqitch include reduced duplication, built-in configuration, deployment planning, and tight integration with version control systems through a Git-like workflow.
Getting started with Apache Camel - May 2013Claus Ibsen
This session will teach you how to get a good start with Apache Camel.
We will introduce you to Apache Camel and how Camel its related to Enterprise Integration Patterns. And how you go about using these patterns in Camel routes, written in Java code or XML files.
We will then discuss how you can get started developing with Camel, and how to setup a new project from scratch using Maven and Eclipse tooling.
This session includes live demos that show how to build Camel applications in Java, Spring, OSGi Blueprint and alternative languages such as Scala and Groovy.
You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
Before opening up for QA, we will share useful links where you can dive into learning more about Camel.
This presentation was video taped which you can find here: http://javagruppen.dk/index.php/moder/historiske-moder/285-javagruppemode-115-apache-camel-i-aarhus
Microservices with apache_camel_barcelonaClaus Ibsen
Apache Camel is a very popular integration library that works very well with microservice architecture.
This talk introduces you to Apache Camel and how you can easily get started with Camel on your computer.
Then we cover how to create new Camel projects from scratch as micro services which you can boot using Camel or Spring Boot, or other micro containers such as Jetty or fat JARs.
We then take a look at what options you have for monitoring and managing your Camel microservices using tooling such as Jolokia, and hawtio web console.
The second part of this talk is about running Camel in the cloud.We start by showing you how you can use the Maven Docker Plugin to create a docker image of your Camel application and run it using docker on a single host. Then kubernetes enters the stage and we take a look at how you can deploy your docker images on a kubernetes cloud platform, and how the fabric8 tooling can make this much easier for the Java developers.
At the end of this talk you will have learned about and seen in practice how to take a Java Camel project from scratch, turn that into a docker image, and how you can deploy those docker images in a scalable cloud platform based on Google's kubernetes.
Integration using Apache Camel and GroovyClaus Ibsen
Apache Camel is versatile integration library that supports a huge number of components, enterprise integration patterns, and programming languages.
In this this talk I first introduce you to Apache Camel and its concepts. Then we move on to see how you can use the Groovy programming language with Camel as a first class Groovy DSL to build integration flows.
You will also learn how to build a new Camel and Groovy app from scratch from a live demo.
And we also touch how you can use Camel from grails using the grails-camel plugin.
I will also show the web console tools that give you insight into your running Apache Camel applications, including visual route diagrams with tracing, debugging, and profiling capabilities.
This session will be taught with a 50/50 mix of slides and live demos, and it will conclude with Q&A time.
This document provides a summary of a meeting held by a partnership working on a project about positive discipline. It describes the activities over several days, including:
- A welcome dinner on the first night for participants arriving in Umbertide.
- Presentations and workshops on the second day about communication techniques in positive discipline and developing guides and materials for the project.
- A visit to Assisi that afternoon to learn about the history and architecture through frescoes.
- Continued workshops on days two and three about positive discipline methods and techniques, dividing into teams for activities.
- Site visits to environmental centers and towns in the region like Perugia and Umbertide.
This document provides information about several apps and web pages related to travel in California, including the Visit-California E-Guide App, Visit-California E-Guide Blog Web app, and Cloud-Zend App. It lists the titles of these apps and web pages and includes a table of contents with page numbers.
Este documento presenta un proyecto de prototipado web sobre la ciudad de San José de Chiquitos en Bolivia. Incluye secciones sobre la economía, el desarrollo del proyecto con su planificación y elaboración, y conclusiones. El autor realizó investigación sobre la ciudad y creó bocetos antes de desarrollar el sitio web, el cual presenta sliders interactivos con fotos e información sobre San José de Chiquitos.
This document describes an e-news app from Herbalife that allows users to access news and blog content from Herbalife. The app contains pages that provide a table of contents to different articles and sections within the app, and users can download the app or access web-based content. Navigation buttons allow users to move between pages within the app to access different content.
Las empresas suspenden en comunicación interna en casos de despido colectivoEstudio de Comunicación
El resumen analiza un estudio sobre la comunicación interna de las empresas españolas durante los procesos de despido colectivo. El estudio encontró que la mayoría de los empleados no recibieron información adecuada sobre la situación real de la empresa o los motivos de los despidos. Además, menos de la mitad de los empleados fueron informados directamente por la empresa sobre los despidos. El estudio concluye que la comunicación interna sigue siendo una asignatura pendiente para las empresas españolas, especialmente durante las situaciones de crisis.
This document provides a fast-paced introduction to Ruby, Rails, and additional technologies. It begins with an overview of Ruby basics, syntax, and uses beyond scripts. It then covers Rails fundamentals including MVC architecture, scaffolding, models, views, controllers, and routes. Additional topics discussed include gems, Git, and deploying to Heroku. The document concludes by outlining a sample project to build a marketplace for buying and selling robot spare parts.
Take a look at what Rails 5 has in store for you. We go through all the new features and improvements across development, testing, caching and much more. So let's dive in.
The document summarizes new features in Rails 3.1 beta, including asset handling changes where JavaScript and CSS files are now placed in app/assets, identity maps to improve performance of object loading, simpler database migrations that use a single change method, and improved test output formatting. It also discusses installing Rails 3.1 in a isolated gemset and using Sass and CoffeeScript as default asset compilers.
Ruby is a dynamic programming language that focuses on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write. Ruby on Rails (Rails) is a web application framework written in Ruby that uses the model-view-controller (MVC) pattern. Rails emphasizes conventions over configurations and provides structures for working with databases, web services, and generating web pages. Everything in Ruby is an object, including basic data types, which gives the language flexibility.
Introduction to Rails - presented by Arman Ortegaarman o
This document provides an introduction to Ruby on Rails presented by Arman Ortega. It outlines what will be covered including an overview of Ruby and Rails, the concept of convention over configuration in Rails, and performing CRUD (create, read, update, delete) operations. It then demonstrates creating a sample blog application in Rails and provides links for additional learning resources.
This document provides an introduction and overview of Ruby on Rails, including: its history and initial release in 2004; the Model-View-Controller architecture and included components; installing and setting up a basic Rails application; scaffolding a product catalog with CRUD functionality; adding validation, testing, and pushing the application to Heroku for deployment. It then demonstrates expanding the application by adding a shopping cart and checkout functionality using additional scaffolds, models, and controllers.
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26Ruby Meditation
Speech of Nihad Abbasov, Backend Engineer at Digital Classifieds, at Ruby Meditation #26 Kyiv 16.02.2019
Next conference - http://www.rubymeditation.com/
What to expect from Rails 6? Review of new features.
Announcements and conference materials https://www.fb.me/RubyMeditation
News https://twitter.com/RubyMeditation
Photos https://www.instagram.com/RubyMeditation
The stream of Ruby conferences (not just ours) https://t.me/RubyMeditation
This document discusses REST and routing in Rails 3.1. It explains that REST uses HTTP methods like GET, POST, PUT, DELETE to manipulate and represent resources. Rails scaffolds generate default RESTful routes and actions for basic CRUD. The hands-on section demonstrates generating a Photo scaffold, migrating the database, and using rake routes to view the default RESTful routes.
This document provides an overview of the key changes and improvements in Rails 3 compared to Rails 2. It discusses updates to generators, models, migrations, routes, controllers, views, databases, and adopting unobtrusive JavaScript. New features like ActiveRelation and Turbolinks are also covered.
Agile Database Modeling with Grails - Preview of GORM 1.4 - SF Grails Meetup ...Philip Stehlik
This document summarizes new features in Grails 1.4 related to agile database modeling, including replacing HSQLDB with H2 as the default in-memory database, adding reverse engineering capabilities to generate GORM classes from an existing database, and implementing database migrations based on Liquibase to version control and rollback database schema changes. It provides an overview and status of these features, which are currently available as plugins, and demonstrates reverse engineering and database migrations.
The document introduces OpenFaaS, an open source serverless framework that allows users to easily create and deploy serverless functions. It discusses how OpenFaaS works with containers and can run on any infrastructure, provides examples of common use cases for serverless functions, and outlines how to write, build, deploy and invoke functions using OpenFaaS. The document also previews some of OpenFaaS' upcoming features and provides recommendations for where users can learn more.
I can haz HTTP - Consuming and producing HTTP APIs in the Ruby ecosystemSidu Ponnappa
The Ruby ecosystem is pretty awesome when it comes to developing or
consuming HTTP APIs. On the publishing front, the Rails framework is
an attractive option because it supports publishing what are popularly
(but inaccurately) referred to as 'RESTful' APIs quickly and
effortlessly. On the consumer side, the Ruby ecosystem provides
several very fluent and powerful libraries that make it easy to
consume HTTP based APIs.
Since a significant proportion of projects today require that APIs be
both published and consumed, many of them wind up choosing Ruby as a
platform for the reasons mentioned above. This talk is targeted at
folks that are currently on such projects, or anticipate being on such
projects in the future.
We will cover:
Consuming HTTP APIs:
1) The basics of making HTTP calls with Ruby
2) The strengths and weaknesses of Ruby's Net::HTTP across 1.8, 1.9
and JRuby (possibly Rubinius if we have the time to do research)
3) Popular HTTP libraries that either make it easier to do HTTP by
providing better APIs, make it faster by using libCurl or both
4) Different approaches to deserializing popular encoding formats such
as XML and JSON and the pitfalls thereof
Producing HTTP APIs using Rails:
1) The basics of REST
2) What Rails gives you out of the box - content-type negotiation,
deserialization etc. and the limitations thereof
3) What Rails fails to give you out of the box - hypermedia controls etc.
4) What Rails does wrong - wrong PUT semantics, no support for PATCH,
error handling results in responses that violate the clients Accepts
header constraints etc.
4) How one can achieve Level 2 on the Richardson Maturity Model of
REST using Rails
5) Writing tests for all of this
At the end of this, our audience will understand how you can both
consume and produce HTTP APIs in the Ruby ecosystem. They will also
have a clear idea of what the limitations of such systems are and what
the can do to work around the limitations.
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
On the heals of Luis Lavena's RailsConf talk "Infiltrating Ruby Onto The Enterprise Death Star Using Guerilla Tactics" comes a local and frank talk about the current state of Open Source Software (OSS) participation from Windows developers. Learn what OSS is, what motivates its contributors, and how OSS can make you a stronger developer. Be prepared to fall in love with writing software again!
We will start off with a 101 introduction to both the Ruby programming language and the Ruby on Rails web application framework. You will learn about ActiveRecord, a powerful ORM that maps rich objects to your databases, and the latest components to use it with SQL Server. As a Rails core contributor and author of the SQL Server stack, I will give you a modern insight into both that will allow you to leverage your legacy data with Ruby.
Lastly, I will review the bleeding edge tools being actively created for Windows developers to ease the transition to Ruby, Rails and OSS from a POSIX driven world. Many things have changed. It is time to learn and perform some occupational maintenance.
Here are the changes to make:
1. In app/views/people/index.html.erb, change "Listing people" to "My Class List"
2. Update the each loop to display first initial and last name:
<% @people.each do |person| %>
<td><%= person.first_name[0] %>. <%= person.last_name %></td>
<% end %>
Ruby is an object-oriented programming language created in 1993, while Rails is a web application framework built using Ruby. The document provides an overview of Ruby and Rails, including what Rails is and its key advantages such as convention over configuration, don't repeat yourself (DRY) principles, and object-relational mapping (ORM). It also demonstrates creating a sample Rails application and using the Spree e-commerce gem.
I prepared this presentation to introduce Ruby on Rails to
a group of students at Università di Catania.
It is not enough to get a good grasp of Rails, the
presentation in fact was supported by live coding, where
I started created a Phrasalbook (no more blog engine
please :) )
This document provides an overview and agenda for a presentation on TorqueBox, which allows running Ruby on Rails applications with enterprise capabilities by running them on the JBoss application server. The presentation covers how Rails applications can be deployed on TorqueBox to gain access to services like the web container, message bus, and databases. It also discusses how additional features like scheduled jobs, asynchronous task queues, and SOAP endpoints can be integrated by following Rails-like conventions.
- Ruby on Rails is an open-source, full-stack framework for developing database-backed web applications using the Model-View-Controller pattern. It uses the Ruby programming language.
- Rails uses conventions over configurations, don't repeat yourself (DRY) principles, and an opinionated philosophy. It provides a directory structure, environment modes, and generators to quickly develop applications.
- The document provides an example of generating a bookmarks application with models, views, controllers, validations, associations, and AJAX functionality using Rails.
GenAI-powered assistants compared in a real case - 2025-03-18Alessandra Bilardi
AWS User Group Venezia #7
How to choose GenAI-powered assistants.
https://www.meetup.com/aws-user-group-venezia/events/305666720/
The SHARP (Social Inclusion, Hope and Recovery Project) aims to increase social inclusion, decrease distressing symptoms, reduce relapse, promote healthy living, and enable innovative practice for people in Lambeth experiencing psychosis. The impact assessment aims to use evidence collected to reach a wider audience, determine if the project makes a difference, and challenge preconceptions to effect systems changes. Reasons for the impact assessment include looking at quality of care delivered, not just numbers, and ensuring evidence requirements are appropriate for service development.
Working toward better patient referrals with Guy’s & St Thomas’ hospitalUnboxed
Malcolm is heading to the hospital again today for his appointment. He had to miss his last meeting due to a hospital appointment and does not want to inconvenience people by missing another. However, he has been feeling better lately and found the doctor's previous advice helpful. He considered just calling the doctor but decided an in-person appointment was necessary.
Automated software testing is important for ensuring quality, enabling faster and safer updates through continuous integration and deployment. Tests are run at different levels - from unit tests of individual code components to user acceptance tests. Testing has evolved from being mostly manual to including automated unit, integration, and system tests run on developers' machines and in continuous integration pipelines. Modern approaches like test-driven development involve writing tests before code is written to prevent regressions and keep applications stable.
GLA Testing Presentation by Test Partners Ltd v1Unboxed
The document summarizes a presentation on software testing. It discusses testing web and mobile applications for functionality, compatibility and accessibility. It compares manual and automated testing, covering topics like speed, thoroughness and ability to accommodate change. It also discusses concepts like context-driven testing, scripted vs exploratory testing, and considerations for client-side test environments.
Agile Tour Brussels: Think people, not resourcesUnboxed
Currently the number of jobs to be done far outweighs the number of people skilled enough to do those jobs. The jobs happen in a world where we place value on individuals and interactions over processes and tools. But processes and tools are fundamental in supporting our business operations.
By centring our tools around the user experience of those using them and the interactions we want to encourage then we put ourselves in a much better position to engage and retain top talent.
In this talk I explore maximising value in recruitment, onboarding, career progression and leavers processes through the application of agile and the affect it has on Employer Brand in a very competitive employment market space.
The document discusses the history and scaling of a UK government petition website. It describes three iterations of the website launched in 2006, 2011, and 2015. The first petition signed 1.8 million people against a vehicle tracking policy. The second saw over 327,000 sign a petition about lowering smear test age. The third was developed on the existing codebase and redesigned to be hosted on AWS. The aftermath section describes traffic to the site growing rapidly on Fridays and Saturdays after a national referendum.
SH:24 is a new online sexual health service provided in partnership with the NHS that allows people to get free STI test kits, information and advice 24 hours a day. The service aims to improve sexual health in Southwark and Lambeth by providing more accessible testing for infections like chlamydia and HIV. It also aims to improve access and quality of care by offering a convenient, discreet online option that can free up capacity in existing clinics. The service has seen high rates of testing and diagnosis, even among asymptomatic users, and has the potential to save costs while improving outcomes.
How to demonstrate value quickly and get buy-in earlyUnboxed
Martyn Evans discusses how to demonstrate value quickly and gain buy-in early. He recommends communicating openly and frequently, setting out to disprove your assumptions rather than prove yourself right, and assembling a small team of generalists. Quotes emphasize the importance of taking action instead of just talking, and showing progress even when none has been made. The goal is to involve local stakeholders and meet the GDS Service Standard.
Masterclass: Deliver 50% growth with Lean UXUnboxed
The document outlines an agenda for a Lean UX masterclass event covering how to deliver 50% growth with Lean UX. The schedule includes introductory and warm up sessions in the morning, followed by sessions on learning and building, and testing and creating a plan. There will also be a final exercise before closing. The document also provides information on key performance indicators and how to measure business metrics, goals, tactics, and the benefits of using KPI trees to understand strategy and how measures interact. Various tools for measuring KPIs are also listed.
Webinar: Speed up problem and customer validationUnboxed
Unlock development by quickly and deeply understanding 1) the real problem that your digital product or service needs to solve and 2) the exact customers who will pay for the solution. Learn techniques to rapidly and reliably gather data that enables the team to build the RIGHT product.
Speed up stakeholder communication and sign offUnboxed
Understand how to rapidly engage and build confidence with your stakeholders and create momentum on the features they really need. Apply communication ceremonies that give everyone clarity help slice through a complex stakeholder decision making unit.
The document discusses the importance of building rich knowledge structures in the brain over time through chunking information, strengthening connections between concepts, addressing misconceptions, and appealing to both rational and emotional thinking, rather than trying to convey a mass of information at once or relying on sparse, disconnected knowledge. It encourages slowly and patiently constructing understanding in a way that offers an easy way for the brain to understand and accept new information.
A warm hug at the door that opens many moreUnboxed
What you do to welcome new people in the first few weeks and months has a major impact on whether or not your people deliver results. In this session I propose the exploration of how we have adapted what we do in new joiner Induction to be as close to a loving embrace as is virtually possible without turning an introvert's stomach.
By Claire Kemp
@ClaireKmp
Unstick your digital products - 25th March 2015Unboxed
This document provides an agenda and details for an event called "Unstick your digital products" being held on March 25th. The agenda includes an introduction exercise, several speaker sessions, and a closing time of 12:30 pm. Attendees are encouraged to use the hashtag #StuckPipeline and follow the Twitter account @Ubxd. The document then provides summaries of the planned talks, including an overview of the SH:24 sexual health service and discussions on product management and moving stalled products forward. Evaluation methods and next steps for the SH:24 service are also outlined.
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
Semantic Cultivators : The Critical Future Role to Enable AIartmondano
By 2026, AI agents will consume 10x more enterprise data than humans, but with none of the contextual understanding that prevents catastrophic misinterpretations.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
Mobile App Development Company in Saudi ArabiaSteve Jonas
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
Quantum Computing Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...SOFTTECHHUB
I started my online journey with several hosting services before stumbling upon Ai EngineHost. At first, the idea of paying one fee and getting lifetime access seemed too good to pass up. The platform is built on reliable US-based servers, ensuring your projects run at high speeds and remain safe. Let me take you step by step through its benefits and features as I explain why this hosting solution is a perfect fit for digital entrepreneurs.
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Generative Artificial Intelligence (GenAI) in BusinessDr. Tathagat Varma
My talk for the Indian School of Business (ISB) Emerging Leaders Program Cohort 9. In this talk, I discussed key issues around adoption of GenAI in business - benefits, opportunities and limitations. I also discussed how my research on Theory of Cognitive Chasms helps address some of these issues
8. ACTION CABLE: TERMINOLOGYACTION CABLE: TERMINOLOGY
Channel:
- similar to a controller in MVC
Consumer:
- WebSocket client, typically a browser
Subscriber:
- a consumer that’s connected to a channel
Subscription:
- a connection between the consumer and the channel
9. ACTION CABLE: PRESENCE EXAMPLEACTION CABLE: PRESENCE EXAMPLE
Create a connection class
Create an application channel class
Connect in the browser
Create a channel class
Create a subscription class
10. ACTION CABLE: CONNECTION CLASSACTION CABLE: CONNECTION CLASS
# app/channels/application_cable/connection.rb
module ApplicationCable
class Connection < ActionCable::Connection::Base
identified_by :current_user
def connect
self.current_user = find_verified_user
end
protected
def find_verified_user
if current_user = User.find(cookies.signed[:user_id])
current_user
else
reject_unauthorized_connection
end
end
end
end
11. ACTION CABLE: APPLICATION CHANNEL CLASSACTION CABLE: APPLICATION CHANNEL CLASS
# app/channels/application_cable/channel.rb
module ApplicationCable
class Channel < ActionCable::Channel::Base
# shared logic between channels
end
end
13. ACTION CABLE: CHANNEL CLASSACTION CABLE: CHANNEL CLASS
# app/channels/appearance_channel.rb
class AppearanceChannel < ApplicationCable::Channel
def subscribed
current_user.appear
end
def unsubscribed
current_user.disappear
end
def appear(data)
current_user.appear on: data['appearing_on']
end
def away
current_user.away
end
end
14. ACTION CABLE: SUBSCRIPTION CLASSACTION CABLE: SUBSCRIPTION CLASS
# app/assets/javascripts/cable/subscriptions/appearance.coffee
App.appearance = App.cable.subscriptions.create "AppearanceChannel",
connected: ->
# Called once the subscription has been successfully completed
appear: ->
@perform 'appear', appearing_on: @appearingOn()
away: ->
@perform 'away'
appearingOn: ->
$('main').data 'appearing-on'
$(document).on 'page:change', ->
App.appearance.appear()
$(document).on 'click', '[data-behavior~=appear_away]', ->
App.appearance.away()
false
15. ACTION CABLE: ROUGH EDGESACTION CABLE: ROUGH EDGES
Redis required for pubsub
Have to run a second server
Two concurrency models
18. TURBOLINKS 3: NEW FEATURESTURBOLINKS 3: NEW FEATURES
New data attributes:
data-turbolinks-permanent
data-turbolinks-temporary
Redirecting uses Turbolinks for XHR and non-GET requests
Progress bar enabled by default
19. TURBOLINKS 3: PERSISTENT ELEMENTSTURBOLINKS 3: PERSISTENT ELEMENTS
data-turbolinks-permanent
Elements transferred from page to page
Maintains state - ideal for sidebar navigation
Elements must have a unique id attribute
<div id="sidebar" data-turbolinks-permanent="">
Never changes after initial load.
</div>
20. TURBOLINKS 3: PARTIAL REPLACEMENTTURBOLINKS 3: PARTIAL REPLACEMENT
Replacement based on id or id and data attributes
Match on id prefixes using colon, e.g:
<div id="flash" data-turbolinks-temporary="">
You have 2 comments.
</div>
<ul id="comments">
<li id="comments:1">Hello, World!</li>
<li id="comments:2">Goodbye!</li>
</ul>
// Will change #flash, #comments, #comments:1, #comments:2
Turbolinks.visit(url, { change: ['comments'] });
// Will change #flash, #comments:1
Turbolinks.visit(url, { change: ['comments:1'] });
21. TURBOLINKS 3: PARTIAL REPLACEMENTTURBOLINKS 3: PARTIAL REPLACEMENT
Also available server-side with redirect_to or render
Replacement based on id or id and data attributes
Use one of change, keep or change options, e.g:
class CommentsController < ActionController::Base
def create
@comment = Comment.new(comment_params)
if @comment.save
redirect_to comments_url, change: 'comments'
else
render :new, change: :new_comment
end
end
end
22. TURBOLINKS 3: PARTIAL REPLACEMENTTURBOLINKS 3: PARTIAL REPLACEMENT
Behaviour of render and redirect_to options:
# Refresh any `data-turbolinks-temporary` nodes and
# nodes with `id` matching `new_comment`.
render view, change: 'new_comment'
# Refresh any `data-turbolinks-temporary` nodes and nodes
# with `id` not matching `something` and `something:*`.
render view, keep: 'something'
# Replace the entire `body` of the document,
# including `data-turbolinks-permanent` nodes.
render view, flush: true
25. SPROCKETS 4: CHANGESSPROCKETS 4: CHANGES
New home – now a Rails organisation project
Source maps
ES6 support via
Many thanks to
Babel
Richard Schneeman
30. RAILS 5: CLEANING HOUSERAILS 5: CLEANING HOUSE
XML support extracted to gems
Action Mailer
*_path helpers
deliver and deliver!
Action Pack
DOM Assertions
:only_path option in *_path helpers
string controller and action keys
:to without controller#action
:to with a symbol
31. RAILS 5: CLEANING HOUSERAILS 5: CLEANING HOUSE
Active Model
reset_[attribute] and reset_changes
Action Record
Boolean semantics more aligned with Ruby
Transaction callbacks no longer swallow errors
sanitize_sql_hash_for_conditions
Default timestamps columns to null: false
serialized_attributes
Automatic counter caches on has_many :through
32. RAILS 5: CLEANING HOUSERAILS 5: CLEANING HOUSE
Active Support
Default test order is now random
BigDecimal is always encoded as a string
silence_stderr, silence_stream, capture and quietly
Railties
rake test:all and rake test:all:db
33. RAILS 5: CLEANING HOUSERAILS 5: CLEANING HOUSE
New deprecations in Active Record for 5.1
Conditions with delete_all and destroy_all
ActiveRecord::Relation#uniq
Passing a class to where
Columns of type :time will become timezone aware
35. RAILS 5: EVOLUTION, NOT REVOLUTIONRAILS 5: EVOLUTION, NOT REVOLUTION
Active Record callbacks can now be halted explicitly
throw :abort
New apps get new behaviour
Upgraded apps get a deprecation warning
36. RAILS 5: EVOLUTION, NOT REVOLUTIONRAILS 5: EVOLUTION, NOT REVOLUTION
ActionController::Parameters no longer inherits from Hash
Composition over inheritance FTW!
No more accidentally calling Enumerable methods
No more accidentally returning a Hash
No more accidentally losing permitted? status
37. RAILS 5: EVOLUTION, NOT REVOLUTIONRAILS 5: EVOLUTION, NOT REVOLUTION
validates_acceptance_of accepts 1 or true
Reversible syntax for change_column_default
# user.rb
class User < ActiveRecord::Base
attr_accessor :terms_and_conditions
validates_acceptance_of :terms_and_conditions
end
change_column_default(:posts, :state, from: nil, to: "draft")
38. RAILS 5: EVOLUTION, NOT REVOLUTIONRAILS 5: EVOLUTION, NOT REVOLUTION
Accept a collection in fresh_when and stale?
expands to:
def index
@article = Article.all
fresh_when(@articles)
end
def index
@article = Article.all
fresh_when(etag: @articles, last_modified: @articles.maximum(:updated_at))
end
39. RAILS 5: EVOLUTION, NOT REVOLUTIONRAILS 5: EVOLUTION, NOT REVOLUTION
Add a http_cache_forever to never expire content
Remove restrictions on partial names
def hello_world
http_cache_forever do
render text: "Hello, World!"
end
end
render partial: '! '
40. RAILS 5: EVOLUTION, NOT REVOLUTIONRAILS 5: EVOLUTION, NOT REVOLUTION
Boot rails s in development with caching enabled
Non-request context rendering
rails s --dev-caching
ApplicationController.render template: 'foo/bar'
41. RAILS 5: EVOLUTION, NOT REVOLUTIONRAILS 5: EVOLUTION, NOT REVOLUTION
Built-in support for generating token attributes
Raw model validation errors
class User < ActiveRecord::Base
has_secure_token
end
class User < ActiveRecord::Base
validates :name, presence: true
end
user = User.new; user.valid?; user.errors.details
=> { name: [{ error: :blank }] }
42. RAILS 5: EVOLUTION, NOT REVOLUTIONRAILS 5: EVOLUTION, NOT REVOLUTION
weekend? query method for date and time
next_weekday for next working day
prev_weekday for previous working day
Date.current.weekend?
=> false
Date.current.end_of_week.next_weekday
=> Mon, 21 Sep 2015
Date.current.beginning_of_week.prev_weekday
=> Fri, 11 Sep 2015
43. RAILS 5: EVOLUTION, NOT REVOLUTIONRAILS 5: EVOLUTION, NOT REVOLUTION
Integer#positive? and Integer#negative?
Built-in support for method.source_code
rails is now the command hub, e.g:
>> Object.new.method(:blank?).source_code
def blank?
respond_to?(:empty?) ? !!empty? : !self
end
rails db:migrate
45. RAILS 5: API ONLY APPLICATIONSRAILS 5: API ONLY APPLICATIONS
rails new my_api --api
Limited middleware stack
ApplicationController < ActionController::API
Still has essentials like CSRF and HTTP caching
By default uses Active Model Serializers for output
46. INTEGRATION TESTSINTEGRATION TESTS
Introduced in Rails 1.1
Confusion between controller and integration tests
Controller tests to become integration tests (TBC)
Performance improvements means no cost
Assertions for assigns and rendered templates removed
47. HOW TO PREPARE?HOW TO PREPARE?
Upgrade to Ruby 2.2.3
Upgrade to Rails 4.2.4
Remove legacy gems
Audit dependencies
48. SUPPORT POLICY: BUG FIXESSUPPORT POLICY: BUG FIXES
Current minor release
Previous minor release
Currently: 4.1 & 4.2
Will be: 4.2 & 5.0
49. SUPPORT POLICY: SECURITY UPDATESSUPPORT POLICY: SECURITY UPDATES
Bug fix releases
Last minor of the previous major
Currently: 3.2, 4.1 & 4.2
Will be: 4.2 & 5.0