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 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.
With more businesses moving to cloud-based solutions everyday, we must re-think the strategies used to deploy Perl applications and related libraries, given the volatile aspects of the cloud and its constraints.
In this talk I go over the challenges posed by virtualised environments, and consider several solutions to them. The use cases are all related to Amazon's EC2, but will easily be adapted for GoGrid, Mosso, and others.
BackPAN is a historical archive of the Comprehensive Perl Archive Network (CPAN) containing 200k files and 10 GB of data. CPAN itself only contains distributions uploaded by authors and has 55k distributions totaling 4 GB. CPAN tools use an index to install files by putting them in the include path (@INC) without tracking file to distribution mappings or managing versions.
BackPAN is a project to create a database of information about Perl modules across different distributions and versions over time. It aims to provide metadata like dependencies, files included, and packages used for any given module and distribution. This information would provide a "bone yard" of the evolution of CPAN that current tools do not explore or provide access to. The author outlines their plan to index this historical information by building modules in a isolated virtual environment to collect build outputs and dependencies without impacting any live systems.
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.
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!
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.
With more businesses moving to cloud-based solutions everyday, we must re-think the strategies used to deploy Perl applications and related libraries, given the volatile aspects of the cloud and its constraints.
In this talk I go over the challenges posed by virtualised environments, and consider several solutions to them. The use cases are all related to Amazon's EC2, but will easily be adapted for GoGrid, Mosso, and others.
BackPAN is a historical archive of the Comprehensive Perl Archive Network (CPAN) containing 200k files and 10 GB of data. CPAN itself only contains distributions uploaded by authors and has 55k distributions totaling 4 GB. CPAN tools use an index to install files by putting them in the include path (@INC) without tracking file to distribution mappings or managing versions.
BackPAN is a project to create a database of information about Perl modules across different distributions and versions over time. It aims to provide metadata like dependencies, files included, and packages used for any given module and distribution. This information would provide a "bone yard" of the evolution of CPAN that current tools do not explore or provide access to. The author outlines their plan to index this historical information by building modules in a isolated virtual environment to collect build outputs and dependencies without impacting any live systems.
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.
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!
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 integrating the Laravel PHP framework with the Swoole extension. It discusses how Swoole provides high-performance asynchronous networking capabilities. Integrating Laravel with Swoole can boost performance by preloading the Laravel application and running requests in isolated "sandboxes" to prevent state from persisting between requests. This allows Laravel to take advantage of Swoole's asynchronous and non-blocking I/O without the typical overhead of Laravel's request lifecycle. Benchmarks show the integrated system can achieve a 5x performance increase over vanilla Laravel.
The document discusses debugging node.js performance. It recommends starting by measuring how slow an application is, then using tools like perf to identify bottlenecks. Common bottlenecks include synchronous operations, unoptimized code, databases, and network calls. The document demonstrates using perf to generate flamegraphs to visualize slow functions. Improving involves steps like migrating from Express to Fastify, using node-bottleneck, and remeasuring performance.
The document provides performance tips for Symfony2 and PHP applications. It recommends starting by measuring performance before and after optimizations to identify where to focus efforts. Key areas to optimize include services like using PHP opcache, architecture like caching, and code through techniques like moving calculations out of loops. Symfony-specific tips involve using bytecode caching, lazy-loading services, and caching in general. The overall message is to prioritize scalability and only optimize after identifying bottlenecks through measurement and profiling.
The document discusses challenges with distributed applications including maintaining consistent configurations, updating code everywhere, and locating errors. It recommends setting up a centralized syslog server to collect logs from all servers and applications. This allows errors to be tracked even as servers and containers change. It also suggests automating build, deployment and configuration processes to reduce human errors and ensure consistency across environments. Tools recommended for this include Ansible, Puppet, Vagrant and tracking code changes.
This document provides an overview of Docker for PHP developers. It discusses what Docker is, how containers work, and how to use basic Docker commands like docker run, docker exec, and docker volume to build and run PHP applications in containers. It also covers more advanced topics like linking containers together, building custom Docker images, and using Docker Compose to define and run multi-container apps. The goal is to help PHP developers learn how to containerize their applications and workflows using Docker.
Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...Puppet
This document discusses upgrading Puppet code to work with newer versions of Puppet, specifically Puppet 4. It outlines reasons to upgrade like getting security updates and new features. It provides tips for testing code like using rspec and additional Puppet master processes. Code practices that are deprecated in newer versions are identified like inheritance and modifying remote modules. The presentation demonstrates upgrading a module to Puppet 4.
Debugging code is an essential task for every software developer. PHP is one of the most popular programming languages, but setting up debugging for PHP applications may be tricky. This session will demonstrate what debugging technologies and tools are available for PHP. How to debug CLI scripts, Web apps and REST services. What's the easiest way to set up debugging for the different server environments: local, remote, cloud or virtualized; in development or in production.
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.
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...Ortus Solutions, Corp
CommandBox is a standalone, native tool for Windows, Mac, and Linux that will provide you with a Command Line Interface (CLI) for developer productivity, tool interaction, package management, embedded CFML server, application scaffolding, and some sweet ASCII art. It seamlessly integrates to work with any of the *Box products but it is also open for extensibility for any ColdFusion (CFML) project as it is also written in ColdFusion (CFML) using our concepts of CommandBox Commands.
CommandBox also functions as a package management tool which integrates seamlessly with ForgeBox, our community of ColdFusion (CFML) projects, but can also integrate with git,svn,http, ftp and many more code endpoints. Come learn about one of the coolest tools for CFML in years and how it can help your everyday productivity.
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
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.
The document discusses the development of an indexer for the MyCPAN website. It describes how the indexer parses distribution files and metadata like .pm and .yaml files to extract information like file sizes, checksums, and module details. This information is then stored in a standardized format to build an index of distributions and modules. The document raises some remaining issues with the indexer being slow to process large data and the potential to create a web service for indexing.
Performance Optimization of Rails ApplicationsSerge Smetana
The document discusses optimizing the performance of Ruby on Rails applications. It covers optimizing Ruby code, Rails code, database queries, using alternative Ruby implementations like JRuby, and optimizing for production environments including shared filesystems, load balancing, and the frontend. Specific optimizations discussed include rewriting parts of the Date class in C, template inlining in Rails, pushing SQL conditions into subqueries, and using memcached instead of filesystem caching on a shared network.
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...Chris Fregly
http://pipeline.ai
Title
PipelineAI Distributed Spark ML + Tensorflow AI + GPU Workshop
*A GPU-based cloud instance will be provided to each attendee as part of this event
Highlights
We will each build an end-to-end, continuous Tensorflow AI model training and deployment pipeline on our own GPU-based cloud instance.
At the end, we will combine our cloud instances to create the LARGEST Distributed Tensorflow AI Training and Serving Cluster in the WORLD!
Agenda
Spark ML
Tensorflow AI
Storing and Serving Models with HDFS
Trade-offs of CPU vs. *GPU, Scale Up vs. Scale Out
CUDA + cuDNN GPU Development Overview
Tensorflow Model Checkpointing, Saving, Exporting, and Importing
Distributed Tensorflow AI Model Training (Distributed Tensorflow)
Centralized Logging and Visualizing of Distributed Tensorflow Training (Tensorboard)
Distributed Tensorflow AI Model Serving/Predicting (Tensorflow Serving)
Centralized Logging and Metrics Collection (Prometheus, Grafana)
Continuous Tensorflow AI Model Deployment (Tensorflow, Airflow)
Hybrid Cross-Cloud and On-Premise Deployments (Kubernetes)
High-Performance and Fault-Tolerant Microsservices using Request Batching and Circuit Breakers (NetflixOSS)
Github Repo
https://github.com/fluxcapacitor/pipeline
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.
Composer is a tool for dependency management in PHP projects that allows developers to declare project dependencies and have Composer install them. It resolves dependencies and runs installation tasks per project rather than globally. Major PHP frameworks like Symfony use Composer because it ensures projects always have the exact same dependency versions and avoids issues with PEAR's global installation approach. Composer has over 15,000 packages on its default repository Packagist and has seen 60 million package installations since 2012.
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.
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 integrating the Laravel PHP framework with the Swoole extension. It discusses how Swoole provides high-performance asynchronous networking capabilities. Integrating Laravel with Swoole can boost performance by preloading the Laravel application and running requests in isolated "sandboxes" to prevent state from persisting between requests. This allows Laravel to take advantage of Swoole's asynchronous and non-blocking I/O without the typical overhead of Laravel's request lifecycle. Benchmarks show the integrated system can achieve a 5x performance increase over vanilla Laravel.
The document discusses debugging node.js performance. It recommends starting by measuring how slow an application is, then using tools like perf to identify bottlenecks. Common bottlenecks include synchronous operations, unoptimized code, databases, and network calls. The document demonstrates using perf to generate flamegraphs to visualize slow functions. Improving involves steps like migrating from Express to Fastify, using node-bottleneck, and remeasuring performance.
The document provides performance tips for Symfony2 and PHP applications. It recommends starting by measuring performance before and after optimizations to identify where to focus efforts. Key areas to optimize include services like using PHP opcache, architecture like caching, and code through techniques like moving calculations out of loops. Symfony-specific tips involve using bytecode caching, lazy-loading services, and caching in general. The overall message is to prioritize scalability and only optimize after identifying bottlenecks through measurement and profiling.
The document discusses challenges with distributed applications including maintaining consistent configurations, updating code everywhere, and locating errors. It recommends setting up a centralized syslog server to collect logs from all servers and applications. This allows errors to be tracked even as servers and containers change. It also suggests automating build, deployment and configuration processes to reduce human errors and ensure consistency across environments. Tools recommended for this include Ansible, Puppet, Vagrant and tracking code changes.
This document provides an overview of Docker for PHP developers. It discusses what Docker is, how containers work, and how to use basic Docker commands like docker run, docker exec, and docker volume to build and run PHP applications in containers. It also covers more advanced topics like linking containers together, building custom Docker images, and using Docker Compose to define and run multi-container apps. The goal is to help PHP developers learn how to containerize their applications and workflows using Docker.
Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...Puppet
This document discusses upgrading Puppet code to work with newer versions of Puppet, specifically Puppet 4. It outlines reasons to upgrade like getting security updates and new features. It provides tips for testing code like using rspec and additional Puppet master processes. Code practices that are deprecated in newer versions are identified like inheritance and modifying remote modules. The presentation demonstrates upgrading a module to Puppet 4.
Debugging code is an essential task for every software developer. PHP is one of the most popular programming languages, but setting up debugging for PHP applications may be tricky. This session will demonstrate what debugging technologies and tools are available for PHP. How to debug CLI scripts, Web apps and REST services. What's the easiest way to set up debugging for the different server environments: local, remote, cloud or virtualized; in development or in production.
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.
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...Ortus Solutions, Corp
CommandBox is a standalone, native tool for Windows, Mac, and Linux that will provide you with a Command Line Interface (CLI) for developer productivity, tool interaction, package management, embedded CFML server, application scaffolding, and some sweet ASCII art. It seamlessly integrates to work with any of the *Box products but it is also open for extensibility for any ColdFusion (CFML) project as it is also written in ColdFusion (CFML) using our concepts of CommandBox Commands.
CommandBox also functions as a package management tool which integrates seamlessly with ForgeBox, our community of ColdFusion (CFML) projects, but can also integrate with git,svn,http, ftp and many more code endpoints. Come learn about one of the coolest tools for CFML in years and how it can help your everyday productivity.
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
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.
The document discusses the development of an indexer for the MyCPAN website. It describes how the indexer parses distribution files and metadata like .pm and .yaml files to extract information like file sizes, checksums, and module details. This information is then stored in a standardized format to build an index of distributions and modules. The document raises some remaining issues with the indexer being slow to process large data and the potential to create a web service for indexing.
Performance Optimization of Rails ApplicationsSerge Smetana
The document discusses optimizing the performance of Ruby on Rails applications. It covers optimizing Ruby code, Rails code, database queries, using alternative Ruby implementations like JRuby, and optimizing for production environments including shared filesystems, load balancing, and the frontend. Specific optimizations discussed include rewriting parts of the Date class in C, template inlining in Rails, pushing SQL conditions into subqueries, and using memcached instead of filesystem caching on a shared network.
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...Chris Fregly
http://pipeline.ai
Title
PipelineAI Distributed Spark ML + Tensorflow AI + GPU Workshop
*A GPU-based cloud instance will be provided to each attendee as part of this event
Highlights
We will each build an end-to-end, continuous Tensorflow AI model training and deployment pipeline on our own GPU-based cloud instance.
At the end, we will combine our cloud instances to create the LARGEST Distributed Tensorflow AI Training and Serving Cluster in the WORLD!
Agenda
Spark ML
Tensorflow AI
Storing and Serving Models with HDFS
Trade-offs of CPU vs. *GPU, Scale Up vs. Scale Out
CUDA + cuDNN GPU Development Overview
Tensorflow Model Checkpointing, Saving, Exporting, and Importing
Distributed Tensorflow AI Model Training (Distributed Tensorflow)
Centralized Logging and Visualizing of Distributed Tensorflow Training (Tensorboard)
Distributed Tensorflow AI Model Serving/Predicting (Tensorflow Serving)
Centralized Logging and Metrics Collection (Prometheus, Grafana)
Continuous Tensorflow AI Model Deployment (Tensorflow, Airflow)
Hybrid Cross-Cloud and On-Premise Deployments (Kubernetes)
High-Performance and Fault-Tolerant Microsservices using Request Batching and Circuit Breakers (NetflixOSS)
Github Repo
https://github.com/fluxcapacitor/pipeline
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.
Composer is a tool for dependency management in PHP projects that allows developers to declare project dependencies and have Composer install them. It resolves dependencies and runs installation tasks per project rather than globally. Major PHP frameworks like Symfony use Composer because it ensures projects always have the exact same dependency versions and avoids issues with PEAR's global installation approach. Composer has over 15,000 packages on its default repository Packagist and has seen 60 million package installations since 2012.
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.
Core Hackers of the Caribbean: The Curse of the Black PerlChip Salzenberg
The document discusses common myths about hacking the Perl 5 core and argues that they are partially true but not obstacles. It addresses myths that Perl 5 is doomed, core hacking is too difficult, C is too dangerous, portability is impossible, the code has too many macros and inconsistencies, and releases are too infrequent. The author enjoys hacking the core because it is rewarding and helps improve Perl. They propose more frequent experimental releases and wider peer review through a new "corehackers" repository.
The document discusses Pugs, an implementation of the Perl 6 programming language. It provides background on Pugs, describing it as a Perl 6 compiler, runtime, and test suite. It then discusses various aspects of Pugs such as its hybrid runtime architecture, support for multiple backends including Perl 5 and JavaScript, extensive testing, and open development model.
The document discusses the evolution of topics within the DevOps movement over time, including culture, automation, and monitoring. It notes how topics have shifted from specific tools like Puppet and Nagios to broader concepts like containers and microservices. The document also addresses challenges faced by operations teams in adopting new technologies, including pressure to use the latest tools, preexisting technical debt, and lack of time. It argues tools alone won't fix cultural issues and advocates focusing on core responsibilities rather than trying to manage every new technology.
The document discusses Python software tools including Virtualenv, Buildout, bpython, SQLAlchemy, doctests, Pyramid, and PyCharm. It provides descriptions of each tool, how they relate to each other, and how to install and use them. Key points include that Virtualenv isolates Python environments, Buildout automates software installation, SQLAlchemy is an ORM, Pyramid is a web framework, and PyCharm is an IDE.
Puppet and AWS is easy ...... ?
This document discusses how Puppet and AWS were used to automate infrastructure at Healthdirect Australia. It describes how manual deployments, inconsistent environments, and a lack of automation were initially problems, and how iterative improvements using Puppet for configuration management and the AWS Puppet module for provisioning infrastructure helped solve these issues and establish continuous delivery of automated testing environments. Key aspects discussed include development best practices, testing frameworks, and integration with deployment tools like Jenkins.
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet
Puppet and AWS is easy ...... ?
This document discusses how Puppet and AWS were used to automate infrastructure at Healthdirect Australia. It describes how manual deployments, lack of testing and inconsistent environments were solved through implementing Puppet for configuration management and AWS modules. Key steps included establishing solid development practices with Vagrant and testing, integrating Puppet with continuous delivery tools, and developing AWS modules for provisioning infrastructure through Puppet. Current work aims to integrate Docker scheduling and dynamic service discovery.
This document discusses using Perl 6 with the Java Virtual Machine (JVM). It provides instructions for installing Perl 6 with JVM support and demonstrates various features like JSON processing, HTTP client/server, database access using SQLite and MySQL, calling Java methods, and building a basic GUI. Performance tests show startup is slow but HTTP server throughput is faster with JVM backend compared to MoarVM backend. Overall, the author finds Perl 6 on JVM to be practical for Java developers needing to access Java libraries and calls it potentially useful.
The document discusses the history and evolution of Perl web development. It covers early tools like CGI.pm and mod_perl that allowed Perl to be used for web apps. It then discusses issues with these approaches and the rise of reusable code repositories like Matt's Script Archive. It outlines how Perl best practices and the maturation of CPAN helped improve code quality. Key modern frameworks like Catalyst, Plack, Moose and DBIx::Class are also summarized.
Pig is a useful tool for exploring data sets and describing data flows easily through scripts. However, it has some weaknesses like inconsistent syntax, lack of testing support, and an aging code base. While Pig works well for many companies, its suitability may decline as companies' data needs grow more complex with distributed teams of data scientists and engineers. For Pig to remain useful, it will need improvements in areas like types, performance, UDF support, and testing to better support "big data" teams in the future.
This document discusses the challenges of developing packages before and after the introduction of Composer. Before Composer, packages were tightly coupled to specific frameworks and became incompatible as frameworks evolved. This led to duplication of packages across frameworks. Composer addressed this by allowing packages to be decoupled from frameworks via interfaces and drivers. The document encourages developers to design packages that can integrate with multiple frameworks through bridging packages and drivers to strengthen interoperability and productivity.
This document summarizes Patrick McGarry's presentation on Ceph in the ecosystem. The presentation introduced Ceph's role in various communities and open source projects, how to get involved in the Ceph community through code contributions and mailing lists, and Ceph's integrations with Linux distributions, orchestration tools, and cloud platforms like OpenStack and CloudStack. The presentation concluded by thanking attendees and inviting any questions or comments.
200,000 Lines Later: Our Journey to Manageable Puppet CodeDavid Danzilio
Slides from a talk I gave at PuppetConf 2015.
Abstract: I joined Constant Contact in the Spring of 2014 to help transform their Puppet infrastructure. Constant Contact was a very early adopter of Puppet and had a hard time keeping up with changes to the language. When I got to Constant Contact we were stuck on a very old version of Puppet 2.7 because our code was heavily dependent on inheritance and dynamic scoping. There was no separation of data and code and 99% of the Puppet modules in use in the environment were homegrown. With over 267,000 lines of ancient code, I was completely overwhelmed with how to get us up to speed. This talk is about how we managed to accomplish this incredible feat in just over a year.
Building a µservice with Kotlin, Micronaut & GCPRobert MacLean
The document summarizes a presentation about building microservices with Kotlin, Micronaut, and Google Cloud Platform (GCP). The key points are:
1) Micronaut is a new Java framework from 2018 that is designed for building microservices and embraces modern JVM features and memory management.
2) Micronaut provides features like dependency injection, HTTP clients, and filters/interceptors out of the box that help build modern services.
3) The presentation demonstrates building a sample microservice with Micronaut and deploying it to GCP using Docker and Kubernetes. Jib is used to containerize the application.
DevSecOps and Drupal: Securing your applications in a modern IT landscapeWill Hall
Securing applications in a cloud environment can be difficult. This presentation discusses the automate and changes to be able to embed security into you application pipelines and deployments.
This is story of our journey from SaltStack to Puppet and beyond. This talk will answer following questions:
- why we moved from SaltStack
- why Puppet was chosen
- how to use Puppet OpenSource in painless way
- which orchestration tool to use with Puppet
- what is next
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsUwe Korn
As a Data Scientist/Engineer in Python, we focus in our work to solve problems with large amounts of data but still stay in Python. This is where we are the most effective and feel comfortable. Libraries like Pandas and NumPy provide us with efficient interfaces to deal with this data while still getting optimal performance. The main problem appears when we have to deal with systems outside of our comfort ecosystem. We need to write cumbersome and mostly slow conversion code that ingests data from there into our pipeline until we can work efficiently. Using Apache Arrow and Parquet as base technologies, we get a set of tools that eases this interaction and also brings us a huge performance improvement. As part of the talk we will show a basic problem where we take data coming from a Java application through Python into using these tools.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
20 Comprehensive Checklist of Designing and Developing a WebsitePixlogix Infotech
Dive into the world of Website Designing and Developing with Pixlogix! Looking to create a stunning online presence? Look no further! Our comprehensive checklist covers everything you need to know to craft a website that stands out. From user-friendly design to seamless functionality, we've got you covered. Don't miss out on this invaluable resource! Check out our checklist now at Pixlogix and start your journey towards a captivating online presence today.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
2. How did I get here?
• C since forever
• 15+ years of Perl
• 4 years of Java
• 9 months of Python
3. Fresh fish
• No one has the time
• No one has the resources
• Ultimately, no one cares
4. But you can just hack
it!
• Point missed
• We are not the audience, the pimple-faced
kids are
• And uninformed C[TI]Os
• This is really about the M word
18. package MyClass;
use strict;
use warnings;
use Moose;
use namespace::clean -except =>
‘meta’;
use feature qw(say);
use v5.10;
use Modern::Perl qw(2009);
26. I <3 Dist::Zilla
• Perl’s Maven (except better)
• Bootstrap, generate docs, run tests,
package, manage versions, release
• Support for different types of
projects, via templates
• Extensible through plugins
Perl programmer all my life after university, with the occasional bout of C.\nTook a job at a Java shop 4 years ago, and as luck would have it ended up in a Python one earlier this year.\n
Newcomers have watched the screencast and drank the Kool-Aid. We can show them screencasts, but at some point they&#x2019;ll actually have to build and ship something.\n
&#x201C;Oh, the beauty is that it&#x2019;s so extensible!&#x201D;\nYes, *I and you* can. The newcomers can&#x2019;t, and shouldn&#x2019;t be expected to do so.\nThe point is there are alternatives to Perl where you don&#x2019;t have to hack it.\nAnd if you take that up the chain, it&#x2019;s even worse. All that matters is *shipping*.\n
Perl was fabulous at segmentation, selling to a lot of different people, and regularly upselling them.\nIt has not created new needs, e.g., OO after Java, functional with Haskell, Erlang.\nWe certainly don&#x2019;t seem to find new markets, and seem to be playing catch-up.\n
\n
When was the last time one of the cool kids launched with a Perl API? And why should they, if apparently the majority of new-ish programmers don&#x2019;t use it? This is of course a self-fulfilling prophecy, and the cycle perpetuates itself.\n(Go Cardless, AWS, Rackspace, Streak, Spark Devices, OpenStack)\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
I quite liked the little squiggles before variable names, because I could see what it was. I&#x2019;ve shot myself in the foot in languages that don&#x2019;t have this feature exactly 0 times.\nMoose has become the cheap way out of arguments.\nThe thing is, the competition doesn&#x2019;t need anything like it. Or at all.\n
This helps you catch frequent mistakes.\n
1 line saved, woohoo!\n
Much better.\n
\n
\n
Oops. UI inconsistency.\n
That makes sense.\n
\n
\n
\n
\n
Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &#x2018;I&#x2019; in IDE means &#x2018;integrated&#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n
Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &#x2018;I&#x2019; in IDE means &#x2018;integrated&#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n
Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &#x2018;I&#x2019; in IDE means &#x2018;integrated&#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n
Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &#x2018;I&#x2019; in IDE means &#x2018;integrated&#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n
Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &#x2018;I&#x2019; in IDE means &#x2018;integrated&#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n
Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &#x2018;I&#x2019; in IDE means &#x2018;integrated&#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n