Marcus works at Nordaaker Consulting but they are moving south in January. He demonstrates how to use Mojolicious to make HTTP requests and parse the response using Mojo::DOM. Mojolicious is a full-stack web framework for Perl 5 that provides a modular architecture and aims to have minimal dependencies.
Mojolicious is a full-stack web framework and HTTP client for Perl that provides an object-oriented API without hidden magic or dependencies. It includes features like asynchronous I/O, routing, plugins, sessions, templating, internationalization support, and JSON/XML handling. Mojolicious comes in three flavors: Mojolicious::Lite for simple apps, Mojolicious for full MVC apps, and Mojo as a lightweight base framework. It supports technologies like CGI, FastCGI, PSGI, HTTP 1.1, and WebSockets.
Mojolicious is a fast web development tool that is easy to start with, use, and extend. It facilitates best practices without enforcing them. Bootstrap from Twitter is very user-friendly across browsers. Mojolicious is light, flexible, and easy.
This document provides an overview of Mojolicious, a real-time web application framework written in Perl. It discusses getting started with Mojolicious::Lite, including routes, placeholders, templates and layouts. It also covers sessions, growing applications out of Lite into Mojolicious, and additional Mojo modules for things like web clients and HTML parsing. Resources for learning more about Mojolicious are provided.
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)Dotan Dimet
A lightning talk given at Rails Israel 2014
(http://railsisrael2014.events.co.il/presentations/1319-mojolicious-perl-framework-for-the-real-time-web).
Uses some slides lifted from Glen Hinkle's YAPC 2012 talk
(https://speakerdeck.com/tempire/intro-to-mojolicious-perl)
and an image created by Marcus Ramburg.
Mojolicious is a lightweight web framework inspired by Ruby frameworks. It uses PSGI and includes features like ORM, templating, internationalization, and forms. Some key differences between Mojolicious and Dancer are that in Mojolicious the application is defined as a class rather than a script, the code is more "natural" with no magic, and Mojolicious routes are very powerful. What works well about Mojolicious is the good documentation, fast IRC support, powerful routing system, extensive test suite, and clear no dependencies policy. However, the no dependencies policy can cause issues, some tests may not be relevant, and the Template Toolkit renderer requires prefixing all variables with "c.".
This document provides an overview of RESTful web services using Mojolicious and DBIx::Class. It describes a sample expense tracker application with five database tables in a many-to-many relationship. It then introduces REST concepts and describes how Mojolicious routes requests, DBIx::Class models the database, and generic controllers can provide CRUD operations. Finally, it outlines the steps to generate RESTful routes for a database table, including creating a model and controller that inherits standard CRUD methods.
Inside Bokete: Web Application with Mojolicious and othersYusuke Wada
Yusuke Wada introduced his work developing the Bokete website. Bokete is a Japanese entertainment website similar to 9gag that allows users to post and view "boke" which are photos with short texts. It has a website, mobile apps, and receives 300 million page views per month. Wada developed the backend system for Bokete using Perl and Mojolicious along with several other CPAN modules, particularly some written by Japanese authors. He discussed the system architecture and modules used to build Bokete.
Mojolicious is a real-time web framework for Perl that provides a simplified single file mode through Mojolicious::Lite. It has a clean, portable, object oriented API without hidden magic. It supports HTTP, WebSockets, TLS, IPv6 and more. Templates can use embedded Perl and are automatically rendered. Helpers, sessions, routing and testing utilities are built in. The generator can create new app structures and components.
Mojolicious is a full-stack web framework and HTTP client for Perl that provides an object-oriented API without hidden magic or dependencies. It includes features like asynchronous I/O, routing, plugins, sessions, templating, internationalization support, and JSON/XML handling. Mojolicious comes in three flavors: Mojolicious::Lite for simple apps, Mojolicious for full MVC apps, and Mojo as a lightweight base framework. It supports technologies like CGI, FastCGI, PSGI, HTTP 1.1, and WebSockets.
Mojolicious is a fast web development tool that is easy to start with, use, and extend. It facilitates best practices without enforcing them. Bootstrap from Twitter is very user-friendly across browsers. Mojolicious is light, flexible, and easy.
This document provides an overview of Mojolicious, a real-time web application framework written in Perl. It discusses getting started with Mojolicious::Lite, including routes, placeholders, templates and layouts. It also covers sessions, growing applications out of Lite into Mojolicious, and additional Mojo modules for things like web clients and HTML parsing. Resources for learning more about Mojolicious are provided.
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)Dotan Dimet
A lightning talk given at Rails Israel 2014
(http://railsisrael2014.events.co.il/presentations/1319-mojolicious-perl-framework-for-the-real-time-web).
Uses some slides lifted from Glen Hinkle's YAPC 2012 talk
(https://speakerdeck.com/tempire/intro-to-mojolicious-perl)
and an image created by Marcus Ramburg.
Mojolicious is a lightweight web framework inspired by Ruby frameworks. It uses PSGI and includes features like ORM, templating, internationalization, and forms. Some key differences between Mojolicious and Dancer are that in Mojolicious the application is defined as a class rather than a script, the code is more "natural" with no magic, and Mojolicious routes are very powerful. What works well about Mojolicious is the good documentation, fast IRC support, powerful routing system, extensive test suite, and clear no dependencies policy. However, the no dependencies policy can cause issues, some tests may not be relevant, and the Template Toolkit renderer requires prefixing all variables with "c.".
This document provides an overview of RESTful web services using Mojolicious and DBIx::Class. It describes a sample expense tracker application with five database tables in a many-to-many relationship. It then introduces REST concepts and describes how Mojolicious routes requests, DBIx::Class models the database, and generic controllers can provide CRUD operations. Finally, it outlines the steps to generate RESTful routes for a database table, including creating a model and controller that inherits standard CRUD methods.
Inside Bokete: Web Application with Mojolicious and othersYusuke Wada
Yusuke Wada introduced his work developing the Bokete website. Bokete is a Japanese entertainment website similar to 9gag that allows users to post and view "boke" which are photos with short texts. It has a website, mobile apps, and receives 300 million page views per month. Wada developed the backend system for Bokete using Perl and Mojolicious along with several other CPAN modules, particularly some written by Japanese authors. He discussed the system architecture and modules used to build Bokete.
Mojolicious is a real-time web framework for Perl that provides a simplified single file mode through Mojolicious::Lite. It has a clean, portable, object oriented API without hidden magic. It supports HTTP, WebSockets, TLS, IPv6 and more. Templates can use embedded Perl and are automatically rendered. Helpers, sessions, routing and testing utilities are built in. The generator can create new app structures and components.
Anatoly Sharifulin presents on developing apps using Perl. He discusses creating an app called DLTTR that allows users to delete tweets in bulk using asynchronous queues and APIs. The app was built with Mojolicious, uses a server API, and stores data in MySQL. It has been successful with over 1 million tweets deleted and thousands of users. The talk highlights how Perl helped enable the creation of this cross-platform app that deletes tweets quickly and appropriately.
Mojo started as an alternative to the aging LWP library for HTTP requests in Perl. It was created by Sebastian Riedel to have a more modern, asynchronous API. Mojo provides an easy to use and full-featured HTTP client and server with support for features like websockets, parallel requests, and more. The library uses a test-driven development approach and strives to have a pragmatic design with reusable components.
- Mojolicious is a web development framework for Perl that aims to rethink web development
- It provides a powerful routing system, full HTTP implementation, simple templating, built-in JSON support, elegant plugin system, and class reloader
- Installation is simple using CPAN and has no dependencies beyond Perl 5.8.1
- It includes classes for requests, responses, templates, JSON encoding/decoding, and more
- Plugins can hook into various stages of the request lifecycle
- Supports generating applications, running commands, and provides a simple but powerful way to build web applications and services in Perl
Keeping it small: Getting to know the Slim micro frameworkJeremy Kendall
This document provides an overview of the Slim micro framework. It discusses that Slim aims for a concise codebase that addresses common use cases well. It then covers installing Slim, creating a basic "Hello World" application, and reviewing the structure of a sample Slim photo application including routing, configuration, views, and middleware.
Keeping it small - Getting to know the Slim PHP micro frameworkJeremy Kendall
The document discusses the Slim micro PHP framework. It provides an overview of installing Slim via Composer, basic routing examples including GET and POST requests, and configuration options. Key topics covered include routing, templates, middleware, configuration via a config array, and logging/flash messaging. Examples demonstrate basic routing for homepage, single images, adding photos, and handling POST data and redirects.
Building Modern and Secure PHP Applications – Codementor Office Hours with Be...Arc & Codementor
The document discusses modern PHP features such as exceptions, namespaces, closures, statics, short array syntax, PDO, security improvements, and popular PHP tools. It provides examples of how to use exceptions, closures, namespaces, statics, short array syntax, PDO, and security features. It also introduces the built-in PHP web server, Composer package manager, and PHPUnit testing framework as useful modern PHP tools.
The document provides tips and best practices for creating jQuery plugins, including organizing code structure, generalizing functionality, minimizing file size through minification, and optimizing performance. It discusses using closures and object literals for plugins, exposing only necessary methods, avoiding duplicate code, and helping the compressor by using arrays and strings. The goal is to build clean, simple APIs while generalized and minimized code.
Starting from Constructor Function and Object.create() as methods for creating objects in Javascript, we analize a couple of way to bootstrap a jQuery Plugin.
Keeping it Small: Getting to know the Slim Micro FrameworkJeremy Kendall
This document provides an overview of the Slim micro web framework. It discusses that Slim aims for concise and clear code, addresses common use cases well, and is inspired by Sinatra. It provides examples of basic routing and middleware usage in Slim. Key aspects covered include routing, configuration, logging, views, and hooks/middleware.
Slides from the talk at http://www.meetup.com/GTA-PHP-User-Group-Toronto/events/151672182/
Source code for the demo at https://github.com/zymsys/Slim-RedBeanPHP-KnockoutJS
This document describes the architecture of a Twitter scraping application. It uses Gearman for asynchronous job processing to fetch Twitter data from the API or stream. Workers register fetch jobs and process the requests. The application includes modules for the CLI, reader, and streaming components and uses JSON and LWP libraries. It retrieves tweets and stores them in a database for analysis.
Best Practices in Plugin Development (WordCamp Seattle)andrewnacin
My talk -- officially named "Y U NO CODE WELL" -- at WordCamp Seattle 2011 on best practices during plugin development. Find the video, as it provides some good context and conversation.
Extending the WordPress REST API - Josh PollockCaldera Labs
Presentation on extending the WordPress REST API -- modifying default responses and creating custom endpoints
http://joshpress.net/extending-rest-api-talk
A year ago, I was a committed VPS and dedicated-machine deployer. I thought the cloud imposed silly restrictions - how dare you take away my shell account! Whaddya mean I can't save files locally? Since then, I've had some interesting experiences. I've worked on big cloud-deployed systems, and certain large traditionally-deployed systems, and I've seen how a lot of the decisions that you're ... encouraged to make when designing an app to run in the cloud. Most interestingly, I've discovered how those same decisions can make for a much better app regardless of where it'll end up. In this talk, I'll share those architectural patterns with you, and show why they work. Hopefully, I'll convince all of you to build cloud castles -- even if you've got your foundation firmly on the ground.
This document discusses using Perl to access web APIs. It provides examples of popular web APIs like Twitter, Google, and Flickr. It explains that web APIs use HTTP, URIs, and return formats like JSON and XML. The document then demonstrates how to use Perl modules like LWP, URI, and JSON to make requests to the Twitter Search API, handle UTF-8 encoding, and parse the JSON response. Finally, it mentions more advanced modules for web services in Perl like WebService::Simple.
This document contains the file structure and code for a SampleApp project. The project contains a lib directory with SampleApp.pm and modules for a CLI crawler role and web API and controller. The SampleApp.pm file contains code to load a YAML configuration file, make GET requests to URLs listed in the file, and send reports via email if any requests fail.
This document contains code snippets from a Perl application that performs the following:
1) Defines a subroutine called "run" that uses AnyEvent to fetch RSS/Atom feeds on an interval and process new entries.
2) Defines a Plack application using various Perl modules like Noe, DBIx::Skinny, and Cache::Memcached::Fast.
3) Defines controllers for the application's routes including a root path, "hi" path that renders a template, and redirect.
4) Defines a method that searches a Link resultset using DBIx::Class and handles pagination, prefetching rows and returning the resultset.
This document provides an overview of routing changes in Rails 3, including:
- Matching routes using "match" instead of "map.connect" and optional segments.
- Namespaces, scopes, and constraints for organizing and restricting routes.
- Default RESTful routes and generating resources.
- Redirects can now be specified as Rack apps or Procs.
- Mounting other Rack endpoints at specific paths.
This document discusses Mojolicious, a lightweight web framework for Perl. It provides examples of using Mojolicious to quickly generate a new project skeleton, start a web server, and add routing and templates. The document also lists some advantages of Mojolicious like its small core dependencies, quick prototyping capabilities, and ability to scale from simple to more complex applications.
PSGI and Plack provide a common interface (PSGI) and shared infrastructure (Plack) for building web applications and frameworks in Perl. PSGI defines a standard way for applications to communicate with web servers through a request/response interface. Plack provides many server implementations like FastCGI and standalone that can run PSGI applications. It also includes middleware, testing tools, and utilities to help developers. This new approach allows frameworks and applications to focus on their logic while reusing common plumbing through PSGI and Plack.
Anatoly Sharifulin presents on developing apps using Perl. He discusses creating an app called DLTTR that allows users to delete tweets in bulk using asynchronous queues and APIs. The app was built with Mojolicious, uses a server API, and stores data in MySQL. It has been successful with over 1 million tweets deleted and thousands of users. The talk highlights how Perl helped enable the creation of this cross-platform app that deletes tweets quickly and appropriately.
Mojo started as an alternative to the aging LWP library for HTTP requests in Perl. It was created by Sebastian Riedel to have a more modern, asynchronous API. Mojo provides an easy to use and full-featured HTTP client and server with support for features like websockets, parallel requests, and more. The library uses a test-driven development approach and strives to have a pragmatic design with reusable components.
- Mojolicious is a web development framework for Perl that aims to rethink web development
- It provides a powerful routing system, full HTTP implementation, simple templating, built-in JSON support, elegant plugin system, and class reloader
- Installation is simple using CPAN and has no dependencies beyond Perl 5.8.1
- It includes classes for requests, responses, templates, JSON encoding/decoding, and more
- Plugins can hook into various stages of the request lifecycle
- Supports generating applications, running commands, and provides a simple but powerful way to build web applications and services in Perl
Keeping it small: Getting to know the Slim micro frameworkJeremy Kendall
This document provides an overview of the Slim micro framework. It discusses that Slim aims for a concise codebase that addresses common use cases well. It then covers installing Slim, creating a basic "Hello World" application, and reviewing the structure of a sample Slim photo application including routing, configuration, views, and middleware.
Keeping it small - Getting to know the Slim PHP micro frameworkJeremy Kendall
The document discusses the Slim micro PHP framework. It provides an overview of installing Slim via Composer, basic routing examples including GET and POST requests, and configuration options. Key topics covered include routing, templates, middleware, configuration via a config array, and logging/flash messaging. Examples demonstrate basic routing for homepage, single images, adding photos, and handling POST data and redirects.
Building Modern and Secure PHP Applications – Codementor Office Hours with Be...Arc & Codementor
The document discusses modern PHP features such as exceptions, namespaces, closures, statics, short array syntax, PDO, security improvements, and popular PHP tools. It provides examples of how to use exceptions, closures, namespaces, statics, short array syntax, PDO, and security features. It also introduces the built-in PHP web server, Composer package manager, and PHPUnit testing framework as useful modern PHP tools.
The document provides tips and best practices for creating jQuery plugins, including organizing code structure, generalizing functionality, minimizing file size through minification, and optimizing performance. It discusses using closures and object literals for plugins, exposing only necessary methods, avoiding duplicate code, and helping the compressor by using arrays and strings. The goal is to build clean, simple APIs while generalized and minimized code.
Starting from Constructor Function and Object.create() as methods for creating objects in Javascript, we analize a couple of way to bootstrap a jQuery Plugin.
Keeping it Small: Getting to know the Slim Micro FrameworkJeremy Kendall
This document provides an overview of the Slim micro web framework. It discusses that Slim aims for concise and clear code, addresses common use cases well, and is inspired by Sinatra. It provides examples of basic routing and middleware usage in Slim. Key aspects covered include routing, configuration, logging, views, and hooks/middleware.
Slides from the talk at http://www.meetup.com/GTA-PHP-User-Group-Toronto/events/151672182/
Source code for the demo at https://github.com/zymsys/Slim-RedBeanPHP-KnockoutJS
This document describes the architecture of a Twitter scraping application. It uses Gearman for asynchronous job processing to fetch Twitter data from the API or stream. Workers register fetch jobs and process the requests. The application includes modules for the CLI, reader, and streaming components and uses JSON and LWP libraries. It retrieves tweets and stores them in a database for analysis.
Best Practices in Plugin Development (WordCamp Seattle)andrewnacin
My talk -- officially named "Y U NO CODE WELL" -- at WordCamp Seattle 2011 on best practices during plugin development. Find the video, as it provides some good context and conversation.
Extending the WordPress REST API - Josh PollockCaldera Labs
Presentation on extending the WordPress REST API -- modifying default responses and creating custom endpoints
http://joshpress.net/extending-rest-api-talk
A year ago, I was a committed VPS and dedicated-machine deployer. I thought the cloud imposed silly restrictions - how dare you take away my shell account! Whaddya mean I can't save files locally? Since then, I've had some interesting experiences. I've worked on big cloud-deployed systems, and certain large traditionally-deployed systems, and I've seen how a lot of the decisions that you're ... encouraged to make when designing an app to run in the cloud. Most interestingly, I've discovered how those same decisions can make for a much better app regardless of where it'll end up. In this talk, I'll share those architectural patterns with you, and show why they work. Hopefully, I'll convince all of you to build cloud castles -- even if you've got your foundation firmly on the ground.
This document discusses using Perl to access web APIs. It provides examples of popular web APIs like Twitter, Google, and Flickr. It explains that web APIs use HTTP, URIs, and return formats like JSON and XML. The document then demonstrates how to use Perl modules like LWP, URI, and JSON to make requests to the Twitter Search API, handle UTF-8 encoding, and parse the JSON response. Finally, it mentions more advanced modules for web services in Perl like WebService::Simple.
This document contains the file structure and code for a SampleApp project. The project contains a lib directory with SampleApp.pm and modules for a CLI crawler role and web API and controller. The SampleApp.pm file contains code to load a YAML configuration file, make GET requests to URLs listed in the file, and send reports via email if any requests fail.
This document contains code snippets from a Perl application that performs the following:
1) Defines a subroutine called "run" that uses AnyEvent to fetch RSS/Atom feeds on an interval and process new entries.
2) Defines a Plack application using various Perl modules like Noe, DBIx::Skinny, and Cache::Memcached::Fast.
3) Defines controllers for the application's routes including a root path, "hi" path that renders a template, and redirect.
4) Defines a method that searches a Link resultset using DBIx::Class and handles pagination, prefetching rows and returning the resultset.
This document provides an overview of routing changes in Rails 3, including:
- Matching routes using "match" instead of "map.connect" and optional segments.
- Namespaces, scopes, and constraints for organizing and restricting routes.
- Default RESTful routes and generating resources.
- Redirects can now be specified as Rack apps or Procs.
- Mounting other Rack endpoints at specific paths.
This document discusses Mojolicious, a lightweight web framework for Perl. It provides examples of using Mojolicious to quickly generate a new project skeleton, start a web server, and add routing and templates. The document also lists some advantages of Mojolicious like its small core dependencies, quick prototyping capabilities, and ability to scale from simple to more complex applications.
PSGI and Plack provide a common interface (PSGI) and shared infrastructure (Plack) for building web applications and frameworks in Perl. PSGI defines a standard way for applications to communicate with web servers through a request/response interface. Plack provides many server implementations like FastCGI and standalone that can run PSGI applications. It also includes middleware, testing tools, and utilities to help developers. This new approach allows frameworks and applications to focus on their logic while reusing common plumbing through PSGI and Plack.
PSGI and Plack provide a common interface (PSGI) and shared infrastructure (Plack) for building web applications and frameworks in Perl. PSGI defines a standard way for applications to communicate with web servers through a request/response interface. Plack provides many server implementations like FastCGI and standalone that can run PSGI applications. It also includes middleware, testing tools, and utilities to help developers. This new approach allows frameworks and applications to focus on their logic while reusing common plumbing through PSGI and Plack.
The document discusses using Phing, an XML-based build tool written in PHP, to automate the deployment of PHP applications to various platforms including Linux, Windows, and Windows Azure. It provides examples of using Phing tasks to export code from version control, deploy via SCP, FTP, or cloud services, and set up continuous integration and continuous deployment workflows. The key message is that Phing allows for easy, automated deployment of PHP code to any environment.
- PSGI (Perl Web Server Gateway Interface) and Plack provide a common interface and utilities for building web applications and servers in Perl.
- PSGI defines a standard interface that web frameworks can implement to work with different server implementations. Plack provides server implementations like standalone, FastCGI and Apache modules.
- This allows frameworks to focus on the application code instead of server specifics, and servers to handle multiple frameworks. Common middleware and testing utilities are also included.
- Examples of frameworks that have adopted PSGI include Catalyst, Maypole and Mojolicious. Popular servers built on Plack include Starman and Dancer.
As a PHP developer building web applications is besides making a living a lot of fun too, especially when you can deploy your apps to any kind of environment and on any platform. In this session I take a non-standard PHP application (based on Zend Framework) and deploy it to a bare metal environment running LAMP, Windows 2008 Server with IIS7 and to cloud instances like Azure and Amazon.
The goal is to provide information on how to deploy to these various environments manual and automatic, but also to show it doesn't really matter anymore what the targeted platform is, as long the apps are written in PHP.
Plack is a Perl web server gateway interface (PSGI) toolkit that provides a standard interface between web applications written in Perl and web servers. It includes reusable middleware, a reference PSGI server, handlers for connecting to different web servers like CGI and FastCGI, and tools for running and testing PSGI applications. Many popular Perl web frameworks have adapted to work with PSGI/Plack.
This document summarizes blog hacking techniques from 2004 to 2011. It provides 5 hacks including using a CSS framework for layout and styling, media queries for responsive design, embedding YouTube videos, syntax highlighting for code snippets, and using pubsubhubbub for real-time updates. The document encourages continuing to blog and have fun exploring new methods.
The document discusses automating software deployment using Ansible. It provides an overview of Ansible's basic concepts like inventory files to define hosts, playbooks to execute tasks on hosts, and roles to bundle related tasks. It then discusses using Ansible roles to automate deployments, including the ansistrano roles which can deploy applications by copying files, managing releases, and supporting deployment hooks. Overall the document presents Ansible as a way to easily automate and standardize software deployment processes.
The document discusses Symfony2 and how it can be used to build PHP applications. It covers Symfony concepts like the MVC pattern, routing, bundles, environments, and caching. Code examples are provided for controllers, templates, routing configuration, and more to illustrate how Symfony applications work.
This document summarizes techniques for leveraging PHP projects through tools that enable easier project setup and deployment, improved testing, and greater code reuse through open source libraries and frameworks. It discusses tools for project management, dependency management, process supervision, configuration management, test data generation, social coding, and packaging libraries. The goal is to reduce maintenance overhead and encourage community collaboration on PHP projects.
PSGI is a Perl port of Python's WSGI and Ruby's Rack that defines a common interface between web servers and frameworks. Plack provides reference implementations of PSGI servers as well as middleware and utilities. This allows frameworks to run on many servers like standalone, FastCGI, and Apache using a common PSGI application interface. Plack is fast, supports many frameworks through adapters, and provides tools like Plackup and middleware to help build and test PSGI applications.
This document provides an overview of using Perl web frameworks Catalyst and Mojolicious. It discusses MVC architecture and components like routers, controllers, models, and views. It also covers installing frameworks via CPAN, creating Catalyst applications, adding controllers, views using Template Toolkit, and models using DBIC. Authentication and authorization plugins for Catalyst are also mentioned.
The document discusses Perl web frameworks Catalyst and Mojolicious. It provides an overview of key MVC concepts like routers, controllers, models and views. It then demonstrates how to install and create a basic Catalyst application with a root controller and default action. It also covers additional Catalyst controller features like actions, routes, context object and chained actions.
Symfony is a PHP web framework that provides features like templating, caching, internationalization and MVC architecture out of the box. It uses the Model-View-Controller pattern and includes tools for scaffolding, routing, form generation and more. Symfony projects can be created via the command line and include an auto-generated directory structure for applications, modules and actions.
This document provides an overview and introduction to using the Sinatra web framework for building RESTful web applications in Ruby. It discusses Sinatra's philosophy of being simple and easy to use, introduces REST principles and how Sinatra supports them through HTTP verbs, routing, caching, authentication and more. Code examples are provided to demonstrate how a basic "Hello World" application is structured in Sinatra and how requests are routed and executed under the hood.
Too few projects demand good API design as a critical goal. A clean and
extensible API will pay for itself many times over in fostering a community of
plugins. We certainly cannot anticipate the ways in which our users will bend
our modules, but designing an extensible system alleviates the pain. There are
many lessons to be learned from Moose, HTTP::Engine and IM::Engine,
Dist::Zilla, KiokuDB, Fey, and TAEB.
The most important lesson is to decouple the core functionality from the
"fluff" such as sugar and middleware. This forces you to have a solid API that
ordinary users can extend. This also lets users write their own sugar and
middleware. In a tightly-coupled system, there is little hope for
extensibility.
In this talk, you will learn how to make very productive use of Moose's roles
to form the foundation of a pluggable system. Roles provide excellent means of
code reuse and safe composition. I will also demonstrate how to use
Sub::Exporter to construct a more useful and flexible sugar layer.
Plack is a superglue for Perl web frameworks that provides a common interface called PSGI (Perl Web Server Gateway Interface) inspired by WSGI and Rack. PSGI allows any web application or framework to run on any web server by providing a standard way for applications to communicate with servers. Plack also includes tools like Plackup for running PSGI applications from the command line and middleware for common functionality that can be shared across frameworks. Many existing Perl web frameworks have been adapted to run under PSGI through Plack.
This document discusses Docker and provides an introduction and overview. It introduces Docker concepts like Dockerfiles, commands, linking containers, volumes, port mapping and registries. It also discusses tools that can be used with Docker like Fig, Baseimage, Boot2Docker and Flynn. The document provides examples of Dockerfiles, commands and how to build, run, link and manage containers.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
56. WEBSOCKET REVOLUTION!
•HTML5 protocol for long running processes
•Mojo first Perl framework to add support
•perl -MMojolicious::Lite -e "websocket '/' =>
sub {shift->receive_message(sub { shift-
>send_message(shift)})}; shagadelic 'daemon'"
•github.com/vti - web socket goodness
•Suppports latest revision of the spec.
61. $ mojo generate lite_app tinyws
[exist] /Users/marcus
[write] /Users/marcus/tinyws
[chmod] tinyws 744
• That was easy. Now let’s check out the contents of the file
64. % ./tinyws
usage: ./tinyws COMMAND [OPTIONS]
Tip: CGI, FastCGI and PSGI environments can be automatically detected very
often and work without commands.
These commands are currently available:
cgi Start application with CGI.
daemon Start application with HTTP 1.1 and WebSocket server.
fastcgi Start application with FastCGI.
generate Generate files and directories from templates.
get Get file from URL.
hypnotoad Start application with Hypnotoad.
inflate Inflate embedded files to real files.
psgi Start application with PSGI.
routes Show available routes.
test Run unit tests.
version Show versions of installed modules.
daemon_prefork Start application with preforking HTTP 1.1 backend.
These options are available for all commands:
--home <path> Path to your applications home directory, defaults to
the value of MOJO_HOME or auto detection.
--mode <name> Run mode of your application, defaults to the value of
MOJO_MODE or development.
See './tinyws help COMMAND' for more information on a specific command.
66. # ::Lite
get ‘/’ => ‘index’;
# sub refs for functions
post ‘/login’ => sub { .. };
# Placeholders & Actions:
get ‘/:foo’ => sub {},‘ctrl’
# All together
get '/everything/:stuff' => [stuff => qr/d+/]
=> {stuff => 23} =>
sub { shift->render('welcome'); }
67. ladder sub {
my $self = shift
# Authenticated
my $name = $self->param('name') || '';
return 1 if $name eq 'Bender';
# Not authenticated
$self->render('denied');
return;
}
68. $ mojo generate app tinyws2
[write] /Users/marcus/tinyws2/script/tinyws2
[write] /Users/marcus/tinyws2/lib/tinyws2.pm
[write] /Users/marcus/tinyws2/lib/tinyws2/Example.pm
[write] /Users/marcus/tinyws2/t/basic.t
[write] /Users/marcus/tinyws2/public/index.html
[write] /Users/marcus/tinyws2/templates/not_found.html.ep
[write] /Users/marcus/tinyws2/templates/exception.html.ep
[write] /Users/marcus/tinyws2/templates/layouts/default.html.ep
[write] /Users/marcus/tinyws2/templates/example/welcome.html.ep
Snipped out all the mkdir/chmod for brevity.
69. $r->route(‘/’)->to
(controller=>‘foo’,action=> ‘bar’);
('lists#new', id => 1)->name('new');
('/:controller/:action/:id')->to
('example#welcome', id => 1)
# Bridges
my $auth=$r->bridge->to(‘auth#check’);
$auth->route(...)
71. % my $player=$self->stash(‘players’);
%= $player; # print
%== $player; # raw
<%= player %> <%== player %> # inline style
% # Normal comment
<% # inline comment %>
.ep - prepopulates stash for you
.epl - same templates, less magic
84. All glory to the
Hypnotoad
•Production ready standalone server
•Hot deployment using unix signals
•Set up Worker threads, pid file, reverse proxy
support through a simple config file
•Web Socket support.
87. Server:
"INT", "TERM"Shutdown server
"QUIT" Shutdown server gracefully
"TTIN" Increase worker pool by one
"TTOU" Decrease worker pool by one
"USR2" hot deployment.
Worker:
"INT", "TERM"Shutdown server
"QUIT" Shutdown server gracefully
CPAN id MRAMBERG \nFirst core developer to join the Catalyst framework.\n
\n
At the city center\n
\nof a little city far north \n\n
Where Polar bears and penguins walk the street\n
And parrots are pining for the fjords\n
Started together with Arne 3 years ago\nSurprisingly Nordic company\n\n
We focus on mobile, lean, useful apps, mostly in Perl and Obj-c.\n
\n
\n
\n
\n
\n
500 sqm\nStill within 3 minutes of Oslo central station\n
Coworking in Oslo - Drop in & regular\n
Tonight&#x2019;s feature presentation\n
Present to you Mojolicious\nLWP for the Next Decade.\n
\n
Hoppy Frood from the south of Germany\nSometimes claims to be a bot\nKnown aliases kraih at Twitter, &#x2018;sri&#x2019; on irc\n\n
First Time I heard of Sebastian - Maypole Mailing lists\nMaypole was originally developed by Simon Cozens, \nbut he decided to become a missionary in Japan.\n
\n
Catalyst had gathered steam.\nCore team of developers\n
\n
Took a break from Perl - Ruby and World of Warcraft\nCame back with Mojolicious - Originally a Framework Construction Kit\n
\n
\n
\n
Runs in 30 seconds (time to download, run test suite and install files). \n
\n
\n
\n
\n
Tell about nginx and status phrases.\n
\n
\n
\n
\n
\n
\n
\n
So, I showed a quick example of an Oneliner earlier\n
ojo package is a ...\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
(temp storage on filesystem)\n
\n
\n
\n
\n
\n
\n
\n
Continues on next slide\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Of course, if you&#x2019;re like me, you can just use the TT renderer instead\nThere&#x2019;s even a plugin to set it up for you.\n
Or one of the other renderers on CPAN\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Like 60% of the IRC channel speaks russian.\nEarly Mojolicious presentations at russian Perl events.\n\n