This talk describes refactoring FindBin::libs from Perl5 to Raku: breaking the module up into functional pieces, writing the tests using Raku, testing and releasing the module with mi6.
The document discusses processing large sequence data files in parallel using Raku. It describes reading input sequences from files in fixed-size chunks, passing the chunks to worker threads for processing, and using techniques like gather/take and lazy evaluation to improve performance over alternative approaches. The key steps are:
1. Read the input file in chunks and pass chunks to worker threads for parallel processing.
2. Use gather/take and lazy evaluation to improve throughput over alternatives like forking processes or using channels that introduce overhead.
3. SHA sequences in parallel to detect duplicates while avoiding memory issues from comparing all pairs directly.
The $path to knowledge: What little it take to unit-test Perl.Workhorse Computing
Metadata-driven lazyness, Perl, and Jenkins provide a nice mix for automated testing. With Perl the only thing required to start testing is a files path, from there the possibilities are endless. Using Symbol's qualify_to_ref makes it easy to validate @EXPORT & @EXPORT_OK, knowing the path makes it easy to use "perl -wc" to get diagnostics.
The beautiful thing is all of it can be lazy... er, "automated". And repeatable. And simple.
Face it, backticks are a pain. BASH $() construct provides a simpler, more effective approach. This talk uses examples from automating git branches and command line processing with getopt(1) to show how $() works in shell scripts.
Plack is an interface for web request handlers that simplifies the interface and makes code more portable. It allows developers to focus on request handling rather than API specifics. Plack addresses issues with traditional CGI and mod_perl approaches by running handlers outside of servers in a standardized way. This encapsulation improves performance, debugging, and code reuse across different server implementations. Plack includes modules for common tasks like routing, middleware, and running PSGI applications on various web servers.
Perl6 regular expression ("regex") syntax has a number of improvements over the Perl5 syntax. The inclusion of grammars as first-class entities in the language makes many uses of regexes clearer, simpler, and more maintainable. This talk looks at a few improvements in the regex syntax and also at how grammars can help make regex use cleaner and simpler.
This document provides an overview and introduction to phpspec, an open source BDD framework for PHP. It covers installing phpspec, generating and editing specs, running specs, different types of matchers for specs including identity, comparison, throw, type and object state matchers. It also briefly mentions formatters, progress reporting, stubbing, mocking and points to additional resources.
Slides from the GTA-PHP meetup about the new features in PHP 7. Slides had corresponding RFC pages linked to them in the speaker notes, but they don't seem to correspond to pages here so I've made the original keynote file available at http://gtaphp.org/presentations/NewInPHP7.zip and a PowerPoint version at http://gtaphp.org/presentations/NewInPHP7.pptx.
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner) Puppet
Puppet 4 introduces several new features and changes including improved performance, scalability, measurability and flexibility. It features a new Puppet Server based on Clojure and Trapperkeeper, packaging changes, improved environment handling, r10k for managing environments from git, new language features like lambdas and EPP templates, improved data binding and overriding, stronger typing support, and various deprecations around node inheritance, hyphens in names, and other changes. Upgrading requires testing modules against the new version and addressing any compatibility issues.
The document discusses building applications without frameworks by using Symfony components independently. It describes how to handle HTTP requests and responses with the HttpFoundation component, map URLs to routes with the Routing component, manage service dependencies with DependencyInjection, and build an application kernel and controllers to tie it all together without relying on an existing framework.
This document discusses ways to prevent malicious Perl code from executing harmful actions by overriding core functions like die() and system() as well as by faking module imports. It explores how the Acme::BadExample module tries to perform dangerous tasks and ways Anti::Code can intervene to stop it without errors.
This document provides an overview of regular expressions (regexes) and grammars in Perl 6. It discusses key concepts like rules, tokens, and capturing matches. Regexes allow matching patterns in strings, while grammars parse strings according to defined rules and tokens. The document gives examples of grammars for search queries and dates that capture city, country, from and to dates, and guest numbers. It demonstrates parsing strings and accessing captured values to retrieve individual fields.
The document describes an advanced Perl techniques training course that covers new features in Perl 5.10, dates and times using the DateTime module, testing and benchmarking code, and accessing databases. The one-day course will move quickly and cover dates/times, testing, databases, profiling, object-oriented programming with Moose, templates, and MVC frameworks. Resources from the training will be available online.
Perl provides many powerful features and modules that allow developers to customize and extend the language. Some popular modules include Moose for object-oriented programming, TryCatch for exception handling inspired by Perl 6, and P5.10 features that backport Perl 6 functionality. While useful, some features like autoboxing and state variables could introduce subtle bugs if misused. Overall, Perl's extensibility makes it a very flexible language that can be adapted to many different use cases.
Perl6 introduces a variety of tools for functional programming and writing readable code. Among them parameter declarations and lazy lists. This talk looks at how to get Perl6, where to find examples on RakudoCode, and how to use Perl6 functional tools for converting an algorithm from imperative to functional code, including parallel dispatch with the ">>" operator.
I, For One, Welcome Our New Perl6 Overlordsheumann
The document discusses Perl 6 modules and features including variables, binding, classes, attributes, caller, and more. Code examples are provided to demonstrate how to use various Perl 6 constructs like binding variables, defining classes, accessing caller information, and using attributes. Modules like Perl6::Variables, Perl6::Binding, Perl6::Classes are also imported and used.
PHP 5.3 introduced many new features and improvements including:
- Performance improvements with up to 40% faster speeds on Windows and 5-15% overall.
- New error reporting levels, garbage collection, and the MySQLnd native driver.
- Backwards compatibility changes like deprecated EREG functions and magic methods requirements.
- Namespaces, late static bindings, closures/lambdas, the __callStatic magic method, and get_called_class().
- Additions to the SPL like new iterators, the date/time object, and new constants like __DIR__ and __NAMESPACE__.
Best Practices in Plugin Development (WordCamp Seattle)andrewnacin
My talk -- officially named "Y U NO CODE WELL" -- at WordCamp Seattle 2011 on best practices during plugin development. Find the video, as it provides some good context and conversation.
This document summarizes the key topics that will be covered in an introduction to Perl programming course on day 2, including types of variables, references, sorting, and object orientation. The schedule outlines times for lectures, breaks and lunch. Resources provided include slides, slideshare, and an online community.
This document discusses PHP traits and their use and advantages. It begins by showing PHP's large market share for web programming compared to other languages. It then demonstrates how traits allow eliminating duplicated code by defining common functionality in traits that can be used by multiple classes. The document provides an example of using a "Options" trait to DRY up option handling code across multiple classes. It discusses trait precedence and how to selectively override trait methods using "insteadof". The document explains how traits solve problems caused by multiple inheritance through their precedence rules.
Symfony CMF - PHP Conference Brazil 2011Jacopo Romei
The document discusses Symfony CMF, which is a tool for developers to build content management systems. It provides a standardized PHPCR API and implementation-agnostic interfaces to work with content repositories. Symfony CMF aims to reduce technical debt that CMS systems can introduce by separating data and behavior using a content repository. The document includes code examples of using PHPCR for content storage and retrieval.
The document discusses various techniques for extending and improving Perl, including both good and potentially evil techniques. It covers Perl modules that port Perl 6 features to Perl 5 like given/when switches and state variables. It also discusses techniques for runtime introspection and modification like PadWalker and source filters. The document advocates for continuing to extend Perl 5 with modern features to keep it relevant and powerful.
Forget about index.php and build you applications around HTTP!Kacper Gunia
Slides from my talk at Dutch PHP Conference in Amsterdam
More Domain-Driven Design related content at: https://domaincentric.net/
This document provides an overview and schedule for a one-day introduction to Perl programming course. It covers what will be taught including creating and running Perl programs, variables, operators, functions, input/output, and more. The schedule includes breaks and lunch and notes resources available online for the slides.
reating a database schema means creating an interface for applications to use to manage their data. But how do you know how well that interface works until you’ve tried it?
Well, by trying it before you create it.
This talk introduces the concept of test-driven development to database administrators. We’ll use pgTAP to work through a real-world example creating a database design with an intuitive, useful interface for managing application data. Derive more intuitive table structures! Keep an eye to the beauty of your views! Let your procedures make your application more productive! Feel younger and more clever, all through the power of TDDD!
Simple SQL Change Management with SqitchDavid Wheeler
SQL change management has always sucked. This talk introduces Sqitch, the VCS-aware SQL change management application that doesn’t suck. Come see how it works, learn the few simple rules you need to get the most out of it, and liberate yourself from the suckitude.
Slides from the GTA-PHP meetup about the new features in PHP 7. Slides had corresponding RFC pages linked to them in the speaker notes, but they don't seem to correspond to pages here so I've made the original keynote file available at http://gtaphp.org/presentations/NewInPHP7.zip and a PowerPoint version at http://gtaphp.org/presentations/NewInPHP7.pptx.
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner) Puppet
Puppet 4 introduces several new features and changes including improved performance, scalability, measurability and flexibility. It features a new Puppet Server based on Clojure and Trapperkeeper, packaging changes, improved environment handling, r10k for managing environments from git, new language features like lambdas and EPP templates, improved data binding and overriding, stronger typing support, and various deprecations around node inheritance, hyphens in names, and other changes. Upgrading requires testing modules against the new version and addressing any compatibility issues.
The document discusses building applications without frameworks by using Symfony components independently. It describes how to handle HTTP requests and responses with the HttpFoundation component, map URLs to routes with the Routing component, manage service dependencies with DependencyInjection, and build an application kernel and controllers to tie it all together without relying on an existing framework.
This document discusses ways to prevent malicious Perl code from executing harmful actions by overriding core functions like die() and system() as well as by faking module imports. It explores how the Acme::BadExample module tries to perform dangerous tasks and ways Anti::Code can intervene to stop it without errors.
This document provides an overview of regular expressions (regexes) and grammars in Perl 6. It discusses key concepts like rules, tokens, and capturing matches. Regexes allow matching patterns in strings, while grammars parse strings according to defined rules and tokens. The document gives examples of grammars for search queries and dates that capture city, country, from and to dates, and guest numbers. It demonstrates parsing strings and accessing captured values to retrieve individual fields.
The document describes an advanced Perl techniques training course that covers new features in Perl 5.10, dates and times using the DateTime module, testing and benchmarking code, and accessing databases. The one-day course will move quickly and cover dates/times, testing, databases, profiling, object-oriented programming with Moose, templates, and MVC frameworks. Resources from the training will be available online.
Perl provides many powerful features and modules that allow developers to customize and extend the language. Some popular modules include Moose for object-oriented programming, TryCatch for exception handling inspired by Perl 6, and P5.10 features that backport Perl 6 functionality. While useful, some features like autoboxing and state variables could introduce subtle bugs if misused. Overall, Perl's extensibility makes it a very flexible language that can be adapted to many different use cases.
Perl6 introduces a variety of tools for functional programming and writing readable code. Among them parameter declarations and lazy lists. This talk looks at how to get Perl6, where to find examples on RakudoCode, and how to use Perl6 functional tools for converting an algorithm from imperative to functional code, including parallel dispatch with the ">>" operator.
I, For One, Welcome Our New Perl6 Overlordsheumann
The document discusses Perl 6 modules and features including variables, binding, classes, attributes, caller, and more. Code examples are provided to demonstrate how to use various Perl 6 constructs like binding variables, defining classes, accessing caller information, and using attributes. Modules like Perl6::Variables, Perl6::Binding, Perl6::Classes are also imported and used.
PHP 5.3 introduced many new features and improvements including:
- Performance improvements with up to 40% faster speeds on Windows and 5-15% overall.
- New error reporting levels, garbage collection, and the MySQLnd native driver.
- Backwards compatibility changes like deprecated EREG functions and magic methods requirements.
- Namespaces, late static bindings, closures/lambdas, the __callStatic magic method, and get_called_class().
- Additions to the SPL like new iterators, the date/time object, and new constants like __DIR__ and __NAMESPACE__.
Best Practices in Plugin Development (WordCamp Seattle)andrewnacin
My talk -- officially named "Y U NO CODE WELL" -- at WordCamp Seattle 2011 on best practices during plugin development. Find the video, as it provides some good context and conversation.
This document summarizes the key topics that will be covered in an introduction to Perl programming course on day 2, including types of variables, references, sorting, and object orientation. The schedule outlines times for lectures, breaks and lunch. Resources provided include slides, slideshare, and an online community.
This document discusses PHP traits and their use and advantages. It begins by showing PHP's large market share for web programming compared to other languages. It then demonstrates how traits allow eliminating duplicated code by defining common functionality in traits that can be used by multiple classes. The document provides an example of using a "Options" trait to DRY up option handling code across multiple classes. It discusses trait precedence and how to selectively override trait methods using "insteadof". The document explains how traits solve problems caused by multiple inheritance through their precedence rules.
Symfony CMF - PHP Conference Brazil 2011Jacopo Romei
The document discusses Symfony CMF, which is a tool for developers to build content management systems. It provides a standardized PHPCR API and implementation-agnostic interfaces to work with content repositories. Symfony CMF aims to reduce technical debt that CMS systems can introduce by separating data and behavior using a content repository. The document includes code examples of using PHPCR for content storage and retrieval.
The document discusses various techniques for extending and improving Perl, including both good and potentially evil techniques. It covers Perl modules that port Perl 6 features to Perl 5 like given/when switches and state variables. It also discusses techniques for runtime introspection and modification like PadWalker and source filters. The document advocates for continuing to extend Perl 5 with modern features to keep it relevant and powerful.
Forget about index.php and build you applications around HTTP!Kacper Gunia
Slides from my talk at Dutch PHP Conference in Amsterdam
More Domain-Driven Design related content at: https://domaincentric.net/
This document provides an overview and schedule for a one-day introduction to Perl programming course. It covers what will be taught including creating and running Perl programs, variables, operators, functions, input/output, and more. The schedule includes breaks and lunch and notes resources available online for the slides.
reating a database schema means creating an interface for applications to use to manage their data. But how do you know how well that interface works until you’ve tried it?
Well, by trying it before you create it.
This talk introduces the concept of test-driven development to database administrators. We’ll use pgTAP to work through a real-world example creating a database design with an intuitive, useful interface for managing application data. Derive more intuitive table structures! Keep an eye to the beauty of your views! Let your procedures make your application more productive! Feel younger and more clever, all through the power of TDDD!
Simple SQL Change Management with SqitchDavid Wheeler
SQL change management has always sucked. This talk introduces Sqitch, the VCS-aware SQL change management application that doesn’t suck. Come see how it works, learn the few simple rules you need to get the most out of it, and liberate yourself from the suckitude.
This document discusses Sqitch, a tool for managing database schema changes. Sqitch uses plain SQL scripts checked into version control. It handles dependencies between changes, generates deployment plans, and tags deployed changes. The key advantages of Sqitch include reduced duplication, built-in configuration, deployment planning, and tight integration with version control systems through a Git-like workflow.
So you've got testing religion, but the question now is, how do you test your database?
This tutorial introduces pgTAP, a comprehensive, easy-to-use test suite for PostgreSQL. We'll work from getting and installing pgTAP, to writing a simple test, to running the test and integrating it into your test environment. And then we really get into the fun stuff:
Testing scalar values
Testing error conditions and performance regressions
Testing database schemas, including tables, columns, constraints, indexes, triggers, etc.
Testing result sets
Testing procedures
Testing may sound like a dry topic, but my examples aren't! Come join the fun!
PgTAP provides a framework for writing and running test cases for PostgreSQL stored procedures and functions. The document shows an example of using PgTAP to test a function that normalizes Chinese, Arabic, and superscript text by running test cases and asserting that the output of the function matches expectations. PgTAP allows adding checks to test cases to validate SQL updates and ensures code works as intended.
Lovingly crafting a mountain, not by hand: managing piles of metadataGalen Charlton
Presentation at the British Columbia Library Conference on 1 April 2014.
Economics, time, and the burgeoning increase in the numbers of resources that libraries are acquiring or providing access to all conspire against being able to spend much time getting a metadata record perfect. Sometimes, getting a record barely good enough can be a challenge -- one record down, 50,000 more to go. In this session, Galen Charlton will discuss tools and techniques for managing ever-larger piles of metadata using open source tools, with an emphasis on iterative improvement and distributed collaboration.
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.
The document provides instructions on installing PHP, MySQL, and related tools. It then demonstrates connecting to a MySQL database from PHP, performing basic CRUD (create, read, update, delete) operations, and using sessions to share data across multiple pages. Key steps include installing PHP and MySQL, connecting to the database, executing queries, and retrieving and displaying results in HTML. Sessions are demonstrated to share a user's name across three different pages.
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryTatsuhiko Miyagawa
Building a desktop app using HTTP::Engine as a micro web server, SQLite for data storage, and jQuery for the user interface. Comet and asynchronous workers are used to enable real-time features. JSON-RPC and routing are implemented to support AJAX actions. The combination provides a lightweight "desktop app" architecture that is cross-platform.
Porting Oracle applications to PostgreSQL can be difficult due to differences in SQL syntax, data types, functions, and PL/SQL implementations between the databases. While many elements like table definitions and queries may port easily, issues arise with data types, functions, outer joins, null values, triggers, date/time handling, and PL/SQL syntax. A full rewrite may be preferable to porting in many cases. Careful evaluation and planning is needed to determine the best approach.
Architecture | Busy Java Developers Guide to NoSQL | Ted NewardJAX London
2011-11-02 | 03:45 PM - 04:35 PM |
The NoSQL movement has stormed onto the development scene, and it’s left a few developers scratching their heads, trying to figure out when to use a NoSQL database instead of a regular database, much less which NoSQL database to use. In this session, we’ll examine the NoSQL ecosystem, look at the major players, how the compare and contrast, and what sort of architectural implications they have for software systems in general.
The document discusses BioPerl, an open source collection of Perl modules for bioinformatics tasks. It provides examples of using BioPerl to work with sequence objects, read sequences from files in different formats, and retrieve sequences from GenBank. Methods are demonstrated for looping through sequences, converting file formats, and calculating properties like isoelectric points. The most acidic and basic amino acids can be identified by isoelectric point, and there is a biological explanation for these results.
The document provides guidance on writing maintainable code, including:
1) Organizing source code through file naming conventions and separating code into standalone files.
2) Using consistent naming conventions for objects like tables, sequences, packages to make relationships clear.
3) Implementing constraints, normalizing data, and planning for future changes to make the code flexible.
4) Using object-oriented principles in PL/SQL like encapsulation, inheritance and explicit data type conversions to improve modularity and prevent errors.
5) Adding comprehensive comments, error handling and documentation to prepare the code for maintenance by others.
This document provides guidance on writing maintainable code. Some key points include:
- Organize source code into separate, atomic, re-runnable files named after the objects they create. Follow consistent naming conventions.
- Use object-orientation, constraints, normalization, and flexibility to allow for expansion and minimize defects.
- Implement source control, comments, error handling, debugging capabilities, and automated testing to make the code easy to maintain and modify.
- Thoroughly test all code and document tests, errors, and successes to aid future maintenance.
SQLAdria 2009 presentation's slides about our experience with Maven and SQLJ. It delves in some details about SQLJ and performance comparion between SQLJ and JDBC with prepared statements. It also shows surprising results for what concerns performances of (DB2) SQL PL procedures
Slides from talk given at Ithaca Web Group and GORGES on CoffeeScript.
The focus is on explaining to people who haven't tried it yet that it's more than syntactic sugar. There are several real life code examples but they were explained verbally so they may not be super helpful if you don't know CoffeeScript yet.
It's an overview, not a tutorial.
Single Page Web Applications with CoffeeScript, Backbone and JasminePaulo Ragonha
This document discusses using CoffeeScript, Backbone.js, and Jasmine BDD to build single page web applications. It begins by explaining why CoffeeScript is useful for cleaning up JavaScript code and avoiding errors. It then discusses how Backbone.js provides structure for single page apps by defining models, collections, views and routers. It notes that Backbone works well with CoffeeScript. Finally, it mentions that Jasmine BDD can be used for writing professional tests.
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
On the heals of Luis Lavena's RailsConf talk "Infiltrating Ruby Onto The Enterprise Death Star Using Guerilla Tactics" comes a local and frank talk about the current state of Open Source Software (OSS) participation from Windows developers. Learn what OSS is, what motivates its contributors, and how OSS can make you a stronger developer. Be prepared to fall in love with writing software again!
We will start off with a 101 introduction to both the Ruby programming language and the Ruby on Rails web application framework. You will learn about ActiveRecord, a powerful ORM that maps rich objects to your databases, and the latest components to use it with SQL Server. As a Rails core contributor and author of the SQL Server stack, I will give you a modern insight into both that will allow you to leverage your legacy data with Ruby.
Lastly, I will review the bleeding edge tools being actively created for Windows developers to ease the transition to Ruby, Rails and OSS from a POSIX driven world. Many things have changed. It is time to learn and perform some occupational maintenance.
Why you should be using the shiny new C# 6.0 features now!Eric Phan
C# 6.0 will change the way you write C#. There are many language features that are so much more efficient you’ll wonder why they weren’t there since the beginning.
The document discusses testing code and assuring quality by learning to use the Perl modules Test::More, Perl::Critic, and Devel::Cover. It provides an overview of different testing techniques in Perl including writing unit tests, ensuring code quality and test coverage, and using the prove command-line tool to run tests.
Everyone talks about raising the bar on quality of code, but it's always hard to start implementing it when you have no clue where to start. With this talk I'm shooing that there are many levels developers can improve themselves by using the right tools. In this talk I'll go over each tool with examples how to use them against your codebase. A must attend talk for every developer that wants to scale up their quality. Most PHP developers deploy code that does what the customer requested but they don't have a clue about the quality of the product they deliver. Without this knowledge, maintenance can be a hell and very expensive. In this workshop I cover unit testing, code measuring, performance testing, debugging and profiling and give tips and tricks how to continue after this workshop.
With PHP5.3.3 recently released I really feel it is time that php developers are taking namespaces seriously. If you don’t I guarantee you will be out of a job within five years. Namespaces are a fundamental part of the future of PHP. The talk explains the usage on importing third party libraries, using it in your own code and aliasing. The full works.
This document discusses Wade Arnold's experience with PHP and Zend Framework. It provides an overview of Wade's background working on Zend Amf and other PHP projects. It also includes examples of file structures, models, and services that demonstrate how to build a PHP application that integrates with Flash using Zend Amf. The document advocates for using standards like Zend Framework to build robust PHP applications and services.
Laying the proper foundation for plugin and theme developmentTammy Hart
This document provides guidelines for proper plugin and theme development in WordPress. It discusses setting up directory structures and file naming conventions, using namespaces and constants, enqueueing scripts and stylesheets, including separate code files, localization, and using controller classes for activation, deactivation and uninstall hooks. Proper foundation practices like commenting, documentation and readme files are also covered to help developers build well-structured and organized plugins and themes.
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.
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.
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...Alan Dix
Talk at the final event of Data Fusion Dynamics: A Collaborative UK-Saudi Initiative in Cybersecurity and Artificial Intelligence funded by the British Council UK-Saudi Challenge Fund 2024, Cardiff Metropolitan University, 29th April 2025
https://alandix.com/academic/talks/CMet2025-AI-Changes-Everything/
Is AI just another technology, or does it fundamentally change the way we live and think?
Every technology has a direct impact with micro-ethical consequences, some good, some bad. However more profound are the ways in which some technologies reshape the very fabric of society with macro-ethical impacts. The invention of the stirrup revolutionised mounted combat, but as a side effect gave rise to the feudal system, which still shapes politics today. The internal combustion engine offers personal freedom and creates pollution, but has also transformed the nature of urban planning and international trade. When we look at AI the micro-ethical issues, such as bias, are most obvious, but the macro-ethical challenges may be greater.
At a micro-ethical level AI has the potential to deepen social, ethnic and gender bias, issues I have warned about since the early 1990s! It is also being used increasingly on the battlefield. However, it also offers amazing opportunities in health and educations, as the recent Nobel prizes for the developers of AlphaFold illustrate. More radically, the need to encode ethics acts as a mirror to surface essential ethical problems and conflicts.
At the macro-ethical level, by the early 2000s digital technology had already begun to undermine sovereignty (e.g. gambling), market economics (through network effects and emergent monopolies), and the very meaning of money. Modern AI is the child of big data, big computation and ultimately big business, intensifying the inherent tendency of digital technology to concentrate power. AI is already unravelling the fundamentals of the social, political and economic world around us, but this is a world that needs radical reimagining to overcome the global environmental and human challenges that confront us. Our challenge is whether to let the threads fall as they may, or to use them to weave a better future.
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersToradex
Toradex brings robust Linux support to SMARC (Smart Mobility Architecture), ensuring high performance and long-term reliability for embedded applications. Here’s how:
• Optimized Torizon OS & Yocto Support – Toradex provides Torizon OS, a Debian-based easy-to-use platform, and Yocto BSPs for customized Linux images on SMARC modules.
• Seamless Integration with i.MX 8M Plus and i.MX 95 – Toradex SMARC solutions leverage NXP’s i.MX 8 M Plus and i.MX 95 SoCs, delivering power efficiency and AI-ready performance.
• Secure and Reliable – With Secure Boot, over-the-air (OTA) updates, and LTS kernel support, Toradex ensures industrial-grade security and longevity.
• Containerized Workflows for AI & IoT – Support for Docker, ROS, and real-time Linux enables scalable AI, ML, and IoT applications.
• Strong Ecosystem & Developer Support – Toradex offers comprehensive documentation, developer tools, and dedicated support, accelerating time-to-market.
With Toradex’s Linux support for SMARC, developers get a scalable, secure, and high-performance solution for industrial, medical, and AI-driven applications.
Do you have a specific project or application in mind where you're considering SMARC? We can help with Free Compatibility Check and help you with quick time-to-market
For more information: https://www.toradex.com/computer-on-modules/smarc-arm-family
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, presentation slides, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
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.
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Aqusag Technologies
In late April 2025, a significant portion of Europe, particularly Spain, Portugal, and parts of southern France, experienced widespread, rolling power outages that continue to affect millions of residents, businesses, and infrastructure systems.
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.
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxJustin Reock
Building 10x Organizations with Modern Productivity Metrics
10x developers may be a myth, but 10x organizations are very real, as proven by the influential study performed in the 1980s, ‘The Coding War Games.’
Right now, here in early 2025, we seem to be experiencing YAPP (Yet Another Productivity Philosophy), and that philosophy is converging on developer experience. It seems that with every new method we invent for the delivery of products, whether physical or virtual, we reinvent productivity philosophies to go alongside them.
But which of these approaches actually work? DORA? SPACE? DevEx? What should we invest in and create urgency behind today, so that we don’t find ourselves having the same discussion again in a decade?
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
Impelsys provided a robust testing solution, leveraging a risk-based and requirement-mapped approach to validate ICU Connect and CritiXpert. A well-defined test suite was developed to assess data communication, clinical data collection, transformation, and visualization across integrated devices.
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
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
61. The Steps
Stub source, test, and doc files
Create the Makefile
Write the tests
Write the code
62. The Steps
Stub source, test, and doc files
Create the Makefile
Write the tests
Write the code
Write the docs
63. The Steps
Stub source, test, and doc files
Create the Makefile
Write the tests
Write the code
Write the docs
Create the metadata file
64. The Steps
Stub source, test, and doc files
Create the Makefile
Write the tests
Write the code
Write the docs
Create the metadata file
Package it up
65. The Steps
Stub source, test, and doc files
Create the Makefile
Write the tests
Write the code
Write the docs
Create the metadata file
Package it up
Release
77. Stub the Docs
pair 0.1.0
doc/pair.txt
==========
Synopsis
‐‐‐‐‐‐‐‐
‐‐ Example code here.
Description
‐‐‐‐‐‐‐‐‐‐‐
This library blah blah blah...
Usage
‐‐‐‐‐
Here's how to use this library.
Author
‐‐‐‐‐‐
[David E. Wheeler](http://justatheory.com/)
Copyright
‐‐‐‐‐‐‐‐‐
Copyright (c) 2010 David E. Wheeler.
test/sql/base.sql
93. Give it a Try
make
%
make: Nothing to be done for `all'.
%
94. Give it a Try
make
%
make: Nothing to be done for `all'.
make installcheck
%
pg_regress ‐‐psqldir=/pgsql/bin ‐‐inputdir=test base
=== dropping database "regression" ===
DROP DATABASE
=== creating database "regression" ===
CREATE DATABASE
ALTER DATABASE
=== running regression test queries ===
test base ... diff:
test/expected/base.out: No such file or directory
diff command failed with status 512:
diff "test/expected/base.out" "results/base.out" >
"results/base.out.diff"
make: *** [installcheck] Error 2
%
95. Give it a Try
make
%
make: Nothing to be done for `all'.
make installcheck
%
pg_regress ‐‐psqldir=/pgsql/bin ‐‐inputdir=test base
=== dropping database "regression" ===
DROP DATABASE
=== creating database "regression" ===
CREATE DATABASE
ALTER DATABASE
=== running regression test queries ===
test base ... diff:
test/expected/base.out: No such file or directory
diff command failed with status 512:
diff "test/expected/base.out" "results/base.out" >
"results/base.out.diff"
make: *** [installcheck] Error 2
%
96. Give it a Try
make
%
make: Nothing to be done for `all'.
make installcheck
%
pg_regress ‐‐psqldir=/pgsql/bin ‐‐inputdir=test base
=== dropping database "regression" ===
DROP DATABASE
=== creating database "regression" ===
We’ll come
CREATE DATABASE
ALTER DATABASE
back to that.
=== running regression test queries ===
test base ... diff:
test/expected/base.out: No such file or directory
diff command failed with status 512:
diff "test/expected/base.out" "results/base.out" >
"results/base.out.diff"
make: *** [installcheck] Error 2
%
147. Where are We?
Stub source, test, and doc files
Create the Makefile
Write the tests
Write the code
Write the docs
Create the metadata file
Package it up
Release
148. Where are We?
✔ Stub source, test, and doc files
Create the Makefile
Write the tests
Write the code
Write the docs
Create the metadata file
Package it up
Release
149. Where are We?
✔ Stub source, test, and doc files
✔ Create the Makefile
Write the tests
Write the code
Write the docs
Create the metadata file
Package it up
Release
150. Where are We?
✔ Stub source, test, and doc files
✔ Create the Makefile
✔ Write the tests
Write the code
Write the docs
Create the metadata file
Package it up
Release
151. Where are We?
✔ Stub source, test, and doc files
✔ Create the Makefile
✔ Write the tests
✔ Write the code
Write the docs
Create the metadata file
Package it up
Release
170. Where are We?
✔ Stub source, test, and doc files
✔ Create the Makefile
✔ Write the tests
✔ Write the code
Write the docs
Create the metadata file
Package it up
Release
171. Where are We?
✔ Stub source, test, and doc files
✔ Create the Makefile
✔ Write the tests
✔ Write the code
✔ Write the docs
Create the metadata file
Package it up
Release
172. Where are We?
✔ Stub source, test, and doc files
✔ Create the Makefile
✔ Write the tests
✔ Write the code
✔ Write the docs
✔ Create the metadata file
Package it up
Release
173. Where are We?
✔ Stub source, test, and doc files
✔ Create the Makefile
✔ Write the tests
✔ Write the code
✔ Write the docs
✔ Create the metadata file
✔ Package it up
Release
203. Where are We?
✔ Stub source, test, and doc files
✔ Create the Makefile
✔ Write the tests
✔ Write the code
✔ Write the docs
✔ Create the metadata file
✔ Package it up
Release
204. Where are We?
✔ Stub source, test, and doc files
✔ Create the Makefile
✔ Write the tests
✔ Write the code
✔ Write the docs
✔ Create the metadata file
✔ Package it up
✔ Release
209. Why PGXN?
World-wide network of mirrors
Fully indexed extensions
RESTful metadata distribution
Search and documentation site
210. Why PGXN?
World-wide network of mirrors
Fully indexed extensions
RESTful metadata distribution
Search and documentation site
Comprehensive REST API
211. Why PGXN?
World-wide network of mirrors
Fully indexed extensions
RESTful metadata distribution
Search and documentation site
Comprehensive REST API
Command-line client
226. Coming in 9.1
9.1 adding extension support
CREATE EXTENSION pair WITH SCHEMA utils;
227. Coming in 9.1
9.1 adding extension support
CREATE EXTENSION pair WITH SCHEMA utils;
Encapsulates dump/restore
228. Coming in 9.1
9.1 adding extension support
CREATE EXTENSION pair WITH SCHEMA utils;
Encapsulates dump/restore
Whatever is defined in the SQL script
229. Coming in 9.1
9.1 adding extension support
CREATE EXTENSION pair WITH SCHEMA utils;
Encapsulates dump/restore
Whatever is defined in the SQL script
Supporting it is easy
249. Migration from
Unpackaged
ALTER EXTENSION pair ADD TYPE pair;
ALTER EXTENSION pair ADD FUNCTION pair(anyelement, text);
ALTER EXTENSION pair ADD FUNCTION pair(text, anyelement);
ALTER EXTENSION pair ADD FUNCTION pair(anyelement, anyelement);
ALTER EXTENSION pair ADD FUNCTION pair(text, text);
ALTER EXTENSION pair ADD OPERATOR ~>(text, anyelement);
ALTER EXTENSION pair ADD OPERATOR ~>(anyelement, text);
ALTER EXTENSION pair ADD OPERATOR ~>(anyelement, anyelement);
ALTER EXTENSION pair ADD OPERATOR ~>(text, text);
sql/pair‐‐unpac…
250. Migration from
Unpackaged
ALTER EXTENSION pair ADD TYPE pair;
ALTER EXTENSION pair ADD FUNCTION pair(anyelement, text);
ALTER EXTENSION pair ADD FUNCTION pair(text, anyelement);
ALTER EXTENSION pair ADD FUNCTION pair(anyelement, anyelement);
ALTER EXTENSION pair ADD FUNCTION pair(text, text);
ALTER EXTENSION pair ADD OPERATOR ~>(text, anyelement);
ALTER EXTENSION pair ADD OPERATOR ~>(anyelement, text);
ALTER EXTENSION pair ADD OPERATOR ~>(anyelement, anyelement);
ALTER EXTENSION pair ADD OPERATOR ~>(text, text);
sql/pair--unpackaged--0.1.0.sql
sql/pair‐‐unpac…
274. Skeleton in the Closet
%
sudo gem install pgxn_utils
Installing ri documentation for pgxn_utils‐0.1.2...
Installing RDoc documentation for pgxn_utils‐0.1.2...
%
275. Skeleton in the Closet
%
sudo gem install pgxn_utils
Installing ri documentation for pgxn_utils‐0.1.2...
Installing RDoc documentation for pgxn_utils‐0.1.2...
pgxn_utils skeleton semver
%
create semver
create semver/semver.control
create semver/META.json
create semver/Makefile
create semver/README.md
create semver/doc/semver.md
create semver/sql/semver.sql
create semver/sql/uninstall_semver.sql
create semver/test/expected/base.out
create semver/test/sql/base.sql
%