The document provides a brief history of testing on CPAN from 1987 to the present. It discusses the development of the Test Anything Protocol (TAP) and CPAN Testers for testing Perl modules. It then proposes the idea of CPANci, a continuous integration system for all of CPAN that would test each distribution in isolation on virtualized environments to avoid issues with CPAN Testers. The document outlines an approach using perlbrew and cpanminus to test each distribution on fresh Perl installations of different versions.
The document provides an overview of Pinto, a tool for managing dependencies via a CPAN-like repository. Pinto allows users to create custom repositories of Perl modules and distributions, fetch dependencies and their transitive dependencies, inject their own distributions, install and upgrade modules across different "stacks" (named mappings of packages), and pin packages to specific versions. Key features demonstrated include initializing a repository, pulling dependencies, adding a custom distribution, installing modules, upgrading dependencies on a stack, merging stacks, and pinning packages. Pinto aims to provide stability, portability and reproducibility for dependency management.
Tracking huge files with Git LFS (GlueCon 2016)Tim Pettersen
These are the slides from Tim Pettersen's (@kannonboy) presentation entitled "Tracking huge files with Git LFS" at GlueCon 2016 in Broomfield, Colorado. The video is available at https://www.youtube.com/watch?v=iJ3hXuEVKAc
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
Boston Web Performance Meetup, April 22, 2014
The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get fed up and leave. In this talk we'll start with the basics and get progressively insane. We'll go over several front-end performance best practices, a few anti-patterns, the reasoning behind the rules, and how they've changed over the years. We'll also look at some great tools to help you.
Schedule: 6:30, pizza
7:15: talk
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerJohn Anderson
Modern Perl for the Unfrozen Paleolithic Perl Programmer discusses many changes to Perl and its ecosystem since 2001 when the caveman programmer fell into a glacier. Some key changes include Perl version 5.22, new language features like defined-or and subroutine signatures, and tools like Perlbrew, Plenv and cpanm. Modern web development uses Plack/PSGI instead of CGI.pm. The speaker recommends modules like JSON::MaybeXS, Moose/Moo and websites like CPAN Ratings, MetaCPAN and Perl Weekly to stay up-to-date.
Frontend Performance: Expert to Crazy PersonPhilip Tellis
The document outlines steps for front-end performance optimization, beginning with basic techniques like caching, compression and domain sharing and progressing to more advanced strategies involving preloading, parallel downloads, and predicting response times. It was presented by Philip Tellis at WebPerfDays New York and includes references for further reading on topics like CDNs, TCP tuning, and the page visibility API.
Packaging is the Worst Way to Distribute Software, Except for Everything Elsemckern
As part of the 2014 USENIX Release Engineering Summit West, I presented a talk about packaging software and what's wrong with current trends.
Here's the abstract:
Reliably distributing software is a notoriously difficult problem, and almost every operating system and programming language vendor has tried to solve it. This has led to a herd of packaging systems, almost none of which are cross-compatible; some manage system-level software, while others focus on extending their own language (often by trampling on system-level software). And like all competing standards, every packaging system comes with its own sharp corners, dull edges, and hidden idiosyncrasies to deal with along the path to packaging happiness. In an attempt to answer the question "How do I install this software and ensure that its dependencies are fulfilled?", some novel solutions have begun to see popular adoption. But a lot of these newer tools and techniques tread the same ground as their predecessors while overlooking the lessons that were learned along the way.
I'll talk about the state of native packaging systems on some popular platforms (Debian/Ubuntu, RHEL/CentOS/Fedora, and Mac OS X), packaging systems for popular languages (Ruby, Python, Perl, and Node) and the ways that developers are attempting to work around the limitations of these systems. I'll review the reasons that tools like curlbash, FPM, and omnibus packages have become popular by sharing lessons I've learned while working through these systems. While this will be an amusing presentation, I'll show how native packages can address the concerns that have pushed Release Engineers and Developers away. I will also talk about what native packaging systems can learn from the next generation of packaging tools.
The original abstract is available here:
https://www.usenix.org/conference/ures14west/summit-program/presentation/mckern
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
There’s no such thing as fast enough. You can always make your website faster. This talk will show you how. The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get tired and leave.In this talk we’ll start with the basics and get progressively insane. We’ll go over several frontend performance best practices, a few anti-patterns, the reasoning behind the rules, and how they’ve changed over the years. We’ll also look at some great tools to help you.
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerJohn Anderson
Hello, unfrozen Paleolithic Perl programmers! Welcome to 2015!
First, let’s start with the good news: yes, we’re still programming in Perl5 in 2015 (and yes, we think that’s good news). Indeed, most of the code you wrote in the past, before that unfortunate "Big Giant Hole in Ice" incident, will likely still work just fine on the current release of Perl5 -- even if you originally wrote it against Perl 4 or even Perl 3.
Here’s the bad news: there’s been an incredible amount of innovation in not only Perl5-the-language, but also in Perl5-the-community and what the community considers to be accepted best practices and the right way to do things. It can be very frightening and confusing!
But wait, there’s more good news: if you come to this talk, you’ll get a guided tour of my (reasonably opinionated) views on what the consensus best practices are around issues such as which version of Perl5 to use, system Perl versus non-system Perl, Perl5 installation management packages, new language features and libraries to use, old language features and libraries to avoid, modern tooling, and even more!
Frontend Performance: De débutant à Expert à Fou FurieuxPhilip Tellis
Frontend Performance Beginner to Expert to Crazy Person
The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get tired and leave.
In this talk we'll start with the basics and get progressively insane. We'll go over several frontend performance best practices, a few anti-patterns, the reasoning behind the rules, and how they've changed over the years. We'll also look at some great tools to help you.
La performance front-end de débutant, à expert, à fou furieux !
La toute première condition nécessaire à une bonne expérience utilisateur est de pouvoir obtenir les octets de cette expérience avant que l'utilisateur ne se lasse et parte.
Nous débuterons cette conférence avec les bases pour progressivement devenir démentiel. Nous aborderons plusieurs des meilleurs pratiques de la performance front-end, quelques anti-patterns à éviter, le raisonnement derrière les règles, et comment ces dernières ont changé au fil des ans. Nous regarderons d'un peu plus près quelques très bon outils qui peuvent vous aider.
Tracking huge files with Git LFS - LinuxCon 2016Tim Pettersen
Developers love Git for its raw speed, powerful history traversal, distributed nature, and (of course) the fact that it was originally built by Linus Torvalds. What we don't love is the fact that, out of the box, Git has terrible support for tracking large binary files!
Fortunately, developers from Atlassian and GitHub have teamed up to work on an open source, MIT licensed project to solve this problem: Git LFS (Large File Support). This means researchers, web designers, game developers, multimedia producers and all other developers who need to work with large data and rich media can move off legacy centralized systems and start using modern version control.
This session covers the computer science behind Git LFS' internals & architecture, CLI usage and how to build an effective Git LFS workflow for a software team.
Puppet Camp LA 2015 talk covering: packages, package managers, puppet, and tips, tricks, and puppet modules for setting up secure package repositories.
Package manages and Puppet - PuppetConf 2015ice799
This talk will begin by explaining what a package manager is and how package managers work, at a high level. Next, we'll observe the common patterns seen on the internet of compiling software in a Puppet manifest and discuss why this not ideal. This talk will conclude by showing how you can add package repositories to your infrastructure using Puppet and what settings are important for ensuring secure access to remote package repositories.
Organizing the world of CQ rest infinitive possibilities by Arkadiusz KitaAEM HUB
This document discusses the CQ Unix Toolkit, an open source set of tools for interacting with Adobe Experience Manager (AEM) and Content Queries (CQ) via REST APIs. It provides examples of use cases like package management, monitoring, and development tasks. Guidelines are given for developing new tools, such as capturing common requests, writing clear usage documentation, using descriptive code, and handling options and dependencies simply. The goal is to organize the world of AEM/CQ REST APIs in a user-friendly way.
Using software modules today is the default way of working for most systems and frameworks. With the advent of many software languages and OSS frameworks, new module systems are constantly created and new module ecosystems start to prevail. This trend is horizontal and covers operating system packages, language libraries and application modules (plugins). But while some module systems are nicer to use, others are repeating past mistakes and are a daily source for developer agony and pain. In this short talk I will present the \"lessons learned\" at JFrog, where we make software for managing software libraries and deal with many types of module systems. This talk will show what works and what doesn\'t work in a module system; what features can make a module ecosystem thrive or fail; and why, despite all downsides, modules are here to stay and conquer more space as the Cloud continues to grow.
1. The document discusses writing test code and outlines a multi-week plan for learning testing techniques like JPA, ORM, TDD, DDD, and MVC.
2. It recommends practices like using Mockito to mock dependencies, avoiding unnecessary mocking, and following FIRST principles of tests being fast, independent, repeatable, self-validating, and timely.
3. The document also provides resources on functional decomposition, abstract data types, object-oriented design, and troubleshooting services.
The document discusses HTTP requests and responses. It explains that a request contains a start line with the method, URL and HTTP version, followed by headers providing additional information, and an optional message body. A response contains a status line with the protocol version and status code, followed by headers including caching information, and an optional message body. Content negotiation headers like Accept and Content-Type are used to select the appropriate representation format.
Infrastructure as code might be literally impossibleice799
The document discusses many challenges and issues with using infrastructure as code. It notes that code operates outside of one's frame of reference unless every line is read thoroughly. It provides examples of bugs that have caused major performance problems and outlines vulnerabilities in common package management systems. The document argues that true reproducible infrastructure will require better computer system building and being honest about technology's limitations.
JPA Week3 Entity Mapping / Hexagonal ArchitectureCovenant Ko
The document discusses Hexagonal Architecture and its principles. It explains that the core domain layer should not depend on other layers like the data layer. It provides examples of package structures for Hexagonal Architecture and sample code that separates ports and adapters. Case studies are presented on how companies have implemented Hexagonal Architecture for microservices and APIs.
This document discusses Python tools for testing, including py.test, tox, and TravisCI. It provides information about each tool: py.test is an improved unit testing library compared to nose, with readable test results, mocking features, and JUnit XML output; tox runs tests across multiple Python versions using virtualenv; and TravisCI is a continuous integration service that runs tests automatically on GitHub code commits for open source projects in various languages including Python. Examples of configuration files for tox and TravisCI are also included.
Short introduction about vcs & git usage.
Aimed to introduce concept of version control system and git to people who didn't used git or vcs yet. Doesn't introduce deep part of git or operating policy for git. Just focus on simple introduction about main functionality and abstracted internal design.
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
The document discusses front-end web performance optimization from beginner to expert levels. At the beginner level, it recommends starting with basic optimizations like measuring performance, enabling gzip compression, optimizing images, and caching. At the expert level, it discusses more advanced techniques like using a CDN, splitting JavaScript files, auditing CSS, and flushing content early. Finally, it outlines "crazy" optimizations like pre-loading assets, post-load fetching, and understanding round-trip network latency.
Infrastructure as code might be literally impossible part 2ice799
The document discusses various issues with infrastructure as code including complexities that arise from software licenses, bugs, and inconsistencies across tools and platforms. Specific examples covered include problems with SSL and APT package management on Debian/Ubuntu, Linux networking configuration difficulties, and inconsistencies in Python packaging related to naming conventions for packages containing hyphens, underscores, or periods. Potential causes discussed include legacy code, lack of time for thorough testing and bug fixing, and economic pressures against developing fully working software systems.
Ab(Using) the MetaCPAN API for Fun and Profit v2013Olaf Alders
This talk builds on the previous Ab(Using) the MetaCPAN API talk from 2012. There are links to comprehensive examples and there is a more in-depth look at the available endpoints.
The document discusses the structure and memory components of the Java Virtual Machine (JVM). It describes the JVM memory layout, including the heap, stack, method area, and native memory. It explains how objects are allocated and garbage collected in the heap. Common OutOfMemoryErrors like Java heap space, PermGen space, and unable to create native threads are covered. Best practices for diagnosing and resolving memory issues using tools like jmap and jhat are provided.
The document contains tweets and notes from someone with the Twitter handle @markbates. It discusses setting up a testing framework in Ruby with MiniTest and demonstrates some of MiniTest's features like describing tests, setting up contexts and subjects, pending and skipped tests, and expectations.
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerJohn Anderson
Hello, unfrozen Paleolithic Perl programmers! Welcome to 2015!
First, let’s start with the good news: yes, we’re still programming in Perl5 in 2015 (and yes, we think that’s good news). Indeed, most of the code you wrote in the past, before that unfortunate "Big Giant Hole in Ice" incident, will likely still work just fine on the current release of Perl5 -- even if you originally wrote it against Perl 4 or even Perl 3.
Here’s the bad news: there’s been an incredible amount of innovation in not only Perl5-the-language, but also in Perl5-the-community and what the community considers to be accepted best practices and the right way to do things. It can be very frightening and confusing!
But wait, there’s more good news: if you come to this talk, you’ll get a guided tour of my (reasonably opinionated) views on what the consensus best practices are around issues such as which version of Perl5 to use, system Perl versus non-system Perl, Perl5 installation management packages, new language features and libraries to use, old language features and libraries to avoid, modern tooling, and even more!
Frontend Performance: De débutant à Expert à Fou FurieuxPhilip Tellis
Frontend Performance Beginner to Expert to Crazy Person
The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get tired and leave.
In this talk we'll start with the basics and get progressively insane. We'll go over several frontend performance best practices, a few anti-patterns, the reasoning behind the rules, and how they've changed over the years. We'll also look at some great tools to help you.
La performance front-end de débutant, à expert, à fou furieux !
La toute première condition nécessaire à une bonne expérience utilisateur est de pouvoir obtenir les octets de cette expérience avant que l'utilisateur ne se lasse et parte.
Nous débuterons cette conférence avec les bases pour progressivement devenir démentiel. Nous aborderons plusieurs des meilleurs pratiques de la performance front-end, quelques anti-patterns à éviter, le raisonnement derrière les règles, et comment ces dernières ont changé au fil des ans. Nous regarderons d'un peu plus près quelques très bon outils qui peuvent vous aider.
Tracking huge files with Git LFS - LinuxCon 2016Tim Pettersen
Developers love Git for its raw speed, powerful history traversal, distributed nature, and (of course) the fact that it was originally built by Linus Torvalds. What we don't love is the fact that, out of the box, Git has terrible support for tracking large binary files!
Fortunately, developers from Atlassian and GitHub have teamed up to work on an open source, MIT licensed project to solve this problem: Git LFS (Large File Support). This means researchers, web designers, game developers, multimedia producers and all other developers who need to work with large data and rich media can move off legacy centralized systems and start using modern version control.
This session covers the computer science behind Git LFS' internals & architecture, CLI usage and how to build an effective Git LFS workflow for a software team.
Puppet Camp LA 2015 talk covering: packages, package managers, puppet, and tips, tricks, and puppet modules for setting up secure package repositories.
Package manages and Puppet - PuppetConf 2015ice799
This talk will begin by explaining what a package manager is and how package managers work, at a high level. Next, we'll observe the common patterns seen on the internet of compiling software in a Puppet manifest and discuss why this not ideal. This talk will conclude by showing how you can add package repositories to your infrastructure using Puppet and what settings are important for ensuring secure access to remote package repositories.
Organizing the world of CQ rest infinitive possibilities by Arkadiusz KitaAEM HUB
This document discusses the CQ Unix Toolkit, an open source set of tools for interacting with Adobe Experience Manager (AEM) and Content Queries (CQ) via REST APIs. It provides examples of use cases like package management, monitoring, and development tasks. Guidelines are given for developing new tools, such as capturing common requests, writing clear usage documentation, using descriptive code, and handling options and dependencies simply. The goal is to organize the world of AEM/CQ REST APIs in a user-friendly way.
Using software modules today is the default way of working for most systems and frameworks. With the advent of many software languages and OSS frameworks, new module systems are constantly created and new module ecosystems start to prevail. This trend is horizontal and covers operating system packages, language libraries and application modules (plugins). But while some module systems are nicer to use, others are repeating past mistakes and are a daily source for developer agony and pain. In this short talk I will present the \"lessons learned\" at JFrog, where we make software for managing software libraries and deal with many types of module systems. This talk will show what works and what doesn\'t work in a module system; what features can make a module ecosystem thrive or fail; and why, despite all downsides, modules are here to stay and conquer more space as the Cloud continues to grow.
1. The document discusses writing test code and outlines a multi-week plan for learning testing techniques like JPA, ORM, TDD, DDD, and MVC.
2. It recommends practices like using Mockito to mock dependencies, avoiding unnecessary mocking, and following FIRST principles of tests being fast, independent, repeatable, self-validating, and timely.
3. The document also provides resources on functional decomposition, abstract data types, object-oriented design, and troubleshooting services.
The document discusses HTTP requests and responses. It explains that a request contains a start line with the method, URL and HTTP version, followed by headers providing additional information, and an optional message body. A response contains a status line with the protocol version and status code, followed by headers including caching information, and an optional message body. Content negotiation headers like Accept and Content-Type are used to select the appropriate representation format.
Infrastructure as code might be literally impossibleice799
The document discusses many challenges and issues with using infrastructure as code. It notes that code operates outside of one's frame of reference unless every line is read thoroughly. It provides examples of bugs that have caused major performance problems and outlines vulnerabilities in common package management systems. The document argues that true reproducible infrastructure will require better computer system building and being honest about technology's limitations.
JPA Week3 Entity Mapping / Hexagonal ArchitectureCovenant Ko
The document discusses Hexagonal Architecture and its principles. It explains that the core domain layer should not depend on other layers like the data layer. It provides examples of package structures for Hexagonal Architecture and sample code that separates ports and adapters. Case studies are presented on how companies have implemented Hexagonal Architecture for microservices and APIs.
This document discusses Python tools for testing, including py.test, tox, and TravisCI. It provides information about each tool: py.test is an improved unit testing library compared to nose, with readable test results, mocking features, and JUnit XML output; tox runs tests across multiple Python versions using virtualenv; and TravisCI is a continuous integration service that runs tests automatically on GitHub code commits for open source projects in various languages including Python. Examples of configuration files for tox and TravisCI are also included.
Short introduction about vcs & git usage.
Aimed to introduce concept of version control system and git to people who didn't used git or vcs yet. Doesn't introduce deep part of git or operating policy for git. Just focus on simple introduction about main functionality and abstracted internal design.
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
The document discusses front-end web performance optimization from beginner to expert levels. At the beginner level, it recommends starting with basic optimizations like measuring performance, enabling gzip compression, optimizing images, and caching. At the expert level, it discusses more advanced techniques like using a CDN, splitting JavaScript files, auditing CSS, and flushing content early. Finally, it outlines "crazy" optimizations like pre-loading assets, post-load fetching, and understanding round-trip network latency.
Infrastructure as code might be literally impossible part 2ice799
The document discusses various issues with infrastructure as code including complexities that arise from software licenses, bugs, and inconsistencies across tools and platforms. Specific examples covered include problems with SSL and APT package management on Debian/Ubuntu, Linux networking configuration difficulties, and inconsistencies in Python packaging related to naming conventions for packages containing hyphens, underscores, or periods. Potential causes discussed include legacy code, lack of time for thorough testing and bug fixing, and economic pressures against developing fully working software systems.
Ab(Using) the MetaCPAN API for Fun and Profit v2013Olaf Alders
This talk builds on the previous Ab(Using) the MetaCPAN API talk from 2012. There are links to comprehensive examples and there is a more in-depth look at the available endpoints.
The document discusses the structure and memory components of the Java Virtual Machine (JVM). It describes the JVM memory layout, including the heap, stack, method area, and native memory. It explains how objects are allocated and garbage collected in the heap. Common OutOfMemoryErrors like Java heap space, PermGen space, and unable to create native threads are covered. Best practices for diagnosing and resolving memory issues using tools like jmap and jhat are provided.
The document contains tweets and notes from someone with the Twitter handle @markbates. It discusses setting up a testing framework in Ruby with MiniTest and demonstrates some of MiniTest's features like describing tests, setting up contexts and subjects, pending and skipped tests, and expectations.
The document discusses lessons learned from the creator's experience leading the development of the CakePHP framework. It touches on topics like maintaining an open and respectful community, prioritizing documentation and easy upgrades, balancing conventions with flexibility, and embracing mistakes as opportunities for growth. The overall message is that building an open source framework comes with many challenges but can be rewarding.
The document discusses Intravert, a new transport for Apache Cassandra that uses HTTP and JSON. Some key points made include:
- Intravert aims to improve on existing transports by using HTTP and JSON to make it easier to use, secure, and test from a browser.
- It was built using Vert.x for its event-driven and modular architecture.
- Intravert examples demonstrate how to perform common Cassandra operations like slices, sets, and composites using a simple REST-like syntax with JSON payloads.
- Features discussed include flexible batching, server-side filtering, and "getref" to use results of one operation in another.
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013cordoval
The document discusses domain-driven design and behavior-driven development approaches for building an exam simulator system. It shows the folder structure which separates domains, ports, services, and infrastructure. It also demonstrates running behavior-driven development scenarios and domain-driven design refactoring to model exam domains and interactions for taking, building, and grading exams.
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevinsjaxconf
Apache TomEE is a Java EE 6 Web Profile certified stack that runs on Tomcat. It combines Tomcat with other Apache components like OpenJPA, OpenWebBeans, OpenEJB, MyFaces, BeanVal, CXF and ActiveMQ. TomEE comes in different flavors - the Web Profile version is certified, while TomEE Plus includes additional specs like JAX-WS and JMS but is not certified. TomEE aims to be small, certified and integrated with Tomcat. It provides a full Java EE 6 experience on Tomcat through tight integration of the various Apache projects.
This document contains slides from an Andrew Parker presentation on Puppet. It discusses Puppet's capabilities for infrastructure automation including defining infrastructure states, simulating changes, enforcing configurations, and reporting on changes. Key components of Puppet like the Puppet master, Puppet agents, Facter, Hiera and PuppetDB are explained. The presentation also covers Puppet Enterprise features and how to get involved with the Puppet community and training.
This document discusses unmoderated user testing, which allows testing a product with users remotely without a moderator. It provides faster results and more affordable data than moderated testing. Unmoderated testing is well-suited for startups doing private releases to test if people are connecting to their app and for enterprises wanting definitive results quickly through focused tests of narrow hypotheses.
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...Pablo Godel
Un programador PHP/web no está completo sin conocimientos de administración de servidores. Cuando buscas un trabajo, seguramente te encontrarás con el requerimiento de conocimientos para configurar un servidor (Linux, Apache, MySQL and PHP). Las posibilidades de que consigas ese trabajo son mayores si conoces sobre servidores.
Building scalable applications while scaling your infrastructure by rhommel l...NETWAYS
Rhommel Lamas discusses Puppet configuration at the company 3scale. Some key points include:
- 3scale has been running Puppet 3.0+ since July 2013 with 2 Puppet masters behind Nginx and Unicorn load balancers.
- Environments include production, preview, and staging. Puppet development uses Git and tools like Puppet-lint and Puppet-rspec.
- Other Puppet infrastructure at 3scale includes PuppetDB, the Foreman as an ENC, MCollective, and RabbitMQ.
This presentation was held in PLOG2013, Sorrento, Italy. It's about good software development documentation culture, writing documentation for Python packages and maintaining up-to-date developer documentation in Plone ecosystem.
Puppet Camp Berlin 2014: Advanced Puppet DesignPuppet
The document discusses Puppet design and best practices for writing reusable modules. It emphasizes granular, portable modules that focus only on their specific scope or component. Larger implementations are built up using profiles, which combine modules, and roles, which define business functions through profiles. This separates technology implementation from business logic for improved abstraction and flexibility.
The document discusses unit testing and provides examples of how to write unit tests using the PHPUnit framework. It begins with an overview of unit testing and what problems manual testing can have. It then discusses what PHPUnit is and how to write test cases using the Arrange, Act, Assert (AAA) pattern. Examples are provided of writing test cases for a calculator class and for testing caching functionality. The document emphasizes that unit tests should have fast feedback, be reusable, and verify that code changes don't break existing functionality.
OSDC 2013 | PostgreSQL im Jahr 2013. Wo sind wir? Wohin geht die Reise? by Mi...NETWAYS
This document appears to be notes from a presentation on PostgreSQL. It discusses various versions of PostgreSQL including releases 9.2.4, 9.1.9, 9.0.13 and 8.4.17. It covers new features between versions such as synchronous replication, unlogged tables, foreign tables, and JSON support. Upcoming features in version 9.3 are mentioned like materialized views, parallel pg_dump, and logical replication. Challenges with replication management and high availability are also noted. The presentation concludes with a question and answer session.
Keeping your users happy with testable apps - Greg ShacklesXamarin
This document contains notes from a presentation on keeping apps testable. It discusses the importance of testing for stability and the ability to refactor. Tests should cover important parts of the code's value rather than seeking full coverage. Both unit/integration and UI tests are important, though unit tests are more automated and have lower friction. Manual testing is also critical for user feedback. MVVM is recommended for shared, testable view models and thin views.
Just What Is This Continuous Delivery Thing, Anyway?eshamow
DevOpsDays Portland 2013 talk. This is a different talk to the one I gave at PuppetConf - less tool focused and with more focus on the fundamentals of CD and its applicability to your area of IT.
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERENuxeo
The document discusses Nuxeo Marketplace Packages, which provide a structured way to package and deploy plugins and configurations. Marketplace Packages contain all necessary files within a single zip file and include rules and metadata. They can be installed, uninstalled, and upgraded via the Nuxeo Admin Center or nuxeoctl command line tool. The document provides links for more information on creating, distributing, and using Marketplace Packages.
This document discusses using symbolic computation in Perl to represent and manipulate mathematical objects like rational numbers, complex numbers, polynomials, and linear/quadratic equations. It presents examples of implementing rational numbers as ordered pairs of integers, complex numbers as ordered pairs of reals, and polynomials as ordered tuples. The key steps are to figure out the rules/properties of the mathematical objects, eliminate extraneous details, and find a representation to encode the objects as data structures that support defined arithmetic operations and algorithms. This allows performing symbolic rather than numeric computations natively in Perl.
This document discusses the history of extensibility in Perl, from early techniques using import subroutines and prototypes, to modern approaches like Devel::Declare, the keyword API, and Moops. Moops provides an easy and extensible way to define new syntax using Keyword::Simple, and was created to improve on earlier modules like MooseX::Declare by using a simpler design focused on extensibility. The document concludes by showing how Moops can be used to define a custom "setup" module that injects imports and extends the syntax, providing a cleaner way to share commonly used functions and roles.
The Perl API for the Mortally Terrified (beta)Mike Friedman
A brief introduction to get you started in working with Perl's internal API. This presentation is a work in progress.
Code samples: http://github.com/friedo/perl-api-terror
This talk examines four real-world use cases for MongoDB document-based data modeling. We examine the implications of several possible solutions for each problem.
MongoDB Schema Design: Four Real-World ExamplesMike Friedman
This document discusses different schema designs for common use cases in MongoDB. It presents four cases: (1) modeling a message inbox, (2) retaining historical data within limits, (3) storing variable attributes efficiently, and (4) looking up users by multiple identities. For each case, it analyzes different modeling approaches, considering factors like query performance, write performance, and whether indexes can be used. The goal is to help designers choose an optimal schema based on their application's access patterns and scale requirements.
This document provides an overview of building an app using Perl and MongoDB. It discusses what MongoDB is and its key features. It describes the modules needed from CPAN to interface with MongoDB from Perl. It outlines the structure of a sample "Library" app to demonstrate CRUD operations on books, authors, and other entities. The document walks through building this app and interacting with MongoDB documents and collections. It provides resources to learn more about MongoDB and the MongoDB Perl API.
This talk introduces the features of MongoDB by demonstrating how one can build a simple library application. The talk will cover the basics of MongoDB's document model, query language, and API.
Building Scalable, Distributed Job Queues with Redis and Redis::ClientMike Friedman
This document discusses using Redis and the Redis::Client Perl module to build scalable distributed job queues. It provides an overview of Redis, describing it as a key-value store that is simple, fast, and open-source. It then covers the various Redis data types like strings, lists, hashes, sets and sorted sets. Examples are given of how to work with these types using Redis::Client. The document discusses using Redis lists to implement job queues, with jobs added via RPUSH and popped via BLPOP. Benchmark results show the Redis-based job queue approach significantly outperforms using a MySQL jobs table with polling. Some caveats are provided about the benchmarks.
Top 5+ Soulmate AI chatbots Platform for 2025Soulmaite
Discover the Top 5+ Soulmate AI Chatbot Platforms for 2025, including Soulmaite IO, Sugarlab AI, Pornify, Omypal, and Candy AI. These AI companions offer realistic chat, intimacy, and emotional bonding tailored to your preferences. Whether you want playful sexting or deep connection, these platforms deliver lifelike interactions without judgment. Find out which AI chatbot matches your vibe and experience the future of digital companionship today.
Cross-Cloud Comparison and Security NotesTeri Radichel
This slide deck has a comparison of services across clouds as well as some supplemental materials such as questions you can ask about your cloud security strategy, posture, architecture, and operations.
This particular set of slides is associated with my Azure class but it is applicable to cloud security in general for AWS, Azure, and GCP.
Note that some things have changed since I wrote these slides.
AWS has multiple types of policies now for different use cases: resource cross-account sharing policies (RAM) - which I really hope expands quickly because I find it very useful, declarative policies for resource configurations, service control policies, and so on.
Microsoft keeps renaming things every five minutes. Azure AD is now Entra.
Passwordless is all the rage on Azure and although other clouds have it, I don't think it is the holy grail Microsoft thinks it is. We'll see.
Google has purchased a number of security companies that I think are pretty cool but we'll see how that all shakes out.
Cloud providers are always developing new products and services such as the advent of AI Security solutions. AWS, in particular, has had a strong focus on protecting the data you use in conjunction with AI models to ensure your data is not used by them for training or leaked.
If you find a broken link, that is a strong indication that something has changed! Make sure you consult the latest documentation.
📢 UiPath Community Meetup: LLM and UiPath – From AI Center to GenAI Activities & Agents
Join us for an exciting UiPath Community Virtual Meetup where we explore how UiPath is evolving from AI Center towards GenAI, unlocking new possibilities with specialized GenAI activities and AI-powered Agents. Hosted by the Rome Chapter in collaboration with Zurich (and potentially other chapters), this session will provide insights into the latest advancements in AI-driven automation.
📅 17th April 2025 | 🕙 10:30 - 11:30 AM CET
🔥 What’s on the agenda?
From AI Center to LLM-Powered-Automation – Understanding the transition from AI Center to GenAI, DocPath and CommPath.
GenAI Activities in UiPath – Exploring new AI capabilities and how to leverage them effectively.
AI Agents and Agentic Orchestration – A live demo showcasing how LLMs can power intelligent Agents and how they can be effectively orchestrated.
🎤 Speakers:
🔹 Roman Tobler, UiPath MVP, CEO at Routinuum
🔹 Flavio Martinelli, UiPath MVP 2023, Technical Account Manager at UiPath
Whether you’re an automation developer, AI enthusiast, or business leader, this session will help you navigate the next phase of AI-driven automation in UiPath.
What comes after world domination with Daniel Stenberg, April 2025Daniel Stenberg
Open Source has in many ways already won. It is used in every product by every company, to a very a large degree. But we are not done. We can improve: we can take this further, we can make our projects better, we can enhance our communities and make sure it is done sustainably. The future is ours.
This paper supports the importance of teaching logic (and logic programming) in computer science degrees and discusses several proposals that can be included in current curricula without the need to adapt the academic guides. In addition, some practical examples are described and the tools used for their subsequent application are related.
Domen Zavrl - Strategic Technology Trends Set to Make a Major Impact in 2025Domen Zavrl
For companies and IT leaders, tracking trends in strategic technology is vital, helping them to drive their organisations forward via ethical, responsible innovation.
Artificial Intelligence (AI) in Computer Vision Market Size, Share, and Growt...NehaShaikh73
Artificial Intelligence (AI) in Computer Vision Market size was valued at USD 22.8 billion in 2023 and is poised to grow from USD 27.93 billion in 2024 to USD 141.63 billion by 2032, growing at a CAGR of 22.5% during the forecast period (2025-2032).
Jeremy Millul - A Junior Software DeveloperJeremy Millul
Jeremy Millul is a junior software developer specializing in scalable applications. With expertise in databases like MySQL and MongoDB, Jeremy ensures efficient performance and seamless user experiences. A graduate of NYU, and living in Rochester, NY, with a degree in Computer Science, he also excels in frameworks such as React and Node.js. Jeremy’s commitment to delivering robust, high-quality solutions is matched by his dedication to staying ahead in the ever-evolving tech landscape.
Driving Transportation Forward: Real-World Data SolutionsSafe Software
From managing vast infrastructure networks to ensuring road safety, transportation professionals rely on accurate, up-to-date data to keep operations running smoothly. But how can you streamline workflows, automate reporting, and improve decision-making?
Join us and our customer guest speakers from the transportation industry as they share how automation has transformed their data processes. You’ll see live demos showcasing:
🚌 How CT DOT automates public transit data processing, using FME to connect to GTFS data from 9+ transit providers, transforming and processing bus stop and route data for 13,500+ stops and 1,600+ routes – fully automated with FME Flow.
📙 CALTRANS’ Digital Products Catalog & Civil 3D to DGN Conversion – Explore CALTRANS’ digital catalog, which streamlines transportation data, enhances safety, and eliminates data silos across one of the largest U.S. infrastructure networks. Plus, see how they use FME to convert Civil 3D designs to DGN while preserving data integrity.
🚦WV DOT’s HPMS Submissions and LRS Publication – See how WVDOT automates LRS data validation with FME, ensuring accuracy across 70+ event layers and 38,000 miles of roadway while streamlining QA/QC and improving data integrity.
Whether you’re in transportation planning, asset management, or GIS operations, this session will give you the tools and insights to optimize your workflows and drive better results with FME. See you there!
Winning the UX Battle Whitepaper 032725.pdfmike224215
Explore how superior UX design enhances readiness, informs decision-making, and ensures scalability and resilience in mission-critical defense systems.
In the rapidly evolving landscape of defense operations, the quality of user experience (UX) is not merely an enhancement—it's a strategic necessity.
Meme Coin Development The Roadmap from Concept to Triumph ppt.pdfAbi john
From idea to launch, marketing, and community building, learn about a roadmap for everything meme coin development. Learn how to transform viral ideas into profitable crypto projects.
Start your ride-hailing service fast with our Uber clone app. Launch in weeks with a powerful, customizable platform built for performance, user satisfaction, and business growth from day one.
Navigating common mistakes and critical success factors
Is your team considering or starting a database migration? Learn from the frontline experience gained guiding hundreds of high-stakes migration projects – from startups to Google and Twitter. Join us as Miles Ward and Tim Koopmans have a candid chat about what tends to go wrong and how to steer things right.
We will explore:
- What really pushes teams to the database migration tipping point
- How to scope and manage the complexity of a migration
- Proven migration strategies and antipatterns
- Where complications commonly arise and ways to prevent them
Expect plenty of war stories, along with pragmatic ways to make your own migration as “blissfully boring” as possible.
Introduction to LLM Post-Training - MIT 6.S191 2025Maxime Labonne
In this talk, we will cover the fundamentals of modern LLM post-training at various scales with concrete examples. High-quality data generation is at the core of this process, focusing on the accuracy, diversity, and complexity of the training samples. We will explore key training techniques, including supervised fine-tuning, preference alignment, and model merging. The lecture will delve into evaluation frameworks with their pros and cons for measuring model performance. We will conclude with an overview of emerging trends in post-training methodologies and their implications for the future of LLM development.
Autopilot for Everyone Series - Session 3: Exploring Real-World Use CasesUiPathCommunity
Welcome to 'Autopilot for Everyone Series' - Session 3: Exploring Real-World Use Cases!
Join us for an interactive session where we explore real-world use cases of UiPath Autopilot, the AI-powered automation assistant.
📕 In this engaging event, we will:
- demonstrate how UiPath Autopilot enhances productivity by combining generative AI, machine learning, and automation to streamline business processes
- discover how UiPath Autopilot enables intelligent task automation with natural language inputs and AI-powered decision-making for smarter workflows
Whether you're new to automation or a seasoned professional, don't miss out on this opportunity to transform your approach to business automation.
Register now and step into the future of efficient work processes!
Implementing Function Calling LLMs without Fear.pdfBenjamin Bengfort
For an AI system to be an agent rather than a simple chatbot, it needs to be able to do work on behalf of its users, often accomplished through the use of Function Calling LLMs. Instruction-based models can identify external functions to call for additional input or context before creating a final response without the need for any additional training. However, giving an AI system access to databases, APIs, or even tools like our calendars is fraught with security concerns and task validation nightmares. In this talk, we'll discuss the basics of how Function Calling works and think through the best practices and techniques to ensure that your agents work for you, not against you!
A Guide to Smart Building Open Standards 101Memoori
Are you confused by the Open Standards Landscape in Smart Building Technology? Our presentation slides serve as a non-technical guide to the types of protocols, and data frameworks used in commercial buildings and why they matter! Improve your understanding of open standards & their impact on smart buildings!
A Product Information Management (PIM) system helps businesses deliver consistent, accurate, and up-to-date product data across all sales channels—websites, marketplaces, apps, and more—ensuring better customer experience and higher conversion rates.
Beginners: Introduction to OSS & BSS in Mobile Networks3G4G
What are OSS and BSS, and why are they essential in mobile networks?
In this beginner-friendly video, we break down the basics of Operations Support Systems (OSS) and Business Support Systems (BSS) — the often overlooked yet critical components that keep telecom networks running smoothly and efficiently.
📌 What you’ll learn in this video:
• The role of OSS and BSS in mobile network operations
• Real-world examples and simplified architectures
• FCAPS and the network/business perspectives of OSS
• The customer-facing importance of BSS
• Why OSS/BSS matter for service delivery, customer experience, and revenue assurance
💬 Got questions or insights? Drop them in the comments—we’d love to hear from you!
🔔 Subscribe for more: For more explainer videos on mobile and wireless technologies, don’t forget to like, subscribe, and hit the bell icon.
All our #3G4G5G slides, videos, blogs and tutorials are available at:
Tutorials: https://www.3g4g.co.uk/Training/
Videos: https://www.youtube.com/3G4G5G
Slides: https://www.slideshare.net/3G4GLtd
Our channels:
3G4G Website – https://www.3g4g.co.uk/
The 3G4G Blog – https://blog.3g4g.co.uk/
Telecoms Infrastructure Blog – https://www.telecomsinfrastructure.com/
Operator Watch Blog – https://www.operatorwatch.com/
Connectivity Technology Blog – https://www.connectivity.technology/
Free 5G Training – https://www.free5gtraining.com/
Free 6G Training – https://www.free6gtraining.com/
Private Networks Technology Blog - https://blog.privatenetworks.technology/
Privacy and Security in the Age of Generative AI - C4AI.pdfBenjamin Bengfort
From sensitive data leakage to prompt injection and zero-click worms, LLMs and generative models are the new cyber battleground for hackers. As more AI models are deployed in production, data scientists and ML engineers can't ignore these problems. The good news is that we can influence privacy and security in the machine learning lifecycle using data specific techniques. In this talk, we'll review some of the newest security concerns affecting LLMs and deep learning models and learn how to embed privacy into model training with ACLs and differential privacy, secure text generation and function-calling interfaces, and even leverage models to defend other models.
14. The Test Anything Protocol
1..42
ok 1 the thing looks good!
ok 2
ok 3 $beer isa $drink
not ok 4 too much $beer
not ok 5 $me->vomit( 'now' )
...
Tuesday, June 4, 13
73. Stupid Question No. 3
How can we test CPAN without the
disadvantages of CPAN Testers?
Tuesday, June 4, 13
74. Postulate:
Every CPAN distribution must be tested in isolation, on a
virgin Perl installation untouched by human hands.
Tuesday, June 4, 13
75. Postulate:
Every CPAN distribution must be tested in isolation, on a
virgin Perl installation untouched by human hands.
So how do we do that?
Tuesday, June 4, 13
83. •Create an EC2 image
•Put perlbrew on it
Tuesday, June 4, 13
84. •Create an EC2 image
•Put perlbrew on it
•Install every Perl locally
Tuesday, June 4, 13
85. •Create an EC2 image
•Put perlbrew on it
•Install every Perl locally
•Boot an instance for every uploaded
distribution
Tuesday, June 4, 13
86. •Create an EC2 image
•Put perlbrew on it
•Install every Perl locally
•Boot an instance for every uploaded
distribution
•Install needed dependencies for the
distribution
Tuesday, June 4, 13
87. •Create an EC2 image
•Put perlbrew on it
•Install every Perl locally
•Boot an instance for every uploaded
distribution
•Install needed dependencies for the
distribution
•Run the tests and report the results
Tuesday, June 4, 13
88. •Create an EC2 image
•Put perlbrew on it
•Install every Perl locally
•Boot an instance for every uploaded
distribution
•Install needed dependencies for the
distribution
•Run the tests and report the results
•Shut down the instance
Tuesday, June 4, 13
100. App::cpanminus
That means the same cpanm can be run by any perl
perlbrew switch master
curl -L http://cpanmin.us/ | perl - App::cpanminus
ln -s ~/perl5/perlbrew/perls/master/bin/cpanm ./cpanm
~/perl5/perlbrew/perls/perl-5.8.9/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.10.1/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.12.5/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.14.4/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.16.3/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.18.0/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.19.0/bin/perl cpanm
Tuesday, June 4, 13
103. •Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
Tuesday, June 4, 13
104. •Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
•Use the master perl to install everything
from CPAN that makes CPANci work
Tuesday, June 4, 13
105. •Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
•Use the master perl to install everything
from CPAN that makes CPANci work
•For each distribution, create a temp
directory
Tuesday, June 4, 13
106. •Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
•Use the master perl to install everything
from CPAN that makes CPANci work
•For each distribution, create a temp
directory
•Tell cpanminus to install dependencies
there, as if for local::lib
Tuesday, June 4, 13
107. •Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
•Use the master perl to install everything
from CPAN that makes CPANci work
•For each distribution, create a temp
directory
•Tell cpanminus to install dependencies
there, as if for local::lib
•Run tests and report results
Tuesday, June 4, 13
108. •Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
•Use the master perl to install everything
from CPAN that makes CPANci work
•For each distribution, create a temp
directory
•Tell cpanminus to install dependencies
there, as if for local::lib
•Run tests and report results
•Delete temp directory, leaving each perl
untouched!
Tuesday, June 4, 13
109. What does that look like?
The "fetcher" grabs the latest distribution URLs from
MetaCPAN's RSS feed.
Tuesday, June 4, 13
110. What does that look like?
We retrieve the distribution metadata from
the MetaCPAN JSON API and saved it to
MongoDB.
Then we start the Installer.
Tuesday, June 4, 13
111. What does that look like?
We download the distribution tarball to a temp file.
Then the fun stuff starts to happen.
Tuesday, June 4, 13
112. What does that look like?
We extract the archive in a specific "work" directory
for each perl.
Then create a temp directory for building and installing
dependencies.
Tuesday, June 4, 13
113. What does that look like?
Use a specific perl binary to run cpanm and
install dependencies, with no tests, to the temp
directory.
Then we parse the cpanm log on stderr
Tuesday, June 4, 13
114. What does that look like?
"deps" : {
"log" : [
{
"indent" : 0,
"type" : "working-on",
"line" : "--> Working on .n"
},
{
"line" : "Configuring Lingua-EN-NamedEntity-1.92 ... OKn",
"type" : "config",
"indent" : 1
},
{
"type" : "found-deps",
"indent" : 1,
"line" : "==> Found dependencies: Lingua::Stem::En, DB_File, LWP::Simplen"
},
{
"indent" : 1,
"type" : "working-on",
"line" : "--> Working on Lingua::Stem::Enn"
},
{
"indent" : 2,
"type" : "fetch",
"line" : "Fetching http://www.cpan.org/authors/id/S/SN/SNOWHARE/Lingua-
Stem-0.84.tar.gz ... OKn"
},
Tuesday, June 4, 13
115. What does that look like?
Use a specific perl to run each test file,
save the TAP output and any errors, and
use the exit status to determine if it passed.
Tuesday, June 4, 13
116. What does that look like?
Parse the TAP output of each test into a
structure which can be saved in MongoDB
Tuesday, June 4, 13
127. The future?
•Integration with Pinto
•Integration with Stratopan
•All kinds of cool statistics on the website
Tuesday, June 4, 13
128. The future?
•Integration with Pinto
•Integration with Stratopan
•All kinds of cool statistics on the website
•Organizations using CPANci for their
internal DarkPANs
Tuesday, June 4, 13