A retake of a 2002 presentation I did at YAPC::EU 2002 (I feel old now) about Source Filters in Perl. It attempts to shed some more light on code alterations and reveals some of the magic behind Acme::Bleach and Acme::Buffy
Best practices for crafting high quality PHP apps (Bulgaria 2019)James Titcumb
This prototype works, but it’s not pretty, and now it’s in production. That legacy application really needs some TLC. Where do we start? When creating long lived applications, it’s imperative to focus on good practices. The solution is to improve the whole development life cycle; from planning, better coding and testing, to automation, peer review and more. In this tutorial, we’ll take a deep dive into each of these areas, looking at how we can make positive, actionable change in our workflow.
This workshop intends to improve your skills in planning, documenting, some aspects of development, testing and delivery of software for both legacy and greenfield projects. The workshop is made up of multiple exercises, allowing dynamic exploration into the various aspects of the software development life cycle. In each practical exercise, we’ll brainstorm and investigate solutions, ensuring they are future-proofed, well tested and lead to the ultimate goal of confidence in delivering stable software.
This document discusses new features in PHP 8.1, including enums and fibers. Enums allow for defining enumerated types that can contain members, methods, and backed values. Fibers enable lightweight concurrency in PHP through cooperative multitasking. Example code is provided to demonstrate how enums can be used to represent application states and fiber functions can be suspended and resumed to run code concurrently without blocking. The document also briefly mentions readonly properties as another new feature in PHP 8.1.
Loops and Unicorns - The Future of the Puppet Language - PuppetConf 2013Puppet
"Loops and Unicorns - The Future of the Puppet Language" by Henrik Lindberg, Platform Engineer, Puppet Labs.
Presentation Overview: Loops, Unicorns and other magical animals lives in your puppet since Puppet 3.2. This is the first version to ship with the future just a setting away! In this talk you will see the new features at work; we are talking loops, lambdas, puppet templates and other unicorns! In addition to learning how loops work, we will present the background to the new parser and the future capabilities this enables such as being able to support multiple language compliance levels, provide better error messages, and much more. Parts of this talk will touch on advanced topics such has to use lambdas in your custom functions.
Speaker Bio: Henrik has 30 years of experience architecting and developing software. Past positions include CTO of Cloudsmith Inc, leadership of BEA’s Java Run-Time Group (JRockit) and CTO and/or technical founder of several publicly and privately held software companies. Henrik works on the Platform team at Puppet Labs with special focus on the Puppet Language. He is also a committer and leader of several Eclipse projects, and leads the Puppet IDE Geppetto project.
This document provides an overview of the Ruby programming language, including its history, philosophy, characteristics, applications, culture, syntax, built-in types, classes and methods, accessors, control flow, including code, modules, metaprogramming, web frameworks, web servers, shell scripting, testing, JRuby, and calling between Java and Ruby.
The document provides an overview of the Swift programming language, summarizing that it is fast, modern, and safe. It then covers key Swift concepts like variables, strings, arrays, dictionaries, optionals, control flow, functions, closses, classes, inheritance, enums, structs, protocols, extensions, and generics in under 3 sentences each. The document encourages learning more about Swift from Apple's official documentation.
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...EnlightenmentProject
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's to Come
at Enlightenment Developers Day 2014
https://phab.enlightenment.org/w/events/enlightenment_developer_day_2014/
The document discusses several Swift Evolution proposals including:
- Implicit returns from single-expression functions and closures which allows omitting the return keyword from functions/closures with a single expression.
- Opaque result types which allow abstracting away types using some to preserve type identity and information hiding.
- The Identifiable protocol which provides a standard way to identify values based on an ID property to enable change tracking in SwiftUI lists and other APIs.
- Property wrappers which define custom attributes to encapsulate property storage and behavior, eliminating boilerplate and providing patterns to define properties like @State, @Binding, @Published etc.
The document discusses API wrappers and why developers create them. Some key points:
- API wrappers provide idiomatic and Ruby-like access to APIs for Ruby developers rather than using raw HTTP requests.
- Wrappers can abstract away a complex API to simplify usage and provide a business domain model.
- Popular Ruby libraries for creating wrappers include HTTParty, RestClient, Weary, and Faraday. These handle HTTP requests and parsing responses.
- Middleware like Hashie and MultiJSON can be used to further Ruby-ify responses.
- Wrappers insulate code from potential API changes and leverage API documentation.
The document discusses how to work with Cocoa and Objective-C from Swift. It covers importing Objective-C frameworks, interacting with Objective-C APIs such as initializers, properties, and methods, type remapping between Objective-C and Swift types, working with AnyObject and optionals, blocks, and integrating Swift code with Interface Builder using outlets and actions.
Simple ETL in Python 3.5+ - PolyConf Paris 2017 - Lightning Talk (10 minutes)Romain Dorgueil
Quick introduction (lightning talk) to Bonobo ETL at PolyConf 2017, in La Géode (Paris). Bonobo is the Extract Transform Load framework for python 3.5+. Write line by line data processors in minutes, using the best practices of software engineering.
The document summarizes an advanced Perl training course covering new features in Perl 5.10 like defined-or operator, switch statement, smart matching and say(), as well as testing with modules like Test::MockObject, profiling with Devel::Cover, and benchmarking code with Benchmark.pm. The one-day course will quickly cover many Perl topics and point to additional online resources for further learning.
Drupal 8: A story of growing up and getting off the islandAngela Byron
The document discusses Drupal's transition from Drupal 7 to Drupal 8. It describes how Drupal 8 modernized by adopting PHP best practices like Composer, OOP, and external libraries. This required rewriting large parts of the codebase. The transition was challenging due to technical debt from the past and fears about change. Lessons learned include setting goals, gaining buy-in through transparency, incremental changes, and addressing fears through support. While the transition is not complete, Drupal 8 has rejoined mainstream PHP development practices.
"Managing API Complexity". Matthew Flaming, TembooYandex
APIs are proliferating on the web, providing app developers with ready access to a wide range of data and services, yet very few apps take advantage of more than one or two API providers. Arbitrary inconsistencies between APIs -- from authentication to input/output formats to details as small as timestamps or pagination -- mean every new API brings its own unnecessarily redundent learning curve, draining developer's most precious resource: time.
Temboo is part of an emerging class of services for managing and scaling API usage. By NORMALIZING access to APIs (as well as their associated documentation and credentials) these services do for development what PaaS and server virtualization have already done for app deployment and infrastructure. "Code virtualization", whereby all the tedious details of API access are abstracted away in standardized cloud-based processes, will free developers to spend their time writing only the code that actually makes their app unique. And that means more unique apps for everyone.
Ensuring software reliability, resiliency, and recoverability is best achieved by practicing effective defensive coding. Take a crash course in defensive coding with PHP and learn about attack surfaces, input validation, canonicalization, secure type checking, external library vetting, cryptographic agility, exception management, code reviews, and unit and behavioral testing. Learn some helpful tips and tricks from experienced professionals within the PHP community as we review the latest blogs and discussions on best practices to defend your project.
Sven and I are going to classify Xtext compared to other concepts and frameworks and demonstrate its capabilities with a refined version of an example I presented in London the week before. After that we discuss the versatile possibilities for extending and customizing the framework and finish with an exciting outlook.
Want to learn PHP? This beginner level session will introduce you to PHP and its syntax. Learn how to make a 'Hello World' PHP page, create a class, build a method, declare and use variables, and write control structures (if, else, foreach, switch, etc.). Get excited to start developing in PHP and leave with a foundation to go and build amazing PHP applications on.
Diving into HHVM Extensions (php[tek] 2016)James Titcumb
HHVM is quickly gaining popularity, and it is a pretty exciting time for PHP runtimes. Have you ever wondered what is going on beneath this slick, super-speedy engine? I wondered that myself, so I dived into the internals of HHVM, discovering a treasure trove of awesome stuff. In this talk, I will show you how HHVM works and how it all pieces together through a guided tour of the codebase. I will also show you a couple of ways to write your own incredible HHVM extensions.
Scala in-practice-3-years by Patric Fornasier, Springr, presented at Pune Sca...Thoughtworks
3 years ago, Springer decided to use Scala on a large, strategic project. This talk is about the journey the development teams made. Why did they choose Scala in the first place? Did they get what they hoped for? What challenges and surprises did they encounter along the way? And, most importantly, are they still happy with their choice?
PHP / MySQL applications are compatible to all operating systems, support all the popular databases, 100% remotely configurable, perfect for web programming & provide higher performance and speed.
PHP is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly.
MySQL is a Relational Database Management System (RDBMS) that uses Structured Query Language (SQL).
PHP is the most popular scripting language for web development. It is free, open source and server-side (the code is executed on the server).
PHP third party tool and plug-in integration such as chat, forum, blog and search engine
Go beyond the documentation and explore some of what's possible if you stretch symfony to its limits. We will look at a number of aspects of symfony 1.4 and Doctrine 1.2 and tease out some powerful functionality you may not have expected to find, but will doubtless be able to use. Topics covered will include routing, forms, the config cache and record listeners. If you're comfortable in symfony and wondering what's next, this session is for you.
Here are some practice exercises:
1. Write a function that takes a name as a parameter and returns a greeting using that name.
2. Write a loop that prints the numbers 1 to 100.
3. Create an array with the days of the week. Loop through and print each day.
4. Generate a 10 digit phone number by concatenating random numbers in a loop.
Let me know if any of these need more explanation! Practicing these concepts will help reinforce your new PHP skills.
This document provides an introduction to Perl and BioPerl for bioinformatics. It discusses Jennifer Dommer and Vivek Gopalan from the National Institute of Allergy and Infectious Diseases presenting on Perl programming principles including variables, flow control, loops, file manipulation and regular expressions. It then provides an overview of BioPerl and how it can be used for tasks like working with sequence data. Examples are given throughout to demonstrate various Perl coding concepts.
Scala is a programming language that mixes object oriented and functional programming in a powerful and flexible way. While it can not be considered as a mainstream language, it has seen a growing adoption trend.An important ingredient for this diffusion is its complete interoperability with Java and the fact that it runs on a solid platform such as the JVM.
It is currently the 4th most loved programming language and the 2nd top paying technology of 2016 (StackOverflow Developers Survey).
These slides have been used for a 4h seminar at the University of Cagliari the 17th of December 2016
This document provides an overview of intermediate object-oriented programming concepts in PHP, including magic methods, polymorphism, collections, filtering collections, and the SPL iterator. Magic methods allow objects to intercept method calls and property access, such as __construct, __destruct, __call, __get, __set and more. Polymorphism allows code to use different objects in the same way through interfaces. Collections and the iterator pattern are demonstrated using a SilverwareDrawer class. Loose coupling and high cohesion principles are also discussed.
As a result of an engine rewrite with focus on more efficient data structures, PHP 7 offers much improved performance and memory usage. This session describes important aspects of the new implementation and how it compares to PHP 5. A particular focus will be on the representation of values, arrays and objects.
The document proposes design changes and a new framework called Fantom that aims to create a simpler and more modern Java-like language by removing unnecessary syntax like semicolons, adding features like string interpolation and type inference, and providing a framework called Tales that embraces HTML, JavaScript, and SQL for building web applications in a simpler way compared to other frameworks. Fantom also focuses on better modularity, APIs, concurrency model with actors, and integration of static and dynamic typing features to achieve a very boring but productive language and framework for application development.
The document discusses JSON (JavaScript Object Notation) and provides an example of how to represent a movie plot summary in JSON format. It defines JSON as a data serialization format that can represent complex data structures in a human-readable way. The example uses JSON to represent the plot of a horror movie, including the location, killers, how each killer can be killed, and lessons learned. It demonstrates how to access and iterate through the different elements of the JSON data structure.
The document discusses how to work with Cocoa and Objective-C from Swift. It covers importing Objective-C frameworks, interacting with Objective-C APIs such as initializers, properties, and methods, type remapping between Objective-C and Swift types, working with AnyObject and optionals, blocks, and integrating Swift code with Interface Builder using outlets and actions.
Simple ETL in Python 3.5+ - PolyConf Paris 2017 - Lightning Talk (10 minutes)Romain Dorgueil
Quick introduction (lightning talk) to Bonobo ETL at PolyConf 2017, in La Géode (Paris). Bonobo is the Extract Transform Load framework for python 3.5+. Write line by line data processors in minutes, using the best practices of software engineering.
The document summarizes an advanced Perl training course covering new features in Perl 5.10 like defined-or operator, switch statement, smart matching and say(), as well as testing with modules like Test::MockObject, profiling with Devel::Cover, and benchmarking code with Benchmark.pm. The one-day course will quickly cover many Perl topics and point to additional online resources for further learning.
Drupal 8: A story of growing up and getting off the islandAngela Byron
The document discusses Drupal's transition from Drupal 7 to Drupal 8. It describes how Drupal 8 modernized by adopting PHP best practices like Composer, OOP, and external libraries. This required rewriting large parts of the codebase. The transition was challenging due to technical debt from the past and fears about change. Lessons learned include setting goals, gaining buy-in through transparency, incremental changes, and addressing fears through support. While the transition is not complete, Drupal 8 has rejoined mainstream PHP development practices.
"Managing API Complexity". Matthew Flaming, TembooYandex
APIs are proliferating on the web, providing app developers with ready access to a wide range of data and services, yet very few apps take advantage of more than one or two API providers. Arbitrary inconsistencies between APIs -- from authentication to input/output formats to details as small as timestamps or pagination -- mean every new API brings its own unnecessarily redundent learning curve, draining developer's most precious resource: time.
Temboo is part of an emerging class of services for managing and scaling API usage. By NORMALIZING access to APIs (as well as their associated documentation and credentials) these services do for development what PaaS and server virtualization have already done for app deployment and infrastructure. "Code virtualization", whereby all the tedious details of API access are abstracted away in standardized cloud-based processes, will free developers to spend their time writing only the code that actually makes their app unique. And that means more unique apps for everyone.
Ensuring software reliability, resiliency, and recoverability is best achieved by practicing effective defensive coding. Take a crash course in defensive coding with PHP and learn about attack surfaces, input validation, canonicalization, secure type checking, external library vetting, cryptographic agility, exception management, code reviews, and unit and behavioral testing. Learn some helpful tips and tricks from experienced professionals within the PHP community as we review the latest blogs and discussions on best practices to defend your project.
Sven and I are going to classify Xtext compared to other concepts and frameworks and demonstrate its capabilities with a refined version of an example I presented in London the week before. After that we discuss the versatile possibilities for extending and customizing the framework and finish with an exciting outlook.
Want to learn PHP? This beginner level session will introduce you to PHP and its syntax. Learn how to make a 'Hello World' PHP page, create a class, build a method, declare and use variables, and write control structures (if, else, foreach, switch, etc.). Get excited to start developing in PHP and leave with a foundation to go and build amazing PHP applications on.
Diving into HHVM Extensions (php[tek] 2016)James Titcumb
HHVM is quickly gaining popularity, and it is a pretty exciting time for PHP runtimes. Have you ever wondered what is going on beneath this slick, super-speedy engine? I wondered that myself, so I dived into the internals of HHVM, discovering a treasure trove of awesome stuff. In this talk, I will show you how HHVM works and how it all pieces together through a guided tour of the codebase. I will also show you a couple of ways to write your own incredible HHVM extensions.
Scala in-practice-3-years by Patric Fornasier, Springr, presented at Pune Sca...Thoughtworks
3 years ago, Springer decided to use Scala on a large, strategic project. This talk is about the journey the development teams made. Why did they choose Scala in the first place? Did they get what they hoped for? What challenges and surprises did they encounter along the way? And, most importantly, are they still happy with their choice?
PHP / MySQL applications are compatible to all operating systems, support all the popular databases, 100% remotely configurable, perfect for web programming & provide higher performance and speed.
PHP is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly.
MySQL is a Relational Database Management System (RDBMS) that uses Structured Query Language (SQL).
PHP is the most popular scripting language for web development. It is free, open source and server-side (the code is executed on the server).
PHP third party tool and plug-in integration such as chat, forum, blog and search engine
Go beyond the documentation and explore some of what's possible if you stretch symfony to its limits. We will look at a number of aspects of symfony 1.4 and Doctrine 1.2 and tease out some powerful functionality you may not have expected to find, but will doubtless be able to use. Topics covered will include routing, forms, the config cache and record listeners. If you're comfortable in symfony and wondering what's next, this session is for you.
Here are some practice exercises:
1. Write a function that takes a name as a parameter and returns a greeting using that name.
2. Write a loop that prints the numbers 1 to 100.
3. Create an array with the days of the week. Loop through and print each day.
4. Generate a 10 digit phone number by concatenating random numbers in a loop.
Let me know if any of these need more explanation! Practicing these concepts will help reinforce your new PHP skills.
This document provides an introduction to Perl and BioPerl for bioinformatics. It discusses Jennifer Dommer and Vivek Gopalan from the National Institute of Allergy and Infectious Diseases presenting on Perl programming principles including variables, flow control, loops, file manipulation and regular expressions. It then provides an overview of BioPerl and how it can be used for tasks like working with sequence data. Examples are given throughout to demonstrate various Perl coding concepts.
Scala is a programming language that mixes object oriented and functional programming in a powerful and flexible way. While it can not be considered as a mainstream language, it has seen a growing adoption trend.An important ingredient for this diffusion is its complete interoperability with Java and the fact that it runs on a solid platform such as the JVM.
It is currently the 4th most loved programming language and the 2nd top paying technology of 2016 (StackOverflow Developers Survey).
These slides have been used for a 4h seminar at the University of Cagliari the 17th of December 2016
This document provides an overview of intermediate object-oriented programming concepts in PHP, including magic methods, polymorphism, collections, filtering collections, and the SPL iterator. Magic methods allow objects to intercept method calls and property access, such as __construct, __destruct, __call, __get, __set and more. Polymorphism allows code to use different objects in the same way through interfaces. Collections and the iterator pattern are demonstrated using a SilverwareDrawer class. Loose coupling and high cohesion principles are also discussed.
As a result of an engine rewrite with focus on more efficient data structures, PHP 7 offers much improved performance and memory usage. This session describes important aspects of the new implementation and how it compares to PHP 5. A particular focus will be on the representation of values, arrays and objects.
The document proposes design changes and a new framework called Fantom that aims to create a simpler and more modern Java-like language by removing unnecessary syntax like semicolons, adding features like string interpolation and type inference, and providing a framework called Tales that embraces HTML, JavaScript, and SQL for building web applications in a simpler way compared to other frameworks. Fantom also focuses on better modularity, APIs, concurrency model with actors, and integration of static and dynamic typing features to achieve a very boring but productive language and framework for application development.
The document discusses JSON (JavaScript Object Notation) and provides an example of how to represent a movie plot summary in JSON format. It defines JSON as a data serialization format that can represent complex data structures in a human-readable way. The example uses JSON to represent the plot of a horror movie, including the location, killers, how each killer can be killed, and lessons learned. It demonstrates how to access and iterate through the different elements of the JSON data structure.
http://inarocket.com
Learn BEM fundamentals as fast as possible. What is BEM (Block, element, modifier), BEM syntax, how it works with a real example, etc.
The document discusses how personalization and dynamic content are becoming increasingly important on websites. It notes that 52% of marketers see content personalization as critical and 75% of consumers like it when brands personalize their content. However, personalization can create issues for search engine optimization as dynamic URLs and content are more difficult for search engines to index than static pages. The document provides tips for SEOs to help address these personalization and SEO challenges, such as using static URLs when possible and submitting accurate sitemaps.
This document summarizes a study of CEO succession events among the largest 100 U.S. corporations between 2005-2015. The study analyzed executives who were passed over for the CEO role ("succession losers") and their subsequent careers. It found that 74% of passed over executives left their companies, with 30% eventually becoming CEOs elsewhere. However, companies led by succession losers saw average stock price declines of 13% over 3 years, compared to gains for companies whose CEO selections remained unchanged. The findings suggest that boards generally identify the most qualified CEO candidates, though differences between internal and external hires complicate comparisons.
Hiveminder - Everything but the Secret SauceJesse Vincent
Ten tools and techniques to help you:
Find bugs faster バグの検出をもっと素早く
Build web apps ウェブアプリの構築
Ship software ソフトのリリース
Get input from users ユーザからの入力を受けつける
Own the Inbox 受信箱を用意する
今日の話
Python's "batteries included" philosophy means that it comes with an astonishing amount of great stuff. On top of that, there's a vibrant world of third-party libraries that help make Python even more wonderful. We'll go on a breezy, example-filled tour through some of my favorites, from treasures in the standard library to great third-party packages that I don't think I could live without, and we'll touch on some of the fuzzier aspects of the Python culture that make it such a joy to be part of.
Beijing Perl Workshop 2008 Hiveminder Secret SauceJesse Vincent
Template::Declare is a pure Perl templating engine that allows templates to be treated like code. Templates can be refactored, use object orientation and mixins. Tags are implemented as closures that can output content immediately or return closures. CSS::Squish is a CSS compiler that combines multiple small CSS files into one large file for easier serving, improving performance by allowing browsers to cache the combined file.
You've learned to program in Ruby, but now you want to start learning about how to move beyond the language basics and make use of some of the dynamic parts of the Ruby language. We'll cover that a bit here.
The document summarizes new features in Ruby 2, including lazy enumerators that allow infinite enumerations to be cut off, the Module#prepend method that puts modules before classes in the method lookup path, String methods like #bytes now returning arrays instead of enumerators, keyword arguments that allow default parameters, and various other minor changes.
This document provides an overview of using the bash shell as a productivity tool. It discusses using the terminal, basic bash usage including redirection, pipes, configuration files, keyboard shortcuts, history, and tab completion. Useful utilities like sed, awk, find, grep and scripting basics are covered. Tools for developers like Homebrew, Git, Xcode, and Cocoapods are also summarized. The document aims to help users "unleash their inner console cowboy" and do more work directly from the command line.
The document outlines an agenda for a PHP crash course, beginning with an introduction to the speaker's background and qualifications. It then covers the basics of PHP including its history, why it's popular, how to get started, basic syntax and types, variables, constants, expressions, control structures, functions, classes and objects. The document recommends additional advanced PHP topics and reading materials.
The document discusses Ruby coding style guidelines including:
- Using 2 spaces for indentation and avoiding tabs
- Formatting code layout such as spacing around operators and line breaks
- Naming conventions like snake_case and avoiding unnecessary comments
- Following patterns for classes, modules and methods
The document emphasizes consistency but acknowledges rules can be broken for readability or consistency within a codebase. Automatic checking and team adoption are suggested for enforcing style guidelines.
The document is a presentation about designing code for beauty, simplicity, and usability. It discusses reasons for designing code like for one's own sanity and future growth. It covers topics like balance, clarity, and harmony in code. Balance involves alignment, order, and grid usage. Clarity involves consistent naming, positive grammar, and method extraction. Harmony involves integrating code with its applications and user experience. The presentation emphasizes writing simply and designing the user experience before writing code.
The document provides information about an intermediate PHP OOP conference session covering magic methods, polymorphism, collections, iterators, loose coupling, and high cohesion. The session details include explanations of magic methods like __construct, __destruct, __call, and __get, as well as polymorphism, implementing interfaces like Countable and ArrayAccess, and using iterators. The talk aims to improve developers' OOP skills in PHP.
This document discusses logging in Perl applications. It recommends using structured logging by creating log event objects that contain contextual information like date, hostname, etc. as well as custom fields. It introduces Log::Message::Structured, which provides roles to easily create log event classes that can be stringified to JSON or other formats and passed to logging modules like Log::Dispatch. This structured logging approach packages log data as objects for rich formatting and transmission while avoiding reimplementing basic logging functionality.
This document discusses Puppet::Tidy, a tool for formatting Puppet manifests. Puppet::Tidy works by parsing manifests line-by-line and applying transformations to lines that match certain criteria in order to standardize formatting. The talk describes how Puppet::Tidy currently works, examples of checks it performs, and ideas for future improvements such as incorporating more semantic knowledge and using a full parser.
Slides from a talk I gave about using the Ruby on Rails console (and irb) to develop Web applications. Describes the features of the console, and how you might want to use it.
- Mojolicious is a web development framework for Perl that aims to rethink web development
- It provides a powerful routing system, full HTTP implementation, simple templating, built-in JSON support, elegant plugin system, and class reloader
- Installation is simple using CPAN and has no dependencies beyond Perl 5.8.1
- It includes classes for requests, responses, templates, JSON encoding/decoding, and more
- Plugins can hook into various stages of the request lifecycle
- Supports generating applications, running commands, and provides a simple but powerful way to build web applications and services in Perl
This document provides an overview of basic PHP concepts, including what PHP is, how to work with variables, naming conventions, numbers and casting, operators, conditions, arrays, limiting nested code, object-oriented programming with classes, and some examples of working with a User class and extending it to a Reseller class. It covers fundamental PHP syntax and structures to get started with the language.
This document discusses different patterns for handling auto-generated code in projects. It compares the Butter Knife and Dagger patterns, which either hide generated codes or do not use reflection, respectively. The author recommends the Dagger pattern as it does not require developers to learn naming rules of generated classes or add complex proguard configurations. Hiding generated code can cause issues if class names change, while not using reflection avoids errors and makes the library easier to use for developers.
The document discusses using the command line as a productivity tool. It presents bash as a powerful tool for automating tasks and introduces many useful commands and concepts, including redirection, pipes, variables, conditionals, loops, and scripting. It also summarizes tools for developers such as Homebrew, Git, Xcode, xcpretty and xctool.
The document discusses best practices for documenting Swift code using Markdown syntax. It provides examples of how to write documentation comments, automatically recognize parameters and return values, embed code blocks, and use other Markdown elements like lists and headers. It recommends using the Jazzy tool to generate HTML documentation from the comments.
The document provides an overview of file structure and basic input/output in C++. It explains common elements like #include directives, namespaces, main functions, and variables. It also covers conditional statements, loops, and input/output streams for basic console applications.
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
Vaibhav Gupta BAML: AI work flows without Hallucinationsjohn409870
Shipping Agents
Vaibhav Gupta
Cofounder @ Boundary
in/vaigup
boundaryml/baml
Imagine if every API call you made
failed only 5% of the time
boundaryml/baml
Imagine if every LLM call you made
failed only 5% of the time
boundaryml/baml
Imagine if every LLM call you made
failed only 5% of the time
boundaryml/baml
Fault tolerant systems are hard
but now everything must be
fault tolerant
boundaryml/baml
We need to change how we
think about these systems
Aaron Villalpando
Cofounder @ Boundary
Boundary
Combinator
boundaryml/baml
We used to write websites like this:
boundaryml/baml
But now we do this:
boundaryml/baml
Problems web dev had:
boundaryml/baml
Problems web dev had:
Strings. Strings everywhere.
boundaryml/baml
Problems web dev had:
Strings. Strings everywhere.
State management was impossible.
boundaryml/baml
Problems web dev had:
Strings. Strings everywhere.
State management was impossible.
Dynamic components? forget about it.
boundaryml/baml
Problems web dev had:
Strings. Strings everywhere.
State management was impossible.
Dynamic components? forget about it.
Reuse components? Good luck.
boundaryml/baml
Problems web dev had:
Strings. Strings everywhere.
State management was impossible.
Dynamic components? forget about it.
Reuse components? Good luck.
Iteration loops took minutes.
boundaryml/baml
Problems web dev had:
Strings. Strings everywhere.
State management was impossible.
Dynamic components? forget about it.
Reuse components? Good luck.
Iteration loops took minutes.
Low engineering rigor
boundaryml/baml
React added engineering rigor
boundaryml/baml
The syntax we use changes how we
think about problems
boundaryml/baml
We used to write agents like this:
boundaryml/baml
Problems agents have:
boundaryml/baml
Problems agents have:
Strings. Strings everywhere.
Context management is impossible.
Changing one thing breaks another.
New models come out all the time.
Iteration loops take minutes.
boundaryml/baml
Problems agents have:
Strings. Strings everywhere.
Context management is impossible.
Changing one thing breaks another.
New models come out all the time.
Iteration loops take minutes.
Low engineering rigor
boundaryml/baml
Agents need
the expressiveness of English,
but the structure of code
F*** You, Show Me The Prompt.
boundaryml/baml
<show don’t tell>
Less prompting +
More engineering
=
Reliability +
Maintainability
BAML
Sam
Greg Antonio
Chris
turned down
openai to join
ex-founder, one
of the earliest
BAML users
MIT PhD
20+ years in
compilers
made his own
database, 400k+
youtube views
Vaibhav Gupta
in/vaigup
[email protected]
boundaryml/baml
Thank you!
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxAnoop Ashok
In today's fast-paced retail environment, efficiency is key. Every minute counts, and every penny matters. One tool that can significantly boost your store's efficiency is a well-executed planogram. These visual merchandising blueprints not only enhance store layouts but also save time and money in the process.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
HCL Nomad Web – Best Practices and Managing Multiuser Environmentspanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-and-managing-multiuser-environments/
HCL Nomad Web is heralded as the next generation of the HCL Notes client, offering numerous advantages such as eliminating the need for packaging, distribution, and installation. Nomad Web client upgrades will be installed “automatically” in the background. This significantly reduces the administrative footprint compared to traditional HCL Notes clients. However, troubleshooting issues in Nomad Web present unique challenges compared to the Notes client.
Join Christoph and Marc as they demonstrate how to simplify the troubleshooting process in HCL Nomad Web, ensuring a smoother and more efficient user experience.
In this webinar, we will explore effective strategies for diagnosing and resolving common problems in HCL Nomad Web, including
- Accessing the console
- Locating and interpreting log files
- Accessing the data folder within the browser’s cache (using OPFS)
- Understand the difference between single- and multi-user scenarios
- Utilizing Client Clocking
Big Data Analytics Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
📕 Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
👉 Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
Procurement Insights Cost To Value Guide.pptxJon Hansen
Procurement Insights integrated Historic Procurement Industry Archives, serves as a powerful complement — not a competitor — to other procurement industry firms. It fills critical gaps in depth, agility, and contextual insight that most traditional analyst and association models overlook.
Learn more about this value- driven proprietary service offering here.
Procurement Insights Cost To Value Guide.pptxJon Hansen
Source Filters in Perl 2010
1. Source Filters
in perl
Belgian perl workshop 2010
hendrik van belleghem
2. Source Filters
in perl
Belgian perl workshop 2010
hendrik van belleghem
Spoiler warning: This talk might ruin the magic behind Acme::bleach and acme::buffy
37. Filter::Util::Call
package MyFilter;
use Filter::Util::Call;
sub import
{ my ($type, @arguments) = @_ ;
filter_add([ ]) ;
}
sub filter
{ my ($self) = @_ ;
my ($status) ;
$status = filter_read();
#Do magic with $_ if $status > 0
return $status;
}
1;
38. Filter::Util::Call
package MyFilter;
use Filter::Util::Call;
import is called when module is “used”
sub import
{ my ($type, @arguments) = @_ ;
filter_add([ ]) ;
}
sub filter
{ my ($self) = @_ ;
my ($status) ;
$status = filter_read();
#Do magic with $_ if $status > 0
return $status;
}
1;
39. Filter::Util::Call
package MyFilter;
use Filter::Util::Call;
sub import
{ my ($type, @arguments) = @_ ;
filter_add([ ]) ;
}
sub filter
{ my ($self) = @_ ;
my ($status) ;
$status = filter_read();
if ($status) { $_ =~ s/World/Belgian Perl Workshop/g; }
return $status;
}
1; # Hello World -> Hello Belgian Perl Workshop
61. From Scratch
package Filter::NumberLines::Scratch;
sub scratch { local $_ = pop; s/^d+:t//gm; return $_; }
sub import
{ open 0 or print "Can't number '$0'n" and exit;
my $line = 0; my $no_go = 0; my $past_use = 0; my $file;
while(<0>)
{ $line++;
if ($past_use && /^d+:t/) { $no_go++; $file = join "",$_,<0>; last; }
if ($past_use) { $_ =sprintf("%03d",$line).":t".$_; }
if (/use Filter::NumberLines::Scratch;/) { { $past_use++; }
$file .= $_;
}
if ($no_go)
{ do { eval scratch $file; exit; } }
else { open 0, ">$0" or print "Cannot number '$0'n" and exit;
print {0} $file and exit;
}
}
1;
71. Acme::Bleach
• Bleaches code
• Step 1: Convert code to bit stream
• Step 2: Convert bits into tabs (1) and spaces (0)
72. Acme::Bleach
• Bleaches code
• Step 1: Convert code to bit stream
• Step 2: Convert bits into tabs (1) and spaces (0)
• Reverse to unbleach
73. Acme::Bleach
• Bleaches code
• Step 1: Convert code to bit stream
• Step 2: Convert bits into tabs (1) and spaces (0)
• Reverse to unbleach
• Written by Damian Conway
74. Acme::Bleach
• Bleaches code
• Step 1: Convert code to bit stream
• Step 2: Convert bits into tabs (1) and spaces (0)
• Reverse to unbleach
• Written by Damian Conway
• from scratch
81. Acme::Buffy
• Buffies code
• Step 1: Convert code to bit stream
• Step 2: Convert bits into uppercase and
lowercase letters from the word Buffy
82. Acme::Buffy
• Buffies code
• Step 1: Convert code to bit stream
• Step 2: Convert bits into uppercase and
lowercase letters from the word Buffy
• Written by Leon Brocard
83. Acme::Buffy
• Buffies code
• Step 1: Convert code to bit stream
• Step 2: Convert bits into uppercase and
lowercase letters from the word Buffy
• Written by Leon Brocard
• Written from scratch
87. Acme::Buffy
sub _evil {
return $_[0] =~ /S/;
}
sub _punch {
return $_[0] =~ /^$horns/;
}
sub import {
open 0 or print "Can't rebuffy '$0'n" and exit;
( my $demon = join "", <0> ) =~ s/.*^s*uses+Acme::Buffys*;n//sm;
local $SIG{__WARN__} = &evil;
do { eval _unslay $demon; exit }
unless _evil $demon and not _punch $demon;
open my $fh, ">$0" or print "Cannot buffy '$0'n" and exit;
print $fh "use Acme::Buffy;n", _slay $demon and exit;
print "use Acme::Buffy;n", _slay $demon and exit;
return;
}
"Grrr, arrrgh";
92. Filter::CBC
• Encrypts code using Crypt::CBC
• Can use any algorithm that uses CBC cipher
• Hardcoded or external algorithm & key phrase
93. Filter::CBC
• Encrypts code using Crypt::CBC
• Can use any algorithm that uses CBC cipher
• Hardcoded or external algorithm & key phrase
• Pass parameters in use statement
94. Filter::CBC
• Encrypts code using Crypt::CBC
• Can use any algorithm that uses CBC cipher
• Hardcoded or external algorithm & key phrase
• Pass parameters in use statement
• Based on Filter::Util::Call
95. Filter::CBC
• Encrypts code using Crypt::CBC
• Can use any algorithm that uses CBC cipher
• Hardcoded or external algorithm & key phrase
• Pass parameters in use statement
• Based on Filter::Util::Call
• Written by uhm me
96. Filter::CBC
• Encrypts code using Crypt::CBC
• Can use any algorithm that uses CBC cipher
• Hardcoded or external algorithm & key phrase
• Pass parameters in use statement
• Based on Filter::Util::Call
• Written by uhm me
use Filter::CBC "Rijndael","my secret key";
103. Switch
use Switch;
switch ($val) {
case 1 { print "number 1"; }
case "a" { print "string a"; }
case [1..10,42] { print "number in list"; }
case /w+/ { print "pattern"; }
else { print "previous case not true"; }
}
104. Switch
use Switch;
switch ($val) {
case 1 { print "number 1"; }
case "a" { print "string a"; }
case [1..10,42] { print "number in list"; }
case /w+/ { print "pattern"; }
else { print "previous case not true"; }
}
is turned into
105. Switch
use Switch;
switch ($val) {
case 1 { print "number 1"; }
case "a" { print "string a"; }
case [1..10,42] { print "number in list"; }
case /w+/ { print "pattern"; }
else { print "previous case not true"; }
}
is turned into
if ($var == 1) { print “number 1”; }
elsif ($var eq “a”) { print “string a”; }
elsif (grep /$var [1..10,42]) { print "number in list" }
elsif ($var=~ /w+/) { print “pattern”; }
else { print “previous case not true”; }