This document summarizes and compares Ruby HTTP client libraries. It discusses the sync and async APIs of 16 libraries including Net::HTTP, HTTPClient, and Faraday. It covers their compatibility, supported features like keep-alive connections, and performance based on benchmarks. The document recommends libraries based on priorities like speed, HTML handling, API clients, and SSL support. It encourages readers to check the detailed feature matrix and report any errors found.
This document provides a taxonomy and survey of Ruby HTTP client libraries. It discusses several popular client libraries like HTTParty, Faraday, Net::HTTP, Rest-Client and Typhoeus. The survey found HTTParty and Faraday to be the most popular based on stars. It also provides code samples for making requests with some of the top libraries.
Static typing in Vault refers to enforcing the structure and location of secrets stored in Vault. This can be achieved by using a script or tool to validate secrets against JSON schemas before they are written or accessed. The schemas define the required properties and structure for different secret types. Using a generic validation tool allows schemas to be centrally defined and ensures secrets match the expected format, reducing errors from incorrectly structured secrets.
Symfony2 Service Container: Inject me, my friendKirill Chebunin
This document discusses the Symfony service container and dependency injection container. It covers topics such as inversion of control, dependency injection patterns like constructor injection, service definitions, scopes, extensions, compiler passes, and how bundles integrate with the container.
PSGI is a Perl port of Python's WSGI and Ruby's Rack that defines a common interface between web servers and frameworks. Plack provides reference implementations of PSGI servers as well as middleware and utilities. This allows frameworks to run on many servers like standalone, FastCGI, and Apache using a common PSGI application interface. Plack is fast, supports many frameworks through adapters, and provides tools like Plackup and middleware to help build and test PSGI applications.
Keep hearing about Plack and PSGI, and not really sure what they're for, and why they're popular? Maybe you're using Plack at work, and you're still copying-and-pasting `builder` lines in to your code without really knowing what's going on? What's the relationship between Plack, PSGI, and CGI? Plack from first principles works up from how CGI works, the evolution that PSGI represents, and how Plack provides a user-friendly layer on top of that.
- PSGI (Perl Web Server Gateway Interface) and Plack provide a common interface and utilities for building web applications and servers in Perl.
- PSGI defines a standard interface that web frameworks can implement to work with different server implementations. Plack provides server implementations like standalone, FastCGI and Apache modules.
- This allows frameworks to focus on the application code instead of server specifics, and servers to handle multiple frameworks. Common middleware and testing utilities are also included.
- Examples of frameworks that have adopted PSGI include Catalyst, Maypole and Mojolicious. Popular servers built on Plack include Starman and Dancer.
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)James Titcumb
You've heard of the new Zend framework, Expressive, and you've heard it's the new hotness. In this talk, I will introduce the concepts of Expressive, how to bootstrap a simple application with the framework using best practices, and how to integrate a third party tool like Doctrine ORM.
The document discusses testing practices for the Ruby programming language. It provides details on how to run various test suites that are part of the Ruby source code repository, including:
1. Running the "make test" command which runs sample tests, known bug tests, and tests defined in the test/ directory.
2. Running "make test-all" which runs core library and standard library tests under the test/ directory.
3. Running "make check" which builds encodings and extensions, runs all test tasks including test frameworks like Test::Unit and Minitest.
4. It also discusses strategies for merging test changes from external repositories like RubyGems and RDoc back into the Ruby source code
Zephir - A Wind of Change for writing PHP extensionsMark Baker
Zephir is a high-level domain-specific language that simplifies creating and maintaining native PHP extensions in C. It was developed by the team behind Phalcon to make it easier for developers to write low-level PHP extensions. Zephir compiles to C code and generates PHP extensions. It supports object-oriented programming and common control structures like if/else statements, while loops, and for loops. Zephir code is type safe and supports type hints.
Roll Your Own API Management Platform with nginx and LuaJon Moore
We recently replaced a proprietary API management solution with an in-house implementation built with nginx and Lua that let us get to a continuous delivery practice in a handful of months. Learn about our development process and the overall architecture that allowed us to write minimal amounts of code, enjoying native code performance while permitting interactive codeing, and how we leveraged other open source tools like Vagrant, Ansible, and OpenStack to build an automation-rich delivery pipeline. We will also take an in-depth look at our capacity management approach that differs from the rate limiting concept prevalent in the API community.
One of the most prolific parts of Zend Framework 2 is the Service Manager. Its many nooks and crannies dictate much of what happens inside our Zend Framework 2 applications and is incredibly powerful. Let's look into exactly what the Service Manager allows us to do and how we can take advantage of it for cleaner, and faster, code.
The document discusses using Lua modules with Nginx. It provides an overview of Nginx and Lua, describing their key features and popular uses. It then covers how to integrate Lua into Nginx using the ngx_lua module, allowing Lua code to run at various phases of the Nginx request lifecycle. Specific techniques demonstrated include using Lua for shared memory caching, logging, issuing subrequests, and network communication via cosockets. Examples of practical applications like load balancing and analytics tagging are also presented.
This document discusses embracing HTTP and changing approaches to web application development. It suggests flipping dependencies so that applications are built around HTTP rather than frameworks. It also recommends taking a more stateful approach by going CQRS/ES rather than relying on CRUD and resources. The document questions common patterns and promotes thinking beyond frameworks to more fundamental concepts.
A gentle introduction to Observability and how to setup a highly available monitoring platform across multiple datacenters.
During this talk we will investigate how we can setup and monitor an monitoring setup across 2 DCs using Prometheus, Loki, Tempo, Alertmanager and Grafana. monitoring some services with some lessons learned along the way.
RestMQ is a message queue system based on Redis that allows storing and retrieving messages through HTTP requests. It uses Redis' data structures like lists, sets, and hashes to maintain queues and messages. Messages can be added to and received from queues using RESTful endpoints. Additional features include status monitoring, queue control, and support for protocols like JSON, Comet, and WebSockets. The core functionality is language-agnostic but implementations exist in Python and Ruby.
Submit PHP: Standards in PHP world. Михайло МорозовBinary Studio
Presentation for meetup Submit PHP by Michael Morozov (PHP dev at Binary Studio)
video: https://youtu.be/3FpdfHKxEJI
ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)ZFConf Conference
Capistrano для деплоймента PHP приложений
Capistrano is a tool for deploying PHP applications. It allows deployments to be done with a single command. Capistrano handles tasks like updating files and databases, creating files/folders/symlinks, file permissions, cache clearing, and rolling back if errors occur. Common methods for deployment include FTP clients, version control hooks, Phing, shell scripts, and Rsync. Capistrano uses SSH and works with version control systems like Git, SVN, and Mercurial. It manages releases by creating dated directories and symlinking the current release. Custom tasks can be added to handle additional deployment steps.
Tatsumaki is a non-blocking web framework for Perl built on Plack and AnyEvent. It allows building asynchronous applications that can handle thousands of concurrent connections. Tatsumaki uses psgi.streaming to enable asynchronous responses. It includes a non-blocking HTTP client and pure Perl message queue for building real-time applications like chat and comet. The framework is in a beta stage but plans include services for XMPP/IRC bots and a standard comet interface.
This document introduces the Flask micro web framework. It discusses that Flask provides URL routing, request and response objects, template engines and other features for web development. Flask is simple and extensible, using Werkzeug and Jinja2. It does not include an ORM or form validation, but supports extensions. The document provides examples of basic routing, using request objects, templates and the development server. It also discusses using SQLAlchemy, WTForms and common patterns like MVC with Flask projects.
This document discusses using ngx_lua with UPYUN CDN. It provides examples of using Lua with Nginx for tasks like caching, health checking, and configuration as a service. Key points include using Lua for base64 encoding, Redis lookups, and upstream health checking. Lua provides a more flexible alternative to C modules for tasks like these by leveraging its embedding in Nginx via ngx_lua.
Alena Holligan presented on demystifying object-oriented programming in PHP. She discussed key OOP concepts like classes, objects, inheritance, polymorphism, interfaces, abstract classes and traits. The presentation covered terminology, creating classes and objects, encapsulation, inheritance and polymorphism through subclasses and interfaces. Later sections discussed namespaces, type declarations, magic methods, magic constants and static methods. The goal was to explain core OOP concepts in PHP through examples and challenges for attendees.
This document provides an overview and introduction to code reading skills and the RestClient library. It discusses why code reading is an important skill, introduces RestClient as a library for making HTTP requests, and provides examples of using RestClient to interact with Twitter's API. It also summarizes some other Ruby libraries and concepts discussed in the document like CSV, threading, and signal handling.
Small Node.js proxy to turn a paginated JSON REST API into a CSV streaming download. Examples of code and patterns.
Presented at the London Node User Group meetup, April 2014
The Parenscript Common Lisp to JavaScript compilerVladimir Sedach
The document discusses the Parenscript Common Lisp to JavaScript compiler. It describes what Parenscript is and is not, how it works, and its history and uses. Key points include that Parenscript compiles Common Lisp to readable JavaScript code without runtime dependencies or new types, and is used in web frameworks, libraries, and commercial projects.
The document discusses using Python for ethical hacking and penetration testing. It provides reasons for using Python such as its ease of use, readable syntax, rich libraries, and existing tools. It then covers various Python libraries and frameworks used for tasks like reconnaissance, scanning, exploitation, and packet manipulation. Specific topics covered include file I/O, requests, sockets, scapy, and more.
What you need to remember when you upload to CPANcharsbar
Perlのモジュールを公開するときに気をつけておいた方がよい個のこと
This document provides tips for publishing Perl modules to CPAN. It discusses things to be aware of such as distributions being permanently archived on BackPAN even if deleted, CPAN accepting almost anything, and several testing services that can improve modules like PAUSE, CPAN Testers, CPANTS, and more. It also covers best practices for metrics evaluated by these services around availability, integrity, file layout, prerequisites and more. Developers are encouraged to use better tools from the Perl Toolchain Gang to avoid issues.
Plack is a superglue for Perl web frameworks that provides a common interface called PSGI (Perl Web Server Gateway Interface) inspired by WSGI and Rack. PSGI allows any web application or framework to run on any web server by providing a standard way for applications to communicate with servers. Plack also includes tools like Plackup for running PSGI applications from the command line and middleware for common functionality that can be shared across frameworks. Many existing Perl web frameworks have been adapted to run under PSGI through Plack.
The Security library in VisualWorks went through sweeping changes recently. Main change is replacing native smalltalk implementations of various cryptographic algorithms with pluggable interfaces to external libraries, but also a complete rewrite of the SSL implementation to support all current versions of the protocol (SSL3.0 & TLS 1.0, 1.1 and 1.2). Introducing dependencies on external libraries can complicate deployment, however the resulting pluggability of implementation and perfomance boost we're getting in exchange should more then pay off in terms of widening the scope of potential applications, where the purely native implementation was simply not acceptable. In this talk we will survey these changes and discuss their impact and backward compatibility implications.
5.[29 38]a practical approach for implementation of public key infrastructure...Alexander Decker
This document summarizes the implementation of a public key infrastructure (PKI) for digital signatures within an organization. It describes setting up the PKI by configuring an OpenSSL configuration file and creating certificate authority (CA) and PKI directories. It then explains generating a self-signed root CA certificate and requesting certificates by running a script that takes a username and password as arguments and creates a p12 file and certificate for that user if it does not already exist. The PKI is implemented using OpenSSL and establishes trust between parties for digitally signing documents before sending for authentication.
The document discusses testing practices for the Ruby programming language. It provides details on how to run various test suites that are part of the Ruby source code repository, including:
1. Running the "make test" command which runs sample tests, known bug tests, and tests defined in the test/ directory.
2. Running "make test-all" which runs core library and standard library tests under the test/ directory.
3. Running "make check" which builds encodings and extensions, runs all test tasks including test frameworks like Test::Unit and Minitest.
4. It also discusses strategies for merging test changes from external repositories like RubyGems and RDoc back into the Ruby source code
Zephir - A Wind of Change for writing PHP extensionsMark Baker
Zephir is a high-level domain-specific language that simplifies creating and maintaining native PHP extensions in C. It was developed by the team behind Phalcon to make it easier for developers to write low-level PHP extensions. Zephir compiles to C code and generates PHP extensions. It supports object-oriented programming and common control structures like if/else statements, while loops, and for loops. Zephir code is type safe and supports type hints.
Roll Your Own API Management Platform with nginx and LuaJon Moore
We recently replaced a proprietary API management solution with an in-house implementation built with nginx and Lua that let us get to a continuous delivery practice in a handful of months. Learn about our development process and the overall architecture that allowed us to write minimal amounts of code, enjoying native code performance while permitting interactive codeing, and how we leveraged other open source tools like Vagrant, Ansible, and OpenStack to build an automation-rich delivery pipeline. We will also take an in-depth look at our capacity management approach that differs from the rate limiting concept prevalent in the API community.
One of the most prolific parts of Zend Framework 2 is the Service Manager. Its many nooks and crannies dictate much of what happens inside our Zend Framework 2 applications and is incredibly powerful. Let's look into exactly what the Service Manager allows us to do and how we can take advantage of it for cleaner, and faster, code.
The document discusses using Lua modules with Nginx. It provides an overview of Nginx and Lua, describing their key features and popular uses. It then covers how to integrate Lua into Nginx using the ngx_lua module, allowing Lua code to run at various phases of the Nginx request lifecycle. Specific techniques demonstrated include using Lua for shared memory caching, logging, issuing subrequests, and network communication via cosockets. Examples of practical applications like load balancing and analytics tagging are also presented.
This document discusses embracing HTTP and changing approaches to web application development. It suggests flipping dependencies so that applications are built around HTTP rather than frameworks. It also recommends taking a more stateful approach by going CQRS/ES rather than relying on CRUD and resources. The document questions common patterns and promotes thinking beyond frameworks to more fundamental concepts.
A gentle introduction to Observability and how to setup a highly available monitoring platform across multiple datacenters.
During this talk we will investigate how we can setup and monitor an monitoring setup across 2 DCs using Prometheus, Loki, Tempo, Alertmanager and Grafana. monitoring some services with some lessons learned along the way.
RestMQ is a message queue system based on Redis that allows storing and retrieving messages through HTTP requests. It uses Redis' data structures like lists, sets, and hashes to maintain queues and messages. Messages can be added to and received from queues using RESTful endpoints. Additional features include status monitoring, queue control, and support for protocols like JSON, Comet, and WebSockets. The core functionality is language-agnostic but implementations exist in Python and Ruby.
Submit PHP: Standards in PHP world. Михайло МорозовBinary Studio
Presentation for meetup Submit PHP by Michael Morozov (PHP dev at Binary Studio)
video: https://youtu.be/3FpdfHKxEJI
ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)ZFConf Conference
Capistrano для деплоймента PHP приложений
Capistrano is a tool for deploying PHP applications. It allows deployments to be done with a single command. Capistrano handles tasks like updating files and databases, creating files/folders/symlinks, file permissions, cache clearing, and rolling back if errors occur. Common methods for deployment include FTP clients, version control hooks, Phing, shell scripts, and Rsync. Capistrano uses SSH and works with version control systems like Git, SVN, and Mercurial. It manages releases by creating dated directories and symlinking the current release. Custom tasks can be added to handle additional deployment steps.
Tatsumaki is a non-blocking web framework for Perl built on Plack and AnyEvent. It allows building asynchronous applications that can handle thousands of concurrent connections. Tatsumaki uses psgi.streaming to enable asynchronous responses. It includes a non-blocking HTTP client and pure Perl message queue for building real-time applications like chat and comet. The framework is in a beta stage but plans include services for XMPP/IRC bots and a standard comet interface.
This document introduces the Flask micro web framework. It discusses that Flask provides URL routing, request and response objects, template engines and other features for web development. Flask is simple and extensible, using Werkzeug and Jinja2. It does not include an ORM or form validation, but supports extensions. The document provides examples of basic routing, using request objects, templates and the development server. It also discusses using SQLAlchemy, WTForms and common patterns like MVC with Flask projects.
This document discusses using ngx_lua with UPYUN CDN. It provides examples of using Lua with Nginx for tasks like caching, health checking, and configuration as a service. Key points include using Lua for base64 encoding, Redis lookups, and upstream health checking. Lua provides a more flexible alternative to C modules for tasks like these by leveraging its embedding in Nginx via ngx_lua.
Alena Holligan presented on demystifying object-oriented programming in PHP. She discussed key OOP concepts like classes, objects, inheritance, polymorphism, interfaces, abstract classes and traits. The presentation covered terminology, creating classes and objects, encapsulation, inheritance and polymorphism through subclasses and interfaces. Later sections discussed namespaces, type declarations, magic methods, magic constants and static methods. The goal was to explain core OOP concepts in PHP through examples and challenges for attendees.
This document provides an overview and introduction to code reading skills and the RestClient library. It discusses why code reading is an important skill, introduces RestClient as a library for making HTTP requests, and provides examples of using RestClient to interact with Twitter's API. It also summarizes some other Ruby libraries and concepts discussed in the document like CSV, threading, and signal handling.
Small Node.js proxy to turn a paginated JSON REST API into a CSV streaming download. Examples of code and patterns.
Presented at the London Node User Group meetup, April 2014
The Parenscript Common Lisp to JavaScript compilerVladimir Sedach
The document discusses the Parenscript Common Lisp to JavaScript compiler. It describes what Parenscript is and is not, how it works, and its history and uses. Key points include that Parenscript compiles Common Lisp to readable JavaScript code without runtime dependencies or new types, and is used in web frameworks, libraries, and commercial projects.
The document discusses using Python for ethical hacking and penetration testing. It provides reasons for using Python such as its ease of use, readable syntax, rich libraries, and existing tools. It then covers various Python libraries and frameworks used for tasks like reconnaissance, scanning, exploitation, and packet manipulation. Specific topics covered include file I/O, requests, sockets, scapy, and more.
What you need to remember when you upload to CPANcharsbar
Perlのモジュールを公開するときに気をつけておいた方がよい個のこと
This document provides tips for publishing Perl modules to CPAN. It discusses things to be aware of such as distributions being permanently archived on BackPAN even if deleted, CPAN accepting almost anything, and several testing services that can improve modules like PAUSE, CPAN Testers, CPANTS, and more. It also covers best practices for metrics evaluated by these services around availability, integrity, file layout, prerequisites and more. Developers are encouraged to use better tools from the Perl Toolchain Gang to avoid issues.
Plack is a superglue for Perl web frameworks that provides a common interface called PSGI (Perl Web Server Gateway Interface) inspired by WSGI and Rack. PSGI allows any web application or framework to run on any web server by providing a standard way for applications to communicate with servers. Plack also includes tools like Plackup for running PSGI applications from the command line and middleware for common functionality that can be shared across frameworks. Many existing Perl web frameworks have been adapted to run under PSGI through Plack.
The Security library in VisualWorks went through sweeping changes recently. Main change is replacing native smalltalk implementations of various cryptographic algorithms with pluggable interfaces to external libraries, but also a complete rewrite of the SSL implementation to support all current versions of the protocol (SSL3.0 & TLS 1.0, 1.1 and 1.2). Introducing dependencies on external libraries can complicate deployment, however the resulting pluggability of implementation and perfomance boost we're getting in exchange should more then pay off in terms of widening the scope of potential applications, where the purely native implementation was simply not acceptable. In this talk we will survey these changes and discuss their impact and backward compatibility implications.
5.[29 38]a practical approach for implementation of public key infrastructure...Alexander Decker
This document summarizes the implementation of a public key infrastructure (PKI) for digital signatures within an organization. It describes setting up the PKI by configuring an OpenSSL configuration file and creating certificate authority (CA) and PKI directories. It then explains generating a self-signed root CA certificate and requesting certificates by running a script that takes a username and password as arguments and creates a p12 file and certificate for that user if it does not already exist. The PKI is implemented using OpenSSL and establishes trust between parties for digitally signing documents before sending for authentication.
5.[29 38]a practical approach for implementation of public key infrastructure...Alexander Decker
This document summarizes the implementation of a public key infrastructure (PKI) for digital signatures within an organization. It proposes establishing a PKI to address needs like ensuring document integrity, authenticity of senders, privacy, and protection against repudiation when transferring documents within a private network. The implementation involves setting up a certificate authority (CA) to generate and sign certificates, configuring OpenSSL, generating a self-signed root CA certificate, and requesting certificates signed by the CA for users. The PKI is built using common standards like X.509 certificates and relies on components like the CA, certificates, and a certificate repository to establish trust between parties and reinforce digital signatures within the organizational infrastructure.
The document summarizes the evolution of the Transport Layer Security (TLS) protocol from versions 1.0 to 1.2. It describes the key components of TLS including the record protocol for fragmenting and transmitting encrypted data, handshake protocol for authentication and key exchange, and cipher suites for encryption and message authentication. The TLS protocol provides secure communication over the internet by preventing eavesdropping, tampering, and forgery of messages between client and server applications.
Transport Layer Security - Mrinal WadhwaMrinal Wadhwa
The document summarizes the evolution of the Transport Layer Security (TLS) protocol from versions 1.0 to 1.2. It describes the key components of TLS including the record protocol for fragmenting and transmitting encrypted data, handshake protocol for authentication and key exchange, and cipher suites for encryption algorithms. The TLS protocol provides secure communication over the internet by preventing eavesdropping, tampering, and forgery of messages between client and server applications.
Nate Lawson presents an overview of the TLS/SSL protocol design. He discusses the security goals of privacy, integrity, and authentication. He explains how these goals are achieved using cryptography primitives like symmetric encryption, public key encryption, certificates, message authentication codes, and secure PRNGs. He walks through the TLS handshake protocol in detail and discusses various attacks against SSL/TLS like side channel attacks, similarly-named certificate attacks, and data injection via renegotiation attacks.
The document discusses best practices for securely implementing cryptography and discusses common cryptography algorithms and implementations such as hashing, symmetric encryption, asymmetric encryption, and password hashing. It emphasizes using proven implementations like those in Django and OpenSSL and enabling HTTPS to securely transmit data. The document also cautions that securely managing cryptographic keys is critical for encryption to provide security.
Secure Communications with VisualWorks - CSTUC 2006Martin Kobetic
The document discusses secure communication techniques including:
1) Setting up a certificate authority to issue server and client certificates, and storing certificates and private keys securely on disk.
2) Configuring a secure HTTPS web server using the issued certificates for authentication and encryption.
3) Configuring an HTTPS client to authenticate with the server using the trusted certificate authority and optionally using client certificates for authentication to the server.
4) Considering performance aspects like enabling persistent connections and session resumption to improve efficiency of secure connections.
Introduction to the design principles behind SSL. This was a relatively basic talk since the audience was a networking class with no previous security experience. Talk given to Cal Poly networking class on November 29, 2007.
The document discusses new features in Rails 5.2 including Active Storage, Redis Cache Store, HTTP/2 Early Hints, Bootsnap, CSP, and Credentials. It provides details on Redis Cache Store, HTTP/2 Early Hints, Bootsnap, encrypted credentials, managing keys, and Content Security Policy. The presentation includes demos of credentials and a Content Security Policy violation report.
The document provides an overview of cryptography and SSH (Secure Shell) protocol basics. It discusses encoding vs encryption, symmetric and asymmetric encryption, digital signatures, certificates and PKI. It then describes problems like eavesdropping, spoofing and replay attacks that SSH aims to mitigate using encryption, host key verification, and unique session keys. Finally, it outlines the SSH protocol layers and authentication process using public key or PAM methods.
This document provides a high-level summary of Transport Layer Security (TLS):
- TLS establishes an encrypted connection between a client and server through a handshake that authenticates the server and negotiates encryption parameters.
- The handshake includes the client sending a ClientHello, the server responding with a Certificate and ServerHello, and agreeing on encryption keys.
- Once established, the connection uses the record protocol to securely transmit encrypted and authenticated data between the client and server. Sessions can also be resumed later using the agreed session ID.
What happens, exactly, when you connect to a server using https? In this session, we'll explore the SSL/TLS protocol at the byte level, look at non-mutual and mutual TLS, and where to look when you have a connection problem.
This document discusses two-factor authentication using time-based one-time passwords (TOTP). It provides information on TOTP implementations in Ruby and iOS, the URI format for TOTP secret keys, and how to generate and verify TOTP codes using the mdp/rotp Ruby gem. It also mentions using a mobile app like IIJ SmartKey for TOTP instead of SMS-based codes and includes API details for sending notifications with IIJ SmartKey.
This document provides an overview of network security concepts including cryptography, digital signatures, security at various layers, and firewalls. It discusses cryptography principles like plaintext, ciphertext, and keys. Symmetric and asymmetric key cryptography algorithms are explained along with digital signatures and hashing. Network layer security standards like IPsec and its authentication header and encapsulating security payload are described. Transport layer security including TLS handshake, alert, and cipher protocols is also summarized. The roles and types of firewalls in providing access control between networks are defined.
SSL/TLS is a cryptographic protocol that provides security for network communications by encrypting segments of network connections at the transport layer. It uses asymmetric and symmetric encryption, as well as digital signatures, to authenticate servers and optionally clients, and to encrypt data transmission. The handshake process establishes a shared secret between client and server to derive encryption keys, through asymmetric encryption of a randomly generated symmetric key. Subsequent communications are encrypted using the negotiated cipher suite.
SSL/TLS encryption ensures secure communication between a client and server by encrypting all data transmitted. It works by having the client and server exchange certificates and generate a symmetric key to encrypt their connection, protecting against eavesdropping and impersonation. There are different types of encryption, including symmetric encryption which uses a single shared key, and asymmetric encryption which uses public/private key pairs to securely transmit data over untrusted networks. Cryptographic hashes and digital certificates signed by certificate authorities also help ensure the integrity and identity of data.
Beyond Good & Evil: The nuts and bolts of DRM - Dave Cramer - ebookcraft 2017BookNet Canada
This document provides an overview of the basic tools and techniques used for digital rights management (DRM), including symmetric and asymmetric encryption, hashing, digital signatures, and certificates. It explains how ciphers, hashes, public/private key pairs, and certificates work and are used together to provide authentication, integrity, and non-repudiation for securing digital content and communications. Specific examples are given to illustrate symmetric encryption, digital signatures, and the certificate signing request process.
Rebuilding Cadabra Studio: AI as Our Core FoundationCadabra Studio
Cadabra Studio set out to reconstruct its core processes, driven entirely by AI, across all functions of its software development lifecycle. This journey resulted in remarkable efficiency improvements of 40–80% and reshaped the way teams collaborate. This presentation shares our challenges and lessons learned in becoming an AI-native firm, including overcoming internal resistance and achieving significant project delivery gains. Discover our strategic approach and transformative recommendations to integrate AI not just as a feature, but as a fundamental element of your operational structure. What changes will AI bring to your company?
Agentic Techniques in Retrieval-Augmented Generation with Azure AI SearchMaxim Salnikov
Discover how Agentic Retrieval in Azure AI Search takes Retrieval-Augmented Generation (RAG) to the next level by intelligently breaking down complex queries, leveraging full conversation history, and executing parallel searches through a new LLM-powered query planner. This session introduces a cutting-edge approach that delivers significantly more accurate, relevant, and grounded answers—unlocking new capabilities for building smarter, more responsive generative AI applications.
Traditional Retrieval-Augmented Generation (RAG) pipelines work well for simple queries—but when users ask complex, multi-part questions or refer to previous conversation history, they often fall short. That’s where Agentic Retrieval comes in: a game-changing advancement in Azure AI Search that brings LLM-powered reasoning directly into the retrieval layer.
This session unveils how agentic techniques elevate your RAG-based applications by introducing intelligent query planning, subquery decomposition, parallel execution, and result merging—all orchestrated by a new Knowledge Agent. You’ll learn how this approach significantly boosts relevance, groundedness, and answer quality, especially for sophisticated enterprise use cases.
Key takeaways:
- Understand the evolution from keyword and vector search to agentic query orchestration
- See how full conversation context improves retrieval accuracy
- Explore measurable improvements in answer relevance and completeness (up to 40% gains!)
- Get hands-on guidance on integrating Agentic Retrieval with Azure AI Foundry and SDKs
- Discover how to build scalable, AI-first applications powered by this new paradigm
Whether you're building intelligent copilots, enterprise Q&A bots, or AI-driven search solutions, this session will equip you with the tools and patterns to push beyond traditional RAG.
14 Years of Developing nCine - An Open Source 2D Game FrameworkAngelo Theodorou
A 14-year journey developing nCine, an open-source 2D game framework.
This talk covers its origins, the challenges of staying motivated over the long term, and the hurdles of open-sourcing a personal project while working in the game industry.
Along the way, it’s packed with juicy technical pills to whet the appetite of the most curious developers.
The rise of e-commerce has redefined how retailers operate—and reconciliation...Prachi Desai
As payment flows grow more fragmented, the complexity of reconciliation and revenue recognition increases. The result? Mounting operational costs, silent revenue leakages, and avoidable financial risk.
Spot the inefficiencies. Automate what’s slowing you down.
https://www.taxilla.com/ecommerce-reconciliation
Revolutionize Your Insurance Workflow with Claims Management SoftwareInsurance Tech Services
Claims management software enhances efficiency, accuracy, and satisfaction by automating processes, reducing errors, and speeding up transparent claims handling—building trust and cutting costs. Explore More - https://www.damcogroup.com/insurance/claims-management-software
Generative Artificial Intelligence and its ApplicationsSandeepKS52
The exploration of generative AI begins with an overview of its fundamental concepts, highlighting how these technologies create new content and ideas by learning from existing data. Following this, the focus shifts to the processes involved in training and fine-tuning models, which are essential for enhancing their performance and ensuring they meet specific needs. Finally, the importance of responsible AI practices is emphasized, addressing ethical considerations and the impact of AI on society, which are crucial for developing systems that are not only effective but also beneficial and fair.
Invited Talk at RAISE 2025: Requirements engineering for AI-powered SoftwarE Workshop co-located with ICSE, the IEEE/ACM International Conference on Software Engineering.
Abstract: Foundation Models (FMs) have shown remarkable capabilities in various natural language tasks. However, their ability to accurately capture stakeholder requirements remains a significant challenge for using FMs for software development. This paper introduces a novel approach that leverages an FM-powered multi-agent system called AlignMind to address this issue. By having a cognitive architecture that enhances FMs with Theory-of-Mind capabilities, our approach considers the mental states and perspectives of software makers. This allows our solution to iteratively clarify the beliefs, desires, and intentions of stakeholders, translating these into a set of refined requirements and a corresponding actionable natural language workflow in the often-overlooked requirements refinement phase of software engineering, which is crucial after initial elicitation. Through a multifaceted evaluation covering 150 diverse use cases, we demonstrate that our approach can accurately capture the intents and requirements of stakeholders, articulating them as both specifications and a step-by-step plan of action. Our findings suggest that the potential for significant improvements in the software development process justifies these investments. Our work lays the groundwork for future innovation in building intent-first development environments, where software makers can seamlessly collaborate with AIs to create software that truly meets their needs.
Explore the professional resume of Pramod Kumar, a skilled iOS developer with extensive experience in Swift, SwiftUI, and mobile app development. This portfolio highlights key projects, technical skills, and achievements in app design and development, showcasing expertise in creating intuitive, high-performance iOS applications. Ideal for recruiters and tech managers seeking a talented iOS engineer for their team.
Best Inbound Call Tracking Software for Small BusinessesTheTelephony
The best inbound call tracking software for small businesses offers features like call recording, real-time analytics, lead attribution, and CRM integration. It helps track marketing campaign performance, improve customer service, and manage leads efficiently. Look for solutions with user-friendly dashboards, customizable reporting, and scalable pricing plans tailored for small teams. Choosing the right tool can significantly enhance communication and boost overall business growth.
zOS CommServer support for the Network Express feature on z17zOSCommserver
The IBM z17 has undergone a transformation with an entirely new System I/O hardware and architecture model for both storage and networking. The z17 offers I/O capability that is integrated directly within the Z processor complex. The new system design moves I/O operations closer to the system processor and memory. This new design approach transforms I/O operations allowing Z workloads to grow and scale to meet the growing needs of current and future IBM Hybrid Cloud Enterprise workloads. This presentation will focus on the networking I/O transformation by introducing you to the new IBM z17 Network Express feature.
The Network Express feature introduces new system architecture called Enhanced QDIO (EQDIO). EQDIO allows the updated z/OS Communications Server software to interact with the Network Express hardware using new optimized I/O operations. The new design and optimizations are required to meet the demand of the continuously growing I/O rates. Network Express and EQDIO build the foundation for the introduction of advanced Ethernet and networking capabilities for the future of IBM Z Hybrid Cloud Enterprise users.
The Network Express feature also combines the functionality of both the OSA-Express and RoCE Express features into a single feature or adapter. A single Network Express port supports both IP protocols and RDMA protocols. This allows each Network Express port to function as both a standard NIC for Ethernet and as an RDMA capable NIC (RNIC) for RoCE protocols. Converging both protocols to a single adapter reduces Z customers’ cost for physical networking resources. With this change, IBM Z customers can now exploit Shared Memory Communications (SMC) leveraging RDMA (SMC-R) technology without incurring additional hardware costs.
In this session, the speakers will focus on how z/OS Communications Server has been updated to support the Network Express feature. An introduction to the new Enhanced QDIO Ethernet (EQENET) interface statement used to configure the new OSA is provided. EQDIO provides a variety of simplifications, such as no longer requiring VTAM user defined TRLEs, uses smarter defaults and removes outdated parameters. The speakers will also cover migration considerations for Network Express. In addition, the operational aspects of managing and monitoring the new OSA and RoCE interfaces will be covered. The speakers will also take you through the enhancements made to optimize both inbound and outbound network traffic. Come join us, step aboard and learn how z/OS Communications Server is bringing you the future in network communications with the IBM z17 Network Express feature.
Simplify Training with an Online Induction Portal for ContractorsSHEQ Network Limited
Enhance safety and compliance with our online induction portal, designed for efficient online induction and contractor onboarding processes. Contact us on +353 214536034.
Bonk coin airdrop_ Everything You Need to Know.pdfHerond Labs
The Bonk airdrop, one of the largest in Solana’s history, distributed 50% of its total supply to community members, significantly boosting its popularity and Solana’s network activity. Below is everything you need to know about the Bonk coin airdrop, including its history, eligibility, how to claim tokens, risks, and current status.
https://blog.herond.org/bonk-coin-airdrop/
How AI Can Improve Media Quality Testing Across Platforms (1).pptxkalichargn70th171
Media platforms, from video streaming to OTT and Smart TV apps, face unprecedented pressure to deliver seamless, high-quality experiences across diverse devices and networks. Ensuring top-notch Quality of Experience (QoE) is critical for user satisfaction and retention.
FME for Climate Data: Turning Big Data into Actionable InsightsSafe Software
Regional and local governments aim to provide essential services for stormwater management systems. However, rapid urbanization and the increasing impacts of climate change are putting growing pressure on these governments to identify stormwater needs and develop effective plans. To address these challenges, GHD developed an FME solution to process over 20 years of rainfall data from rain gauges and USGS radar datasets. This solution extracts, organizes, and analyzes Next Generation Weather Radar (NEXRAD) big data, validates it with other data sources, and produces Intensity Duration Frequency (IDF) curves and future climate projections tailored to local needs. This presentation will showcase how FME can be leveraged to manage big data and prioritize infrastructure investments.
Design by Contract - Building Robust Software with Contract-First DevelopmentPar-Tec S.p.A.
In the fast-paced world of software development, code quality and reliability are paramount. This SlideShare deck, presented at PyCon Italia 2025 by Antonio Spadaro, DevOps Engineer at Par-Tec, introduces the “Design by Contract” (DbC) philosophy and demonstrates how a Contract-First Development approach can elevate your projects.
Beginning with core DbC principles—preconditions, postconditions, and invariants—these slides define how formal “contracts” between classes and components lead to clearer, more maintainable code. You’ll explore:
The fundamental concepts of Design by Contract and why they matter.
How to write and enforce interface contracts to catch errors early.
Real-world examples showcasing how Contract-First Development improves error handling, documentation, and testability.
Practical Python demonstrations using libraries and tools that streamline DbC adoption in your workflow.
Marketo & Dynamics can be Most Excellent to Each Other – The SequelBradBedford3
So you’ve built trust in your Marketo Engage-Dynamics integration—excellent. But now what?
This sequel picks up where our last adventure left off, offering a step-by-step guide to move from stable sync to strategic power moves. We’ll share real-world project examples that empower sales and marketing to work smarter and stay aligned.
If you’re ready to go beyond the basics and do truly most excellent stuff, this session is your guide.
How Insurance Policy Administration Streamlines Policy Lifecycle for Agile Op...Insurance Tech Services
A modern Policy Administration System streamlines workflows and integrates with core systems to boost speed, accuracy, and customer satisfaction across the policy lifecycle. Visit https://www.damcogroup.com/insurance/policy-administration-systems for more details!
2. @nahi - Twitter, Github
Software Engineer at https://www.treasuredata.com
OSS developer and enthusiast;
committer of CRuby and JRuby
Information Security Specialist
3. Information Security
Programming in Ruby
scripts:
https://github.com/nahi/ruby-crypt/tree/master/odrk05
6. (D) S for external C
[F] Encryption in S
[G] Encryption in C
[E] authentication
(C) S for internal C
(B) C for external S
7 Implementation Patterns
(A) C for internal S
(A)
(A)
(B)
(B)
(C)
(D)
[F]
[G]
[E]
[E]
Orange: Implementation target
Gray: External system
7. (D) S for external C
[F] Encryption in S
[G] Encryption in C
[E] authentication
(C) S for internal C
(B) C for external S
7 Implementation Patterns
(A) C for internal S
(A)
(A)
(B)
(B)
(C)
(D)
[F]
[G]
[E]
[E]
Orange: Implementation target
Gray: External system
8. … in Ruby
(A) C for internal S
(B) C for external S
(C) S for internal C
(D) S for external C
[E] authentication
[F] Encryption in S
[G] Encryption in C
(A)
(A)
(B)
(B)
(C)
[E]
[F]
[G]
(D)
[E]
Blue: Acceptable
Orange: Pitfalls
Red: No way
9. Protected communication
Fixed server authentication
➔ SSL configuration:
CBC, SSLv3.0, compression,
TLSv1.0, RC4, DHE1024, …
➔ Fails for wrong endpoint
(A) C for internal S
(A)
(A)
17. Protected communication
Restricted client authentication
➔ SSL configuration
➔ Server key management
➔ Certificate rotation
➔ Fails for unexpected clients
(C) S for internal C
(C)
19. Protected communication
Client authentication
➔ SSL configuration
➔ Server key management
➔ Certificate rotation
➔ Fails for unexpected clients
➔ Recovery from key compromise
You have better solutions (Apache, Nginx, ELB, …)
(D) S for external C
(C)
(D)
20. Client authentication
On unprotected network
➔ Cipher algorithm
➔ Tamper detection
➔ Constant time operation
Use well-known library
[E] authentication
[E]
[E]
21. Data protection at rest
➔ Cipher algorithm
➔ Encryption key management
◆ Storage
◆ Usage authn / authz
◆ Usage auditing
◆ Rotation
➔ Tamper detection
➔ Processing throughput / latency
[F] Encryption in S / [G] in C
[F]
[G]
22. require 'aws-sdk'
class KMSEncryptor
CTX = { 'purpose' => 'odrk05 demonstration' }
GCM_IV_SIZE = 12; GCM_TAG_SIZE = 16
def initialize(region, key_id)
@region, @key_id = region, key_id
@kms = Aws::KMS::Client.new(region: @region)
end
def generate_data_key
resp = @kms.generate_data_key_without_plaintext(
key_id: @key_id, encryption_context: CTX, key_spec: 'AES_128'
)
resp.ciphertext_blob
end
def with_key(wrapped_key)
key = nil
begin
key = @kms.decrypt(
ciphertext_blob: wrapped_key, encryption_context: CTX
).plaintext
yield key
ensure
# TODO: confirm that key is deleted from memory
key.tr!("0-xff".force_encoding('BINARY'), "0")
end
end
23. def encrypt(wrapped_key, plaintext)
with_key(wrapped_key) do |key|
cipher = OpenSSL::Cipher::Cipher.new('aes-128-gcm')
iv = OpenSSL::Random.random_bytes(GCM_IV_SIZE)
cipher.encrypt; cipher.key = key;cipher.iv = iv
iv + cipher.update(plaintext) + cipher.final
end
end
def decrypt(wrapped_key, ciphertext)
with_key(wrapped_key) do |key|
iv, data = ciphertext.unpack("a#{GCM_IV_SIZE}a*")
auth_tag = data.slice!(data.bytesize - GCM_TAG_SIZE, GCM_TAG_SIZE)
cipher = OpenSSL::Cipher::Cipher.new('aes-128-gcm')
cipher.decrypt; cipher.key = key; cipher.iv = iv
cipher.auth_tag = auth_tag
cipher.update(data) + cipher.final
end
end
end
encryptor = KMSEncryptor.new('ap-northeast-1', 'alias/nahi-test-tokyo')
# generate key for each data, customer, or something
wrapped_key = encryptor.generate_data_key
plaintext = File.read(__FILE__)
ciphertext = encryptor.encrypt(wrapped_key, plaintext)
# save wrapped_key and ciphertext in DB, File or somewhere
# restore wrapped_key and ciphertext from DB, File or somewhere
puts encryptor.decrypt(wrapped_key, ciphertext)
jruby-openssl does not
support aes-gcm…
-> next page
24. if defined?(JRuby)
require 'java'
java_import 'javax.crypto.Cipher'
java_import 'javax.crypto.SecretKey'
java_import 'javax.crypto.spec.SecretKeySpec'
java_import 'javax.crypto.spec.GCMParameterSpec'
class KMSEncryptor
# Overrides
def encrypt(wrapped_key, plaintext)
with_key(wrapped_key) do |key|
cipher = Cipher.getInstance('AES/GCM/PKCS5Padding')
iv = OpenSSL::Random.random_bytes(GCM_IV_SIZE)
spec = GCMParameterSpec.new(GCM_TAG_SIZE * 8, iv.to_java_bytes)
cipher.init(1, SecretKeySpec.new(key.to_java_bytes, 0, key.bytesize, 'AES'), spec)
ciphertext = String.from_java_bytes(
cipher.doFinal(plaintext.to_java_bytes), Encoding::BINARY)
iv + ciphertext
end
end
# Overrides
def decrypt(wrapped_key, ciphertext)
with_key(wrapped_key) do |key|
cipher = Cipher.getInstance('AES/GCM/PKCS5Padding')
iv, data = ciphertext.unpack("a#{GCM_IV_SIZE}a*")
spec = GCMParameterSpec.new(GCM_TAG_SIZE * 8, iv.to_java_bytes)
cipher.init(2, SecretKeySpec.new(key.to_java_bytes, 0, key.bytesize, 'AES'), spec)
String.from_java_bytes(cipher.doFinal(data.to_java_bytes), Encoding::BINARY)
end
end
end
end
aes-128-gcm in JRuby!
25. … in Ruby
(A) C for internal S
(B) C for external S
(C) S for internal C
(D) S for external C
[E] authentication
[F] Encryption in S
[G] Encryption in C
(A)
(A)
(B)
(B)
(C)
[E]
[F]
[G]
(D)
[E]
Blue: Acceptable
Orange: Pitfalls
Red: No way