On February 18th, 2010 was O'Reilly's "Exploring Rails 3" online conference and these are Gregg Pollack's slides. They are by no means a complete record of improvements in Rails 3, but they should serve to get your appetite wet.
25 Real Life Tips In Ruby on Rails DevelopmentBelighted
This is a collection of small tips and tricks related to developing web applications using the Ruby on Rails framework.
These tips are gathered from my personal experience of 4 years working with the framework, including more than 2 years of professional work at Belighted.
The talk was given in the Ruby on Rails Developer Room at Fosdem 2010 (www.fosdem.org).
25 Real Life Tips In Ruby on Rails DevelopmentBelighted
This is a collection of small tips and tricks related to developing web applications using the Ruby on Rails framework.
These tips are gathered from my personal experience of 4 years working with the framework, including more than 2 years of professional work at Belighted.
The talk was given in the Ruby on Rails Developer Room at Fosdem 2010 (www.fosdem.org).
Slides from a presentation given at Laravel Chicago on November 18, 2014. Goes over the basics of building a REST API using the Laravel framework as well as some handy tips and tools.
Laravel is a PHP MVC based framework. It is as easy as codeigniter, yet provides powerful tools needed for large robust application.It is built on top of symphony components and is inspired by many other frameworks including RoR, Asp .net, Sinatra.This session focuses on the basics things needed to start building application on it.
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Ryan Weaver
If you're like me, you know that being a great backend developer isn't enough. To make *truly* great applications, we need to spend significant time in an area that's moving at a lightning pace: frontend development.
This talk is for you: the backend developer that wants to hook their API's up to rich, interactive JavaScript frontends. To do that, first, we need to demystify a lot of new terms, like ES6/ES2015, ECMAScript, JSX, Babel and the idea that modern JavaScript (surprise) *requires* a build step.
With this in mind, I'll give you a brief introduction into Webpack & the modular development it finally allows.
But the real star is ReactJS. In the frontend world, you never know what new tech will *win*, but React is a star. I'll give you enough of an intro to get you rolling on your project.
The new frontend dev world is huge! Consider the starting line down an exciting new journey.
Keeping the frontend under control with Symfony and WebpackIgnacio Martín
Webpack tutorial with tips for Symfony users. Topics covered include: current frontend trends, setup, loaders, dev tools, optimization in production, bundle splitting and tips and tricks for using webpack with existing projects.
Symfony Munich Meetup 2016.
Workshop: EmberJS - In Depth
- Ember Data - Adapters & Serializers
- Routing and Navigation
- Templates
- Services
- Components
- Integration with 3rd party libraries
Presentado por ingenieros: Mario García y Marc Torrent
Symfony Guard Authentication: Fun with API Token, Social Login, JWT and moreRyan Weaver
There are so many interesting ways to authenticate a user: via an API token, social login, a traditional HTML form or anything else you can dream up.
But until now, creating a custom authentication system in Symfony has meant a lot of files and a lot of complexity.
Introducing Guard: a simple, but expandable authentication system built on top of Symfony's security component. Want to authenticate via an API token? Great - that's just one class. Social login? Easy! Have some crazy legacy central authentication system? In this talk, we'll show you how you'd implement any of these in your application today.
Don't get me wrong - you'll still need to do some work. But finally, the path will be clear and joyful.
Caldera Learn - LoopConf WP API + Angular FTW WorkshopCalderaLearn
The WordPress REST API combined with a JavaScript MVC framework opens up new possibilities for better, more intuitive interfaces that solve scaling and other challenges. In this workshop we will use AngularJS, the best — because we said so — and the WordPress REST API to create custom applications. First we will walk through creating custom API routes and endpoints to interact with your data, followed by two unique ways to use AngularJS to create better interfaces for your projects. This will include a decoupled front-end and single page web app as a plugin interface.
"The road to Ember.js 2.0" by Lucio Grenzi
Why should I use Ember.js? JavaScript MVC frameworks are plentiful. In this presentation I will give you some compelling reasons to consider Ember,and the the new parts coming from the upcoming version 2.0. Different from other framework the new vesion does not brings a far new world because the dev team has planned continuos releases in order to improve backward compatibility. But there are new parts, like in React, the "virtual DOM" to improve performance. In this talk I will go through the new parts of EmberJS 2.0
Workshop Apps with ReactNative III:
- React Native short Recap
- The Native Side
- Building Native Modules (iOS & Android)
- Building Native Components (iOS & Android)
Presentado por ingenieros Alberto Irurueta y Enrique Oriol
Slides from a presentation given at Laravel Chicago on November 18, 2014. Goes over the basics of building a REST API using the Laravel framework as well as some handy tips and tools.
Laravel is a PHP MVC based framework. It is as easy as codeigniter, yet provides powerful tools needed for large robust application.It is built on top of symphony components and is inspired by many other frameworks including RoR, Asp .net, Sinatra.This session focuses on the basics things needed to start building application on it.
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Ryan Weaver
If you're like me, you know that being a great backend developer isn't enough. To make *truly* great applications, we need to spend significant time in an area that's moving at a lightning pace: frontend development.
This talk is for you: the backend developer that wants to hook their API's up to rich, interactive JavaScript frontends. To do that, first, we need to demystify a lot of new terms, like ES6/ES2015, ECMAScript, JSX, Babel and the idea that modern JavaScript (surprise) *requires* a build step.
With this in mind, I'll give you a brief introduction into Webpack & the modular development it finally allows.
But the real star is ReactJS. In the frontend world, you never know what new tech will *win*, but React is a star. I'll give you enough of an intro to get you rolling on your project.
The new frontend dev world is huge! Consider the starting line down an exciting new journey.
Keeping the frontend under control with Symfony and WebpackIgnacio Martín
Webpack tutorial with tips for Symfony users. Topics covered include: current frontend trends, setup, loaders, dev tools, optimization in production, bundle splitting and tips and tricks for using webpack with existing projects.
Symfony Munich Meetup 2016.
Workshop: EmberJS - In Depth
- Ember Data - Adapters & Serializers
- Routing and Navigation
- Templates
- Services
- Components
- Integration with 3rd party libraries
Presentado por ingenieros: Mario García y Marc Torrent
Symfony Guard Authentication: Fun with API Token, Social Login, JWT and moreRyan Weaver
There are so many interesting ways to authenticate a user: via an API token, social login, a traditional HTML form or anything else you can dream up.
But until now, creating a custom authentication system in Symfony has meant a lot of files and a lot of complexity.
Introducing Guard: a simple, but expandable authentication system built on top of Symfony's security component. Want to authenticate via an API token? Great - that's just one class. Social login? Easy! Have some crazy legacy central authentication system? In this talk, we'll show you how you'd implement any of these in your application today.
Don't get me wrong - you'll still need to do some work. But finally, the path will be clear and joyful.
Caldera Learn - LoopConf WP API + Angular FTW WorkshopCalderaLearn
The WordPress REST API combined with a JavaScript MVC framework opens up new possibilities for better, more intuitive interfaces that solve scaling and other challenges. In this workshop we will use AngularJS, the best — because we said so — and the WordPress REST API to create custom applications. First we will walk through creating custom API routes and endpoints to interact with your data, followed by two unique ways to use AngularJS to create better interfaces for your projects. This will include a decoupled front-end and single page web app as a plugin interface.
"The road to Ember.js 2.0" by Lucio Grenzi
Why should I use Ember.js? JavaScript MVC frameworks are plentiful. In this presentation I will give you some compelling reasons to consider Ember,and the the new parts coming from the upcoming version 2.0. Different from other framework the new vesion does not brings a far new world because the dev team has planned continuos releases in order to improve backward compatibility. But there are new parts, like in React, the "virtual DOM" to improve performance. In this talk I will go through the new parts of EmberJS 2.0
Workshop Apps with ReactNative III:
- React Native short Recap
- The Native Side
- Building Native Modules (iOS & Android)
- Building Native Components (iOS & Android)
Presentado por ingenieros Alberto Irurueta y Enrique Oriol
Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)Camille Roux
Camille Roux vous explique pourquoi Ruby et Ruby on Rails peuvent être un choix fantastique pour vos prochains projets. Pendant une heure vous aurez le plaisir de faire un tour en orbite autour de la planète Ruby. Après un bref voyage dans le temps pour comprendre son histoire, vous découvrirez ce qui rend ce monde si magique.
Camille répondra à de nombreuses questions que vous vous posez sûrement :
*Pourquoi y-a-t-il un tel d'engouement envers Rails en ce moment?
*Rails est-il performant? pourquoi?
*Pourquoi est-ce un environnement si confortable pour les développeur?
*Qu'est-ce qui rend cette techno si efficace?
*Quel est l'avenir de Rails?
10 Insightful Quotes On Designing A Better Customer ExperienceYuan Wang
In an ever-changing landscape of one digital disruption after another, companies and organisations are looking for new ways to understand their target markets and engage them better. Increasingly they invest in user experience (UX) and customer experience design (CX) capabilities by working with a specialist UX agency or developing their own UX lab. Some UX practitioners are touting leaner and faster ways of developing customer-centric products and services, via methodologies such as guerilla research, rapid prototyping and Agile UX. Others seek innovation and fulfilment by spending more time in research, being more inclusive, and designing for social goods.
Experience is more than just an interface. It is a relationship, as well as a series of touch points between your brand and your customer. Here are our top 10 highlights and takeaways from the recent UX Australia conference to help you transform your customer experience design.
For full article, continue reading at https://yump.com.au/10-ways-supercharge-customer-experience-design/
Dans cette session vous apprendrez tout sur Ruby. Le langage, les frameworks, la communauté, mais surtout un esprit. Passé le teaser, Nicolas Ledez vous présentera comment Ruby peut vous apporter tous les jours une méthodologie dans votre travail, et des outils pour réaliser un prototype rapidement. Quel que soit votre langage d'origine, Ruby complète parfaitement votre boite à outils de développeur/administrateur système.
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.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
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.
1. Beautiful Code in Rails 3
by
Gregg Pollack
Starting a new app
New Router API
ActionController - respond_with
ActionMailer Syntax
ActiveRelation (arel)
ERB Strings Escaped
Unobtrusive Javascript
2. Starting a New App
$ rails
Usage:
rails APP_PATH [options]
Options:
‐O, [‐‐skip‐activerecord] # Skip ActiveRecord files
‐r, [‐‐ruby=PATH] # Path to the Ruby binary of your choice
# Default: /Users/greggpollack/.rvm/rubies/ruby‐
‐T, [‐‐skip‐testunit] # Skip TestUnit files
[‐‐dev] # Setup the application with Gemfile pointing
to your rails checkout
‐J, [‐‐skip‐prototype] # Skip Prototype files
‐G, [‐‐skip‐git] # Skip Git ignores and keeps
‐m, [‐‐template=TEMPLATE] # Path to an application template
‐d, [‐‐database=DATABASE] # Preconfigure for selected database
[‐‐edge] # Setup the application with Gemfile
# pointing to Rails repository
3. $ rails test_app
create $ ls script/
create README
create .gitignore
...
$ cd test_app/
rails
$ rails
Usage: rails COMMAND [ARGS]
The most common rails commands are:
generate Generate new code (short‐cut alias: "g")
c
console Start the Rails console (short‐cut alias: " ")
s
server Start the Rails server (short‐cut alias: " ")
dbconsole Start a console for the database specified in config/database.yml
(short‐cut alias: "db")
In addition to those, there are:
application Generate the Rails application code
destroy Undo code generated with "generate"
benchmarker See how fast a piece of code runs
profiler Get profile information from a piece of code
plugin Install a plugin
runner Run a piece of code in the application environment
All commands can be run with ‐h for more information.
4. old scripts new hotness
script/generate rails g
script/console rails c
script/server rails s
script/dbconsole rails db
5. old scripts new hotness
script/generate r g
script/console r c
script/server r s
script/dbconsole r db
alias r='rails'
9. New Routing API
Rails 2
map.resources :posts do |post|
post.resources :comments
end
Rails 3
resources :posts do
resources :comments
end
10. New Routing API
Rails 2
map.resources :posts, :member => { :confirm => :post, :notify => :post } do |post|
post.resources :comments, :member => { :preview => :post }, :collection => { :archived => :get }
end
Rails 3
resources :posts do
member do Rails 3
post :confirm
resources :posts do
get :notify
member do
end
post :confirm
get :notify
resources :comments do
end
member do
post :preview
resources :comments do
end
post :preview, :on => :member
get :archived, :on => :collection
collection do
end
get :archived
end
end
end
end
14. Beautiful Code in Rails 3
Starting a new app
New Router API
ActionController - respond_with
ActionMailer Syntax
ActiveRelation (arel)
ERB Strings Escaped
Unobtrusive Javascript
#Rails3OMGPonies!
15. New ActionController Syntax
Regular Syntax
class UsersController < ApplicationController
def index
@users = User.all
respond_to do |format|
format.html
format.xml { render :xml => @users.to_xml }
end
end
def show
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
...
16. New ActionController Syntax
Improved Syntax
class UsersController < ApplicationController
respond_to :html, :xml, :json
def index
@users = User.all
respond_with(@users)
end
def show
@user = User.find(params[:id])
respond_with(@user)
end
...
19. New ActionMailer Syntax
Rails 2
def welcome(user, subdomain)
subject 'Welcome to TestApp'
recipients user.email
from 'admin@testapp.com'
body :user => user, :subdomain => subdomain
end
UserMailer.deliver_welcome(user, subdomain)
Rails 3
def welcome(user, subdomain)
@user = user
@subdomain = subdomain
mail(:from => "admin@testapp.com",
:to => user.email,
:subject => "Welcome to TestApp")
end
UserMailer.welcome(user, subdomain).deliver
20. New ActionMailer Syntax
Rails 3
class UserMailer < ActionMailer::Base
default :from => "admin@testapp.com"
def welcome(user, subdomain)
@user = user
@subdomain = subdomain
attachments['test.pdf'] = File.read("#{Rails.root}/public/test.pdf")
mail(:to => @user.email, :subject => "Welcome to TestApp") do |format|
format.html { render 'other_html_welcome' }
format.text { render 'other_text_welcome' }
end
end
end
welcome.text.erb
Defaults welcome.html.erb
21. Nic k Kallen
ActiveRelation
replaces the internal ad-hoc query generation with
query generation based on relational algebra.
22. ActiveRelation
Rails 2
@posts = Post.find(:all, :conditions => {:published => true})
immediately queries the db
returns an Array of Posts
Rails 3
@posts = Post.where(:published => true)
doesn’t query the db
returns an ActiveRecord::Relation
24. We can refactor!
@posts = Post.where(:published => true)
if params[:order]
@posts = @posts.order(params[:order])
end
@posts = Post.where(:published => true)
@posts = @posts.order(params[:order])
@posts = Post.where(:published => true).order(params[:order])
25. ActiveRelations can be Shared
@posts = Post.where(:published => true).order(params[:order])
posts = Post.order(params[:order])
@published = posts.where(:published => true)
@unpublished = posts.where(:published => false)
This is obviously a bad example (should be using named routes)
@published = Post.published
@unpublished = Post.unpublished
26. ActiveRelation
@published = Post.published
@unpublished = Post.unpublished
Rails 2
class Post < ActiveRecord::Base
default_scope :order => 'title'
named_scope :published, :conditions => {:published => true}
named_scope :unpublished, :conditions => {:published => false}
end
Rails 3
class Post < ActiveRecord::Base
default_scope order('title')
scope :published, where(:published => true)
scope :unpublished, where(:published => false)
end
27. ActiveRelation
New Finder Methods
where(:conditions)
having(:conditions)
select
group
order
limit
offset
joins
includes(:include)
lock
readonly
from
28. ActiveRelation
Rails 2
Post.find(:all, :conditions => {:author => "Joe"}, :includes => :comments,
:order => "title", :limit => 10)
Rails 3
Post.where(:author => "Joe").include(:comments).order(:title).limit(10)
Remember, this version doesn’t do the query immediately
29. Beautiful Code in Rails 3
Starting a new app
New Router API
ActionController - respond_with
ActionMailer Syntax
ActiveRelation (arel)
ERB Strings Escaped
Unobtrusive Javascript
#Rails3OMGPonies!
30. Use of external libraries
ActiveRecord ActiveRelation
ActionView Erubis
Erubis is a fast, secure, and very extensible implementation of ERB
32. Adopting Unobtrusive Javascript
HTML 5 custom data attributes data-*
Custom data attributes are intended to store custom data private to the page or
application, for which there are no more appropriate attributes or elements
data-remote
data-method
data-confirm
data-disable-with
39. /public/stylesheets/rails.js
document.observe("dom:loaded", function() {
$(document.body).observe("click", function(event) {
var message = event.element().readAttribute('data-confirm');
if (message) {
// ... Do a confirm box
}
var element = event.findElement("a[data-remote=true]");
if (element) {
// ... Do the AJAX call
}
var element = event.findElement("a[data-method]");
if (element) {
// ... Create a form
}
});
40. jQuery in Rails?
http://github.com/rails/jquery-ujs
$('a[data-confirm],input[data-confirm]').live('click', function () {
// ... Do a confirm box
});
$('form[data-remote="true"]').live('submit', function (e) {
// ... Do an AJAX call
});
42. Beautiful Code in Rails 3
Starting a new app
New Router API
ActionController - respond_with
ActionMailer Syntax
ActiveRelation (arel)
ERB Strings Escaped
Unobtrusive Javascript
#Rails3OMGPonies!
43. Missing (that I didn’t have time for)
APIs
Bundler
http://railscasts.com/episodes/201-bundler
Making Generators with Thor
http://bit.ly/rails3generators
44. Creative Commons
name author URL
rainbow of 80s toys merwing✿little dear http://www.flickr.com/photos/merwing/2152164258/
Old Loc Merlijn Hoek http://www.flickr.com/photos/merlijnhoek/1040997599/
Notting Hill Gate Eole http://www.flickr.com/photos/eole/942309733/
Britomart Train Station EssjayNZ http://www.flickr.com/photos/essjay/260511465/
Das Licht Small http://www.flickr.com/photos/small/62713023/
Metro Genova opti mystic http://www.flickr.com/photos/miiilio/2503634282/
Immobility Dilemna gilderic http://www.flickr.com/photos/gilderic/3528157964/
train station nolifebeforecoffee http://www.flickr.com/photos/nolifebeforecoffee/1803584805/
Mystical station Jsome1 http://www.flickr.com/photos/jsome1/2226394415/
Railswaystation Pieter Musterd http://www.flickr.com/photos/piet_musterd/2233025691/
The Handover MarkyBon http://www.flickr.com/photos/markybon/152769885/
EN57 magro_kr http://www.flickr.com/photos/iks_berto/1328682171/
45. Presentation by: If you need help with a Rails 3
project, feel free to give us a call
http://envylabs.com
Come to our Rails 3 training at
Railsconf 2010
Gregg Pollack
http://bit.ly/rails3ropes
407-754-5517
Gregg@EnvyLabs.com
We’re also available to run Rails 3
Training at your company, email:
Ruby5 Podcast Gregg@EnvyLabs.com
http://ruby5.envylabs.com