This document provides an introduction to CPAN (Comprehensive Perl Archive Network), which is a repository for Perl modules and programs. It discusses how to install and configure a local Perl installation and leverage CPAN to easily install additional modules without modifying the system-wide Perl installation. The document also covers how to configure CPAN settings, install and update modules manually or via the CPAN shell, and find information on module quality and reviews.
My ramblings about how I think the Perl community should target newcomers in its marketing efforts, and how I've come to appreciate Python and Java's standard libraries and toolsets.
This document provides a tutorial on using ParenScript, a tool for embedding Lisp code into JavaScript and HTML documents. It demonstrates several examples of using ParenScript, including embedding a simple onclick handler, generating a JavaScript file from ParenScript code, and rewriting an existing slideshow script in ParenScript. The slideshow example shows how to integrate data from Common Lisp into the generated JavaScript code to customize the behavior. Overall, the tutorial provides a good introduction to basic ParenScript usage and concepts through examples.
The Parenscript Common Lisp to JavaScript compilerVladimir Sedach
The document discusses the Parenscript Common Lisp to JavaScript compiler. It describes what Parenscript is and is not, how it works, and its history and uses. Key points include that Parenscript compiles Common Lisp to readable JavaScript code without runtime dependencies or new types, and is used in web frameworks, libraries, and commercial projects.
This document describes Dist::Surveyor, a tool created by Tim Bunce to determine which CPAN distributions and versions are installed on a system by analyzing the contents of a local Perl library directory. It discusses the challenges involved and different approaches considered. The key features of Dist::Surveyor are that it uses MetaCPAN to match installed module files to candidate distributions, scores distributions based on included modules, and can generate a list of exact distributions to reinstall a matching library.
This document summarizes a presentation about the future of the Rake gem and domain-specific languages (DSLs) in Ruby.
The presentation discusses:
1. How Rake works as a Make-like program implemented in Ruby syntax with tasks and dependencies. Rake files use standard Ruby syntax.
2. Examples of common patterns for building internal DSLs in Ruby using class/module methods, method definition, implicit/explicit code blocks, and instance evaluation.
3. How popular Ruby gems like Rake, Bundler, and Thor use DSL techniques and inherit from each other to provide domain-specific interfaces.
This document provides an introduction to CPAN (Comprehensive Perl Archive Network), which is a repository for Perl modules and programs. It discusses how to install and configure a local Perl installation and leverage CPAN to easily install additional modules without modifying the system-wide Perl installation. The document also covers how to configure CPAN settings, install and update modules manually or via the CPAN shell, and find information on module quality and reviews.
My ramblings about how I think the Perl community should target newcomers in its marketing efforts, and how I've come to appreciate Python and Java's standard libraries and toolsets.
This document provides a tutorial on using ParenScript, a tool for embedding Lisp code into JavaScript and HTML documents. It demonstrates several examples of using ParenScript, including embedding a simple onclick handler, generating a JavaScript file from ParenScript code, and rewriting an existing slideshow script in ParenScript. The slideshow example shows how to integrate data from Common Lisp into the generated JavaScript code to customize the behavior. Overall, the tutorial provides a good introduction to basic ParenScript usage and concepts through examples.
The Parenscript Common Lisp to JavaScript compilerVladimir Sedach
The document discusses the Parenscript Common Lisp to JavaScript compiler. It describes what Parenscript is and is not, how it works, and its history and uses. Key points include that Parenscript compiles Common Lisp to readable JavaScript code without runtime dependencies or new types, and is used in web frameworks, libraries, and commercial projects.
This document describes Dist::Surveyor, a tool created by Tim Bunce to determine which CPAN distributions and versions are installed on a system by analyzing the contents of a local Perl library directory. It discusses the challenges involved and different approaches considered. The key features of Dist::Surveyor are that it uses MetaCPAN to match installed module files to candidate distributions, scores distributions based on included modules, and can generate a list of exact distributions to reinstall a matching library.
This document summarizes a presentation about the future of the Rake gem and domain-specific languages (DSLs) in Ruby.
The presentation discusses:
1. How Rake works as a Make-like program implemented in Ruby syntax with tasks and dependencies. Rake files use standard Ruby syntax.
2. Examples of common patterns for building internal DSLs in Ruby using class/module methods, method definition, implicit/explicit code blocks, and instance evaluation.
3. How popular Ruby gems like Rake, Bundler, and Thor use DSL techniques and inherit from each other to provide domain-specific interfaces.
With PHP 5.6 there are some great new features. We'll go over some of these features and how to use them. This includes variadic functions, constant scalar expressions, exponentiation, splat operator, use const/function, php input, phpdbg, and more. We will also cover deprecated features in PHP 5.6. Want to get involved with upcoming release? I'll show you how you can 'make_test' to start helping out.
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.
This document summarizes the development and maintenance of a large web application called Arcos over 2.5 years. It includes:
- Details on the codebase which includes nearly 80,000 lines of Perl code, 4,900 lines of SQL, and uses over 140 modules.
- The key features of Arcos including a CMS, e-commerce, data warehouse, email campaigns, job queue, and reporting.
- Challenges around deployment including managing dependencies, upgrades, testing, and configuration.
- Approaches to version control, releases, maintenance, and testing the application.
What you need to remember when you upload to CPANcharsbar
Perlのモジュールを公開するときに気をつけておいた方がよい個のこと
This document provides tips for publishing Perl modules to CPAN. It discusses things to be aware of such as distributions being permanently archived on BackPAN even if deleted, CPAN accepting almost anything, and several testing services that can improve modules like PAUSE, CPAN Testers, CPANTS, and more. It also covers best practices for metrics evaluated by these services around availability, integrity, file layout, prerequisites and more. Developers are encouraged to use better tools from the Perl Toolchain Gang to avoid issues.
PECL Picks - Extensions to make your life betterZendCon
This document provides information about various PHP extensions available through PECL (PHP Extension Community Library). It introduces the author and their background, describes what PECL is and provides a brief history. It then discusses the current status of PECL, future plans, and how individuals can get involved. Finally, it highlights and provides code examples for several popular and useful PECL extensions, including APC, Memcache, Imagick, HTTP, UploadProgress and others.
This document discusses PHP traits and their use and advantages. It begins by showing PHP's large market share for web programming compared to other languages. It then demonstrates how traits allow eliminating duplicated code by defining common functionality in traits that can be used by multiple classes. The document provides an example of using a "Options" trait to DRY up option handling code across multiple classes. It discusses trait precedence and how to selectively override trait methods using "insteadof". The document explains how traits solve problems caused by multiple inheritance through their precedence rules.
The document summarizes the new plugin API in Fluentd v0.14. Key points include:
- The v0.12 plugin API was fragmented and difficult to write tests for. The v0.14 API provides a unified architecture.
- The main plugin classes are Input, Filter, Output, Buffer, and plugins must subclass Fluent::Plugin::Base.
- The Output plugin supports both buffered and non-buffered processing. Buffering can be configured by tags, time, or custom fields.
- "Owned" plugins like Buffer are instantiated by primary plugins and can access owner resources. Storage is a new owned plugin for persistent storage.
- New test drivers emulate plugin
Paweł Skotnicki: Masz zacząć pracę z legacy code? Nie wiesz, gdzie najlepiej zrobić refactor? A może zaczynasz nowy projekt, który, tym razem, ma utrzymywać najwyższą jakość kodu? Istnieje sporo narzędzi, które mają w tym pomóc, a my często o nich zapominamy. Przedstawię lub przypomnę część z nich.
This document discusses the inner workings of PHP including its architecture, core components like the lexer, parser, compiler and virtual machine. It covers key concepts like opcodes, variables as unions of C data types, and memory management. Understanding PHP internals like its stack and heap implementation, copy-on-write variables, and reference counting is important for optimizing performance and avoiding memory leaks. Resources and objects also have important internal representations that developers should be aware of.
PHP 5.6 includes several new features such as constant expressions that allow scalar expressions in contexts that previously expected static values, variadic functions that can be implemented using the ... operator, and an interactive debugger called phpdbg. Other improvements include reusable php://input, support for large file uploads over 2GB, operator overloading for GMP objects, a hash_equals() function for timing attack safe string comparisons, the __debugInfo() magic method, addition of the gost-crypto hash algorithm, and various SSL/TLS improvements like enabling peer verification by default.
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)James Titcumb
You've heard of the new Zend framework, Expressive, and you've heard it's the new hotness. In this talk, I will introduce the concepts of Expressive, how to bootstrap a simple application with the framework using best practices, and how to integrate a third party tool like Doctrine ORM.
Ola Bini gave a whirlwind tour of JRuby, a Java implementation of the Ruby programming language. Some key points included: JRuby allows Ruby code to run on the Java virtual machine, taking advantage of features like native threading and access to Java libraries. It can run in several modes including interpreted, compiled, and just-in-time compiled. JRuby is commonly used to run Ruby on Rails applications, and tools like ActiveRecord-JDBC facilitate database access. Several other Ruby tools and frameworks like RSpec work with JRuby. Ola demonstrated several JRuby projects including Profligacy, Rubiq, and Swing wrappers. Future work includes finishing the compiler and exploring alternative interpreters like
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Tim Bunce
Slides of my talk on Devel::NYTProf and optimizing perl code at the Italian Perl Workshop (IPW09). It covers the new features in NYTProf v3 and a new section outlining a multi-phase approach to optimizing your perl code.
30 mins long plus 10 mins of questions. Best viewed fullscreen.
Thrift is a software framework that allows for efficient cross-language communication. It provides features such as RPC, code generation, and serialization to make it easy to define and develop services that can be used across multiple languages. Supported languages include C++, Java, Python, PHP and more. Thrift handles low-level details like data serialization while providing an interface definition language to define services and data structures.
Large and heavy PHP frameworks are a thing of the past. Modern PHP developers now have a wealth of libraries and packages available to perform specific tasks, and microservices are fast becoming a preferred way to architect applications. But many don't know how to start, and get thrown in the deep end to flounder. This hands-on workshop will introduce what microservices are, and how to leverage middleware to create them. We will use the Zend Expressive microframework to leverage components of Zend Framework, and other libraries, to quickly create awesome things without requiring an entire framework. Resources for reference and continued learning will also be shared.
With Composer as an integral part of Laravel 4 PHP framework, PHP programmers finaly have a way to break the complex projects into smaller independent units (Laravel Packages) that can later easily be used in any other project. This brings code reusibilty to a completely new level. Lecture describes the proccess of creating a simple Laravel package with Facade and Artisan CLI support. Detailed walkthorugh is available as a github project as well: https://github.com/orangehill/Laravel-Workbench-Walkthrough
How to develop Jenkins plugin using to ruby and Jenkins.rbHiroshi SHIBATA
- The document discusses developing Jenkins plugins using Ruby and the jpi tool. It covers generating a sample wrapper plugin, configuring the plugin, and building and releasing the plugin through jpi commands.
- The speaker demonstrates creating a sample "rbenv" plugin with jpi to configure Ruby versions and gems for builds.
- Commands like jpi new, generate, build, server and release are used to generate the plugin scaffolding, configure the wrapper, build the plugin file, host it locally for testing, and prepare it for release.
The document introduces PSR-7 and middleware in Zend Expressive. It discusses PSR-7 interfaces like RequestInterface and ResponseInterface that define HTTP messages. It also covers middleware and how middleware can be used to add functionality like authentication. Zend Expressive is introduced as a framework that uses PSR-7 and middleware. It has features like routing, dependency injection and templating. Examples are given of creating middleware for authentication, downloading files, and handling unavailable pages. The document concludes by thanking the reader and providing contact details.
HHVM: Efficient and Scalable PHP/Hack Execution / Guilherme Ottoni (Facebook)Ontico
The HipHop Virtual Machine (HHVM) is the PHP and Hack execution engine developed at Facebook. HHVM is the fastest existing PHP/Hack engine, and it powers not only Facebook's servers, but also Wikipedia, Baidu, and many other sites across the web. In this talk, we'll give an overview of the design of HHVM, with particular focus on its JIT compiler. I'll share some of our experiences building this high performance system, as well as some of the key challenges that we've faced to improve PHP performance.
A story of how we went about packaging perl and all of the dependencies that our project has.
Where we were before, the chosen path, and the end result.
The pitfalls and a view on the pros and cons of the previous state of affairs versus the pros/cons of the end result.
This document discusses Apache::Dispatch, a lightweight abstraction layer for mod_perl applications. It maps URIs to application resources via method handlers, providing the power of mod_perl handlers with a painless migration. The document reviews how Apache::Dispatch works, provides examples of configuration, method handlers, and testing with Apache::Test. It also covers additional Apache::Dispatch features like pre/post-dispatch handlers, inheritance, autoloading, and filtering.
With PHP 5.6 there are some great new features. We'll go over some of these features and how to use them. This includes variadic functions, constant scalar expressions, exponentiation, splat operator, use const/function, php input, phpdbg, and more. We will also cover deprecated features in PHP 5.6. Want to get involved with upcoming release? I'll show you how you can 'make_test' to start helping out.
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.
This document summarizes the development and maintenance of a large web application called Arcos over 2.5 years. It includes:
- Details on the codebase which includes nearly 80,000 lines of Perl code, 4,900 lines of SQL, and uses over 140 modules.
- The key features of Arcos including a CMS, e-commerce, data warehouse, email campaigns, job queue, and reporting.
- Challenges around deployment including managing dependencies, upgrades, testing, and configuration.
- Approaches to version control, releases, maintenance, and testing the application.
What you need to remember when you upload to CPANcharsbar
Perlのモジュールを公開するときに気をつけておいた方がよい個のこと
This document provides tips for publishing Perl modules to CPAN. It discusses things to be aware of such as distributions being permanently archived on BackPAN even if deleted, CPAN accepting almost anything, and several testing services that can improve modules like PAUSE, CPAN Testers, CPANTS, and more. It also covers best practices for metrics evaluated by these services around availability, integrity, file layout, prerequisites and more. Developers are encouraged to use better tools from the Perl Toolchain Gang to avoid issues.
PECL Picks - Extensions to make your life betterZendCon
This document provides information about various PHP extensions available through PECL (PHP Extension Community Library). It introduces the author and their background, describes what PECL is and provides a brief history. It then discusses the current status of PECL, future plans, and how individuals can get involved. Finally, it highlights and provides code examples for several popular and useful PECL extensions, including APC, Memcache, Imagick, HTTP, UploadProgress and others.
This document discusses PHP traits and their use and advantages. It begins by showing PHP's large market share for web programming compared to other languages. It then demonstrates how traits allow eliminating duplicated code by defining common functionality in traits that can be used by multiple classes. The document provides an example of using a "Options" trait to DRY up option handling code across multiple classes. It discusses trait precedence and how to selectively override trait methods using "insteadof". The document explains how traits solve problems caused by multiple inheritance through their precedence rules.
The document summarizes the new plugin API in Fluentd v0.14. Key points include:
- The v0.12 plugin API was fragmented and difficult to write tests for. The v0.14 API provides a unified architecture.
- The main plugin classes are Input, Filter, Output, Buffer, and plugins must subclass Fluent::Plugin::Base.
- The Output plugin supports both buffered and non-buffered processing. Buffering can be configured by tags, time, or custom fields.
- "Owned" plugins like Buffer are instantiated by primary plugins and can access owner resources. Storage is a new owned plugin for persistent storage.
- New test drivers emulate plugin
Paweł Skotnicki: Masz zacząć pracę z legacy code? Nie wiesz, gdzie najlepiej zrobić refactor? A może zaczynasz nowy projekt, który, tym razem, ma utrzymywać najwyższą jakość kodu? Istnieje sporo narzędzi, które mają w tym pomóc, a my często o nich zapominamy. Przedstawię lub przypomnę część z nich.
This document discusses the inner workings of PHP including its architecture, core components like the lexer, parser, compiler and virtual machine. It covers key concepts like opcodes, variables as unions of C data types, and memory management. Understanding PHP internals like its stack and heap implementation, copy-on-write variables, and reference counting is important for optimizing performance and avoiding memory leaks. Resources and objects also have important internal representations that developers should be aware of.
PHP 5.6 includes several new features such as constant expressions that allow scalar expressions in contexts that previously expected static values, variadic functions that can be implemented using the ... operator, and an interactive debugger called phpdbg. Other improvements include reusable php://input, support for large file uploads over 2GB, operator overloading for GMP objects, a hash_equals() function for timing attack safe string comparisons, the __debugInfo() magic method, addition of the gost-crypto hash algorithm, and various SSL/TLS improvements like enabling peer verification by default.
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)James Titcumb
You've heard of the new Zend framework, Expressive, and you've heard it's the new hotness. In this talk, I will introduce the concepts of Expressive, how to bootstrap a simple application with the framework using best practices, and how to integrate a third party tool like Doctrine ORM.
Ola Bini gave a whirlwind tour of JRuby, a Java implementation of the Ruby programming language. Some key points included: JRuby allows Ruby code to run on the Java virtual machine, taking advantage of features like native threading and access to Java libraries. It can run in several modes including interpreted, compiled, and just-in-time compiled. JRuby is commonly used to run Ruby on Rails applications, and tools like ActiveRecord-JDBC facilitate database access. Several other Ruby tools and frameworks like RSpec work with JRuby. Ola demonstrated several JRuby projects including Profligacy, Rubiq, and Swing wrappers. Future work includes finishing the compiler and exploring alternative interpreters like
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Tim Bunce
Slides of my talk on Devel::NYTProf and optimizing perl code at the Italian Perl Workshop (IPW09). It covers the new features in NYTProf v3 and a new section outlining a multi-phase approach to optimizing your perl code.
30 mins long plus 10 mins of questions. Best viewed fullscreen.
Thrift is a software framework that allows for efficient cross-language communication. It provides features such as RPC, code generation, and serialization to make it easy to define and develop services that can be used across multiple languages. Supported languages include C++, Java, Python, PHP and more. Thrift handles low-level details like data serialization while providing an interface definition language to define services and data structures.
Large and heavy PHP frameworks are a thing of the past. Modern PHP developers now have a wealth of libraries and packages available to perform specific tasks, and microservices are fast becoming a preferred way to architect applications. But many don't know how to start, and get thrown in the deep end to flounder. This hands-on workshop will introduce what microservices are, and how to leverage middleware to create them. We will use the Zend Expressive microframework to leverage components of Zend Framework, and other libraries, to quickly create awesome things without requiring an entire framework. Resources for reference and continued learning will also be shared.
With Composer as an integral part of Laravel 4 PHP framework, PHP programmers finaly have a way to break the complex projects into smaller independent units (Laravel Packages) that can later easily be used in any other project. This brings code reusibilty to a completely new level. Lecture describes the proccess of creating a simple Laravel package with Facade and Artisan CLI support. Detailed walkthorugh is available as a github project as well: https://github.com/orangehill/Laravel-Workbench-Walkthrough
How to develop Jenkins plugin using to ruby and Jenkins.rbHiroshi SHIBATA
- The document discusses developing Jenkins plugins using Ruby and the jpi tool. It covers generating a sample wrapper plugin, configuring the plugin, and building and releasing the plugin through jpi commands.
- The speaker demonstrates creating a sample "rbenv" plugin with jpi to configure Ruby versions and gems for builds.
- Commands like jpi new, generate, build, server and release are used to generate the plugin scaffolding, configure the wrapper, build the plugin file, host it locally for testing, and prepare it for release.
The document introduces PSR-7 and middleware in Zend Expressive. It discusses PSR-7 interfaces like RequestInterface and ResponseInterface that define HTTP messages. It also covers middleware and how middleware can be used to add functionality like authentication. Zend Expressive is introduced as a framework that uses PSR-7 and middleware. It has features like routing, dependency injection and templating. Examples are given of creating middleware for authentication, downloading files, and handling unavailable pages. The document concludes by thanking the reader and providing contact details.
HHVM: Efficient and Scalable PHP/Hack Execution / Guilherme Ottoni (Facebook)Ontico
The HipHop Virtual Machine (HHVM) is the PHP and Hack execution engine developed at Facebook. HHVM is the fastest existing PHP/Hack engine, and it powers not only Facebook's servers, but also Wikipedia, Baidu, and many other sites across the web. In this talk, we'll give an overview of the design of HHVM, with particular focus on its JIT compiler. I'll share some of our experiences building this high performance system, as well as some of the key challenges that we've faced to improve PHP performance.
A story of how we went about packaging perl and all of the dependencies that our project has.
Where we were before, the chosen path, and the end result.
The pitfalls and a view on the pros and cons of the previous state of affairs versus the pros/cons of the end result.
This document discusses Apache::Dispatch, a lightweight abstraction layer for mod_perl applications. It maps URIs to application resources via method handlers, providing the power of mod_perl handlers with a painless migration. The document reviews how Apache::Dispatch works, provides examples of configuration, method handlers, and testing with Apache::Test. It also covers additional Apache::Dispatch features like pre/post-dispatch handlers, inheritance, autoloading, and filtering.
Bgoug 2019.11 test your pl sql - not your patienceJacek Gebal
This document discusses unit testing in PL/SQL. It emphasizes that testing is important to prevent bugs, make code changeable, prove requirements are met, and document code. The document recommends testing all logic, exceptions, and data. Tests should be automated and run early and often using a test framework like utPLSQL. utPLSQL allows writing isolated tests using annotations and matchers to make assertions. Tests can be organized into suites with contexts and run as part of continuous integration pipelines.
This document provides an overview of steps to create a mature Puppet system, including setting up editors, code validation, environments, master and client configuration, and data management with Hiera. Key recommendations include using Vagrant for testing, validating code with puppet-lint, implementing environments for code promotion, separating code and data, and writing less code by leveraging defaults and Hiera lookups.
Building a Perl5 smoketest environment in Docker using CPAN::Reporter::Smoker. Includes an overview of "smoke testing", shell commands to contstruct a hybrid environment with underlying O/S image and data volumes for /opt, /var/lib/CPAN. This allows maintaining the Perly smoke environemnt without having to rebuild it.
This document provides a tutorial for installing Openbravo ERP on Ubuntu server. It includes instructions for installing prerequisites like PostgreSQL, Java, Tomcat, and Ant. It then guides the user through configuring Openbravo properties, compiling the source code, and accessing the installed Openbravo application. Backup and restoration procedures are also outlined that involve dumping the database and archiving the Openbravo source files.
Best practices in Drupal make individual developers more productive which makes the entire team more productive. This was presented by Somedutta Ghosh in Drupal Camp Kolkata. #drupalcampkolkata
This short document discusses the Puppet configuration management tool. It begins with a quote about controlling the spice and universe from Dune and includes the author's name and date. The document then lists various Puppet features like scalability, flexibility, simple installation, and modules. It provides examples of large sites using Puppet like Google and describes Puppet's client-server and masterless models. In closing, it emphasizes Puppet's flexibility, community support, and over 1200 pre-built configurations.
Why I like PHPStorm
Advantages of Using Docker
Client, Docker Host, Registry
Docker Usage
Solr Docker File
Every Day Docker Commands
Docker Search
One Line Scripts
Portainer
Kinematic
Docker Compose
Grafana
Coding style guide
PHPCS/MD
Documentation Rules
Xdebug
Postman
The document discusses developing replication plugins for Drizzle, an open source database. It provides an overview of Drizzle's architecture and replication system. Key points include that Drizzle uses a plugin model where most features are built as plugins, and that replication is based on transmitting "Transaction" messages between plugins using Google Protocol Buffers for serialization.
This document provides instructions for installing various developer tools including Git, Vim, Java, Tomcat, Maven, and Psi Probe on Linux, Mac OSX, and Windows. It then outlines 3 homework assignments: 1) creating a basic Git repository, 2) forking and cloning a provided repository, adding a feature, resolving conflicts, and deploying the application, and 3) using Psi Probe to manage Tomcat web applications. Step-by-step instructions are provided for completing each task along with explanations of commands used.
The document provides guidance on how to create and distribute Perl modules. It discusses what Perl modules are, why they are useful, and how to structure, write, test, and package a module for distribution. Key steps include using the h2xs tool to generate module scaffolding, writing the module code in the .pm file with best practices like strict and warnings, testing the module, and creating a compressed archive for distribution.
The document provides an overview of the Temenos Application Framework for Java (TAFJ). It discusses TAFJ architecture and how to configure Eclipse for TAFJ development. It also describes how to create Java projects in Eclipse, write and compile basic programs, create JAR descriptors, package and release modules, and deploy TAFJ modules. Additionally, it outlines several TAFJ commands, tools, and features for database access and management.
Orchestrated Functional Testing with Puppet-spec and MspectatorRaphaël PINSON
As Infrastructure as Code gets more widely adopted and more heavily automated, the need for tests is on the rise. It has now become a common practice to ship Puppet modules with unit and functional tests. The Puppet-spec and Mspectator projects aim to validate Puppet catalogs and test your fleet on the fly, using the serverspec library.
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...Puppet
This document discusses using Puppet-spec and Mspectator to orchestrate functional testing of Puppet configurations. Puppet-spec allows running unit and integration tests as part of Puppet runs, while Mspectator provides RSpec matchers to run functional tests across nodes using MCollective. The tests validate resources, packages, files and more, failing runs when tests don't pass to ensure configurations meet standards.
Joomla! Day Chicago 2011 Presentation - Steven PignataroSteven Pignataro
The document provides tips and best practices for developing Joomla sites as part of a team. It discusses using version control like SVN or Git, following coding standards for naming conventions and formatting, and leveraging tools for code review and team development. Additional suggestions are given for debugging, moving sites, testing for injections, and speeding up sites through techniques like removing Mootools and using content delivery networks. The presenter encourages sharing ideas to improve Joomla development.
The document discusses PPM (Perl Package Manager) which allows installing pre-processed Perl packages more quickly than installing from CPAN. It provides an overview of the history and development of PPM. It also describes tools for creating PPM packages and alternatives for packages not available through PPM such as building packages yourself or using another module.
DarkPAN is a local-use CPAN that contains internal modules not found on CPAN, and that exposes them to the Perl toolchain for use in microservices. In this presentation we discuss one way to implement an internal DarkPAN.
The document provides tips for planning and delivering presentations at technical conferences. It discusses choosing a topic you are enthusiastic about, preparing your slides and rehearsing your presentation, tailoring your talk for the audience, handling questions, and following up after the event. The overall message is to focus on a compelling topic you are excited about, prepare thoroughly, relax and have fun during the presentation, and engage with other presenters and attendees.
- perl provides many command line switches to control how a Perl script is executed or the input/output behavior. Some key switches include -n, -p, -l, -e, -M, -I, -V, and -E.
- Special variables like $. and eof can be used to access the current line number or detect the end of input files when iterating over lines.
- Modules can be loaded at startup using -M to enhance functionality, and %INC shows where modules were loaded from.
- Various quoting mechanisms like qq can be used to specify strings without interpolation.
This document provides a summary of Perl's modern features and history from versions 1 through 5.26. It describes key additions and changes over time such as lexical filehandles in 5.6, three argument open in 5.8, and major new features introduced in 5.10 like say and state. It emphasizes that Perl development is ongoing with thousands of bug fixes and improvements made in each release beyond the new features highlighted.
Introduction to Perl Programming (OpenWest 2014).
A 90 minute introduction to the why and how of becoming productive with the Perl Programming Language.
Talk presented to High School students at the Utah DigiForge Student Conference: "Think Like A Programmer". (Attributes: Laziness, Impatience, Hubris. And how algorithms, abstraction, and generalization will help you to achieve those attributes.)
Perl provides some very useful functional style functions, such as grep, map, and sort. This is a beginner's introduction to some of the most common ones.
Video of this presentation is available at http://youtu.be/Rjy2Q4qRdz4
This presentation was given at Salt Lake Perl Mongers, June 11, 2013. The Salt Lake Perl Mongers website is http://saltlake.pm.org
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.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/temporal-event-neural-networks-a-more-efficient-alternative-to-the-transformer-a-presentation-from-brainchip/
Chris Jones, Director of Product Management at BrainChip , presents the “Temporal Event Neural Networks: A More Efficient Alternative to the Transformer” tutorial at the May 2024 Embedded Vision Summit.
The expansion of AI services necessitates enhanced computational capabilities on edge devices. Temporal Event Neural Networks (TENNs), developed by BrainChip, represent a novel and highly efficient state-space network. TENNs demonstrate exceptional proficiency in handling multi-dimensional streaming data, facilitating advancements in object detection, action recognition, speech enhancement and language model/sequence generation. Through the utilization of polynomial-based continuous convolutions, TENNs streamline models, expedite training processes and significantly diminish memory requirements, achieving notable reductions of up to 50x in parameters and 5,000x in energy consumption compared to prevailing methodologies like transformers.
Integration with BrainChip’s Akida neuromorphic hardware IP further enhances TENNs’ capabilities, enabling the realization of highly capable, portable and passively cooled edge devices. This presentation delves into the technical innovations underlying TENNs, presents real-world benchmarks, and elucidates how this cutting-edge approach is positioned to revolutionize edge AI across diverse applications.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/how-axelera-ai-uses-digital-compute-in-memory-to-deliver-fast-and-energy-efficient-computer-vision-a-presentation-from-axelera-ai/
Bram Verhoef, Head of Machine Learning at Axelera AI, presents the “How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-efficient Computer Vision” tutorial at the May 2024 Embedded Vision Summit.
As artificial intelligence inference transitions from cloud environments to edge locations, computer vision applications achieve heightened responsiveness, reliability and privacy. This migration, however, introduces the challenge of operating within the stringent confines of resource constraints typical at the edge, including small form factors, low energy budgets and diminished memory and computational capacities. Axelera AI addresses these challenges through an innovative approach of performing digital computations within memory itself. This technique facilitates the realization of high-performance, energy-efficient and cost-effective computer vision capabilities at the thin and thick edge, extending the frontier of what is achievable with current technologies.
In this presentation, Verhoef unveils his company’s pioneering chip technology and demonstrates its capacity to deliver exceptional frames-per-second performance across a range of standard computer vision networks typical of applications in security, surveillance and the industrial sector. This shows that advanced computer vision can be accessible and efficient, even at the very edge of our technological ecosystem.
How information systems are built or acquired puts information, which is what they should be about, in a secondary place. Our language adapted accordingly, and we no longer talk about information systems but applications. Applications evolved in a way to break data into diverse fragments, tightly coupled with applications and expensive to integrate. The result is technical debt, which is re-paid by taking even bigger "loans", resulting in an ever-increasing technical debt. Software engineering and procurement practices work in sync with market forces to maintain this trend. This talk demonstrates how natural this situation is. The question is: can something be done to reverse the trend?
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving
Manufacturing custom quality metal nameplates and badges involves several standard operations. Processes include sheet prep, lithography, screening, coating, punch press and inspection. All decoration is completed in the flat sheet with adhesive and tooling operations following. The possibilities for creating unique durable nameplates are endless. How will you create your brand identity? We can help!
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!
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.
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.
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
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
What is an RPA CoE? Session 1 – CoE VisionDianaGray10
In the first session, we will review the organization's vision and how this has an impact on the COE Structure.
Topics covered:
• The role of a steering committee
• How do the organization’s priorities determine CoE Structure?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
1. 30 minutes to CPAN
(Minimizing the magic, and demystifying the process.)
2. 30 minutes is pure Marketing Department hype.
But with practice, it's realistic.
3. There are many ways to do it.
This is a good way to start.
4. Get a PAUSE/CPAN account
● https://pause.perl.org/pause/query?ACTION=request_id
● The form takes 2 minutes.
● The response time can be 1-3 days, so be patient.
● Make sure to search CPAN ensuring you're not requesting a
PAUSE ID that is already in use.
6. MANIFEST
● List the files included in your distribution. Comments
may be added to the right.
MANIFEST This file. (And this is a legal comment)
README The brief introduction. (Another comment)
Changes The change log
Makefile.PL
META.json
META.yml
lib/Foo.pm
t/00-load.t
examples/example.pl
7. README
● Brief intro to your module.
● Just copy one from CPAN as an example and
modify it to suit your needs.
– Too long to post here, mostly boilerplate.
● No version numbers. No version-specific details.
– It will make your life as an author easier.
8. Changes
● The change log for CPAN releases. Newer releases are
listed above older ones. One blank line separates
releases.
Change log for Perl module Foo.
0.02 2013-01-09
- Fixed all the bugs in version 0.01.
0.01 2012-11-15
- First version.
11. Other Makefile.PL meta info
● It's helpful to include a META_MERGE section
in Makefile.PL
– List the public version control repositiory.
– Other useful meta fields documented in
CPAN::Meta::Spec
– These fields are helpful, but not mandatory.
12. Testing: t/00-load.t
● Anything named t/*.t will be run in ASCII-betical
order as a test.
use strict;
use warnings;
use Test::More;
use_ok( 'Foo' );
can_ok( 'Foo', 'bar' ); # Function exists.
can_ok('main', 'bar'); # Function was imported.
done_testing();
13. lib/Foo.pm
● Your module's code and documentation:
package Foo;
use strict; use warnings;
use Exporter;
our @ISA = qw( Exporter );
our @EXPORT = qw( bar );
our $VERSION = '0.01';
sub bar { print “Hello world!n”; }
1;
=pod
14. lib/Foo.pm ( =pod )
=pod
=head1 NAME
Foo – The great Foo says hello!
=head1 SYNOPSIS
Use Foo;
Bar();
=head1 DESCRIPTION
This module implements a single function, C<bar()> which greets you by
printing “Hello world!”.
=head1 EXPORTS
L<Foo> exports a single function; C<bar()>.
● Follow your favorite (simple) module's example.
● Read perldoc perlpod.
15. examples/example.pl
● A small working script demonstrating your module.
use strict;
use warnings;
use Foo;
bar(); # This prints “Hello world.n”
● Should not be chmod +x (Nor should
anything else in the distribution).
16. Prepare the distribution
perl Makefile.PL
make
make test
make distcheck
make disttest
cp Foo-0.01/META.* ./
rm -rf Foo-0.01
make dist
17. Upload to PAUSE
● Log in at: http://pause.perl.org
● Upload at:
https://pause.perl.org/pause/authenquery?ACTION=add_uri
● Wait a few hours for the CPAN mirrors to update.
● Visit http://cpantesters.org to check smoke test results.
18. Request the namespace.
● This is a formality, and can take a week to be
approved.
● This is done via the PAUSE website.
● Top-level namespaces are more difficult.
● Upload first, then request.
19. Version Numbers
● Regular Releases
our $VERSION = '0.01';
● Always bump the version number before uploading to
CPAN.
● Minimize error-prone work: Keep version numbers in as
few places as practical.
– Consider adding a version number consistency test.
20. Module tests
● Module tests are important to you and users.
– You get feedback from the smoke testers.
– Your users gain confidence that the module will work on their
platform.
– Bugs are easier to track down.
● List additional test dependencies in BUILD_REQUIRES.
● Some tests such as Test::NoWarnings may be written
generically, and copied into your next project.
– Your next module won't take as long to assemble.
21. Author / Release Tests
● Should run optionally
● Should not fail if a test module dependency isn't
available.
● Use environment variables such as RELEASE_TESTING
to trigger these sorts of tests.
● Skip and exit gracefully if an optional test's module is
unavailable on the target system.
● Generic: They may be useful in your next module.
22. A few author tests to consider
● Test::Pod
● Test::Pod::Coverage
● Test::CPAN::Changes
● Test::Manifest
● Test::Perl::Critic
● Test::Kwalitee
● Test::Version
● Many other favorites are on CPAN – Ask around.
23. License
● Make sure the license enumerated in the POD
matches the one called for in Makefile.PL
● See:
$ perldoc perlmodstyle
$ perldoc perlartistic
$ perldoc perlgpl
● License should be referred to in Makefile.PL
so the META files list it.
24. License
● Make sure the license enumerated in the POD
matches the one called for in Makefile.PL
● See:
$ perldoc perlmodstyle
$ perldoc perlartistic
$ perldoc perlgpl
● License should be referred to in Makefile.PL
so the META files list it.
25. Next time...
● Use Module::Starter
– Creates a simple template for you, and adds a few
tests.
● Copy the generic (especially author-only) tests
from your previous distribution.
● Whenver you come up with a test that might
be useful in other distributions, copy it to them.
26. Eventually...
● Some people love Dist::Zilla; a distribution
automator / manager.
● Module::Build is a more Perlish alternative to
ExtUtils::MakeMaker
● Module::Install is yet another solution that lets
you bundle prereqs more easily. It simplifies
creating ExtUtils::MakeMaker-based
distributions.
27. References (Really, look them over)
● POD
– perlmodstyle
– perlpod
● On CPAN
– Module::Starter
– ExtUtils::MakeMaker
– CPAN::Meta::Spec
● In print
– Intermediate Perl Programming (O'Reilly)
● On testing
– Test::More
– http://cpantesters.org
● CPAN itself! (Thousands of good – and bad – examples.)