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.
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.
The document describes updates to modernize a Perl script. It proposes changes like using object-oriented approaches instead of procedural code, replacing calls to functions like stat() with object methods, and improving error handling. Key changes include using objects for dates/times instead of timestamps, autoboxing scalar values, and extending scalars to allow method calls on values.
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.".
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 - 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 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.
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.
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.
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.
The document describes updates to modernize a Perl script. It proposes changes like using object-oriented approaches instead of procedural code, replacing calls to functions like stat() with object methods, and improving error handling. Key changes include using objects for dates/times instead of timestamps, autoboxing scalar values, and extending scalars to allow method calls on values.
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.".
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 - 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 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.
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.
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.
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.
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.
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.
This document discusses using WebRTC in Perl to enable real-time communication between browsers. It explains that WebRTC allows peer-to-peer connections without plugins by using signaling to exchange endpoint details and ICE servers. It then provides over 350 lines of Perl code to demonstrate setting up a WebRTC connection between an "offerer" and "answerer" browser to allow sending messages over a data channel. The code connects the browsers as peers, exchanges session descriptions and ICE candidates, creates audio/video constraints, and includes a chat interface to test the connection.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
This document discusses the WordPress REST API, which allows consuming and modifying WordPress data via a standards-compliant JSON REST API from within WordPress or another application. It provides examples of using the API to get posts, parse responses with Handlebars, and build a JavaScript client. The REST API offers advantages like decoupling the front-end from WordPress, and allows any front-end developer to work on a WordPress-powered site. It is currently a plugin but will be included in WordPress core.
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.
Everyone talks about raising the bar on quality of code, but it's always hard to start implementing it when you have no clue where to start. With this talk I'm shooing that there are many levels developers can improve themselves by using the right tools. In this talk I'll go over each tool with examples how to use them against your codebase. A must attend talk for every developer that wants to scale up their quality. Most PHP developers deploy code that does what the customer requested but they don't have a clue about the quality of the product they deliver. Without this knowledge, maintenance can be a hell and very expensive. In this workshop I cover unit testing, code measuring, performance testing, debugging and profiling and give tips and tricks how to continue after this workshop.
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.
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.
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.
This document discusses using WebRTC in Perl to enable real-time communication between browsers. It explains that WebRTC allows peer-to-peer connections without plugins by using signaling to exchange endpoint details and ICE servers. It then provides over 350 lines of Perl code to demonstrate setting up a WebRTC connection between an "offerer" and "answerer" browser to allow sending messages over a data channel. The code connects the browsers as peers, exchanges session descriptions and ICE candidates, creates audio/video constraints, and includes a chat interface to test the connection.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
This document discusses the WordPress REST API, which allows consuming and modifying WordPress data via a standards-compliant JSON REST API from within WordPress or another application. It provides examples of using the API to get posts, parse responses with Handlebars, and build a JavaScript client. The REST API offers advantages like decoupling the front-end from WordPress, and allows any front-end developer to work on a WordPress-powered site. It is currently a plugin but will be included in WordPress core.
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.
Everyone talks about raising the bar on quality of code, but it's always hard to start implementing it when you have no clue where to start. With this talk I'm shooing that there are many levels developers can improve themselves by using the right tools. In this talk I'll go over each tool with examples how to use them against your codebase. A must attend talk for every developer that wants to scale up their quality. Most PHP developers deploy code that does what the customer requested but they don't have a clue about the quality of the product they deliver. Without this knowledge, maintenance can be a hell and very expensive. In this workshop I cover unit testing, code measuring, performance testing, debugging and profiling and give tips and tricks how to continue after this workshop.
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.
Rails Antipatterns | Open Session with Chad Pytel Engine Yard
As developers worldwide have adopted the Ruby on Rails web framework, many have fallen victim to common mistakes that reduce code quality, performance, reliability, stability, scalability, and maintainability. Even experienced developers will find that they can reevaluate the work they've done and make it better.
In this session, Chad Pytel will provide an overview of some of these common mistakes as well as take questions from the audience and provide real-world advice. Bring your issues and get expert advice on how to bring your code in line with today's best practices.
Using Geeklog as a Web Application FrameworkDirk Haun
Slides for the workshop "Using Geeklog as a Web Application Framework", as held at
- LinuxTag 2006, Wiesbaden, Germany, 2006-05-06
- PHP user group meeting, Stuttgart, Germany, 2006-05-10
- FrOSCon, Bonn, Germany, 2006-06-24
This document summarizes some new features in PHP 5.4:
- Array syntax can now be written more concisely using square brackets instead of array functions.
- PHP 5.4 includes a built-in web server for development purposes, allowing PHP scripts to be run without Apache.
- Traits allow sharing of methods across classes to reduce code duplication, similar to mixins in Ruby.
- Closures now support accessing properties of the enclosing class scope via $this.
Everyone talks about raising the bar on quality of code, but it's always hard to start implementing it when you have no clue where to start. With this talk I'm shooing that there are many levels developers can improve themselves by using the right tools. In this talk I'll go over each tool with examples how to use them against your codebase. A must attend talk for every developer that wants to scale up their quality. Most PHP developers deploy code that does what the customer requested but they don't have a clue about the quality of the product they deliver. Without this knowledge, maintenance can be a hell and very expensive. In this workshop I cover unit testing, code measuring, performance testing, debugging and profiling and give tips and tricks how to continue after this workshop.
The document discusses CodeIgniter, an open source PHP MVC framework, and provides information about CodeIgniter features such as controllers, models, views, helpers, libraries, and working with databases using CodeIgniter's active record functions. It also covers topics like installing CodeIgniter, creating controllers and models, and loading views, helpers, and libraries.
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)arcware
The document outlines 10 things that every WordPress plugin developer should know, including enabling debugging, prefixing functions, enqueuing scripts and styles properly, only including JS/CSS on admin pages, using AJAX in the admin, adding extensibility hooks, supporting multisite, internationalization, security, and using helpful functions and constants. It provides examples and explanations for each topic to help plugin developers write more effective and secure code.
PHP is a server-side scripting language commonly used with the LAMP stack. It allows developers to easily create dynamic web pages. The document discusses PHP basics like variables, arrays, functions, and interacting with URLs, APIs, databases and more. It provides examples to demonstrate how to display data, parse XML/JSON, load content from web APIs, and talk to MySQL databases using PHP. Node.js is introduced as a JavaScript runtime that allows writing server-side code with JavaScript in an event-driven, non-blocking way.
This document discusses using pluggable applications with TurboGears2. It provides an overview of TurboGears2 features like object dispatch, declarative models, and XML template engines. It then demonstrates how to quickly start an application and explore options to add photo galleries, blogs, and wiki pages by plugging in additional applications and customizing templates and models.
This document summarizes a presentation about writing secure Drupal code. It discusses common vulnerabilities like cross-site scripting, access bypass, and SQL injection. It provides examples of secure and vulnerable code and recommends best practices to prevent vulnerabilities, including input filtering, access control, and automated testing. It also discusses security improvements in Drupal 8 and learning from security advisories.
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.
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.
Rails 3 provides a concise overview of changes in Rails 3 including maintaining MVC structure and RESTful routing while improving areas like file structure, block helpers, routing and constraints, ActiveRecord querying, resources routing, and ActionMailer delivery. Key changes include a more Rack-like implementation, chainable ActiveRecord scopes, and pagination and layout support in ActionMailer.
This workshop is a hands-on training where a real Zend Framework application is used as an example to start improving QA using tools to test, document and perform software metric calculations to indicate where the software can be improved. I also explain the reports produced by a CI system.
TYPO3 Extension development using new Extbase frameworkChristian Trabold
My presentation for the TYPO3 community day in Tokyo, Japan.
The code is available at https://github.com/ctrabold/t3ski-workshop.
Due to copyright issues I had to remove all pictures of Miffy.
This document summarizes a presentation on writing secure Drupal code. It discusses common vulnerabilities like cross-site scripting, access bypass, and SQL injection. It demonstrates how to securely code against these vulnerabilities and recommends using tools like Behat tests, security advisories, and contributing to Drupal to improve security. The presentation encourages writing secure code through sanitizing user input, using database placeholders, and following best practices.
This document provides an overview of quality assurance for PHP projects. It discusses the importance of revision control, documentation, testing, and automation in QA. Revision control systems like SVN and Git are recommended for team development and tracking code versions. PHP Lint is introduced for syntax checking files from the command line. Documenting code with PHPDoc is suggested. Unit testing forms and models is demonstrated using PHPUnit. Validation, filtering, and sanitizing user input is important for protection against exploits. Overall the document promotes establishing strong quality practices like testing, revision control, and documentation for PHP projects.
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.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
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.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfflufftailshop
When it comes to unit testing in the .NET ecosystem, developers have a wide range of options available. Among the most popular choices are NUnit, XUnit, and MSTest. These unit testing frameworks provide essential tools and features to help ensure the quality and reliability of code. However, understanding the differences between these frameworks is crucial for selecting the most suitable one for your projects.
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.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Trusted Execution Environment for Decentralized Process MiningLucaBarbaro3
Presentation of the paper "Trusted Execution Environment for Decentralized Process Mining" given during the CAiSE 2024 Conference in Cyprus on June 7, 2024.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
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.
2. Mojolicious
● An amazing real-time web framework
supporting a simplified single file mode
through Mojolicious::Lite.
● Very clean, portable and Object Oriented
pure Perl API without any hidden magic and
no requirements besides Perl 5.10.1
(although 5.12+ is recommended, and
optional CPAN modules will be used to
provide advanced functionality if they are
installed).
3. Mojolicious
● Full stack HTTP 1.1 and WebSocket
client/server implementation with IPv6, TLS,
Bonjour, IDNA, Comet (long polling),
chunking and multipart support.
● Built-in non-blocking I/O web server
supporting libev and hot deployment, perfect
for embedding.
● Automatic CGI and PSGI detection.
● JSON and HTML5/XML parser with CSS3
selector support.
4. Marcos Rebelo
● 10 years Perl Developer
● Test-driven development fan
● Mojolicious experience:
○ I'm not a Mojolicious developer.
○ A group of JSON Back-ends
○ Short effort on the Front-end
5. Any intelligent fool can make things bigger,
more complex, and more violent. It takes a
touch of genius -- and a lot of courage -- to
move in the opposite direction.
Albert Einstein
7. Hello World
use Mojolicious::Lite;
get '/' => sub {
shift->render(text => 'Hello World!')
};
app->start;
● $ hello.pl daemon
Server available at http://127.0.0.1:
3000.
● $ curl http://127.0.0.1:3000/
Hello World!
8. Generator
● There is a helper command to generate a
small example application. You may
generate multiple things, but two are very
interesting.
● $ mojo generate app
Generate Mojolicious application directory
structure.
● $ mojo generate lite_app
Generate Mojolicious::Lite application.
13. Placeholders
# /foo/peter
get '/foo/:user' => sub {
my $self = shift;
my $user = $self->param('user');
$self->render(
text => "Hello $user.");
};
● Much more can be told about Placeholders,
see the documentation.
14. Under
under sub {
# Global logic shared by all routes
my $self = shift;
return 1 if
$self->req->headers->header('X-Bender');
$self->render(text=>"You're not Bender.");
return;
};
# GET /welcome
get '/welcome' => { text => 'Hi Bender.' };
15. Under
group {
# shared only by routes in this group
under '/admin' => sub {
my $self = shift;
return 1 if login_ok( $self );
$self->redirect_to('/login_page');
return
};
# GET /admin/dashboard
get '/dashboard' => { text => 'logged' };
};
16. Sessions
get '/counter' => sub {
my $self = shift;
$self->session->{counter}++;
};
__DATA__
@@ counter.html.ep
Counter: <%= session 'counter' %>
● Signed cookie based sessions just work out
of the box as soon as you start using them.
17. Flash
get '/save' => sub {
my $self = shift;
$self->flash('success' => 1);
$c->redirect_to('/show_user');
};
● Data storage persistent only for the next
request, stored in the session.
18. Stash
# /bar
get '/bar' => sub {
my $self = shift;
$self->stash(one => 23);
$self->render('baz', two => 24);
};
__DATA__
@@ baz.html.ep
Magic numbers: <%= $one %> and <%= $two %>.
● The stash is used to pass data to templates.
19. Log
my $log = $self->app->log;
$log->debug("Why isn't this working?");
$log->info("FYI: it happened again");
$log->warn("This might be a problem");
$log->error("Garden variety error");
$log->fatal("Boom!");
● Messages will be automatically written to
STDERR or a '$mode.log' file if a log
directory exists.
20. Render
● Rendering text: Perl characters can be
rendered with the text stash value, the given
content will be automatically encoded to
bytes.
$self->render(text => 'Hello World!');
● Rendering data: Raw bytes can be rendered,
no encoding will be performed.
$self->render(data => $octets);
21. Render
● Rendering JSON: The json stash value
allows you to pass Perl structures to the
renderer which get directly encoded to
JSON.
$self->render(
json => {foo => [1, 2, 3]});
22. Rendering templates
get '/bar' => sub {
my $self = shift;
$self->render(template => 'bar');
};
__DATA__
@@ bar.html.ep
Hi <%= param('name') %>
● The templates shall in the __DATA__
session or in the templates directory with the
file name name.format.handler.
23. Rendering templates
● The renderer does some magic to find the
templates.
● Since we are processing '/bar', all this are
similar:
○ $self->render(template => 'bar');
○ $self->render('bar');
○ $self->render();
○ You don't even need it. If there is no rendering done,
Mojolicious will do it by default.
24. Embedded Perl
<% Perl code %>
<%= Perl expression, replaced with XML escaped result %>
<%== Perl expression, replaced with result %>
<%# Comment, useful for debugging %>
<%% Replaced with "<%", useful for generating templates %>
% Perl code line, treated as "<% line =%>"
%= Perl expression line, treated as "<%= line %>"
%== Perl expression line, treated as "<%== line %>"
%# Comment line, treated as "<%# line =%>"
%% Replaced with "%", useful for generating templates
25. Examples
<% my $count = 10; %>
<ul>
<% for my $index (1 .. $count) { %>
<li>
<%= $index %>
</li>
<% } %>
</ul>
26. Examples
% my $count = 10;
<ul>
% for my $index (1 .. $count) {
<li>
%= $index
</li>
% }
</ul>
28. Layouts
@@ foo/bar.html.ep
% layout 'mylayout', title => 'Hi there';
Hello World!
@@ layouts/mylayout.html.ep
<!DOCTYPE html>
<html>
<head><title><%= $title %></title></head>
<body><%= content %></body>
</html>
● Most of the time you want to wrap your
generated content in a HTML skeleton.
29. Helpers
get '/bar' => sub {
my $self = shift;
$self->app->log->debug(
$self->dumper( [1,2,3] ) );
};
__DATA__
@@ bar.html.ep
<%= dumper( { 'a' => 'b' } ) %>
● Helpers are little functions you can use in
templates and controller code.
30. Helpers examples
● dumper: Dump a Perl data structure using
Data::Dumper
● app: Alias for "app" in Mojolicious::Controller
● param: Alias for "param".
● session: Alias for "session".
● stash: Alias for "stash".
● layout: Render this template with a layout.
● content: Insert content into a layout
template.
34. my_app # Application directory
|- script # Script directory
| `- my_app # Application script
|- lib # Library directory
| |- MyApp.pm # Application class
| `- MyApp # Application namespace
| `- Example.pm # Controller class
|- t # Test directory
| `- basic.t # Random test
|- log # Log directory
| `- development.log # Development mode log file
|- public # Static file directory
| `- index.html # Static HTML file
`- templates # Template directory
|- layouts # Template directory for layouts
| `- default.html.ep # Layout template
`- example # Tmpl dir for "Example"
controller
`- welcome.html.ep # Template for "welcome" action
35. my_app/lib/MyApp.pm
package MyApp;
use Mojo::Base 'Mojolicious';
# This method will run once at server start
sub startup {
my $self = shift;
# Documentation browser under "/perldoc"
$self->plugin('PODRenderer');
# Routes
my $r = $self->routes;
# Normal route to controller
$r->route('/welcome')->to('example#welcome');
}
1;
36. Routing
# GET /user/123
$r->get('/user/:user_id')
->to(cb => sub { ... });
# POST /user/123
$r->post('/user/:user_id')->to(
controller => 'example',
action => 'post_user'
); # Will call: MyApp::Example::post_user
$r->post('/user/:user_id')->to(
'example#post_user');
37. Route Bridge
# POST /auth/user/123
my $r_auth = $r->bridge('/auth')
->to( cb => sub { ... } );
$r_auth->post('/user/:user_id')
->to('example#hdl_post_user');
38. Controller: lib/MyApp/Example.pm
package MyApp::Example;
use Mojo::Base 'Mojolicious::Controller';
# This action will render a template
sub welcome {
my $self = shift;
# Render "example/welcome.html.ep"
$self->render( message => 'Welcome!');
}
1;
39. Testing
use Mojo::Base -strict;
use Test::More tests => 4;
use Test::Mojo;
use_ok 'MyApp';
my $t = Test::Mojo->new('MyApp');
$t->get_ok('/welcome')
->status_is(200)
->content_like(qr/Welcome/i);