A quick introduction to the object-oriented programming language Ruby, part of a full lecture on Programming Paradigms at UCL university in Belgium, focussing on the programming languages Smalltalk, Ruby and Java, with reflection and meta programming as underlying theme.
A quick introduction to the object-oriented programming language Ruby, part of a full lecture on Programming Paradigms at UCL university in Belgium, focussing on the programming languages Smalltalk, Ruby and Java, with reflection and meta programming as underlying theme.
The presentation gives an overview about the ruby programming language and Rails, the web framework built over it ruby. It does highlight some of the key features of ruby programming language and mentions the key benefits of using Rails framework for web application development.
This extensive course covers all the topics which will definitely make you a Java Superstar. You can do almost anything in Java after this course. You will surely be a better programmer and better still a Elegant programmer after this course.
RESTful API Testing using Postman, Newman, and JenkinsQASymphony
INCLUDE AUTOMATED RESTFUL API TESTING USING POSTMAN, NEWMAN, AND JENKINS
If you’re going to automate one kind of tests at your company, API testing is the perfect place to start! It’s fast and simple to write as well as fast to execute. If your company writes an API for its software, then you understand the need and importance of testing it. In this webinar, we’ll do a live demonstration of how you can use free tools, such as Postman, Newman, and Jenkins, to enhance your software quality and security.
Elise Carmichael will cover:
Why your API tests should be included with your CI
Real examples using Postman, Newman and Jenkins + Newman
An active Q&A where you can get your automated testing questions answered, live!
To get the most out of this session:
Download these free tools prior to the webinar: Postman, Newman (along with node and npm) and Jenkins
Read up on how to parse JSON objects using javascript
*Can’t attend the webinar live? Register and we will send the recording after the webinar is over.
Studies show that for every 7 to 10 lines of code we write, we introduce one defect. Now often times we can spot these errors before they ever see the light of day, however that is not true in all cases. So what can we use to assist us in leveling the playing field? Well, we can take advantage of Static Code Analysis tools! In this talk, learn how you can incorporate the following tools into your development process: Checkstyle, PMD, FindBugs, and Lint.
Python 101: Python for Absolute Beginners (PyTexas 2014)Paige Bailey
If you're absolutely new to Python, and to programming in general, this is the place to start!
Here's the breakdown: by the end of this workshop, you'll have Python downloaded onto your personal machine; have a general idea of what Python can help you do; be pointed in the direction of some excellent practice materials; and have a basic understanding of the syntax of the language.
Please don't forget to bring your laptop!
Audience: "Python 101" is geared toward individuals who are new to programming. If you've had some programming experience (shell scripting, MATLAB, Ruby, etc.), then you'll probably want to check out the more intermediate workshop, "Python 101++".
Lambda and Stream Master class - part 1José Paumard
These are the slides of the talk we made with Stuart Marks at Devoxx Belgium 2018. This first part covers Lambda Expressions and API design with functional interfaces.
What is the state of lambda expressions in Java 11? Lambda expressions are the major feature of Java 8, having an impact on most of the API, including the Streams and Collections API. We are now living the Java 11 days; new features have been added and new patterns have emerged. This highly technical Deep Dive session will visit all these patterns, the well-known ones and the new ones, in an interactive hybrid of lecture and laboratory. We present a technique and show how it helps solve a problem. We then present another problem, and give you some time to solve it yourself. Finally, we present a solution, and open for questions, comments, and discussion. Bring your laptop set up with JDK 11 and your favorite IDE, and be prepared to think!
Javascript Under The Hood 2 ~ Object Oriented Javascript ~
Demystifying Javascript's function constructor, new keyword, prototype.
Object Oriented fundamental in Javascript
Introduction to Ruby and Introduction to Ruby on Rails basic concepts for beginners. The google presentation is even better in full screen https://docs.google.com/presentation/d/1EE0VuB_PkD2-8j5JNs6CUQHb4J9ToIgC7-IxYTojiS0/pub?start=false&loop=false&delayms=3000#slide=id.p
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesTikal Knowledge
Django is a Python Web Framework gaining popularity among developers all over the world, due to its power & simplicity. In this session we will describe what makes the framework so attractive, and why you should consider it for your next Web application.
Presentation & Featured Video in Full Version.
The presentation gives an overview about the ruby programming language and Rails, the web framework built over it ruby. It does highlight some of the key features of ruby programming language and mentions the key benefits of using Rails framework for web application development.
This extensive course covers all the topics which will definitely make you a Java Superstar. You can do almost anything in Java after this course. You will surely be a better programmer and better still a Elegant programmer after this course.
RESTful API Testing using Postman, Newman, and JenkinsQASymphony
INCLUDE AUTOMATED RESTFUL API TESTING USING POSTMAN, NEWMAN, AND JENKINS
If you’re going to automate one kind of tests at your company, API testing is the perfect place to start! It’s fast and simple to write as well as fast to execute. If your company writes an API for its software, then you understand the need and importance of testing it. In this webinar, we’ll do a live demonstration of how you can use free tools, such as Postman, Newman, and Jenkins, to enhance your software quality and security.
Elise Carmichael will cover:
Why your API tests should be included with your CI
Real examples using Postman, Newman and Jenkins + Newman
An active Q&A where you can get your automated testing questions answered, live!
To get the most out of this session:
Download these free tools prior to the webinar: Postman, Newman (along with node and npm) and Jenkins
Read up on how to parse JSON objects using javascript
*Can’t attend the webinar live? Register and we will send the recording after the webinar is over.
Studies show that for every 7 to 10 lines of code we write, we introduce one defect. Now often times we can spot these errors before they ever see the light of day, however that is not true in all cases. So what can we use to assist us in leveling the playing field? Well, we can take advantage of Static Code Analysis tools! In this talk, learn how you can incorporate the following tools into your development process: Checkstyle, PMD, FindBugs, and Lint.
Python 101: Python for Absolute Beginners (PyTexas 2014)Paige Bailey
If you're absolutely new to Python, and to programming in general, this is the place to start!
Here's the breakdown: by the end of this workshop, you'll have Python downloaded onto your personal machine; have a general idea of what Python can help you do; be pointed in the direction of some excellent practice materials; and have a basic understanding of the syntax of the language.
Please don't forget to bring your laptop!
Audience: "Python 101" is geared toward individuals who are new to programming. If you've had some programming experience (shell scripting, MATLAB, Ruby, etc.), then you'll probably want to check out the more intermediate workshop, "Python 101++".
Lambda and Stream Master class - part 1José Paumard
These are the slides of the talk we made with Stuart Marks at Devoxx Belgium 2018. This first part covers Lambda Expressions and API design with functional interfaces.
What is the state of lambda expressions in Java 11? Lambda expressions are the major feature of Java 8, having an impact on most of the API, including the Streams and Collections API. We are now living the Java 11 days; new features have been added and new patterns have emerged. This highly technical Deep Dive session will visit all these patterns, the well-known ones and the new ones, in an interactive hybrid of lecture and laboratory. We present a technique and show how it helps solve a problem. We then present another problem, and give you some time to solve it yourself. Finally, we present a solution, and open for questions, comments, and discussion. Bring your laptop set up with JDK 11 and your favorite IDE, and be prepared to think!
Javascript Under The Hood 2 ~ Object Oriented Javascript ~
Demystifying Javascript's function constructor, new keyword, prototype.
Object Oriented fundamental in Javascript
Introduction to Ruby and Introduction to Ruby on Rails basic concepts for beginners. The google presentation is even better in full screen https://docs.google.com/presentation/d/1EE0VuB_PkD2-8j5JNs6CUQHb4J9ToIgC7-IxYTojiS0/pub?start=false&loop=false&delayms=3000#slide=id.p
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesTikal Knowledge
Django is a Python Web Framework gaining popularity among developers all over the world, due to its power & simplicity. In this session we will describe what makes the framework so attractive, and why you should consider it for your next Web application.
Presentation & Featured Video in Full Version.
This text presentation attempts to hit on the highlight features and structure of Django and its ecco-system. It is intended as an introduction for those who are curious about , what is it?
So you're starting a startup an need best practices for your engineering team. Well, look for:
1. Versionning
2. Branching and Pull Requests (GitHub Flow)
3. Deployment & Continuous Delivery
4. Rollback Strategies
5. Testing
6. Backups
7. Monitoring
8. Communication
9. Issue Tracker / Project Management
This deck talks about the tool used by Le Wagon and startup coached by Le Wagon.
Le Wagon is the French innovating coding school for entrepreneurs. More info on https://www.lewagon.com
This presentation provides a thorough introduction to Ruby on Rails and is particularly useful for individuals who are completely unfamiliar with Rails.
Sooner or later we all have to work with HTML, despite its verbosity. Those of us who claim to love HTML may just be victims of Stockholm Syndrome, both praising yet secretly loathing it.
Basho designer John Newman is making the trek from the swamps of Florida to show us the way. In the modern world of markup preprocessors, these alternative syntaxes allow you to write simpler, cleaner, more concise code in a shorter amount of time. Certain techniques can even allow your team members who may be less-tech-savvy to contribute content directly without forcing you to wire up a WYSIWYG style CMS.
This talk explores great alternatives to plain HTML and CSS, and covers how Basho put these tools together to facilitate a painless, team-oriented approach to building sites and web apps.
Gisting is an implementation of Google\'s MapReduce framework for processing and extracting useful information from very large data sets. At the time of this writing, the code is available for PREVIEW at http://github.com/mchung/gisting. I am currently working to release this framework for general usage.
Optimizing AngularJS Application, that include with some useful best practices to in AngularJS. The best practices defined here is well stablished in Angular team itself and developers in community.
From the "Rails: Hot or Not?" session at Sioux (Eindhoven, NL, May 23, 2007). An introduction to Rails and programming for the web, targeted at embedded developers. What are the challenges of web development? What technologies do we have at our disposal, and how does Ruby on Rails attack the problem?
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
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.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
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.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
When To Use Ruby On Rails
1. When to use Ruby on Rails?
Sytse Sijbrandij
sytse@dosire.com
2. Contents
• Ruby
– What is it?
– Advantages
– Disadvantages
• Rails
– What is it?
– Advantages
– Disadvantages
• When to use it
• Reusable best practices
Ruby Beach, Washington, U.S.
Kevin Mc Neal
3. What is Ruby?
• A scripting language more powerful than
Perl and more object-oriented than Python.
• Invented in 1993 with inspiration from Perl,
Phyton, Smalltalk, Eiffel, Ada, and Lisp.
• Designed for programmer productivity and
joy instead of machine efficiency.
• Follows the principle of least surprise, the
language should minimize confusion.
Yukihiro 'Matz' Matsumoto
• It's easy to work with and to love Ruby. Ruby's Architect
4. Ruby Advantages
Elegant
•
Powerful
•
Readable
•
Concise
•
Ruby and Diamond ring
R. M. Rayner
5. describe Bowling do
before(:each) do
Ruby is @bowling = Bowling.new
end
Elegant it quot;should score 0 for gutter gamequot; do
20.times { @bowling.hit(0) }
@bowling.score.should == 0
end
end
class NewBowlingGame extends PHPSpec_Context
{
private $_bowling = null;
public function before()
{
$this->_bowling = new Bowling;
}
public function itShouldScore0ForGutterGame()
{
for ($i=1; $i<=20; $i++) {
$this->_bowling->hit(0);
} $this->spec($this->_bowling->score)->should->equal(0);
}
}
6. Ruby is Powerful
• Object-oriented (everything is an object)
• Dynamic (duck typing)
# Open Ruby's Time class and add a method
class Time
def yesterday
self - 86400
end
end
today = Time.now # => Thu Aug 14 16:51:50 +1200 2008
yesterday = today.yesterday # => Wed Aug 13 16:51:50 +1200 2008
7. Ruby is Readable
• The code comments itself
• Leads to better naming practices
# An example example function for a photo camera program
def shutter_clicked
capture_image if @camera.on? and @camera.memory_available?
end
8. Ruby is Concise
• Very expressive language
• Less lines of code, higher productivity
-199.abs # 199
quot;ruby is coolquot;.length # 12
quot;Your Momquot;.index(quot;uquot;) #2
quot;Nice Day!quot;.downcase.split(//).sort.uniq.join # quot; !acdeinyquot;
say = quot;I love Rubyquot;
say['love'] = quot;*love*quot;
5.times { puts say }
=> quot;I *love* Rubyquot; quot;I *love* Rubyquot; quot;I *love* Rubyquot; quot;I
*love* Rubyquot; quot;I *love* Rubyquot;
10. Ruby is Slow
• About 10x slower than Java, 2x slower than PHP
All benchmarks, x64 Ubuntu, Intel Q6600 Quad
Computer Language Benchmarks Game
11. Ruby is New
• Not many developers or customers
• No common IDE
– Most coders use the Mac text-editor Textmate
– IDEs: RadRails, RubyMine, 3rd Rail, Netbeans
• No common application server
– Passenger's Apache module has momentum
12. Evolution to web frameworks
From 1990 to 2009
Time
Static Dynamic Integrated
Type of site
Marketing Front office Back office
Business role
• Brochure • Communication • Quotations
• Advertising • Ordering • Fulfillment
• Mailings • Legacy systems
Tools HTML editors: PHP + MySQL: Frameworks:
Frontpage Joomla CakePHP (PHP)
Dreamweaver Drupal Grails (Groovy)
Wordpress Django (Phyton)
Typo3 Ruby on Rails (Ruby)
Merb (Ruby)
.Net Sanatra (Ruby)
Sharepoint
13. What is ?
Creator of Ruby on Rails
• Web application framework David Heinemeier Hansson
• Open Source (MIT license)
• Based on a existing
application (Basecamp)
• Provides common needs:
Routing, sessions
–
Database storage
–
Business logic
–
Generate HTML/XML/CSS/Ajax
–
Testing
–
16. Convention over Configuration
• Table and foreign key naming
– Tables are multiples
(users, orders, etc.)
– Foreign key naming: user_id
• Default locations
– MVC, Tests, Languages, Plugins
• Naming
– Class names: CamelCase
– Files: lowercase_underscored.rb
17. Don’t repeat yourself
• Everything is defined in a single,
unambiguous place
• Easier to find code
– Only need to look once
– Can stop looking when found
– Well defined places for most items
• Much easier to maintain code
– Faster to change
– Less inconsistency bugs
18. Model View Controller
• Model
– Object relationships
(users, orders)
• Controller
– Business logic
(perform a payment)
• View
– Visual representation
(generate HTML/XML)
19. Model
• Contains validation and object methods
• Use 'fat' models and 'skinny' controllers to
increase reuse of methods across controllers
class Order < ActiveRecord::Base
has_many :line_items
has_one :user
has_one :email, :through => :user
validates_presence_of :user
validates_numericality_of :amount
def purchase
self.purchase_time = Now
end
end
20. View
• DSL languages #content
.left.column
Erb for ruby & html
• %h2 Welcome to our site!
%p= print_information
Haml improves on erb
• .right.column= render quot;sidebarquot;
Textile for html
•
Sass for css
•
<div id='content'>
<div class='left column'>
<h2>Welcome to our site!</h2>
<p>
<%= print_information %>
</p>
</div>
<div class=quot;right columnquot;>
<%= render quot;sidebarquot; %>
</div>
</div>
21. Controller
Method Resource Verb
• RESTful index /people GET
show /people/12 GET
– Better than SOAP create /people POST
– Easy to understand update /people/12 PUT
delete /people/12 DELETE
– Easy to debug
GET /people/12.xml
– Easy to cache
def show
– Easy to prioritize @person =
Person.find(params[:id])
– No bottleneck respond_to do |wants|
– HTML/XML/JSON wants.html
wants.xml { render :xml
=> @person.to_xml }
end
end
22. Object Relational Mapping
find
Programming object Database row
ORM Tools:
#<User id: 1, login: quot;Sytsequot;, -ActiveRecord
email: quot;sytse@comcoaster.comquot;,
-DataMapper
description: quot;<p>Sytse studied
-iBATIS
Management Science at the
Universi...quot;, avatar_id: 1,
crypted_password:
quot;b6675cab85b541a91e6d0
save
# Examples of finding records
User.find(:all)
User.find(23).articles
User.find_by_first_name('Johnny')
User.order.find(:last).lines_items.count
23. Re-use of code
• Gems and plugins, more then 1300
– For authentication, pagination, testing, etc.
• Git allows easy forking and merging
• Github website allows you to give back
• Acts as a portfolio
24. Agile practices
• Iterations (branch often, merge often)
• Test all the time (TDD, BDD)
Stories > Tests > Code > Continuous Integration
Story example
Feature: Log-in
In order to view my profile
As a Registered member
I want to be required to log-in
Test example
Given /I am the registered member quot;quirequot;/ do
@user = User.new({ :login => 'quire})
@user.save!
end
25. Security
• Rails prevents SQL injection attacks
– Attacher post in form: quot;some_title; DROP TABLE articles;quot;
– In bad code this can be injected:
quot;SELECT * FROM ARTICLES WHERE TITLE = $TITLEquot;
– Rails will be escape the input automatically:
@articles = Article.find(:all,
:conditions => [:title => params[:title]])
• Rails prevents Cross Site Scripting (XSS)
– With html_escape in view: <%=h comment.body %>
27. Rails is inefficient
• Rails uses a lot of memory,
up to 150MB per instance
• Requires more application servers
• Where are your development constrains?
Resource Example application Rails
Man hours 2.200 hours / e22.000 1.000 hours / e10.000
Project duration 15 weeks of changes / e3.000 10 weeks / e2.000
Computing power 2 servers / e2.000 5 servers / e5.000
Total e27.000 e17.000
28. Rails is hard to deploy
• Harder than PHP, better with Passenger
• Lots of moving parts
– Rails, apps, gems, plugins
– Application server, webserver
• Deployment via scripts
– Via the Capistrano tool
– Easy to break something
• Deployment to multiple servers
29. When to use Ruby on Rails?
New code base and DB Existing code and DB
• •
High development speed Low development speed
• •
Complex applications Simple applications
• •
Web deployment Client deployment
• •
Iterative projects Waterfall projects
• •
Development is expensive Deployment is expensive
• •
Fixed price project Hourly rate project
• •
Early adopter client/team Late majority client/team
• •