This document discusses strategies for scaling a Ruby on Rails application from a small startup to an enterprise-level application. It recommends starting with a small, highly productive team using Rails for rapid development. As the application and user base grow, it suggests adding caching, load balancing, and splitting the application across multiple servers. It also discusses personalizing pages with AJAX to improve caching. The goal is to scale the application efficiently while keeping development agile and in Rails.
EuroPython 2011 - How to build complex web applications having fun?Andrew Mleczko
Web development is a complexity challenge nowadays. Growing number of functionalities results in customer expectations increase which makes project design more difficult. Using proper tools that suite your customer needs is essential.
This talk is about successful story using closely together Pyramid and Plone. Basing on these examples you will see the main reasons for using Plone as a CMS only and letting Pyramid do the rest (vertical application).
An introduction to Google's PRPL pattern that can be used to implement Progressive Web Applications. Delivered at MWLUG 2017 in Alexandria, VA by Keith Strickland.
Are you still stuck in Java EE 5? Eager to move and boost developer productivity with all the cool things introduced in Java EE 7? Attend this session to hear about some of the solutions Tomitribe had to implement to completely migrate an application called Segurnet from Java EE 5 to Java EE 7. Expect a very technical session that delves into the details. Segurnet is a platform held by APS (Portuguese Insurance Association) that has served as an integration network for the insurance sector in Portugal for the last 20 years, with more than 33,000 active users.
Better and Faster: A Journey Toward Clean Code and EnjoymentChris Holland
Video: http://bit.ly/tdd-talk-2
This slideshow has links, download the PDF to click them.
While this presentation touches on PHP a fair bit, it does make parallels to other ecosystems such as Java and C#/.Net, building toward an approach for building Web Applications in a Test-Driven way.
Have you ever jumped into a legacy software project and gotten to a point where it takes a near-infinite amount of time to deliver any new feature, for fear of breaking legacy functionality you’ve barely begun to understand? Software Engineering can be extremely difficult and maddening. But it doesn’t have to be. We will explore leveraging TDD and OOP principles to make Software Engineering fun again.
Coding exercises supporting this presentation are available here:
http://bit.ly/tdd-vids
Curious Coders Java Web Frameworks ComparisonHamed Hatami
This document provides a comparison of various Java web frameworks, including Spring MVC, Grails, Vaadin, GWT, Wicket, Play, Struts, and JSF. It evaluates the frameworks based on categories like rapid application prototyping, framework complexity, ease of use, documentation and community support. For each framework, it provides scores and analysis in these different categories. The document is split into multiple parts, with part one focusing on rapid application prototyping and framework complexity. It provides scores and reasoning for each framework in these two areas.
Wrangling Large Scale Frontend Web ApplicationsRyan Roemer
Web applications are massively shifting to the frontend, thanks to exciting new JavaScript / CSS technologies, expanding browser capabilities (visualizations, real-time apps, etc.) and faster perceived user experiences. However, client web applications can be a nightmare to maintain at scale, even for seasoned software architects and operations engineers. Deployment and production infrastructures are complex and rapidly changing. And, frontend JavaScript / CSS code ships to browsers worldwide, where errors and issues are notoriously difficult to systematically detect and diagnose.
In this talk, we will tackle the wild west of the frontend with pragmatic steps and seasoned advice from helping organizations from startups to Fortune 500 companies create some of the largest frontend web applications on the Internet. In particular, we will examine the many hard lessons gleaned from leading frontend application development and education for a team of 50+ engineers rearchitecting a top-five e-commerce site. Some of the topics we will cover include:
* Managing and building very large (500K+ line) frontend application / test code bases.
* Surviving production traffic and errors on the frontend and handling spikes like Black Friday / Cyber Monday for one of the highest traffic e-commerce websites in existence.
* How, where, and why your frontend application is likely to fail.
* Monitoring, logging, and debugging frontend web applications out in the wild.
* Automating checks, tests, and code introspection to protect your code in production.
* Creating an effective, fast, and engineer-friendly development-test-deployment frontend pipeline.
Whether your frontend application already supports millions of transactions a day or you are about to launch your first single-page-application, our aim is to prepare teams of all sizes for the most critical challenges and solutions facing modern frontend web applications.
Comparing JVM Web Frameworks - February 2014Matt Raible
My Comparing JVM Web Frameworks talk as presented at Denver's Open Source User Group (@dosug) and vJUG (@virtualjug). Covers the history of web frameworks as well as various methods for choosing one. Video on YouTube at https://www.youtube.com/watch?v=ygW8fJVlDxQ.
This document summarizes and compares several GraphQL libraries for Java: graphql-java, graphql-java-kickstart, and dgs-framework. It discusses their features for defining schemas and types, handling data fetching and caching, performing mutations, handling errors, testing functionality, and code generation capabilities. Overall, dgs-framework requires the least amount of boilerplate code, supports testing and code generation more fully, and is designed specifically for use within Spring Boot applications.
Love it or hate it (and a lot of people seem to hate it), Maven is a widely used tool. We can consider that Maven has been the de-facto standard build tool for Java over the last 10 years. Most experienced developers already got their share of Maven headaches. Unfortunately, new developers are going through the same hard learning process, because they don't know how to deal with Maven particularities. "Why is this jar in my build?", "I can’t see my changes!", "The jar is not included in the distribution!", "The artifact was not found!" are common problems. Learn to tame the Maven Beast and be in complete control of your build to save you countless hours of pain and frustration.
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...Simplilearn
This presentation on "How to become a DevOps Engineer" will help you learn what is DevOps, who is a DevOps engineer, career roadmap of a DevOps engineer, certifications for DevOps engineer, and salary of a DevOps engineer. A DevOps Engineer is an IT professional who understands the software development lifecycle and uses various automation tools for developing CI/ CD pipelines. In simple words, they collaborate with developer and operation teams to deliver high-quality products within a minimum amount of time. Now, let's get started and understand a few important ways to become a DevOps engineer.
Below are explained in this presentation:
1. Who is a DevOps engineer?
2. DevOps career roadmap
3. DevOps certification
4. DevOps engineer salary
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this DevOps training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
Incremental development is easy when we are talking about functionality. Story splitting has become quite popular as a technique lately.
But what about those cases when you need to do an architectural refactoring? Could incremental development be applied?
(Talk delivered during I T.A.K.E. Unconference 2015)
TechSEO Boost 2018: Programming Basics for SEOsCatalyst
Learn to code! You’ve heard it before, but starting seems like a monumental undertaking. It’s not. And, even a basic understanding of programming can pay off immensely. You’d be surprised by how much more efficiently and effectively you can work with your developer counterparts once you have a few easy concepts down. In this session, Catalyst’s Paul Shapiro will help get you started. Paul will discuss the fundamental components that make up a computer program and how you can easily leverage them to improve your work as an SEO. You’ll learn about basic concepts like loops, variables, if-else statements, functions, and arrays (they sound scarier than they are!), how to identify specific marketing tasks you do today that can benefit from basic programming skills and knowledge, how to pick your first programming language, and more.
The document discusses developing cross-platform mobile chemistry apps using PhoneGap. PhoneGap allows authoring native apps with HTML5, CSS, and JavaScript, accessing device APIs. The presenter developed apps for iOS and Android simultaneously with minimal costs. Apps were built with HTML5, ChemDraw files converted to images, and native bridges for performance. Lessons included fast development with powerful tools, easy feedback, and keeping code platform-independent.
Play vs Grails Smackdown - Devoxx France 2013Matt Raible
Play and Grails are Java web frameworks that aim to enhance developer experience. The author developed the same application using both frameworks to compare their features. Some key differences included:
- Database configuration and schema generation were simpler in Grails using GORM, while Play used EBean and evolutions.
- URL mapping was defined in a Groovy file in Grails, and a routes file in Play.
- Grails used Groovy Server Pages for views with tags, while Play used Scala templates.
- Both supported features like validation, jobs, feeds, and email, but implementations differed, such as using plugins in Grails and direct APIs in Play.
- Testing was supported through plugins
Universal Java allows developers to write code once and run it anywhere, including on servers, desktops, mobiles, and IoT devices. Java code is portable because it compiles to bytecode that runs on the Java Virtual Machine (JVM), which exists for most platforms. Some key aspects that enable portability include:
1. Separating platform-independent business logic from platform-specific UI code
2. Using common language features and libraries for cross-platform code
3. Transpiling Java to other languages like JavaScript for web apps
4. Ahead-of-time compilation to native code for better performance on devices
The document discusses strategies for writing portable Java code and provides examples using shared business
This document summarizes Matt Raible's presentation on the future of web frameworks. It discusses how web frameworks have evolved from early technologies like CGI and PHP to modern frameworks like Ruby on Rails and Grails. It also explores emerging trends like HTML5, mobile development, APIs, and the growing importance of speed. Raible believes future frameworks will focus on performance, support plugins and mobile/desktop, and encourage innovation while building on past successes. The most important factors will be hiring smart developers and focusing on APIs and applications over meetings.
AliExpress’ Way to Microservices - microXchg 2017juvenxu
AliExpress has transitioned to a microservices architecture from a monolithic architecture. This involved several key changes:
1. Organizing code into individual services rather than global jars to improve independence and reusability.
2. Adopting Docker to standardize environments and dependencies.
3. Integrating Alibaba cloud services like configuration (Diamond) and messaging (MetaQ) into applications using Spring starters to simplify usage.
4. Establishing practices like publishing clean API-focused jars, using Maven to manage dependencies, and applying naming standards to improve maintainability at scale.
Selenium is the most popular open-source tool for acceptance testing dynamic web applications. In Selenium 2.0, the Selenium project merged with the WebDriver project. This session will explain the benefits of Selenium 2.0's technology and go into detail on what is and is not changing. If you like browser test automation, you'll enjoy what's cooking in Selenium 2.0.
Selenium was originally created by Jason Huggins and his team at ThoughtWorks in 2004 as a tool for cross-browser acceptance testing of dynamic web apps -- apps that use JavaScript heavily on the client. Over the years, the Selenium tool family has expanded to include a Firefox record and playback tool (Selenium IDE), a Remote Control server that allows API access from any major programming language, and a grid server that allows tests to run in parallel across many machines.
Despite it's widespread industry adoption, the Selenium project is far from done. Selenium's goal is to drive any browser the same way an end user would (e.g. opening pages, clicking buttons, entering text, etc.) with any programming language on any OS platform. It's an ambitious goal, and with a steady stream of new browsers (Chrome), new platforms (Android, iPhone), and new HTML5 technologies (video, canvas, offline storage) to support, just keeping up is an arduous task.
This session will also cover trends in testing and test automation, and how Selenium fits into the bigger project management picture. Specific guidance will be given on how to determine what should be tested with Selenium and how to deal with the problem of brittle, expensive-to-maintain Selenium tests.
Oh, and robots. The talk will have robots.
Comparing Agile QA Approaches to End-to-End TestingKatie Chin
The document compares agile QA approaches like end-to-end testing and discusses how Quid uses both Selenium and RainforestQA for testing. It notes that while Selenium allows for fast automated testing, it is tied to the frontend implementation. RainforestQA uses human testers which is easier to maintain but slower. For complex products like Quid, RainforestQA has scaled testing better and freed up engineer time for more exploratory testing.
This document summarizes and compares several popular web application frameworks: Ruby on Rails, Grails, Flex, and Google Web Toolkit (GWT). It discusses the REST support and one-to-many capabilities of each framework. It also compares performance and supported platforms. The document concludes that the choice of framework depends on the specific application requirements and recommends prototyping with each framework before selecting one.
The document discusses several key technologies for developing Java web applications, including Java Servlet technology, WebWork framework, Spring framework, and Apache Maven build tool. It provides an overview of how each technology addresses common problems like stateless communication, business logic implementation, view generation, and data access overhead. Examples are given showing how WebWork and Spring can be used together with Maven to build a simple "Hello World" application that follows the MVC pattern and leverages dependency injection.
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)Alvaro Sanchez-Mariscal
The document discusses how a company called Odobo improved their testing process by defining a unified testing framework using Groovy, Spock, and Geb. This allowed both developers and QA engineers to write automated tests in the same framework, eliminating duplicated efforts. Key aspects of the framework included using Gradle for building, Groovy as the programming language, Spock as the testing framework, and Geb for browser automation. It provided benefits like increased code reuse and happier testers across both dev and QA teams.
Add-ons and integrations for JIRA Cloud have come a long way, but there are still huge opportunities for improvement. JIRA Cloud product manager Dave Meyer will walk through some "Do"s and "Don't"s for making your add-ons simpler, faster, and more beautiful today, plus an insider look at new APIs and integration points that will enable you to take your add-on to the next level in the future.
Dave Meyer, Senior Product Manager, Atlassian
Play Framework vs Grails Smackdown - JavaOne 2013Matt Raible
The Play vs. Grails Smackdown. A comparison done by James Ward and Matt Raible. Includes detailed analysis from building the same webapp with these two popular JVM Web Frameworks.
See the HTML5 version of this presentation at http://www.ubertracks.com/preso.
The document discusses the development of reactive and non-blocking database connectivity standards. It provides an overview of R2DBC, a standard API for reactive programming with SQL databases on the JVM. Key points include that R2DBC provides an end-to-end non-blocking way to communicate with databases, supports features like transactions and batching, and has driver implementations for several databases. Spring integrates with R2DBC to provide reactive database access in a Spring-friendly way.
The document discusses various web technologies including HTML5, CSS, JavaScript, jQuery, ASP.NET, MVC pattern, and more. It provides an overview of each topic with definitions and examples. It also includes a brief history and future directions of web standards.
Comparing JVM Web Frameworks - February 2014Matt Raible
My Comparing JVM Web Frameworks talk as presented at Denver's Open Source User Group (@dosug) and vJUG (@virtualjug). Covers the history of web frameworks as well as various methods for choosing one. Video on YouTube at https://www.youtube.com/watch?v=ygW8fJVlDxQ.
This document summarizes and compares several GraphQL libraries for Java: graphql-java, graphql-java-kickstart, and dgs-framework. It discusses their features for defining schemas and types, handling data fetching and caching, performing mutations, handling errors, testing functionality, and code generation capabilities. Overall, dgs-framework requires the least amount of boilerplate code, supports testing and code generation more fully, and is designed specifically for use within Spring Boot applications.
Love it or hate it (and a lot of people seem to hate it), Maven is a widely used tool. We can consider that Maven has been the de-facto standard build tool for Java over the last 10 years. Most experienced developers already got their share of Maven headaches. Unfortunately, new developers are going through the same hard learning process, because they don't know how to deal with Maven particularities. "Why is this jar in my build?", "I can’t see my changes!", "The jar is not included in the distribution!", "The artifact was not found!" are common problems. Learn to tame the Maven Beast and be in complete control of your build to save you countless hours of pain and frustration.
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...Simplilearn
This presentation on "How to become a DevOps Engineer" will help you learn what is DevOps, who is a DevOps engineer, career roadmap of a DevOps engineer, certifications for DevOps engineer, and salary of a DevOps engineer. A DevOps Engineer is an IT professional who understands the software development lifecycle and uses various automation tools for developing CI/ CD pipelines. In simple words, they collaborate with developer and operation teams to deliver high-quality products within a minimum amount of time. Now, let's get started and understand a few important ways to become a DevOps engineer.
Below are explained in this presentation:
1. Who is a DevOps engineer?
2. DevOps career roadmap
3. DevOps certification
4. DevOps engineer salary
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this DevOps training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
Incremental development is easy when we are talking about functionality. Story splitting has become quite popular as a technique lately.
But what about those cases when you need to do an architectural refactoring? Could incremental development be applied?
(Talk delivered during I T.A.K.E. Unconference 2015)
TechSEO Boost 2018: Programming Basics for SEOsCatalyst
Learn to code! You’ve heard it before, but starting seems like a monumental undertaking. It’s not. And, even a basic understanding of programming can pay off immensely. You’d be surprised by how much more efficiently and effectively you can work with your developer counterparts once you have a few easy concepts down. In this session, Catalyst’s Paul Shapiro will help get you started. Paul will discuss the fundamental components that make up a computer program and how you can easily leverage them to improve your work as an SEO. You’ll learn about basic concepts like loops, variables, if-else statements, functions, and arrays (they sound scarier than they are!), how to identify specific marketing tasks you do today that can benefit from basic programming skills and knowledge, how to pick your first programming language, and more.
The document discusses developing cross-platform mobile chemistry apps using PhoneGap. PhoneGap allows authoring native apps with HTML5, CSS, and JavaScript, accessing device APIs. The presenter developed apps for iOS and Android simultaneously with minimal costs. Apps were built with HTML5, ChemDraw files converted to images, and native bridges for performance. Lessons included fast development with powerful tools, easy feedback, and keeping code platform-independent.
Play vs Grails Smackdown - Devoxx France 2013Matt Raible
Play and Grails are Java web frameworks that aim to enhance developer experience. The author developed the same application using both frameworks to compare their features. Some key differences included:
- Database configuration and schema generation were simpler in Grails using GORM, while Play used EBean and evolutions.
- URL mapping was defined in a Groovy file in Grails, and a routes file in Play.
- Grails used Groovy Server Pages for views with tags, while Play used Scala templates.
- Both supported features like validation, jobs, feeds, and email, but implementations differed, such as using plugins in Grails and direct APIs in Play.
- Testing was supported through plugins
Universal Java allows developers to write code once and run it anywhere, including on servers, desktops, mobiles, and IoT devices. Java code is portable because it compiles to bytecode that runs on the Java Virtual Machine (JVM), which exists for most platforms. Some key aspects that enable portability include:
1. Separating platform-independent business logic from platform-specific UI code
2. Using common language features and libraries for cross-platform code
3. Transpiling Java to other languages like JavaScript for web apps
4. Ahead-of-time compilation to native code for better performance on devices
The document discusses strategies for writing portable Java code and provides examples using shared business
This document summarizes Matt Raible's presentation on the future of web frameworks. It discusses how web frameworks have evolved from early technologies like CGI and PHP to modern frameworks like Ruby on Rails and Grails. It also explores emerging trends like HTML5, mobile development, APIs, and the growing importance of speed. Raible believes future frameworks will focus on performance, support plugins and mobile/desktop, and encourage innovation while building on past successes. The most important factors will be hiring smart developers and focusing on APIs and applications over meetings.
AliExpress’ Way to Microservices - microXchg 2017juvenxu
AliExpress has transitioned to a microservices architecture from a monolithic architecture. This involved several key changes:
1. Organizing code into individual services rather than global jars to improve independence and reusability.
2. Adopting Docker to standardize environments and dependencies.
3. Integrating Alibaba cloud services like configuration (Diamond) and messaging (MetaQ) into applications using Spring starters to simplify usage.
4. Establishing practices like publishing clean API-focused jars, using Maven to manage dependencies, and applying naming standards to improve maintainability at scale.
Selenium is the most popular open-source tool for acceptance testing dynamic web applications. In Selenium 2.0, the Selenium project merged with the WebDriver project. This session will explain the benefits of Selenium 2.0's technology and go into detail on what is and is not changing. If you like browser test automation, you'll enjoy what's cooking in Selenium 2.0.
Selenium was originally created by Jason Huggins and his team at ThoughtWorks in 2004 as a tool for cross-browser acceptance testing of dynamic web apps -- apps that use JavaScript heavily on the client. Over the years, the Selenium tool family has expanded to include a Firefox record and playback tool (Selenium IDE), a Remote Control server that allows API access from any major programming language, and a grid server that allows tests to run in parallel across many machines.
Despite it's widespread industry adoption, the Selenium project is far from done. Selenium's goal is to drive any browser the same way an end user would (e.g. opening pages, clicking buttons, entering text, etc.) with any programming language on any OS platform. It's an ambitious goal, and with a steady stream of new browsers (Chrome), new platforms (Android, iPhone), and new HTML5 technologies (video, canvas, offline storage) to support, just keeping up is an arduous task.
This session will also cover trends in testing and test automation, and how Selenium fits into the bigger project management picture. Specific guidance will be given on how to determine what should be tested with Selenium and how to deal with the problem of brittle, expensive-to-maintain Selenium tests.
Oh, and robots. The talk will have robots.
Comparing Agile QA Approaches to End-to-End TestingKatie Chin
The document compares agile QA approaches like end-to-end testing and discusses how Quid uses both Selenium and RainforestQA for testing. It notes that while Selenium allows for fast automated testing, it is tied to the frontend implementation. RainforestQA uses human testers which is easier to maintain but slower. For complex products like Quid, RainforestQA has scaled testing better and freed up engineer time for more exploratory testing.
This document summarizes and compares several popular web application frameworks: Ruby on Rails, Grails, Flex, and Google Web Toolkit (GWT). It discusses the REST support and one-to-many capabilities of each framework. It also compares performance and supported platforms. The document concludes that the choice of framework depends on the specific application requirements and recommends prototyping with each framework before selecting one.
The document discusses several key technologies for developing Java web applications, including Java Servlet technology, WebWork framework, Spring framework, and Apache Maven build tool. It provides an overview of how each technology addresses common problems like stateless communication, business logic implementation, view generation, and data access overhead. Examples are given showing how WebWork and Spring can be used together with Maven to build a simple "Hello World" application that follows the MVC pattern and leverages dependency injection.
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)Alvaro Sanchez-Mariscal
The document discusses how a company called Odobo improved their testing process by defining a unified testing framework using Groovy, Spock, and Geb. This allowed both developers and QA engineers to write automated tests in the same framework, eliminating duplicated efforts. Key aspects of the framework included using Gradle for building, Groovy as the programming language, Spock as the testing framework, and Geb for browser automation. It provided benefits like increased code reuse and happier testers across both dev and QA teams.
Add-ons and integrations for JIRA Cloud have come a long way, but there are still huge opportunities for improvement. JIRA Cloud product manager Dave Meyer will walk through some "Do"s and "Don't"s for making your add-ons simpler, faster, and more beautiful today, plus an insider look at new APIs and integration points that will enable you to take your add-on to the next level in the future.
Dave Meyer, Senior Product Manager, Atlassian
Play Framework vs Grails Smackdown - JavaOne 2013Matt Raible
The Play vs. Grails Smackdown. A comparison done by James Ward and Matt Raible. Includes detailed analysis from building the same webapp with these two popular JVM Web Frameworks.
See the HTML5 version of this presentation at http://www.ubertracks.com/preso.
The document discusses the development of reactive and non-blocking database connectivity standards. It provides an overview of R2DBC, a standard API for reactive programming with SQL databases on the JVM. Key points include that R2DBC provides an end-to-end non-blocking way to communicate with databases, supports features like transactions and batching, and has driver implementations for several databases. Spring integrates with R2DBC to provide reactive database access in a Spring-friendly way.
The document discusses various web technologies including HTML5, CSS, JavaScript, jQuery, ASP.NET, MVC pattern, and more. It provides an overview of each topic with definitions and examples. It also includes a brief history and future directions of web standards.
Get going with CakePHP Framework at gnuNify 2010Abbas Ali
The document provides an overview of the CakePHP web application framework, explaining what it is, its history and features such as its MVC architecture and convention over configuration approach. It also gives instructions on installing CakePHP and describes its directory structure and common patterns for models, controllers and views.
The document discusses the HTML DOM (Document Object Model). When a web page loads, the browser constructs a DOM tree of objects representing the HTML elements. The DOM allows JavaScript to dynamically access and modify the content, structure, and style of a document. Key points include that the DOM defines HTML elements as objects, their properties and methods, and events. JavaScript can then use the DOM API to modify HTML, add/remove elements, and react to events. The document also covers common JavaScript DOM methods like getElementById and innerHTML as well as control structures like if/else statements, loops, and forms processing.
Streamlining Your Applications with Web Frameworksguestf7bc30
The document discusses web frameworks and how they provide libraries and structure for common tasks in web application development to promote best practices and allow developers to focus on their specific application needs rather than solving common problems. It provides an overview of features of web frameworks like CakePHP including MVC architecture, AJAX functionality, and RESTful resource-oriented design.
This document provides an overview and introduction to the Django web framework. It discusses that Django is a free and open-source Python framework that encourages rapid development and clean design. It follows the MVC pattern and includes an ORM, automatic admin interface, templating system, and more. The document then discusses starting a Django project, creating apps, defining URLs and views, using templates, and includes an appendix on additional topics like models and sending mail.
This document provides an introduction to web components and discusses their benefits. It explains that web components bring a native component model to HTML, allowing for reusable UI functionality both within and across applications. The document demonstrates several types of web components, including custom elements, HTML templates, HTML imports, and shadow DOM. It also discusses browser support for web components and strategies for improving support, such as using polyfills.
Client Side Measurement & Performance With RailsEric Falcao
This document discusses client-side performance measurement and optimization techniques for Rails applications. It recommends measuring performance using the clientperf gem to identify opportunities for improvement. Specific techniques mentioned include making fewer HTTP requests by combining components, gzipping components to reduce file sizes, adding expires headers to eliminate unnecessary requests, placing stylesheets at the top of pages to allow earlier rendering, and placing scripts at the bottom to avoid blocking other downloads. The document notes this is just a starting point and provides additional resources for further optimization.
Angular (v2 and up) - Morning to understand - LinagoraLINAGORA
Slides of the talk about Angular, at the "Matinée Pour Comprendre" organized by Linagora the 22/03/17.
Discover what's new in Angular, why is it more than just a framework (platform) and how to manage your data with RxJs and Redux.
Web frameworks like Ruby on Rails and Django were created to simplify web development and address common problems. They utilize the Model-View-Controller pattern to separate the database, user interface, and application logic. This improves scalability and maintainability. Frameworks automate common tasks, provide built-in security features, and allow mapping of URLs to code for flexible routing. While not perfect solutions, web frameworks streamline development by handling infrastructure concerns so developers can focus on their specific applications.
Front End Development for Back End Java Developers - Jfokus 2020Matt Raible
The document is a presentation about front end development for back end Java developers. It discusses topics like JavaScript, TypeScript, build tools, CSS frameworks, front end performance, and progressive web apps. It also provides introductions and comparisons of popular JavaScript frameworks like Angular, React, and Vue. The presentation encourages attendees to learn new front end skills and try building something with a front end framework.
This document discusses advanced usage of OpenCms' multi-site functionality. It describes how to configure a single OpenCms installation to manage multiple websites with individual domains, templates, and user permissions. Key aspects covered include using virtual hosts and rewrite rules in Apache to route requests to the appropriate OpenCms site, configuring sites and templates in OpenCms, and injecting site-specific content through JSPs. The document provides examples of implementing multi-site solutions for a hosted OpenCms platform and large student union website network.
Ruby on Rails + AngularJS + Twitter BootstrapMarcio Marinho
This document provides an overview of setting up a Ruby on Rails application that integrates AngularJS and Twitter Bootstrap. It discusses why these technologies are used together and how to set them up, including installing necessary gems, modifying files, and adding AngularJS controllers. Code examples are provided to demonstrate basic CRUD functionality using Rails and AngularJS. The document concludes by describing the presenters' consulting company and providing contact information.
This presentation introduces the key innovations that Play 2 brings to web application development in Java and Scala. The Play framework has brought high-productivity web development to Java with three innovations that changed the rules on Java EE: Java class and template save-and-reload that just works, a simplified stateless architecture that enables cloud deployment, and superior ease-of-use. Following Play's rapidly-growing popularity, Play 2.0 was released in March 2012 with innovations that are not just new in the Java world: type-safe view templates and HTTP routing, compile-time checking for static resources, and native support for both Java and Scala. Type safety matters. After dynamically-typed programming languages such as PHP and Ruby set the standard for high-productivity web development, Play built on their advantages and has created a type-safe web development framework with extensive compile-time checking. This is essential for applications that will scale to tens of thousands of lines of code, with hundreds of view templates. Meanwhile, Play avoids the architectural-complexity that is promoted by Java EE-based approaches. The result is that Play 2 first enables rapid initial application development and then Play 2 helps you build big, serious and scalable web applications.
The Importance Things of Full Stack DevelopmentMike Taylor
Full Stack web technologies including Node.js, AngularJS and MongoDB Development for fornt End & Back End web & Mobile Application Development.
Brainvire's skilled team of developer help you to make your application attractive & effective.
For more : http://www.brainvire.com/full-stack-development
Code for Startup MVP (Ruby on Rails) Session 1Henry S
First Session on Learning to Code for Startup MVP's using Ruby on Rails.
This session covers the web architecture, Git/GitHub and makes a real rails app that is deployed to Heroku at the end.
Thanks,
Henry
This document provides an overview of web application development using ASP.NET MVC. It discusses what a web application is, the client-server architecture, and how ASP.NET MVC follows the model-view-controller pattern to separate application logic from the user interface. Key aspects of ASP.NET MVC like models, views using Razor, and controllers with action methods are explained. Examples are provided of Entity Framework for data access and Razor syntax. The presentation concludes with a reminder that there will be live demos.
Scraping the web with Laravel, Dusk, Docker, and PHPPaul Redmond
Jumpstart your web scraping automation in the cloud with Laravel Dusk, Docker, and friends. We will discuss the types of web scraping tools, the best tools for the job, and how to deal with running selenium in Docker.
Code examples @ https://github.com/paulredmond/scraping-with-laravel-dusk
Learn about the fundamentals of AngularJS and how it can help you quickly build powerful web and mobile applications. This session will explore why AngularJS is a good choice for a front-end framework and demonstrate some of the power it gives you.
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
IT help desk outsourcing Services can assist with that by offering availability for customers and address their IT issue promptly without breaking the bank.
HCL Nomad Web – Best Practices and Managing Multiuser Environmentspanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-and-managing-multiuser-environments/
HCL Nomad Web is heralded as the next generation of the HCL Notes client, offering numerous advantages such as eliminating the need for packaging, distribution, and installation. Nomad Web client upgrades will be installed “automatically” in the background. This significantly reduces the administrative footprint compared to traditional HCL Notes clients. However, troubleshooting issues in Nomad Web present unique challenges compared to the Notes client.
Join Christoph and Marc as they demonstrate how to simplify the troubleshooting process in HCL Nomad Web, ensuring a smoother and more efficient user experience.
In this webinar, we will explore effective strategies for diagnosing and resolving common problems in HCL Nomad Web, including
- Accessing the console
- Locating and interpreting log files
- Accessing the data folder within the browser’s cache (using OPFS)
- Understand the difference between single- and multi-user scenarios
- Utilizing Client Clocking
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, presentation slides, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
Train Smarter, Not Harder – Let 3D Animation Lead the Way!
Discover how 3D animation makes inductions more engaging, effective, and cost-efficient.
Check out the slides to see how you can transform your safety training process!
Slide 1: Why 3D animation changes the game
Slide 2: Site-specific induction isn’t optional—it’s essential
Slide 3: Visitors are most at risk. Keep them safe
Slide 4: Videos beat text—especially when safety is on the line
Slide 5: TechEHS makes safety engaging and consistent
Slide 6: Better retention, lower costs, safer sites
Slide 7: Ready to elevate your induction process?
Can an animated video make a difference to your site's safety? Let's talk.
Web & Graphics Designing Training at Erginous Technologies in Rajpura offers practical, hands-on learning for students, graduates, and professionals aiming for a creative career. The 6-week and 6-month industrial training programs blend creativity with technical skills to prepare you for real-world opportunities in design.
The course covers Graphic Designing tools like Photoshop, Illustrator, and CorelDRAW, along with logo, banner, and branding design. In Web Designing, you’ll learn HTML5, CSS3, JavaScript basics, responsive design, Bootstrap, Figma, and Adobe XD.
Erginous emphasizes 100% practical training, live projects, portfolio building, expert guidance, certification, and placement support. Graduates can explore roles like Web Designer, Graphic Designer, UI/UX Designer, or Freelancer.
For more info, visit erginous.co.in , message us on Instagram at erginoustechnologies, or call directly at +91-89684-38190 . Start your journey toward a creative and successful design career today!
Social Media App Development Company-EmizenTechSteve Jonas
EmizenTech is a trusted Social Media App Development Company with 11+ years of experience in building engaging and feature-rich social platforms. Our team of skilled developers delivers custom social media apps tailored to your business goals and user expectations. We integrate real-time chat, video sharing, content feeds, notifications, and robust security features to ensure seamless user experiences. Whether you're creating a new platform or enhancing an existing one, we offer scalable solutions that support high performance and future growth. EmizenTech empowers businesses to connect users globally, boost engagement, and stay competitive in the digital social landscape.
TrsLabs - Fintech Product & Business ConsultingTrs Labs
Hybrid Growth Mandate Model with TrsLabs
Strategic Investments, Inorganic Growth, Business Model Pivoting are critical activities that business don't do/change everyday. In cases like this, it may benefit your business to choose a temporary external consultant.
An unbiased plan driven by clearcut deliverables, market dynamics and without the influence of your internal office equations empower business leaders to make right choices.
Getting things done within a budget within a timeframe is key to Growing Business - No matter whether you are a start-up or a big company
Talk to us & Unlock the competitive advantage
Unlocking the Power of IVR: A Comprehensive Guidevikasascentbpo
Streamline customer service and reduce costs with an IVR solution. Learn how interactive voice response systems automate call handling, improve efficiency, and enhance customer experience.
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxAnoop Ashok
In today's fast-paced retail environment, efficiency is key. Every minute counts, and every penny matters. One tool that can significantly boost your store's efficiency is a well-executed planogram. These visual merchandising blueprints not only enhance store layouts but also save time and money in the process.
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
Ad
Introduction to Web Development with Ruby on Rails
1. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Introduction to Web
Development
With Ruby on Rails
Panos G. Matsinopoulos
Tech Career Booster
techcareerbooster.com
2. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Who am I?
● Panos G. Matsinopoulos
● Software Writer and Reader
● Computer Programming Proponent (techcareerbooster.com)
3. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
What is a Computer Program?
4. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
What is a Programming Language?
5. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
What is Web Development?
6. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Web Development
● Application that is used using a Web Browser
● Implementation relies on HTTP …
● … which relies on TCP…
● … which relies on IP …
● Other protocols are popular
● … SMTP
● … FTP
● … and more …
7. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Do I have to Learn Internet Protocols?
8. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
HTTP(S)
● Used by browser to issue a request to a Web server.
● Verb (GET, POST, PUT, PATCH, DELETE …)
● URI (“http://foo.bar.com/articles”)
● Headers
● Body
9. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
HTTP Request / HTTP Response
10. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Ruby on Rails - Web Framework
● Has solved many of the Technology Challenges
● Allows you to focus on the Application / Business Domain
● For example
○ Allows you to easily parse the values that are submitted using a form
○ Has solved many security concerns.
○ e.t.c.
11. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Prerequisites for RoR
● HTML, CSS (SASS), JavaScript (Coffee)
● HTTP Basics
● SQL and Database Design
● Ruby
12. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
6 Basic Architecture Components
● Ruby on Rails Server
● Routes
● Controllers (and their Actions)
● Models
● Views
● Assets
13. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
6 Basic Architecture Components
● Ruby on Rails Server
● Routes
● Controllers (and their Actions)
● Models
● Views
● Assets
14. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Rails Server
15. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
6 Basic Architecture Components
● Ruby on Rails Server
● Routes
● Controllers (and their Actions)
● Models
● Views
● Assets
16. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Routes
17. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Route Decision
HTTP VERB PATH TO RESOURCE
GET /articles route to
GET /articles/ruby-hashes
Controller &
Action
18. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Routes Configuration
get '/reset_password_request', to: 'reset_passwords#new', as: :reset_password_request
post '/reset_password_request', to: 'reset_passwords#create', as: :create_reset_password_request
get '/reset_password', to: 'reset_passwords#new_reset_password', as: :new_reset_password
post '/reset_password', to: 'reset_passwords#reset_password', as: :reset_password
HTTP Verbs Controllers Actions
19. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
6 Basic Architecture Components
● Ruby on Rails Server
● Routes
● Controllers (and their Actions)
● Models
● Views
● Assets
20. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Controllers & Actions
● A Controller is an Object.
● An Action is a public method on this Controller.
● It takes the data of the HTTP request.
● It does the job requested.
● It prepares the data for the View.
● Asks view to build up the response.
21. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Controller Example
class ArticlesController < ApplicationController
def create
article = Article.new(article_params)
if article.save
flash[:success] = 'Article has been created!'
redirect_to edit_article_url(article)
else
@article = article
render :new
end
end
# ...
end
22. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
6 Basic Architecture Components
● Ruby on Rails Server
● Routes
● Controllers (and their Actions)
● Models
● Views
● Assets
23. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
What are the Models?
24. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Models more like this:
25. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Models in RoR
26. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Persist Model State
27. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
RoR Favours RDBMS
28. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Objects <=>Tables
29. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
ActiveRecord
30. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Controller Example - Model Highlights
class ArticlesController < ApplicationController
def create
article = Article.new(article_params)
if article.save
flash[:success] = 'Article has been created!'
redirect_to edit_article_url(article)
else
@article = article
render :new
end
end
# ...
end
Model and ActiveRecord
31. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
6 Basic Architecture Components
● Ruby on Rails Server
● Routes
● Controllers (and their Actions)
● Models
● Views
● Assets
32. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Views and Layouts
33. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Layout Example
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
<title>Blog</title>
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<div class="container">
<%= render partial: 'layouts/flash' %>
<%= yield %>
</div>
</body>
</html>
This is where the view part is embedded in
34. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
View Example
<% # File: app/views/articles/new.html.erb %>
<h1>Create a New Article</h1>
<%= form_for @article, url: articles_path do |f| %>
<div class="form-group">
<%= f.label :title %>
<%= f.text_field :title, placeholder: 'Give Title of Article', class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :text %>
<%= f.text_area :text, placeholder: 'Type in the text of the Article', class: 'form-control' %>
</div>
<div>
<%= f.submit class: 'btn btn-success' %>
</div>
<% end %>
<div class="text-right">
<a href="<%= articles_path %>">List of Articles</a>
</div>
35. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
6 Basic Architecture Components
● Ruby on Rails Server
● Routes
● Controllers (and their Actions)
● Models
● Views
● Assets
36. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Assets
● Images
● JavaScript
● CSS
● Minification
● Fingerprint (which helps browser caching the resources)
37. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
Folder Structure
38. Tech Career Booster - Online Computer Programming School - techcareerbooster.com
You’ve had enough of me ….
Want to land on a
Junior Web Developer job? …
Learn how by clicking this:
techcareerbooster.com