RACK / SSO. and a little bit about the Bundler. Tuesday, December 1, 2009 hello hello
|
|
- Arabella Hopkins
- 6 years ago
- Views:
Transcription
1 RACK / SSO and a little bit about the Bundler hello hello
2 COREY / atmos@atmos.org i m a software developer and open source participant for a number of years this is me in hawaii last month with a much more awesome beard
3 ENGINE YARD i ve been at engineyard for 2.5 years did support for the first year, now doing internal development we do a lot of microapps
4 HANCOCK will smith was not involved in the creation of this project
5 like your john hancock not for everyone but i m hoping to keep it ongoing as a working example
6 RACK it s what everyone is using now, rails, merb, sinatra, ramaze realizing the power of rack helped me really embrace the simplicity of sinatra
7 SINATRA IS AWESOME 2009 has mainly been sinatra and datamapper for us there s still 2 merb apps we maintain, one of them is our SSO provider
8 GIT://GITHUB.COM/ATMOS/HANCOCK.GIT
9 SINGLE SIGN ON
10 TRADITIONAL OPENID user agent == browser consumer == app using openid to authenticate clients provider == openid provider the consumer talks to
11 TRADITIONAL OPENID no more specifying who you are no more consumer <-> provider identity negotiation no more choosing of profiles on the server
12 HANCOCK NEGOTIATION by cutting those out there s fewer redirects much easier to see what portions of the openid spec are used still conforms to the spec so it should be easily accessible from any language
13 # ~/p/hancock/bin/shotgun -p PORT config.ru require 'hancock' DataMapper.setup(:default, "sqlite3://#{file.dirname( FILE )}/development.rb") DataMapper.auto_migrate! Hancock::Consumer.create(:url => ' :label => 'Rails Dev', :internal => false) Hancock::Consumer.create(:url => ' :label => 'Rack Fans', :internal => false) Hancock::Consumer.create(:url => ' :label => 'Shotgun Fans', :internal => false) class Dragon < Hancock::App get '/' do redirect '/sso/login' unless session['hancock_server_user_id'] erb "<h2>hello <%= session_user.name %><!-- <%= session.inspect %>" run Dragon run Hancock::App example rackup file
14 HANCOCK-CLIENT there s a client middleware for consumers microapps are great for spikes that can expose business value with something like this we can spin up microapps quickly
15 hancock-client-rails require File.join(File.dirname( FILE ), 'boot') Rails::Initializer.run do config config.gem 'hancock', :lib => 'hancock' config.middleware.use Hancock::Client::Middleware do sso sso.sso_url = ' # all your other normal stuff middleware like this works in rails too in versions > 2.3.x you can either use the use keyword or the the generators for rails metal
16 UNDER THE HOOD it s what everyone is using now, rails, merb, sinatra, ramaze realizing the power of rack helped me really embrace the simplicity of sinatra
17
18 specific middleware use invokes initialize method it can take a block use
19 initialize arity for use first parameter is the middleware constant initializing with a block can do cool things. use in Sinatra
20 #!/usr/bin/env rackup use EY::SSO do sso sso.only_staff! use EY::ContactManager
21 use in Rails
22 config.middleware.use require File.join(File.dirname( FILE ), 'boot') Rails::Initializer.run do config config.gem 'hancock', :lib => 'hancock' config.middleware.use Hancock::Client::Middleware do sso sso.sso_url = ' # all your other normal stuff
23 script/generate metal sso # Allow the metal piece to run in isolation require(file.dirname( FILE ) + "/../../config/environment") unless defined?(rails) require 'hancock-client' class Sso < Hancock::Client::Default disable :raise_errors set :sso_url, ' works fine for inheriting from Sinatra::Default so you can write sinatra in rails if you want :)
24 map is a way to mount applications we use it for everyday kinds of things map
25 helpers do def url(path) request.script_name + path
26 #!/usr/bin/env rackup require File.dirname( FILE ) + '/lib/setup' require 'gateway/app' require 'migration/app' use Rack::Static, :urls => ["/css", "/img", "/js"], :root => "public" map "/gateway/" do use EY::SSO run Gateway::App map "/migration/" do use Rack::ShowExceptions if ENV["RACK_ENV"] == "production" use EY::SSO do sso sso.only_staff! run Migration::App map "/" do app = lambda do env [404, {"Content-Type" => "text/plain", "Content-Length" => "9"}, ["Not found"]] run app two separate apps, Migration::App and Gateway::App working fine together on subdir mappings
27 PROBLEMS
28 FRAGILE most fragile point is our integration with our CRM system, salesforce we have datamapper models but keeping things in sync proves to be crazy we use hoptoad and are diligent about resolving any exceptions we receive
29 CONFUSING usability and accessibility can easily be neglected, users get confused not being able to get every system on to something centralized leads to more confusion if you re going to go this route sp a chunk of time on the UX
30 TESTING how does SSO really behave today, will it behave that way tomorrow? providing a decent client API makes it easy to test, provide mocks instead of vice versa make it trivial to test so people actually do, cuts down on support
31 ADAPTERS MAKE IT EASY adapters allow us to pick the back we want to test at any time we don t write tests to do a full integration test, we just flip a switch to turn on a different adapter this allows us to iterate quickly on in memory mocks and run everything when the feature works
32 SECURITY sessions are cookie sessions, so they re difficult to expire on consumers there is https, the consumer whitelist allows and communicates over https :) single sign out sucks because it requires a shared domain cookie
33 YAY, COOKIE SESSIONS
34 THE BUNDLER how to deploy your new baby and ensure it ll play well with others this is how we manage lots of apps depencies in a repeatable manner think merb s bundling that actually works.
35 THE BUNDLER people can and will do crazy shit with rubygems. it s available on github under the wycats user carl lerche has done a tremous job keeping all of the insanity in order
36 gem 'rack_hoptoad', gem 'sinatra', gem 'rest-client', gem 'json' gem 'dm-core' gem 'dm-validations' gem 'do_sqlite3' '>=0.0.3' '~>0.9.4', :require_as => 'sinatra/base' :require_as => 'rest_client' only :test do gem 'rake' gem 'rspec', :require_as => %w(spec) gem 'rcov' gem 'bundler', '>=0.5.0' gem 'cucumber' gem 'webrat', '~>0.5.0' gem 'rack-test', '~>0.5.0', :require_as => 'rack/test' gem 'fakeweb', '>=1.2.5' gem 'ParseTree', '>=3.0.4', :require_as => 'parse_tree' gem 'randexp', '>=0.1.4' disable_system_gems # vim:ft=ruby DEPLOYING AN APP specify the gems you need required at runtime in a global scope all of your normal gem version hacks work as expected awkward requires can be handled easily as an array or single string
37 gem 'sinatra', '~>0.9.0', :require_as => [ ] gem 'haml', '~>2.2.0', :require_as => [ ] gem 'do_sqlite3', '~>0.9.12', :require_as => [ ] gem 'dm-validations', '~>0.9.11', :require_as => [ ] gem 'dm-timestamps', '~>0.9.11', :require_as => [ ] gem 'dm-types', '~>0.9.11', :require_as => [ ] gem 'ruby-openid', '~>2.1.7', :require_as => [ ] gem 'guid', '~>0.1.1', :require_as => [ ] gem 'rack-contrib', '~>0.9.2', :require_as => [ ] gem 'json', :require_as => [ ] only :test do gem 'rack-test', '~>0.5.0', :require_as => 'rack/test' gem 'webrat', '~>0.5.0' gem 'rspec', '~>1.2.9', :require_as => 'spec' gem 'rake' gem 'rcov' gem 'cucumber' gem 'dm-aggregates', '~>0.9.11' gem 'dm-sweatshop', '~>0.9.11' gem 'randexp' gem 'ParseTree', :require_as => 'parse_tree' gem 'bundler', '>=0.6.0' bin_path 'gbin' disable_system_gems BIN_PATH note the bin_path stuff, lots of gems distribute executables in bin, gbin stands for gem bin double check how you re bundling executables in your gems, you could easily overwrite your system rake.
38 gem 'sinatra', '~>0.9.0', :require_as => [ ] gem 'haml', '~>2.2.0', :require_as => [ ] gem 'do_sqlite3', '~>0.9.12', :require_as => [ ] gem 'dm-validations', '~>0.9.11', :require_as => [ ] gem 'dm-timestamps', '~>0.9.11', :require_as => [ ] gem 'dm-types', '~>0.9.11', :require_as => [ ] gem 'ruby-openid', '~>2.1.7', :require_as => [ ] gem 'guid', '~>0.1.1', :require_as => [ ] gem 'rack-contrib', '~>0.9.2', :require_as => [ ] gem 'json', :require_as => [ ] only :test do gem 'rack-test', '~>0.5.0', :require_as => 'rack/test' gem 'webrat', '~>0.5.0' gem 'rspec', '~>1.2.9', :require_as => 'spec' gem 'rake' gem 'rcov' gem 'cucumber' gem 'dm-aggregates', '~>0.9.11' gem 'dm-sweatshop', '~>0.9.11' gem 'randexp' gem 'ParseTree', :require_as => 'parse_tree' gem 'bundler', '>=0.6.0' bin_path 'gbin' disable_system_gems DISABLE_SYSTEM_GEMS turns out to be very useful as there won t be any system gem conflicts keeps each application nice, local and repeatably deployed.
39 Bundler.require_env(:test) require File.join(File.dirname( FILE ), '..', 'lib', 'myapp') require 'pp' DataMapper.setup(:default, 'sqlite3://:memory:') DataMapper.auto_migrate! Spec::Runner.configure do config config.include(rack::test::methods) def app MyApp.app SPEC/SPEC_HELPER.RB explicitly call Bundler.require_env(:test) to include that only block from before require your application and all is well.
40 Bundler.require_env require File.expand_path(File.join(File.dirname( FILE ), 'lib', 'my_app')) DataMapper.setup(:default, 'sqlite3://:memory:') DataMapper.auto_migrate! run MyApp.app CONFIG.RU using Bundler.require_env sets you up perfectly it runs fine under passenger other executables should be used from the bin_path directorytring
41 gem 'sinatra', '~>0.9.0', :require_as => [ ] gem 'haml', '~>2.2.0', :require_as => [ ] gem 'do_sqlite3', '~>0.9.12', :require_as => [ ] gem 'dm-validations', '~>0.9.11', :require_as => [ ] gem 'dm-timestamps', '~>0.9.11', :require_as => [ ] gem 'dm-types', '~>0.9.11', :require_as => [ ] gem 'ruby-openid', '~>2.1.7', :require_as => [ ] gem 'guid', '~>0.1.1', :require_as => [ ] gem 'rack-contrib', '~>0.9.2', :require_as => [ ] gem 'json', :require_as => [ ] only :test do gem 'rack-test', '~>0.5.0', :require_as => 'rack/test' gem 'webrat', '~>0.5.0' gem 'rspec', '~>1.2.9', :require_as => 'spec' gem 'rake' gem 'rcov' gem 'cucumber' gem 'dm-aggregates', '~>0.9.11' gem 'dm-sweatshop', '~>0.9.11' gem 'randexp' gem 'ParseTree', :require_as => 'parse_tree' gem 'bundler', '>=0.6.0' bin_path 'gbin' disable_system_gems DEPLOYING A GEM specify the gems you need required at runtime in a global scope but don t require them your application code should require them and cause bad deployments.
42 require 'rake/gempackagetask' require 'rubygems/specification' require 'date' require 'bundler' spec = Gem::Specification.new do s... manifest = Bundler::Environment.load(File.dirname( FILE ) + '/Gemfile') manifest.depencies.each do d next if d.only && d.only.include?('test') s.add_depency(d.name, d.version) YOUR RAKE FILE you can require the bundler and use your manifest file to gem depencies this way you only maintain it in one spot you could also do development depencies if you d like
43 IDENTITY lots of other realms of identity involved to really get it all right.
44 IDENTITY security + authentication + information
45 IDENTITY a slightly updated version uses oauth, we do a similar thing with the oauth provider. our next wave is to take advantage of
46 THANKS SO MUCH!
47 QUESTIONS? COMMENTS?
Rails Engines. Use Case. The Implementation
Rails Engines Rails engines range from simple plugins to powerful micro-applications. The discussions we ve had so far about Railties are closely related to the function of a Rails engine. One interesting
More informationIntroduction and first application. Luigi De Russis. Rails 101
Introduction and first application Luigi De Russis 2 About Rails Ruby on Rails 3 Framework for making dynamic web applications created in 2003 Open Source (MIT License) for the Ruby programming language
More informationContents in Detail. Foreword by Xavier Noria
Contents in Detail Foreword by Xavier Noria Acknowledgments xv xvii Introduction xix Who This Book Is For................................................ xx Overview...xx Installation.... xxi Ruby, Rails,
More informationGraphQL. Concepts & Challenges. - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub
GraphQL Concepts & Challenges - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub Rails API WHY - You have your Rails app, why bother with an API? - You have clients.
More informationJRuby and Ioke. On Google AppEngine. Ola Bini
JRuby and Ioke On Google AppEngine Ola Bini ola.bini@gmail.com http://olabini.com/blog Vanity slide ThoughtWorks consultant/developer/programming language geek JRuby Core Developer From Stockholm, Sweden
More informationLecture 4. Ruby on Rails 1 / 49
Lecture 4 Ruby on Rails 1 / 49 Client-Server Model 2 / 49 What is it? A client (e.g. web browser, phone, computer, etc.) sends a request to a server Request is an HTTP request Stands for HyperText Transfer
More informationKeeping Rails on the Tracks
Keeping Rails on the Tracks Mikel Lindsaar @raasdnil lindsaar.net Working in Rails & Ruby for 5+ Years http://lindsaar.net/ http://stillalive.com/ http://rubyx.com/ On the Rails? What do I mean by on the
More informationLecture 4. Ruby on Rails 1 / 52
Lecture 4 Ruby on Rails 1 / 52 Homeworks 2 & 3 Grades were released for homework 2 Homework 3 was due last night Everyone got a style freebie since my default setup ignores spec files and I didn't change
More informationRSpec Core Project: RSpec Core 2.11 Publisher: RSpec. Issues. Open Feedback Dialog. rspec-core provides the structure for RSpec code examples:
Open Feedback Dialog Project: RSpec Core 2.11 Publisher: RSpec RSpec Core 2.11 rspec-core provides the structure for RSpec code examples: describe Account do it "has a balance of zero when first opened"
More informationRSPec Documentation. 4. Scenario Testing Examples of OAR REST APIs using Rspec
RSPec Documentation Contents: 1. Introduction to Rspec - Installing Rspec Gem (Getting Started) - Terminology used in Rspec 2. Writing Simple Rspec Tests 3. Running Rspec Testfiles 4. Scenario Testing
More informationOSGi on the Server. Martin Lippert (it-agile GmbH)
OSGi on the Server Martin Lippert (it-agile GmbH) lippert@acm.org 2009 by Martin Lippert; made available under the EPL v1.0 October 6 th, 2009 Overview OSGi in 5 minutes Apps on the server (today and tomorrow)
More informationChiliProject - Bug # 529: builder is not part of the bundle. Add it to Gemfile
ChiliProject - Bug # 529: builder is not part of the bundle. Add it to Gemfile Status: Closed Priority: Normal Author: Enno Grà per Category: Created: 2011-07-17 Assignee: Updated: 2012-06-23 Due date:
More informationToby Crawley. Creative Commons BY-SA 3.0. Raleigh.rb April 2011
Toby Crawley Creative Commons BY-SA 3.0 Raleigh.rb April 2011 whoami @tcrawley C > Java > PHP > Java > Ruby > Java? Red Hat Senior Engineer member of Goal To have you all downloading TorqueBox right after
More informationToby Crawley. Creative Commons BY-SA 3.0. Charlotte.rb May 2011
Toby Crawley Creative Commons BY-SA 3.0 Charlotte.rb May 2011 whoami @tcrawley C > Java > PHP > Java > Ruby > Java? Red Hat Senior Engineer member of Goal To convert you all to TorqueBox users! TorqueBox
More informationRuby on Rails 3. Robert Crida Stuart Corbishley. Clue Technologies
Ruby on Rails 3 Robert Crida Stuart Corbishley Clue Technologies Topic Overview What is Rails New in Rails 3 New Project Generators MVC Active Record UJS RVM Bundler Migrations Factory Girl RSpec haml
More informationIntroducing Rack. Christian Neukirchen Editor in Chief of Anarchaia
Introducing Rack Christian Neukirchen Editor in Chief of Anarchaia A Google Image Search for ruby rack reveals: Overview What is Rack? Why do we need Rack? The design of Rack The Rack distribution Coset:
More informationAgile Web Development with Rails 5.1
Extracted from: Agile Web Development with Rails 5.1 This PDF file contains pages extracted from Agile Web Development with Rails 5.1, published by the Pragmatic Bookshelf. For more information or to purchase
More informationWe are assuming you have node installed!
Node.js Hosting We are assuming you have node installed! This lesson assumes you've installed and are a bit familiar with JavaScript and node.js. If you do not have node, you can download and install it
More informationMerging. Merb into Rails
Merging Merb into Rails Me Yehuda Katz @carlhuda Cloud 12/23 2008 So how'd we do? "Rails will become more modular, starting with a rails-core, and including the ability to opt in or out of specific
More informationLecture 3. Miscellaneous Ruby and Testing
Lecture 3 Miscellaneous Ruby and Testing 1 Sublime Text Guide I wrote a quick Sublime Text Guide that will help with Rubocop offenses It ll walk you through: Using spaces instead of tabs by default Using
More informationAnd the Greatest of These Is... Rack Support. Ben Scofield Viget Labs
Welcome 1 And the Greatest of These Is... Rack Support Ben Scofield Viget Labs 2 #?forben 3 4 Application Templates 5 Nested Attribute Assignment flickr: angelrays 6 ActiveRecord::Base#touch flickr: jjjohn
More informationAgile Web Development with Rails 5
Extracted from: Agile Web Development with Rails 5 This PDF file contains pages extracted from Agile Web Development with Rails 5, published by the Pragmatic Bookshelf. For more information or to purchase
More informationQuick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul
CIS192 Python Programming Web Frameworks and Web APIs Harry Smith University of Pennsylvania March 29, 2016 Harry Smith (University of Pennsylvania) CIS 192 March 29, 2016 1 / 25 Quick housekeeping Last
More informationIntroduction to Ruby on Rails
Introduction to Ruby on Rails Ralf Teusner ralf.teusner@hpi.de Software Engineering II WS 2018/19 Prof. Plattner, Dr. Uflacker Enterprise Platform and Integration Concepts group Introduction to Ruby on
More informationLiferay Security Features Overview. How Liferay Approaches Security
Liferay Security Features Overview How Liferay Approaches Security Table of Contents Executive Summary.......................................... 1 Transport Security............................................
More informationDemystifying Rails Plugin Development
Demystifying Rails Plugin Development Nick Plante :: Voices That Matter Professional Ruby Conference November 18th, 2008 Obligatory Introduction Plugins are generalized, reusable code libraries Ext or
More informationScaling Rails on App Engine with JRuby and Duby
Scaling Rails on App Engine with JRuby and Duby Run your apps on Google Servers, with access to first-class Java APIs John Woodell David Masover Ryan Brown June 9, 2010 2 Google App Engine 3 Key Features
More informationJenkins 2 UX Improvements. Keith Zantow Software Engineer, CloudBees, Inc.
Jenkins 2 UX Improvements Keith Zantow Software Engineer, CloudBees, Inc. User Experience Jenkins 1 UX Useful plugins Example: CVS Configuration experience Aging technologies A few pages to configure the
More informationEpisode 298. Getting Started With Spree
Episode 298 Getting Started With Spree Spree 1 is a fully-featured e-commerce solution that can be easily integrated into a Rails application. If you need to turn a Rails app into a store that sells products
More informationCrystal for Rubyists
Crystal for Rubyists Serdar Dogruyol Contents Preamble 2 Why Crystal? 3 Installing Crystal 5 Binary installers.............................. 5 From Source................................ 5 Future Proofing............................
More informationIntroduction to Ruby on Rails
Introduction to Ruby on Rails Keven Richly keven.richly@hpi.de Software Engineering II WS 2017/18 Prof. Plattner, Dr. Uflacker Enterprise Platform and Integration Concepts group Introduction to Ruby on
More informationBackend Development. SWE 432, Fall Web Application Development
Backend Development SWE 432, Fall 2018 Web Application Development Review: Async Programming Example 1 second each Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy
More informationCS193X: Web Programming Fundamentals
CS193X: Web Programming Fundamentals Spring 2017 Victoria Kirst (vrk@stanford.edu) CS193X schedule Today - Middleware and Routes - Single-page web app - More MongoDB examples - Authentication - Victoria
More informationtrevor.bramwell.net Documentation
trevor.bramwell.net Documentation Release Trevor Bramwell April 20, 2015 Contents 1 About Me 1 2 Posts 3 2.1 Field - extract fields from a file..................................... 3 2.2 Distribute Native
More informationIntroduction to Ruby on Rails
Introduction to Ruby on Rails Software Engineering II WS 2016/17 Arian Treffer arian.treffer@hpi.de Prof. Plattner, Dr. Uflacker Enterprise Platform and Integration Concepts group Introduction to Ruby
More informationRails: MVC in action
Ruby on Rails Basic Facts 1. Rails is a web application framework built upon, and written in, the Ruby programming language. 2. Open source 3. Easy to learn; difficult to master. 4. Fun (and a time-saver)!
More informationStandards-based Secure Signon for Cloud and Native Mobile Agents
Standards-based Secure Signon for Cloud and Native Mobile Agents P. Dingle July 2013 1 Mobile http://www.flickr.com/photos/nataliejohnson/2776045330 2 http://www.flickr.com/photos/soo/5525383948 Mobile
More informationWhat is Node.js? Tim Davis Director, The Turtle Partnership Ltd
What is Node.js? Tim Davis Director, The Turtle Partnership Ltd About me Co-founder of The Turtle Partnership Working with Notes and Domino for over 20 years Working with JavaScript technologies and frameworks
More informationTools. SWE 432, Fall Design and Implementation of Software for the Web
Tools SWE 432, Fall 2016 Design and Implementation of Software for the Web Today Before we can really make anything, there s a bunch of technical stuff to get out of the way Tools make our lives so much
More informationIdentity management. Tuomas Aura CSE-C3400 Information security. Aalto University, autumn 2014
Identity management Tuomas Aura CSE-C3400 Information security Aalto University, autumn 2014 Outline 1. Single sign-on 2. SAML and Shibboleth 3. OpenId 4. OAuth 5. (Corporate IAM) 6. Strong identity 2
More informationThis video is part of the Microsoft Virtual Academy.
This video is part of the Microsoft Virtual Academy. 1 In this session we re going to talk about building for the private cloud using the Microsoft deployment toolkit 2012, my name s Mike Niehaus, I m
More informationBUILD YOUR OWN RUBY ON RAILS WEB APPLICATIONS BY PATRICK LENZ DOWNLOAD EBOOK : BUILD YOUR OWN RUBY ON RAILS WEB APPLICATIONS BY PATRICK LENZ PDF
BUILD YOUR OWN RUBY ON RAILS WEB APPLICATIONS BY PATRICK LENZ DOWNLOAD EBOOK : BUILD YOUR OWN RUBY ON RAILS WEB APPLICATIONS Click link bellow and free register to download ebook: BUILD YOUR OWN RUBY ON
More informationPrework & Module A. Programming Fundamentals Ruby Basics and Object Oriented - Programming Syllabus
CPSC S1: Introduction to Full-Stack Web Development Prework & Module A Programming Fundamentals Ruby Basics and Object Oriented - Programming Syllabus Unit Learning Objectives Reference Topics Competency
More informationDrupalGovcon July 20th, 2016
Agile Drupal 8 Builds: Doing the Most Without PHP DrupalGovcon July 20th, 2016 Matt Cheney & Molly Byrnes 1 Hello to Drupalcon Govcon My name is Matthew Cheney. I work on the magical platform that is Pantheon.
More informationStanko Tadić
State of modern JavaScript development 04.02.2017. Stanko Tadić HELLO, MY NAME IS STANKO TADIĆ and I m a Principal Developer at Work & Co. I love development, music and cartoons. You might say I m a geek.
More informationThe Current State of OAuth 2. Aaron Open Source Bridge Portland, June 2011
The Current State of OAuth 2 Aaron Parecki Open Source Bridge Portland, June 2011 A Brief History Before OAuth aka the Dark Ages If a third party wanted access to an account, you d give them your password.
More informationIntermediate Cucumber. CSCI 5828: Foundations of Software Engineering Lecture 17 03/13/2012
Intermediate Cucumber CSCI 5828: Foundations of Software Engineering Lecture 17 03/13/2012 1 ReadyTalk Recruiting Event The ACM Student Chapter is hosting a recruiting event by a local Denver start-up
More informationCOM401 Software Engineering Laboratory
Computer Engineering Department COM401 Software Engineering Laboratory November 04, 2014 LAB-3: Rails Introduction Time: 2 lab hours Objectives: Practice with Ruby Symbols Routes MVC pattern CRUD operations
More informationRails + Legacy Databases Brian Hogan - RailsConf 2009 twitter: bphogan IRC: hoganbp
Rails + Legacy Databases Brian Hogan - RailsConf 2009 twitter: bphogan IRC: hoganbp So the main thing I want you to take away from this talk is... Please don t do it! Questions? Just kidding. The point
More informationThe Rails Initialization Process
The Rails Initialization Process December 25, 2014 This guide explains the internals of the initialization process in Rails as of Rails 4. It is an extremely in-depth guide and recommed for advanced Rails
More informationTuesday, January 13, Backend III: Node.js with Databases
6.148 Backend III: Node.js with Databases HELLO AND WELCOME! Your Feels Lecture too fast! Your Feels Lecture too fast! Too many languages Your Feels Lecture too fast! Too many languages Code more in class
More informationClient Side MVC with Backbone & Rails. Tom
Client Side MVC with Backbone & Rails Tom Zeng @tomzeng tom@intridea.com Client Side MV* with Backbone & Rails Benefits of Client Side MVC Backbone.js Introduction Client Side MV* Alternatives Backbone
More informationRuby on Rails Welcome. Using the exercise files
Ruby on Rails Welcome Welcome to Ruby on Rails Essential Training. In this course, we're going to learn the popular open source web development framework. We will walk through each part of the framework,
More informationBuild Mobile Cloud Apps Effectively Using Oracle Mobile Cloud Services (MCS)
Build Mobile Cloud Apps Effectively Using Oracle Mobile Cloud Services (MCS) Presented by: John Jay King Download this paper from: 1 Session Objectives Understand the need for something like Oracle Mobile
More informationDeploying Rails with Kubernetes
Deploying Rails with Kubernetes AWS Edition Pablo Acuña This book is for sale at http://leanpub.com/deploying-rails-with-kubernetes This version was published on 2016-05-21 This is a Leanpub book. Leanpub
More informationChamberlin and Boyce - SEQUEL: A Structured English Query Language
Programming Languages (CS302 2007S) Chamberlin and Boyce - SEQUEL: A Structured English Query Language Comments on: Chamberlin, D. D. and Boyce, R. F. (1974). SEQUEL: A Structured English Query Language.
More informationScience-as-a-Service
Science-as-a-Service The iplant Foundation Rion Dooley Edwin Skidmore Dan Stanzione Steve Terry Matthew Vaughn Outline Why, why, why! When duct tape isn t enough Building an API for the web Core services
More informationExtend EBS Using Applications Express
Extend EBS Using Applications Express John Peters JRPJR, Inc. Abstract Few people know about Oracle Applications Express (APEX) an actual free Oracle Tool included with your Oracle DB Licenses. How many
More informationRuby in the Sky with Diamonds. August, 2014 Sao Paulo, Brazil
Ruby in the Sky with Diamonds August, 2014 Sao Paulo, Brazil JELASTIC PLATFORM AS INFRASTRUCTURE Jelastic provides enterprise cloud software that redefines the economics of cloud deployment and management.
More informationIntroducing the Harmony Core Open Source Project Presented by Jeff Greene
Introducing the Harmony Core Open Source Project Presented by Jeff Greene Harmony Core Harmony Core is a framework that consists of libraries, CodeGen templates, and conventions that enable you to expose
More informationmismatch between what is maybe possible today and what is going on in many of today's IDEs.
What will happen if we do very, very small and lightweight tools instead of heavyweight, integrated big IDEs? Lecturer: Martin Lippert, VMware and Eclispe tooling expert LIPPERT: Welcome, everybody, to
More informationA New Model for Image Distribution
A New Model for Image Distribution Stephen Day Distribution, Tech Lead Docker, Inc. stephen@docker.com @stevvooe github.com/stevvooe Overview Why does this matter? History Docker Registry API V2 Implementation
More informationFlask-Cors Documentation
Flask-Cors Documentation Release 3.0.4 Cory Dolphin Apr 26, 2018 Contents 1 Installation 3 2 Usage 5 2.1 Simple Usage............................................... 5 3 Documentation 7 4 Troubleshooting
More informationLecture 3. Miscellaneous Ruby and Testing 1 / 40
Lecture 3 Miscellaneous Ruby and Testing 1 / 40 Homework 1 Grades were released! TAs provided feedback on best practices, but did not take off points Keep the comments in mind for future assignments! Any
More informationAmyyon customers can t wait to get their hands on it s new application, developed in Uniface.
customers can t wait to get their hands on it s new application, developed in Uniface. 1 CUSTOMER SECTOR Information Technology COUNTRY Netherlands CHALLENGE Migrate the rich functionality of a client/server
More informationWeb Hosting. Important features to consider
Web Hosting Important features to consider Amount of Storage When choosing your web hosting, one of your primary concerns will obviously be How much data can I store? For most small and medium web sites,
More informationYour First Ruby Script
Learn Ruby in 50 pages Your First Ruby Script Step-By-Step Martin Miliauskas @mmiliauskas 1 Your First Ruby Script, Step-By-Step By Martin Miliauskas Published in 2013 by Martin Miliauskas On the web:
More informationWeb API Best Practices
Web API Best Practices STEVE SMITH ARDALIS.COM @ARDALIS STEVE@DEVIQ.COM DEVIQ.COM Learn More After Today 1) DevIQ ASP.NET Core Quick Start http://aspnetcorequickstart.com DEVINTFALL17 20% OFF! 2) Microsoft
More informationBest Practices: Authentication & Authorization Infrastructure. Massimo Benini HPCAC - April,
Best Practices: Authentication & Authorization Infrastructure Massimo Benini HPCAC - April, 03 2019 Agenda - Common Vocabulary - Keycloak Overview - OAUTH2 and OIDC - Microservices Auth/Authz techniques
More informationCase study on PhoneGap / Apache Cordova
Chapter 1 Case study on PhoneGap / Apache Cordova 1.1 Introduction to PhoneGap / Apache Cordova PhoneGap is a free and open source framework that allows you to create mobile applications in a cross platform
More informationGuide - Deploying for Production. apiman Final
Guide - Deploying for Production apiman 1.2.9.Final 1. Deployment Tooling for apiman... 1 2. Architecture Summary... 3 3. Database... 5 4. Elasticsearch... 7 5. Keycloak... 9 6. API Gateway... 11 6.1.
More informationSeshat Documentation. Release Joshua P Ashby
Seshat Documentation Release 1.0.0 Joshua P Ashby Apr 05, 2017 Contents 1 A Few Minor Warnings 3 2 Quick Start 5 2.1 Contributing............................................... 5 2.2 Doc Contents...............................................
More information15 Minute Traffic Formula. Contents HOW TO GET MORE TRAFFIC IN 15 MINUTES WITH SEO... 3
Contents HOW TO GET MORE TRAFFIC IN 15 MINUTES WITH SEO... 3 HOW TO TURN YOUR OLD, RUSTY BLOG POSTS INTO A PASSIVE TRAFFIC SYSTEM... 4 HOW I USED THE GOOGLE KEYWORD PLANNER TO GET 11,908 NEW READERS TO
More informationSEER AKADEMI LINUX PROGRAMMING AND SCRIPTINGPERL 7
SEER AKADEMI LINUX PROGRAMMING AND SCRIPTINGPERL 7 Hi everyone once again welcome to this lecture we are actually the course is Linux programming and scripting we have been talking about the Perl, Perl
More informationFast, Sexy, and Svelte: Our Kind of Rails Testing. Dan Manges (ThoughtWorks) zak (unemployed)
Fast, Sexy, and Svelte: Our Kind of Rails Testing Dan Manges (ThoughtWorks) zak (unemployed) a translation without buzzwords notes short build times maintainable comprehensive coverage this talk: how to
More informationOAuth2 Autoconfig. Copyright
Copyright Table of Contents... iii 1. Downloading... 1 1.1. Source... 1 1.2. Maven... 1 1.3. Gradle... 2 2. Authorization Server... 3 3. Resource Server... 4 I. Token Type in User Info... 5 II. Customizing
More informationGmail Integration for Salesforce and Dynamics 365
Gmail Integration for Salesforce and Dynamics 365 PRIVACY POLICY LAST MODIFIED: MARCH 12, 2019 2019 Introduction Welcome to Gmail Integration for Salesforce and Dynamics 365, a service provided by Akvelon,
More informationServers & Developers. Julian Nadeau Production Engineer
Servers & Developers Julian Nadeau Production Engineer Provisioning & Orchestration of Servers Setting a server up Packer - one server at a time Chef - all servers at once Containerization What are Containers?
More information7+ GRAPHICS LIBRARIES TO ENHANCE YOUR EMBEDDED ANALYTICS
7+ GRAPHICS LIBRARIES TO ENHANCE YOUR EMBEDDED ANALYTICS TABLE OF CONTENTS INTRODUCTION...3 FONT AWESOME...4 GOOGLE WEB FONTS...5 ADOBE COLOR WHEEL...6 WEB LANGUAGES...7 CSS FRAMEWORKS...8 JAVASCRIPT LIBRARIES...9
More informationStop Cyber Threats With Adaptive Micro-Segmentation. Jeff Francis Regional Systems Engineer
Stop Cyber Threats With Adaptive Micro-Segmentation Jeff Francis Regional Systems Engineer Who is This Guy, and Why is He Here? Jeff Francis Regional Systems Engineer Northwestern United States Datacenter
More informationLEVERAGING CONVENTION OVER CONFIGURATION FOR STATIC ANALYSIS IN DYNAMIC LANGUAGES
LEVERAGING CONVENTION OVER CONFIGURATION FOR STATIC ANALYSIS IN DYNAMIC LANGUAGES David Worth dave@highgroove.com (email) - @highgroovedave (twitter) Or why it s ok to write simple frameworks for complicated
More informationSecurity Workbook. Version 1: Spring 13. Last updated: February 22, 2013
Version 1: Spring 13 Security Workbook Last updated: February 22, 2013 Copyright 2000 2013 salesforce.com, inc. All rights reserved. Salesforce.com is a registered trademark of salesforce.com, inc., as
More informationThe AffManual by Raimundas M.
Page 1 METHOD #8 Clickbank and Mobile Apps Page 2 Introduction Mobile app industry is on fire at the moment and I don't see slowing down any time soon. Anyone who use smartphones, also use mobile apps.
More informationLiberty Right Fit for MicroProfile
IBM _ 1 Liberty Right Fit for MicroProfile Alasdair Nottingham, IBM, STSM, WebSphere Runtime Architect Kevin Sutter, IBM, STSM, Java EE Architect JavaOne Sept 2016 Who Are We? Kevin Sutter WebSphere Java
More informationTesting in AWS. Let s go back to the lambda function(sample-hello) you made before. - AWS Lambda - Select Simple-Hello
Testing in AWS Let s go back to the lambda function(sample-hello) you made before. - AWS Lambda - Select Simple-Hello Testing in AWS Simulate events and have the function react to them. Click the down
More informationImprove Cookiebased. with Decorator Pattern
Improve Cookiebased Session with Decorator Pattern @ ConFoo Montreal 2018-03-08 by Jian Weihang Improve Cookie-based Session with Decorator Pattern 1 Bonjour! Improve Cookie-based Session with Decorator
More informationBox Connector. Version 2.0. User Guide
Box Connector Version 2.0 User Guide 2016 Ping Identity Corporation. All rights reserved. PingFederate Box Connector User Guide Version 2.0 March, 2016 Ping Identity Corporation 1001 17th Street, Suite
More informationConnect with Remedy: SmartIT: Social Event Manager Webinar Q&A
Connect with Remedy: SmartIT: Social Event Manager Webinar Q&A Q: Will Desktop/browser alerts be added to notification capabilities on SmartIT? A: In general we don't provide guidance on future capabilities.
More informationAutomation with Meraki Provisioning API
DEVNET-2120 Automation with Meraki Provisioning API Courtney M. Batiste, Solutions Architect- Cisco Meraki Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1.
More informationMultitenancy with Rails
Multitenancy with Rails And subscriptions too! Ryan Bigg This book is for sale at http://leanpub.com/multi-tenancy-rails This version was published on 2015-11-24 This is a Leanpub book. Leanpub empowers
More informationAgile Sugar to Google Apps Synchronizer User s Guide. v1.0.25
Agile Sugar to Google Apps Synchronizer User s Guide v1.0.25 GrinMark Limited, 2006-2017 http://www.grinmark.com Contents Contents 1 Overview 2 1.1 Terminology..................................... 2 1.2
More informationDeveloping ASP.NET MVC Web Applications (486)
Developing ASP.NET MVC Web Applications (486) Design the application architecture Plan the application layers Plan data access; plan for separation of concerns, appropriate use of models, views, controllers,
More information3 Continuous Integration 3. Automated system finding bugs is better than people
This presentation is based upon a 3 day course I took from Jared Richardson. The examples and most of the tools presented are Java-centric, but there are equivalent tools for other languages or you can
More informationBambu API Documentation
Bambu API Documentation Release 2.0.1 Steadman Sep 27, 2017 Contents 1 About Bambu API 3 2 About Bambu Tools 2.0 5 3 Installation 7 4 Basic usage 9 5 Questions or suggestions? 11 6 Contents 13 6.1 Defining
More informationWhere s my DNS? Sara Dickinson IDS 2. Where s my DNS?
Sara Dickinson sara@sinodun.com Stub to recursive The DNS protocol is evolving DoT: DNS-over-TLS DoH: DNS-over-HTTPS (WIP) DoT RFC7858 standard May 2016 Implemented to-date in standard open source DNS
More informationUnit Testing J2EE from JRuby. Evan Light
Unit Testing J2EE from JRuby Evan Light http://evan.tiggerpalace.com Who I am Professional developer since 1996 Java since 1999 J2EE since 2000 Ruby since 2006 Some yutz with Keynote and a remote control
More informationFull Stack boot camp
Name Full Stack boot camp Duration (Hours) JavaScript Programming 56 Git 8 Front End Development Basics 24 Typescript 8 React Basics 40 E2E Testing 8 Build & Setup 8 Advanced JavaScript 48 NodeJS 24 Building
More informationForgeRock Access Management Customization and APIs
training@forgerock.com ForgeRock Access Management Customization and APIs Description AM-421 Course Description Revision B This course provides a hands-on technical introduction to ForgeRock Access Management
More informationLeveraging the Globus Platform in your Web Applications. GlobusWorld April 26, 2018 Greg Nawrocki
Leveraging the Globus Platform in your Web Applications GlobusWorld April 26, 2018 Greg Nawrocki greg@globus.org Topics and Goals Platform Overview Why expose the APIs A quick touch of the Globus Auth
More informationCopyright 2013 Avdi Grimm. All rights reserved.
Copyright 2013 Avdi Grimm. All rights reserved. Confident Ruby 4.17 Represent special cases as objects If it's possible to for a variable to be null, you have to remember to surround it with null test
More information