"How to write pluggable software" presented by Tatsuhiko Miyagawa at YAPC::Asia 2007 in Tokyo on April 5th 2007.
This document discusses the evolution of web development in Perl, from CGI scripts to modern PSGI-based frameworks. It introduces PSGI as an interface between web applications and web servers, and Plack as a toolkit for building PSGI applications and middleware. The document outlines many PSGI web servers and frameworks that can be used to build and deploy Perl web applications according to the PSGI standard.
If you are new to WordPress, but already know how to program, the typical "Hello, World" examples aren't helpful. You need to know how to make the right API calls, and where to find documentation about the actions and filters that WordPress makes available to you. This presentation is a brief introduction skimming the surface of the API hook system in WordPress. It does not go into deep detail, but gives brief "real world" examples of how to use filters and actions, along with pointers on where to find the main documentation that will help you get started on your own plugins.
This document provides an overview of using WordPress and AJAX. It discusses loading scripts and styles properly, using JavaScript localization to capture dynamic PHP content, page detection techniques, the wp_ajax action for handling AJAX requests, and the WP_Ajax_Response class for returning XML responses from AJAX callbacks. It also provides an example of building an AJAX registration form plugin with classes for handling the form, scripts, and styles.
A quick introduction to Django with tips on deploying to Heroku. Presented at TechCamp Memphis, Fall 2012
The document discusses using the Migraine tool to migrate changes between development, staging, and production environments for a Drupal website. It outlines the development methodology, requirements for Migraine, and the workflow it uses to synchronize databases and file systems between environments with minimal downtime. Key aspects include categorizing database tables, taking backups, comparing schemas, and commands to dump, migrate, and restore databases.
Keep hearing about Plack and PSGI, and not really sure what they're for, and why they're popular? Maybe you're using Plack at work, and you're still copying-and-pasting `builder` lines in to your code without really knowing what's going on? What's the relationship between Plack, PSGI, and CGI? Plack from first principles works up from how CGI works, the evolution that PSGI represents, and how Plack provides a user-friendly layer on top of that.
The document discusses best practices and anti-patterns for Django projects. It recommends keeping projects simple by avoiding over-engineering, using application-based modular design, and properly structuring settings files across multiple environments rather than relying on local_settings.py files. It also addresses common issues like import errors caused by PYTHONPATH configuration.
Jenkins User Conference 2012 Only by the third plugin do you get the hang of writing a plugin. I thought as a developer coming to the build side of things it'd be easy to jump in and write some plugins. I was wrong. Don't be fooled by the extremely friendly Jenkins community, writing a plugin from scratch is harder than they let on. This talk will explain the hurdles that I had to cross to make writing plugins easy.
Ant is a Java-based build tool that is platform independent like Make but without its limitations. It uses XML configuration files and tasks run by Java objects to define projects and targets. Projects contain attributes and targets which contain tasks. Common tasks include compiling code and copying files. Properties are used to reference variables within the XML file. Ant is easy to use, extensible, standardized, and open source.
Slides for my talk "High Quality Symfony Bundles" tutorial at the Dutch PHP Conference 2014 (http://phpconference.nl).
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 summarizes how to build a web application using Flask. It introduces HTTP requests and responses, and how Flask works with request and response objects. It then provides an example of building a basic Flask app with a view function to display "Hello World", and how to use Jinja templates to separate code and markup. The document also discusses using HTML forms to submit data via GET and POST requests.
This talk was given at the Dutch PHP Conference 2011 and details the use of Comet (aka reverse ajax or ajax push) technologies and the importance of websockets and server-sent events. More information is available at http://joind.in/3237.
This document discusses using PHP for both web and desktop applications. It introduces PHP-GTK, which allows PHP to create graphical desktop applications with a native look and feel across platforms. It provides examples of creating windows, containers, working with signals and the main loop. The document also discusses installing PHP-GTK, some key considerations for desktop applications, and examples of creating widgets like trees and working with models.
The document discusses 10 steps to make a Django site more responsive by adding a REST API and using AngularJS for the front-end: 1) Create an API endpoint for the Django models, 2) Set up the JavaScript environment and install AngularJS, 3) Create a static AngularJS site, 4) Use verbatim tags to avoid conflicts between Django and AngularJS variables, 5) Connect AngularJS to the API, 6) Take advantage of the Django REST Framework features, 7) Handle asynchronous data loading, 8) Add forms and POST requests, 9) Clean up settings.py, and 10) Document the API. The goal is to keep the back-end lightweight Django while building a more responsive and
Plack provides a common interface called PSGI (Perl Server Gateway Interface) that allows Perl web applications to run on different web servers. It includes tools like Plackup for running PSGI applications from the command line and middleware for adding functionality. Plack has adapters that allow many existing Perl web frameworks to run under PSGI. It also provides high performance PSGI servers and utilities for building and testing PSGI applications.
Log4perl is a logging module for Perl that provides a structured and configurable logging framework inspired by Log4j. It allows logging messages to be sent to files, databases, the console or other outputs. The configuration file defines loggers, log levels and appenders (output destinations). Log4perl provides methods for different log levels and metadata like timestamps. Consistent structured log messages can help with parsing and analysis. Planning logging guidelines and designing messages accordingly helps ensure logs are useful.
The document discusses using CGI::Application, Template::Toolkit, and DBIx::Class to create simple web applications in Perl. It provides an overview of MVC architecture and how these three modules separate code into the Model, View, and Controller components. It includes sample code for setting up a basic application using these modules, interacting with a database via DBIx::Class, and rendering views with Template::Toolkit.
Yasuo Harada is a PHP developer in Osaka who blogs about slyly walking PHP techniques. He gave a presentation about using plugins in three stages: 1) Organize functionality into plugins by feature, 2) Share generic plugins between applications, and 3) Gradually improve plugins during development and repair. Plugins can be used to add features like debugging, user management, mailing, and theming. Templates, assets, and translations can be included in plugins and used in applications. Custom dispatchers can be created to handle asset loading from plugins.
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.
The document discusses Dancer, a lightweight web framework for Perl that provides an alternative to CGI.pm with routing, templates, sessions and more. Dancer uses PSGI to interface with various web servers and includes features like routing, templates, sessions, logging, serialization and plugins to enrich functionality. The framework is actively developed with a community on GitHub and IRC providing documentation and additional modules.
The document summarizes new features and improvements in Zend Framework 1.10, including new components like Zend_Barcode and Zend_Feed_Writer, improvements to existing components, new services like LiveDocx and DeveloperGarden, and updates to the documentation.
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 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 provides an overview of using AJAX capabilities in Grails applications with the Dojo JavaScript library. It discusses getting started with Dojo in Grails, Grails AJAX tags for basic AJAX functionality, rendering JSON responses from controllers, and how Grails supports more complex Dojo widgets and functionality beyond basic AJAX.
The document discusses Ratpack, a Groovy web framework for building simple and compact web applications. It provides an overview of Ratpack's features like routing, templating and deployment, and demonstrates how to build sample applications including a blog and todo list app. Examples are shown of integrating technologies like MongoDB, CoffeeScript, and Markdown within Ratpack applications.
The document discusses optimizing Drupal site deployments using Drush and Drush Make. It describes what Drush and Drush Make are and how they can be used to script reliable and flexible site deployments. The document also discusses Features and alternative strategies for programmatically deploying and updating sites using custom modules.
Dancer is a micro web framework for Perl that allows developers to build web applications in an expressive and lightweight manner. It uses a routing-based syntax to define request handlers for different URLs and HTTP methods. Dancer applications can utilize templates, configuration files, and environments to customize settings depending on the deployment stage. Being PSGI/Plack compliant, Dancer applications can be deployed on various web servers through Plack adapters.
An overview of the major new features and changes in Rails 2.0. Originally presented on December 11th, 2007 at NYC.rb.
The document discusses various techniques for creating dynamic interfaces with jQuery in Drupal, including: 1. Letting Drupal know about jQuery through modules or themes using functions like drupal_add_js(). 2. Writing JavaScript code to modify and interact with page elements. 3. Providing examples that dynamically modify navigation menus, add character counters to forms, and create multi-page forms.
My talk from WordCamp Mid-Atlantic 2010, at Johns Hopkins University in Baltimore, Maryland on Sept. 11.
Non-blocking processing notifications with Tatsumaki can provide laughter, tears, cuteness, and surprises over 20 minutes. Some details may not translate well from the slide version and some meanings may be lost, but the overall atmosphere can be enjoyed in the official video release. The presentation introduces asynchronous processing using PSGI/Plack to avoid blocking the server. It discusses non-blocking, streaming, an overview of PSGI/Plack, and the PSGI streaming specification.
The document discusses Satellite Apps, which allow integrating systems with JIRA Studio using remote APIs. Satellite Apps can be used for reporting, integration, and automation scenarios. Examples provided include using APIs to access issue details, create and modify pages, and automatically replace text in pages.
The document discusses Satellite Apps, which allow integrating systems with JIRA Studio using remote APIs. Satellite Apps can be used for reporting, integration, and automation scenarios. Examples provided include using APIs to access issue details, create and modify pages, and automatically replace text in pages.
My colleague Adnan created this slide and on behalf of him i am uploading this slide. A nice Visual Diagram is there on the SERVER CLIENT concept. Must see for newbie.
The document provides an overview of model-view-controller (MVC) development using the CodeIgniter PHP framework. It discusses MVC patterns and variations, why CodeIgniter was chosen, CodeIgniter's implementation of MVC, basics of using CodeIgniter including its directory structure and core classes, and examples of building a basic web application and API with CodeIgniter.
Presentation for azPHP on setting up a new project using Zend_Tool. Also goes over creating basic modules, controllers, actions, models and layouts. All code in the presentation has not necessarily been tested. Will update presentation when done.
This document summarizes a presentation about managing CPAN dependencies for web development projects. It describes a case study where a developer installed many CPAN modules for a new web app, but ran into problems with dependency and versioning issues during deployment to production servers. The presenter then introduced their solution called Carton, a tool for creating isolated, local Perl environments for apps and locking dependency versions to allow reproducible, stable deployments across different machines. Key features discussed included dependency declaration, isolated environments, version control, analysis and more. The document concludes with a call for questions and thanks.
This document discusses deploying Plack web applications. It begins with an overview of the PSGI specification and how it allows various web frameworks like Catalyst and Dancer to run on different web servers through a common interface. It then discusses various options for the server environment including standalone HTTP servers like Starman and FastCGI servers. Finally, it covers useful Plack middleware for application environments, including modules for rate limiting, caching, authentication, and more.
Plack is a superglue for Perl web frameworks that provides a common interface called PSGI (Perl Server Gateway Interface). PSGI allows any web application that returns status, headers, and content to work with any PSGI-compliant web server without needing server-specific code. Plack provides middleware, servers, and tools to develop and run PSGI applications. It allows frameworks like Catalyst, Dancer, and CGI::Application to run on many web servers like Starman, Twiggy, and mod_psgi without changes to framework code.
cpanminus (cpanm) is an awesome and lightweight CPAN installer with zero dependencies. It requires less than 10MB of RAM, has no interactive shell, uses sane defaults with quiet output, and can be easily upgraded via a single command. The document recommends starting to use cpanm and provides tips on commands like --prompt, --notest, and using it with PERL_CPANM_OPT and perlbrew.
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 how a new module is uploaded and distributed on CPAN. It takes approximately 48 hours from when an author uploads a module until it is available to most users. To address this, a real-time CPAN feed was created using FriendFeed to notify users more quickly, within an hour, after a new module is uploaded. The cpanf application allows users to install new CPAN modules via these real-time feeds to get modules more quickly than waiting for the standard 24 hour CPAN cache update.
Building a desktop app using HTTP::Engine as a micro web server, SQLite for data storage, and jQuery for the user interface. Comet and asynchronous workers are used to enable real-time features. JSON-RPC and routing are implemented to support AJAX actions. The combination provides a lightweight "desktop app" architecture that is cross-platform.
This document provides a summary of a presentation on building a desktop application using HTTP::Engine, SQLite, and jQuery. The presentation discusses using HTTP::Engine as a lightweight web server, implementing RESTful APIs and backend actions with JSON responses, using SQLite for a simple and flexible local database, and manipulating the DOM with jQuery for the user interface. The goal is to create a desktop-like experience with the technologies of web applications.
Remedie is a media RSS browser written in Perl and jQuery. It aggregates RSS/Atom feeds and supports playing videos and audio inline with Flash or QuickTime. Features include support for Media RSS, custom plugins, playback options, local video folders, and an iPhone-like UI. A demo is provided showing features like continuous playback, hotkeys, drag and drop, incremental search and more. The roadmap includes making the daemon non-blocking and adding downloads, social network integration and an iPhone remote.
The document shows code for parsing and handling XML using different Perl modules. It demonstrates parsing XML strings into DOM documents using XML::LibXML and XML::Liberal, handling XML encoding such as entities and namespaces, and extracting elements and contents from the parsed DOM documents.
This document introduces the Web::Scraper module for Perl, which provides a more robust and maintainable way to scrape web pages compared to regular expressions. Web::Scraper uses a DSL to select elements and extract data via CSS or XPath selectors. It returns structured data like URLs, text, and name-value pairs from selected elements. The document provides examples of scraping timestamps, links, and lists of sites to demonstrate how Web::Scraper works and its advantages over traditional scraping with regular expressions.
The document discusses using Web::Scraper to scrape web pages in a robust, maintainable way by using CSS selectors and XPath queries rather than fragile regular expressions. Web::Scraper provides a domain-specific language for defining scraping processes and extracting desired data from web pages into structured results. Examples show how to scrape links, text, and nested data from HTML elements using a simple declarative syntax.
The document discusses practical web scraping using the Web::Scraper module in Perl. It provides an example of scraping the current UTC time from a website using regular expressions, then refactors it to use Web::Scraper for a more robust and maintainable approach. Key advantages of Web::Scraper include using CSS selectors and XPath to be less fragile, and proper handling of HTML encoding.
The document discusses XML::Liberal, a Perl module that allows XML parsers to successfully parse XML documents that contain errors. It provides examples of how XML::Liberal can be used to override an existing XML parser like XML::LibXML to make it more liberal in parsing invalid XML. It also shows how XML::Liberal can be used to try parsing XML with a fallback parser if the primary parser fails due to errors in the XML.
The document discusses Test::Base, a Perl module for data-driven testing. It provides examples of using Test::Base for testing functions, with compatibility with Test::More. Test::Base allows writing tests in a simple format and filtering of input/output. It also supports features like default blocks, block-specific tests, subclassing and more. Tips discussed include avoiding chomp filters and separating success and error tests.
at DECON (Developers environment conference) 2006 in Tokyo.
Plagger is a pluggable RSS/Atom aggregator that allows users to combine ("pipe") various plugins to customize how feeds are aggregated, filtered, and published/notified. It aims to be the "UNIX pipe of the internet" by providing a simple yet powerful framework to connect different data sources and processing modules in a customizable workflow. The document provides many examples of how Plagger can be used to aggregate feeds from sources like Bloglines or OPML files and publish them to email via Gmail by chaining together relevant subscription, filter, and publish plugins.
This document discusses integrating Google Maps with tilt input from a laptop. It provides code examples in C++, Ruby and Perl for reading tilt sensor data on Windows. It also shows how to combine Google Maps JavaScript API with Perl code to update the map based on tilt input detected by Perl.
Kief Morris rethinks the infrastructure code delivery lifecycle, advocating for a shift towards composable infrastructure systems. We should shift to designing around deployable components rather than code modules, use more useful levels of abstraction, and drive design and deployment from applications rather than bottom-up, monolithic architecture and delivery.
To help you choose the best DiskWarrior alternative, we've compiled a comparison table summarizing the features, pros, cons, and pricing of six alternatives.
Java Servlet programs
The integration of programming into civil engineering is transforming the industry. We can design complex infrastructure projects and analyse large datasets. Imagine revolutionizing the way we build our cities and infrastructure, all by the power of coding. Programming skills are no longer just a bonus—they’re a game changer in this era. Technology is revolutionizing civil engineering by integrating advanced tools and techniques. Programming allows for the automation of repetitive tasks, enhancing the accuracy of designs, simulations, and analyses. With the advent of artificial intelligence and machine learning, engineers can now predict structural behaviors under various conditions, optimize material usage, and improve project planning.
Everything that I found interesting last month about the irresponsible use of machine intelligence
Widya Salim and Victor Ma will outline the causal impact analysis, framework, and key learnings used to quantify the impact of reducing Twitter's network latency.
MuleSoft Meetup on APM and IDP
Recent advancements in the NIST-JARVIS infrastructure: JARVIS-Overview, JARVIS-DFT, AtomGPT, ALIGNN, JARVIS-Leaderboard
An invited talk given by Mark Billinghurst on Research Directions for Cross Reality Interfaces. This was given on July 2nd 2024 as part of the 2024 Summer School on Cross Reality in Hagenberg, Austria (July 1st - 7th)
Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.
Support en anglais diffusé lors de l'événement 100% IA organisé dans les locaux parisiens d'Iguane Solutions, le mardi 2 juillet 2024 : - Présentation de notre plateforme IA plug and play : ses fonctionnalités avancées, telles que son interface utilisateur intuitive, son copilot puissant et des outils de monitoring performants. - REX client : Cyril Janssens, CTO d’ easybourse, partage son expérience d’utilisation de notre plateforme IA plug & play.
Everything that I found interesting about engineering leadership last month
In the modern digital era, social media platforms have become integral to our daily lives. These platforms, including Facebook, Instagram, WhatsApp, and Snapchat, offer countless ways to connect, share, and communicate.
Today’s digitally connected world presents a wide range of security challenges for enterprises. Insider security threats are particularly noteworthy because they have the potential to cause significant harm. Unlike external threats, insider risks originate from within the company, making them more subtle and challenging to identify. This blog aims to provide a comprehensive understanding of insider security threats, including their types, examples, effects, and mitigation techniques.
Blockchain technology is transforming industries and reshaping the way we conduct business, manage data, and secure transactions. Whether you're new to blockchain or looking to deepen your knowledge, our guidebook, "Blockchain for Dummies", is your ultimate resource.
Password Rotation in 2024 is still Relevant
We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner! We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too! Check out our proposed agenda below 👇👇 08:30 ☕ Welcome coffee (30') 09:00 Opening note/ Intro to UiPath Community (10') Cristina Vidu, Global Manager, Marketing Community @UiPath Dawid Kot, Digital Transformation Lead @Proservartner 09:10 Cloud migration - Proservartner & DOVISTA case study (30') Marcin Drozdowski, Automation CoE Manager @DOVISTA Pawel Kamiński, RPA developer @DOVISTA Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner 09:40 From bottlenecks to breakthroughs: Citizen Development in action (25') Pawel Poplawski, Director, Improvement and Automation @McCormick & Company Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company 10:05 Next-level bots: API integration in UiPath Studio (30') Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner 10:35 ☕ Coffee Break (15') 10:50 Document Understanding with my RPA Companion (45') Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath 11:35 Power up your Robots: GenAI and GPT in REFramework (45') Krzysztof Karaszewski, Global RPA Product Manager 12:20 🍕 Lunch Break (1hr) 13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30') Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance 13:50 Communications Mining - focus on AI capabilities (30') Thomasz Wierzbicki, Business Analyst @Office Samurai 14:20 Polish MVP panel: Insights on MVP award achievements and career profiling
accommodate the strengths, weaknesses, threats and opportunities of autonomous vehicles
Six months into 2024, and it is clear the privacy ecosystem takes no days off!! Regulators continue to implement and enforce new regulations, businesses strive to meet requirements, and technology advances like AI have privacy professionals scratching their heads about managing risk. What can we learn about the first six months of data privacy trends and events in 2024? How should this inform your privacy program management for the rest of the year? Join TrustArc, Goodwin, and Snyk privacy experts as they discuss the changes we’ve seen in the first half of 2024 and gain insight into the concrete, actionable steps you can take to up-level your privacy program in the second half of the year. This webinar will review: - Key changes to privacy regulations in 2024 - Key themes in privacy and data governance in 2024 - How to maximize your privacy program in the second half of 2024
Manual Method of Product Research | Helium10 | MBS RETRIEVER