Becoming a more productive Rails DeveloperJohn McCaffrey
A presentation by John McCaffrey of RailsPerformance.com on how to manage technical information, ask technical questions, expand Ruby and Rails knowledge, and work on interesting side projects for open source, non-profits or as a freelancer
A walkthrough of various application performance tuning tools and a good workflow for where to start, from a presentation at WindyCityRails 2011 in Chicago, IL.
See the video, and more Web and Ruby/Rails Performance info at www.RailsPerformance.com
-John McCaffrey
LeanStartup:Research is cheaper than developmentJohn McCaffrey
The document discusses the importance of conducting thorough research before beginning development on a new project. It argues that research is cheaper than development and can help define the problem, understand existing terminology and solutions, identify target customers, and find market trends. Both primary and secondary research methods are covered, including interviews, online searches, social bookmarking, and polling forums. The presentation provides tips for creating a project profile and researching problems, customers, influencers, and monitoring competitors. It emphasizes gathering useful data and testing hypotheses before taking action.
The document provides advice on building APIs based on the author's experience building WIB APIs. Some key points include:
- Use Ruby on Rails for its RESTful design, ease of development, and ability to scale horizontally.
- Implement OAuth2 for authentication and authorization for its simplicity.
- Return errors and limit data in standardized JSON formats for consistency.
- Abstract the API into layers and keep it DRY to improve scalability and extensibility.
- Prioritize documentation, testing, monitoring, and following standards used by other successful APIs.
This document summarizes the evolution of using MySQL in AWS, from initial small deployments to more complex architectures with high availability and geo-redundancy needs. It describes starting with basic RDS instances, scaling to handle more reads with read replicas, and the limitations of multi-AZ deployments that require rolling your own HA solutions using tools like Pacemaker and mysqlfailover. As needs grow further, it discusses exploring synchronous replication and geo-redundancy across locations.
IronRuby has been around for a while. This presentation is about the practical uses of IronRuby. It contains several different use cases that you can immediately go and use to enhance your everyday work.
This document discusses customizing the WordPress loop to display content. It introduces different loop methods like WP_Query, query_posts(), and get_posts(), explaining that WP_Query is the best option. Code examples are provided for custom loops on the homepage, sidebar, and pages to categorize and style content differently.
This document discusses IronRuby on Rails. It begins with an introduction to Ruby on Rails and IronRuby. The main concepts of Rails like MVC, REST, routing, and testability are then covered. Finally, information on getting started with IronRuby on Rails is provided.
6 reasons Jubilee could be a Rubyist's new best friendForrest Chang
(Video here: http://confreaks.com/videos/5014-RubyConf2014-6-reasons-jubilee-could-be-a-rubyist-s-new-best-friend or https://www.youtube.com/watch?feature=player_embedded&v=FFR0G89WXI8)
Rubyconf 2014 talk on Jubilee, a Vert.x module that runs rack apps.
Alternate titles
Beyond Rails while using Rails
Rails can't do everything I want and <fill> makes me want to cry
Rubyconf abstract
Do you do web development in Ruby? Have you been forced to go to node or other technologies just for concurrency/websockets etc. Do miss your gems, and tire of functionality you have to implement from scratch? Do you hate javascript?
Well no need to switch languages/platforms, Jubilee could be your new best friend.
Jubilee, a rack server on top of Vert.x gives you
* Concurrency
* Speed
* Easy Websockets support
* Shared Memory
* Access to the JVM ecosystem
* Ability to reuse your existing Ruby knowledge and gems
"Say Hello to your new friend" - Al Pacino
RoR是Ruby on Rails的缩写,是一个用于编写Web应用的框架。他基于Ruby语言,给开发人员提供了强大便利的框架支持。Ruby有很多优点,但是一直以来其流行范围仅局限于日本。2004年,当Rails框架横空出世,让人们认识到了一个更符合实际需要并且高效的web框架,在其出现不久就受到了业内的广泛关注。吕国宁将结合自己三年的Rails开发经验,给大家介绍一些Rails的优点,背后的设计文化,以及Rails的前景发展等内容。
This document discusses the benefits of using the Ruby on Rails (ROR) web framework. It notes that Rails allows developers to build applications with less code and in less time compared to other technologies like Java. Specific points made include that a basic blog application can be created in Rails in just 15 minutes, and that Rails applications generally have significantly less lines of code and configuration compared to equivalent Java applications. The document also promotes upcoming Rails events in China and provides contact information for the founder of the Shanghai Rails meetup group.
- The team created a content inventory spreadsheet to audit and organize all website content. This involved building a sitemap, indexing documents, and identifying duplicates.
- They used Mercurial for version control due to its ease of use, cross-platform support, and ability to clone repositories for branching.
- A CSS style guide was created as a reference for developers, demonstrating classes and IDs without being a full framework or coding specification.
This document summarizes Chris Skardon's experience migrating the database for his competition running site Tournr from SQL to document and graph databases. It describes how the initial database choice of SQL Server became limiting and led to migrations first to RavenDB, a document database, and then to Neo4j, a graph database. Both migrations required reworking the data model and code but provided performance and flexibility benefits. While challenging, the migrations were worthwhile as the graph model better fit Tournr's needs.
This document provides an overview of functional programming concepts using Ruby. It discusses some of the problems with object-oriented programming like side effects and sharing of data and code. It then presents some ways to adopt a more functional style in Ruby, such as treating loops and data structures as functions. The document also introduces the Functional Ruby gem which adds features inspired by languages like Erlang and Haskell, including pattern matching, immutability and memoization. Overall, the document aims to demonstrate how functional programming principles can be applied in Ruby.
The document discusses the history and benefits of test-driven development (TDD). It notes that practices like agile development, extreme programming, and open source helped popularize TDD. TDD emphasizes writing tests before code, continuous integration, refactoring, loose coupling, and testing all new code. The document acknowledges research showing TDD may take longer initially but finds fewer bugs. It provides examples of Ruby testing tools and frameworks that facilitate TDD. The overall message is that the software development community now widely accepts and uses TDD.
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReadersRakuten Group, Inc.
This document discusses Kobo's use of big data analytics for ebooks and ereaders. It describes how Kobo uses technologies like Hadoop, Storm, and Solix to process, store, and analyze streaming data from ebooks. Kobo's big data team analyzes this data to power search and recommendations functions, perform content analysis tasks like related items and adult content filtering, and extract metadata from books to link to online information. Kobo's optimization of webpage layouts also utilizes big data approaches to test configurations and maximize user engagement.
In programming you can choose sides. You can choose the front or back end and if you really can’t choose you can be Switzerland and choose full stack.
For this meetup at the ANWB we've sided with front end and we had 3 Girl Coders who led us through different tech and aspects of front end coding.
Presentations:
- "Intro about Girl Code" by Ineke Scheffers
- "Intro about ANWB" by Xiaolin Song
- “Mixing UX with code: on being a Front Ender who also designs” by Hanny Verkerk
- “My first adventure with Elm: An introduction and comparison with AngularJS” by Anne van den Berg
- "How Bootstrap makes your Front End life easier" by Chantal Sloep
Slides from my post-Halloween talk at HTML5 Chicago (http://www.meetup.com/chicago-html5/events/208883662/).
Video here: http://struct.tv/streams/22
- The document evaluates criteria for choosing between NoSQL technologies like MongoDB and Redis.
- It discusses two use cases at Offers.com and how Redis was chosen for the first use case due to its fast reads/writes and data persistence, while MongoDB was chosen for the second use case due to its document-oriented data model and flexibility.
- Some downsides discussed are lack of data safety guarantees in MongoDB and lack of abstraction between NoSQL systems.
This document discusses ASP.NET MVC, which is a new project type for ASP.NET that separates concerns and allows for cleaner URLs and full control over markup. It follows the model-view-controller pattern, with the request first going to the controller, then the model, and then the view, which renders the response. The speaker discusses the benefits of this approach and notes that future versions will improve productivity, AJAX support, and extensibility.
I Can Magazine- and YOU CAN, TOO! (A Case Study of a Boutique Designer)Kevin Bruce
One month I was a web designer, the next I co-owned an existing tech media company. php[architect] is a boutique publishing brand that is well known in the PHP developer world. When our newly-minted four person company was asked to take over the brand (because the founder wanted to move on), we jumped at the opportunity. We took over a monthly magazine, tech books, training and two national conferences. As the sole designer in a band of developers, I was the most concerned. After several months, we worked out a content workflow (that ended in both digital and print) that made it possible for just four people to run a thriving boutique media company. This is how we did it.
This document provides an agenda and overview for a class on websites and design skills. It discusses using GitHub for collaboration, technologies that power websites like HTML and CSS, search engine optimization, business models, and an upcoming project involving designing a website business. Students are asked to review an existing website for SEO and business factors for homework.
Customizing the custom loop wordcamp 2012-jeffJeff Marx
This document discusses customizing WordPress loops to display content in non-standard ways. It introduces different loop methods like WP_Query, get_posts(), and query_posts() and recommends using WP_Query to build custom loops. Examples are provided of custom loops for the homepage, sidebar, and pages to categorize and style content beyond the default loop.
Michael Koby presented lessons learned from developing real world Rails applications. Some of the key lessons included: don't fear using scaffolding early on to quickly generate the basic structure; bundle your gems to manage dependencies; don't reinvent the wheel and leverage existing libraries; you can test functionality before building the full user interface; migrations are important for managing database schema changes; and seed data helps provide sample data for testing and demonstrations. Koby solicited questions and discussion at the end of the presentation.
This document provides an overview and introduction to the Ruby on Rails web framework. It discusses the following key points:
- Rails was developed by 37signals to build their BaseCamp application. It uses convention over configuration and opinionated defaults to provide a productive environment for web development.
- The MVC pattern organizes a Rails app into models, views, and controllers. Models manage data, views display it, and controllers handle requests and coordinate between models and views.
- Rails makes data access very simple with ActiveRecord. Models map directly to database tables, and CRUD (create, read, update, delete) operations are straightforward.
- Features like the rails console and built-in
This document discusses the benefits of using the Ruby on Rails (ROR) web framework. Some key points made include:
- ROR allows developers to build applications faster and with less code compared to other frameworks like Java.
- ROR follows conventions that reduce configuration needs and promote rapid development.
- A live demo shows how to create a basic blog application in Rails in just 15 minutes.
- ROR is well-suited for building RESTful and agile web applications.
- The Shanghai Ruby on Rails user group helps promote Rails adoption in China through meetups and conferences like RubyConfChina.
The document discusses best practices for testing with mocks in Ruby on Rails applications. It recommends that tests run fast by avoiding loading Rails and using factories, and that mocks should assert messages rather than state. Tests become more maintainable by mocking roles instead of concrete objects, and by isolating code into single responsibility classes rather than putting logic in fat models. When code is well-encapsulated with messages, mocks can make tests clearer; but mocks may indicate problems when they are difficult to set up or when tests become brittle.
This document discusses IronRuby on Rails. It begins with an introduction to Ruby on Rails and IronRuby. The main concepts of Rails like MVC, REST, routing, and testability are then covered. Finally, information on getting started with IronRuby on Rails is provided.
6 reasons Jubilee could be a Rubyist's new best friendForrest Chang
(Video here: http://confreaks.com/videos/5014-RubyConf2014-6-reasons-jubilee-could-be-a-rubyist-s-new-best-friend or https://www.youtube.com/watch?feature=player_embedded&v=FFR0G89WXI8)
Rubyconf 2014 talk on Jubilee, a Vert.x module that runs rack apps.
Alternate titles
Beyond Rails while using Rails
Rails can't do everything I want and <fill> makes me want to cry
Rubyconf abstract
Do you do web development in Ruby? Have you been forced to go to node or other technologies just for concurrency/websockets etc. Do miss your gems, and tire of functionality you have to implement from scratch? Do you hate javascript?
Well no need to switch languages/platforms, Jubilee could be your new best friend.
Jubilee, a rack server on top of Vert.x gives you
* Concurrency
* Speed
* Easy Websockets support
* Shared Memory
* Access to the JVM ecosystem
* Ability to reuse your existing Ruby knowledge and gems
"Say Hello to your new friend" - Al Pacino
RoR是Ruby on Rails的缩写,是一个用于编写Web应用的框架。他基于Ruby语言,给开发人员提供了强大便利的框架支持。Ruby有很多优点,但是一直以来其流行范围仅局限于日本。2004年,当Rails框架横空出世,让人们认识到了一个更符合实际需要并且高效的web框架,在其出现不久就受到了业内的广泛关注。吕国宁将结合自己三年的Rails开发经验,给大家介绍一些Rails的优点,背后的设计文化,以及Rails的前景发展等内容。
This document discusses the benefits of using the Ruby on Rails (ROR) web framework. It notes that Rails allows developers to build applications with less code and in less time compared to other technologies like Java. Specific points made include that a basic blog application can be created in Rails in just 15 minutes, and that Rails applications generally have significantly less lines of code and configuration compared to equivalent Java applications. The document also promotes upcoming Rails events in China and provides contact information for the founder of the Shanghai Rails meetup group.
- The team created a content inventory spreadsheet to audit and organize all website content. This involved building a sitemap, indexing documents, and identifying duplicates.
- They used Mercurial for version control due to its ease of use, cross-platform support, and ability to clone repositories for branching.
- A CSS style guide was created as a reference for developers, demonstrating classes and IDs without being a full framework or coding specification.
This document summarizes Chris Skardon's experience migrating the database for his competition running site Tournr from SQL to document and graph databases. It describes how the initial database choice of SQL Server became limiting and led to migrations first to RavenDB, a document database, and then to Neo4j, a graph database. Both migrations required reworking the data model and code but provided performance and flexibility benefits. While challenging, the migrations were worthwhile as the graph model better fit Tournr's needs.
This document provides an overview of functional programming concepts using Ruby. It discusses some of the problems with object-oriented programming like side effects and sharing of data and code. It then presents some ways to adopt a more functional style in Ruby, such as treating loops and data structures as functions. The document also introduces the Functional Ruby gem which adds features inspired by languages like Erlang and Haskell, including pattern matching, immutability and memoization. Overall, the document aims to demonstrate how functional programming principles can be applied in Ruby.
The document discusses the history and benefits of test-driven development (TDD). It notes that practices like agile development, extreme programming, and open source helped popularize TDD. TDD emphasizes writing tests before code, continuous integration, refactoring, loose coupling, and testing all new code. The document acknowledges research showing TDD may take longer initially but finds fewer bugs. It provides examples of Ruby testing tools and frameworks that facilitate TDD. The overall message is that the software development community now widely accepts and uses TDD.
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReadersRakuten Group, Inc.
This document discusses Kobo's use of big data analytics for ebooks and ereaders. It describes how Kobo uses technologies like Hadoop, Storm, and Solix to process, store, and analyze streaming data from ebooks. Kobo's big data team analyzes this data to power search and recommendations functions, perform content analysis tasks like related items and adult content filtering, and extract metadata from books to link to online information. Kobo's optimization of webpage layouts also utilizes big data approaches to test configurations and maximize user engagement.
In programming you can choose sides. You can choose the front or back end and if you really can’t choose you can be Switzerland and choose full stack.
For this meetup at the ANWB we've sided with front end and we had 3 Girl Coders who led us through different tech and aspects of front end coding.
Presentations:
- "Intro about Girl Code" by Ineke Scheffers
- "Intro about ANWB" by Xiaolin Song
- “Mixing UX with code: on being a Front Ender who also designs” by Hanny Verkerk
- “My first adventure with Elm: An introduction and comparison with AngularJS” by Anne van den Berg
- "How Bootstrap makes your Front End life easier" by Chantal Sloep
Slides from my post-Halloween talk at HTML5 Chicago (http://www.meetup.com/chicago-html5/events/208883662/).
Video here: http://struct.tv/streams/22
- The document evaluates criteria for choosing between NoSQL technologies like MongoDB and Redis.
- It discusses two use cases at Offers.com and how Redis was chosen for the first use case due to its fast reads/writes and data persistence, while MongoDB was chosen for the second use case due to its document-oriented data model and flexibility.
- Some downsides discussed are lack of data safety guarantees in MongoDB and lack of abstraction between NoSQL systems.
This document discusses ASP.NET MVC, which is a new project type for ASP.NET that separates concerns and allows for cleaner URLs and full control over markup. It follows the model-view-controller pattern, with the request first going to the controller, then the model, and then the view, which renders the response. The speaker discusses the benefits of this approach and notes that future versions will improve productivity, AJAX support, and extensibility.
I Can Magazine- and YOU CAN, TOO! (A Case Study of a Boutique Designer)Kevin Bruce
One month I was a web designer, the next I co-owned an existing tech media company. php[architect] is a boutique publishing brand that is well known in the PHP developer world. When our newly-minted four person company was asked to take over the brand (because the founder wanted to move on), we jumped at the opportunity. We took over a monthly magazine, tech books, training and two national conferences. As the sole designer in a band of developers, I was the most concerned. After several months, we worked out a content workflow (that ended in both digital and print) that made it possible for just four people to run a thriving boutique media company. This is how we did it.
This document provides an agenda and overview for a class on websites and design skills. It discusses using GitHub for collaboration, technologies that power websites like HTML and CSS, search engine optimization, business models, and an upcoming project involving designing a website business. Students are asked to review an existing website for SEO and business factors for homework.
Customizing the custom loop wordcamp 2012-jeffJeff Marx
This document discusses customizing WordPress loops to display content in non-standard ways. It introduces different loop methods like WP_Query, get_posts(), and query_posts() and recommends using WP_Query to build custom loops. Examples are provided of custom loops for the homepage, sidebar, and pages to categorize and style content beyond the default loop.
Michael Koby presented lessons learned from developing real world Rails applications. Some of the key lessons included: don't fear using scaffolding early on to quickly generate the basic structure; bundle your gems to manage dependencies; don't reinvent the wheel and leverage existing libraries; you can test functionality before building the full user interface; migrations are important for managing database schema changes; and seed data helps provide sample data for testing and demonstrations. Koby solicited questions and discussion at the end of the presentation.
This document provides an overview and introduction to the Ruby on Rails web framework. It discusses the following key points:
- Rails was developed by 37signals to build their BaseCamp application. It uses convention over configuration and opinionated defaults to provide a productive environment for web development.
- The MVC pattern organizes a Rails app into models, views, and controllers. Models manage data, views display it, and controllers handle requests and coordinate between models and views.
- Rails makes data access very simple with ActiveRecord. Models map directly to database tables, and CRUD (create, read, update, delete) operations are straightforward.
- Features like the rails console and built-in
This document discusses the benefits of using the Ruby on Rails (ROR) web framework. Some key points made include:
- ROR allows developers to build applications faster and with less code compared to other frameworks like Java.
- ROR follows conventions that reduce configuration needs and promote rapid development.
- A live demo shows how to create a basic blog application in Rails in just 15 minutes.
- ROR is well-suited for building RESTful and agile web applications.
- The Shanghai Ruby on Rails user group helps promote Rails adoption in China through meetups and conferences like RubyConfChina.
The document discusses best practices for testing with mocks in Ruby on Rails applications. It recommends that tests run fast by avoiding loading Rails and using factories, and that mocks should assert messages rather than state. Tests become more maintainable by mocking roles instead of concrete objects, and by isolating code into single responsibility classes rather than putting logic in fat models. When code is well-encapsulated with messages, mocks can make tests clearer; but mocks may indicate problems when they are difficult to set up or when tests become brittle.
This document provides information on contributing to the Ruby on Rails framework. It discusses why developers should contribute (e.g. giving back to an open source project they use), what types of contributions are needed (e.g. fixing bugs, writing documentation), and how to get started (e.g. setting up their development environment, downloading the Rails source code, and running tests). The document also lists some specific contribution tasks and resources for learning more about the contribution process.
Apache Solr for TYPO3 at TYPO3 Usergroup Day NetherlandsIngo Renner
Presentation of an extension to integrate Apache Solr for TYPO3. Apache Solr is an enterprise search server, TYPO3 is a mid-to large size enterprise Content Management System; combining both results in great user search experience.
This document summarizes the speaker's experience working with a Rails application for 3 years. It discusses how they improved the app over time by migrating to newer Rails versions, adding tests, upgrading gems, and implementing new features while reducing technical debt. It also provides tips for file structure, migrations, version control, and staying up to date with the Rails community through blogs and conferences. The speaker expresses appreciation for what Rails has given them and their view that it remains a good framework going forward.
My Site is slow - Drupal Camp London 2013hernanibf
Drupal is a powerful and flexible tool to create web applications without building everything from scratch. This ability can drive developers to build complex websites without understanding what is Drupal doing behind the scenes.
The majority of Drupal performance talks mostly focus in aspects like infrastructure changes, caching strategies or comparisons between modules and architectures. Unfortunately when performance problems occur, development teams also follow strategies to replace different aspects of the platform looking only to standard aspects like slow queries without understanding and profiling the real problem.
The majority of times it is fundamental to measure and analyze what is the application is actually doing to understand te real problems. Drupal is a platform used by million of websites worlwide and its performance can in most cases be compared after measured.
In Acquia we do dozens of performance assessments per year, and even in most clients we find the same problems, often we find situations that only can be detected when measured and analized when looking to a profiler report.
In this session, I will explain how to detect performance problems looking to simple data, from logs to profiler data and providing some nice targets that can be analyzed to understand what is causing the uncommon bad performance of a site.
Drupal is a powerful and flexible platform to build websites with rich funcionalities without building almost anything from scratch. This flexibility brought by the usage of a powerful framework and the work of a super active community can abstract people to understand what is Drupal doing behind the scenes.
Most of performance talks regarding Drupal focus on aspects like infrastructure changes, caching strategies, and comparison of performance between modules or platforms. Unfortunately when performance problems occur, development teams also follow several strategies to replace several aspects in their platforms, jump directly to look for slow queries before trying really to understand where is the bottleneck.
However, most of the times what really needs to be done is to look to what the application is doing and understanding why is it taking so long to do it. Drupal is a platform used by million of websites worldwide and its performance is easy to measure and compare.
At Acquia we have done dozens of performance assessments, and even if we usually face the same problems, sometimes we found weird situations that are only possible to be detected when measured. Measuring and profiling is the only way to understand performance problems in a site and provide valid fixes.
In this talk I will explain how to detect problems regarding performance in Drupal, using simple modules like devel, profilers like XhProf and looking to logs to understand the impact done on the application.
This document summarizes Neil Bowers' process for reviewing CPAN modules. He begins reviews by searching for existing modules on a topic and writing sections comparing the modules. He aims to submit fixes and improvements, get involved in maintenance, and publish reviews iteratively. The reviews have led Neil to make contributions to CPAN and improve his own practices, like benchmarking and reducing dependencies. He encourages others to search CPAN before writing new modules and to improve documentation.
BSides Lisbon 2013 - All your sites belong to BurpTiago Mendo
This talk is going to be all about Burp. I will explain why is such a great tool and how it compares with similar ones.
Its going to have a quick walkthrough of its main features, but the juicy part is going to be about how to fully explore its main tools, such as the scanner, intruder and sequencer, to increase the number and type of vulnerabilities found.
In addition, I will provide an overview of the Burp Extender Interface and how to easily and quickly take advantage of extensions to increase its awesomeness. I will show how easy is for an pentester to translate an idea to a extension and (I hope) publicly release one plugin to further help pentesters.
The talks objective is to increase your efficiency while using Burp, either by taking advantage of its excellent tools or by adding that feature that really need.
Presented at BSides Lisbon at 04/10/13 (http://bsideslisbon.org)
This document discusses test-driven development (TDD) and strategies for testing Sitecore applications. It covers:
1. The basics of TDD including writing unit tests first, making them pass, and then refactoring code. This helps ensure code always works and allows for safe refactoring.
2. Isolating dependencies by using interfaces, dependency injection with AutoFac, and fake objects with NSubstitute to isolate code from external systems.
3. Strategies for isolating and testing Sitecore code, including using Glass Mapper to map Sitecore items to lightweight objects and the Sitecore.FakeDB library for faking Sitecore data.
4. Tools for testing Sitecore itself
Intro to SharePoint 2010 development for .NET developersJohn Ferringer
While its very true that SharePoint’s development model is firmly rooted in the .NET development world, at the same time SharePoint can be appear to be a completely alien beast to even the most experienced of .NET developers. In this session, John will introduce the fundamental practices that a .NET developer should understand about SharePoint and needs to follow when building custom solutions for the platform, whether its creating web parts or building complex workflows and Line of Business applications for deployment within a SharePoint farm.
A short talk on Elixir adoption in RabbitMQ, a multi-protocol open source messaging broker: the motivation, how it compares to Erlang for our needs, and what we've learnt about 1 year into it.
Tommi Reiman discusses optimizing Clojure performance and abstractions. He shares lessons learned from optimizing middleware performance and JSON serialization. Data-driven approaches can enable high performance while maintaining abstraction. Reitit is a new routing library that aims to have the fastest performance through techniques like compiled routing data. Middleware can also benefit from data-driven approaches without runtime penalties. Overall performance should be considered but not obsessively, as many apps do not require extreme optimization.
The document discusses testing sad paths at Teespring, which sells t-shirts. It notes that while happy paths are usually tested first, sad paths involving errors can be overlooked. It identifies three types of failures - those caused by user errors, system errors, and transient errors. It provides things to consider when testing for each type, such as defining valid vs invalid input, preventing vs handling failures, and how to communicate errors to users. The document recommends defensive coding, logging errors, and isolating failures to test sad paths thoroughly.
This document discusses scaling applications and services. It recommends taking a vertical approach by breaking monolithic applications into microservices that communicate through APIs. The Swagger framework is presented as a way to document and test APIs. Swagger can generate client libraries and helps services scale by enabling asynchronous communication through websockets. Taking this vertical, microservices approach with Swagger improves scalability by allowing dedicated teams to own individual services and improves performance through asynchronous communication protocols.
Digital Publishing with the OSCI Toolkit - Workshop MCN 2012graybowman
This document provides an agenda for a digital publishing workshop using the Open Scholarship Initiative Toolkit (OSCI). It discusses getting started with the OSCI toolkit, authoring and publishing content, creating custom web publications, and APIs for user notes, search, citations, and figures. Recommended ePub viewing and conversion tools are also listed. The document aims to demonstrate the capabilities and customization options of the OSCI toolkit for digital publishing.
Oxford DrupalCamp 2012 - The things we found in your websitehernanibf
The document discusses various issues found on a website during an audit. It describes symptoms of problems with content architecture like duplicate content types and unused fields. It also outlines issues with site architecture such as custom modules that are not well designed or reusable, unnecessary complexity from unused features, and basic security vulnerabilities around outdated software, permissions, and injection attacks. The document provides guidance on how to further investigate and address these problems.
Not Everything is an Object - Rocksolid Tour 2013Gary Short
This document provides an overview of the history of programming languages and object-oriented development. It discusses some of the limitations of the object-oriented paradigm, such as complexity, brittle hierarchies, and difficulties modeling real-world objects. The document then introduces Clojure as a functional programming language that avoids these issues by using immutable data and focusing on equality rather than object identity. It provides examples of Clojure's features like persistent collections, and discusses how Clojure code is evaluated through its reader and evaluator.
Birdpie is a web application that aggregates all tweeted links from a Twitter user and allows the user to manage those links. It auto-tags the links, categorizes them, and resolves shortened URLs to show the full link and page title. Users can sign in through Twitter OAuth to access their tweeted links. Birdpie uses a background worker architecture with Resque and Redis to crawl, resolve, tag, and update link counts.
The document contains data in bar and pie charts, with the bar chart showing orange at 100, blue at 76, and green at 35, and the pie chart showing data points of 30, 70, and 11. It also mentions a nice beach.
A Taste of TDD: The basics of TDD, why it is hard and how to do it betterJohn McCaffrey
A Taste of TDD: Basic overview of Agile Testing, TDD in practice, Pros/Cons of Test Driven Development, Recent TDD Controversey (DHH, Kent Beck, Martin Fowler), and some strategies for doing it well.
This is a lead in to a full Agile Workshop on Scrum/XP, TDD, and Pairing
Becoming a more Productive Rails DeveloperJohn McCaffrey
Tips and tricks for how to accelerate your technical learning, take better notes, search in the right places, get help faster, solidify your understanding and hold on to what you've learned.
John McCaffrey gives a presentation on cloud tools for development. He discusses terminology related to hosting and deploying applications. Some hosting options he covers include self-hosting, Amazon Web Services, EngineYard, Heroku, and AppHarbor. John then demonstrates deploying applications to Heroku and monitoring tools. He finishes by discussing collaboration tools like email, chat, screen sharing, and code repositories on services like GitHub.
Web Performance tuning presentation given at http://www.chippewavalleycodecamp.com/
Covers basic http flow, measuring performance, common changes to improve performance now, and several tools and techniques you can use now.
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...John McCaffrey
(reposting with clearer title)
Performance tuning presentation from WindyCityRails 2010.
Why performance matters
The right way to approach it
Front end testing tools
Automated testing tools
Common problems and the ways to solve them in Rails
Rails specific tools
bullet
slim_scrooge
rack bug
request log analyzer
rails indexes
improving the performance of Rails web ApplicationsJohn McCaffrey
This presentation is the first in a series on Improving Rails application performance. This session covers the basic motivations and goals for improving performance, the best way to approach a performance assessment, and a review of the tools and techniques that will yield the best results. Tools covered include: Firebug, yslow, page speed, speed tracer, dom monster, request log analyzer, oink, rack bug, new relic rpm, rails metrics, showslow.org, msfast, webpagetest.org and gtmetrix.org.
The upcoming sessions will focus on:
Improving sql queries, and active record use
Improving general rails/ruby code
Improving the front-end
And a final presentation will cover how to be a more efficient and effective developer!
This series will be compressed into a best of session for the 2010 http://windycityRails.org conference
PDF Generation in Rails with Prawn and Prawn-to: John McCaffreyJohn McCaffrey
breakdown of the most commonly used pdf libraries in rails projects,and an in depth review of prawn
example pdfs and code can be seen at prawn.heroku.com
More info at www.RailsPerformance.com
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.
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
Impelsys provided a robust testing solution, leveraging a risk-based and requirement-mapped approach to validate ICU Connect and CritiXpert. A well-defined test suite was developed to assess data communication, clinical data collection, transformation, and visualization across integrated devices.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
📕 Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
👉 Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
Mobile App Development Company in Saudi ArabiaSteve Jonas
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
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.
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
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, transcript, 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.
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
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
Quantum Computing Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
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
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes
Irb Tips and Tricks
1. Irb Tips and Tricks
John McCaffrey
Freelance Consultant
@J_McCaffrey
RailsPerformance.net
2. Here we go!
• Irb is awesome
• Common Usage patterns
• Customizing Irb
• Rails Console
• References
3. In case I don’t finish...
• IRB is extremely powerful and Customizable
• A useful tool in your toolkit
• Worth finding ways to improve your usage
• Ask your friends, share your ideas
• ....some compatibility issues in Rails 3
4. Irb is Awesome!
http://tryruby.org/