This document provides an overview of the available debuggers and key features of the Visual Inspect and Native Inspect debuggers. Visual Inspect is preferred for most uses and supports debugging TNS/E and TNS programs. Native Inspect is based on GDB/WDB and uses UNIX-style commands, supporting TNS/E, TNS and COBOL programs. Both debuggers allow setting breakpoints, examining variables, and stepping through code.
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source CodeNicolas Bettenburg
Talk on Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code, given at the 16th European Conference on Software Maintenance and Reengineering (CSMR'12) in Hungary.
various tricks for remote linux exploits by Seok-Ha Lee (wh1ant)CODE BLUE
Modern operating systems include hardened security mechanisms to block exploit attempts. ASLR and NX (DEP) are two examples of the mechanisms that are widely implemented for the sake of security. However, there exists ways to bypass such protections by leveraging advanced exploitation techniques. It becomes harder to achieve code execution when the exploitation originates from a remote location, such as when the attack originates from a client, targeting server daemons. In such cases it is harder to find out the context information of target systems and, therefore, harder to achieve code execution. Knowledge on the memory layout of the targeted process is a crucial piece of the puzzle in developing an exploit, but it is harder to figure out when the exploit attempt is performed remotely. Recently, there have been techniques to leverage information disclosure (memory leak) vulnerabilities to figure out where specific library modules are loaded in the memory layout space, and such classes of vulnerabilities have been proven to be useful to bypass ASLR. However, there is also a different way of figuring out the memory layout of a process running in a remote environment. This method involves probing for valid addresses in target remote process. In a Linux environment, forked child processes will inherit already randomized memory layout from the parent process. Thus every client connection made to server daemons will share the same memory layout. The memory layout randomization is only done during the startup of the parent service process, and not randomized again when it is forking a child process to handle client connections. Due to the inheritance of child processes, it is possible to figure out a small piece of different information from every connection, and these pieces can be assembled later to get the idea of a big picture of the target process's remote memory layout. Probing to see if a given address is a valid memory address in context of the target remote process and assembling such information together, an attacker can figure out where the libc library is loaded on the memory, thus allowing exploits to succeed further in code execution. One might call it brute force, but with a smart brute forcing strategy, the number of minimal required attempts are significantly reduced to less than 10 in usual cases. In this talk, we will be talking about how it is possible to probe for memory layout space utilizing a piece of code to put the target in a blocked state, and to achieve stable code execution in remote exploit attempt scenarios using such information, as well as other tricks that are often used in remote exploit development in the Linux environment.
http://codeblue.jp/en-speaker.html#SeokHaLee
PostgreSQL Procedural Languages: Tips, Tricks and GotchasJim Mlodgenski
One of the most powerful features of PostgreSQL is its diversity of procedural languages, but with that diversity comes a lot of options.
Did you ever wonder:
- What all of those options are on the CREATE FUNCTION statement?
- How do they affect my application?
- Does my choice of procedural language affect the performance of my statements?
- Should I create a single trigger with IF statements or several simple triggers?
- How do I debug my code?
- Can I tell which line in my function is taking all of the time?
Using Cerberus and PySpark to validate semi-structured datasetsBartosz Konieczny
This short presentation shows one of ways to to integrate Cerberus and PySpark. It was initially given at Paris.py meetup (https://www.meetup.com/Paris-py-Python-Django-friends/events/264404036/)
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source CodeNicolas Bettenburg
Talk on Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code, given at the 16th European Conference on Software Maintenance and Reengineering (CSMR'12) in Hungary.
various tricks for remote linux exploits by Seok-Ha Lee (wh1ant)CODE BLUE
Modern operating systems include hardened security mechanisms to block exploit attempts. ASLR and NX (DEP) are two examples of the mechanisms that are widely implemented for the sake of security. However, there exists ways to bypass such protections by leveraging advanced exploitation techniques. It becomes harder to achieve code execution when the exploitation originates from a remote location, such as when the attack originates from a client, targeting server daemons. In such cases it is harder to find out the context information of target systems and, therefore, harder to achieve code execution. Knowledge on the memory layout of the targeted process is a crucial piece of the puzzle in developing an exploit, but it is harder to figure out when the exploit attempt is performed remotely. Recently, there have been techniques to leverage information disclosure (memory leak) vulnerabilities to figure out where specific library modules are loaded in the memory layout space, and such classes of vulnerabilities have been proven to be useful to bypass ASLR. However, there is also a different way of figuring out the memory layout of a process running in a remote environment. This method involves probing for valid addresses in target remote process. In a Linux environment, forked child processes will inherit already randomized memory layout from the parent process. Thus every client connection made to server daemons will share the same memory layout. The memory layout randomization is only done during the startup of the parent service process, and not randomized again when it is forking a child process to handle client connections. Due to the inheritance of child processes, it is possible to figure out a small piece of different information from every connection, and these pieces can be assembled later to get the idea of a big picture of the target process's remote memory layout. Probing to see if a given address is a valid memory address in context of the target remote process and assembling such information together, an attacker can figure out where the libc library is loaded on the memory, thus allowing exploits to succeed further in code execution. One might call it brute force, but with a smart brute forcing strategy, the number of minimal required attempts are significantly reduced to less than 10 in usual cases. In this talk, we will be talking about how it is possible to probe for memory layout space utilizing a piece of code to put the target in a blocked state, and to achieve stable code execution in remote exploit attempt scenarios using such information, as well as other tricks that are often used in remote exploit development in the Linux environment.
http://codeblue.jp/en-speaker.html#SeokHaLee
PostgreSQL Procedural Languages: Tips, Tricks and GotchasJim Mlodgenski
One of the most powerful features of PostgreSQL is its diversity of procedural languages, but with that diversity comes a lot of options.
Did you ever wonder:
- What all of those options are on the CREATE FUNCTION statement?
- How do they affect my application?
- Does my choice of procedural language affect the performance of my statements?
- Should I create a single trigger with IF statements or several simple triggers?
- How do I debug my code?
- Can I tell which line in my function is taking all of the time?
Using Cerberus and PySpark to validate semi-structured datasetsBartosz Konieczny
This short presentation shows one of ways to to integrate Cerberus and PySpark. It was initially given at Paris.py meetup (https://www.meetup.com/Paris-py-Python-Django-friends/events/264404036/)
Maximizing SQL Reviews and Tuning with pt-query-digestPythian
PalominoDB's Mark Filipi feels that pt-query-digest is one of the more valuable components of the Percona Toolkit available as OSS to DBAs. In this talk, Mark will teach with an eye towards real world test cases, output reviews and anecdotal production experience.
Lean React - Patterns for High Performance [ploneconf2017]Devon Bernard
Modern web tools are enabling developers to build web apps in no-wifi and low-fi environments. This talk is about performance and how frontend engineers can create a better user experience while using less resources.
Talk presented on Oct 20, 2017 at PloneConf2017.
Topics:
Airplane mode for web apps:
Mobile and native apps get lots of praise for offline mode. But why aren’t we seeing more web-apps using this. Two reasons: persistent data and code storage. We can now provide offline apps with Web Workers and IndexedDB that also improve the smoothness and robustness of our web apps in high bandwidth environments.
Redux:
Persisting state, store middleware, store subscriptions, normalizing data, normalizr, pure reducers, redux dev tools
Components:
Data heavy pages, component blocks, component skeletons, component lifecycle, shouldComponentUpdate, virtual dom, chrome render tools, method binding
Actions:
ActionTypes, action chaining, promises, store.getState()
General:
env files, route wrappers, offline first, web workers, indexeddb, eslint, airbnb style guide
From Zero to Application Delivery with NixOSSusan Potter
Managing configurations for different kinds of nodes and cloud resources in a microservice architecture can be an operational nightmare, especially if not managed with the application codebase. CI and CD job environments often tend to stray from production configuration yielding their results unpredictable at best, or producing false positives in the worst case. Code pushes to staging and production can have unintended consequences which often can’t be inspected fully on a dry run.
This session will show you a toolchain and immutable infrastructure principles that will allow you to define your infrastructure in code versioned alongside your application code that will give you repeatable configuration, ephemeral testing environments, consistent CI/CD environments, and diffable dependency transparency all before pushing changes to production.
Androsia: A step ahead in securing in-memory Android application data by Sami...CODE BLUE
Android does not provide explicit APIs to reclaim memory from sensitive objects which are not "used" ahead in the program. "java.security.*" library does provide classes for holding sensitive data (like KeyStore.PasswordProtection) and API's (like destroy()) to remove sensitive content. However, the onus of calling these APIs is on the developer. Developers may invoke these APIs at a stage very late in the code or may even forget to invoke them.
In this work, we propose a novel approach to determine at every program statement which security critical objects will not be used by the app in the future. Using results from our 'data flow analysis' we can decide to flush out the security sensitive objects immediately after their last use, thereby preventing an attacker from dumping security critical information. This way an app can truly provide defence in depth.
We incorporate support for tracking objects in all possible scopes (instance field, static field, local) in our tool called Androsia, which uses static code analysis to perform a summary based inter-procedural data flow analysis to determine the points in the program where security sensitive objects are last used. Androsia then performs bytecode transformation of the app to flush out the secrets resetting the objects to their default values.
There are 13 System level program codes in C language. Same algorithm can be used for other languages such as YACC or LEX. The programs are as follows:
1. Create a file, add view:
2. Single Pass Assembler
3. Pass 1 Direct Linking Loader
4. Pass 2 Direct Linking Loader
5. Absolute Loader
6. Relocation Loader
7. Pass 1 Macro Processor
8. Pass 2 Macro Processor
9. Lexical Analyzer
10. Parse Tree
How to Design a Great API (using flask) [ploneconf2017]Devon Bernard
How do you build an API that developers love building and consumers love using?
There's a lot that goes into creating a great API. This presentation shares some tips & tricks, architectural patterns, and best practices that go into building a great engineering environment around your API.
Talk presented on Oct 18, 2017 at PloneConf2017.
Topics covered by this talk:
Intuitive Practices:
standardization, configuration/environment files, ORMs, SQLAlchemy, database migrations, Alembic, database seeds, requirements.txt, package management, dependency management, setup scripts
Durable Practices:
Unit Tests, virtual environments, flush vs commit, error rollbacks, request lifecycle, session lifecycle
Flexible Practices:
Directory structures, application factories, blueprints, python debugger
Reliable Practices:
Logging, progressive rollouts, slack hooks, cron health checks, api versioning, api analytics
Use Friendly Practices:
Endpoint design, endpoint documentation, debugging tools, postman
Speed Practices:
Python profiling, Bulk SQL Inserts, caching
As presented at Confoo 2013.
More than some arcane NoSQL tool, Redis is a simple but powerful swiss army knife you can begin using today.
This talk introduces the audience to Redis and focuses on using it to cleanly solve common problems. Along the way, we'll see how Redis can be used as an alternative to several common PHP tools.
Sergi Álvarez & Roi Martín - Radare2 Preview [RootedCON 2010]RootedCON
Hace aproximadamente 1 año empezó radare2, un desarrollo paralelo a radare, orientado a ofrecer una API genérica y simple para C, Vala, Genie, python, perl y ruby con el fin de mantener el mínimo de código y presentar un acceso genérico a backends de debugging, formato de fichero, arquitectura, etc.
El framework facilita el uso de plugins o scripting para usar diversos backends de ensamblar/desensamblar, analizar cabeceras, emular, depurar, analizar código, buscar patrones, secuencias binarias entre otras.
Diseñado para ser portable entre múltiples arquitecturas y sistemas operativos, entre ellos, Linux, BSD, Solaris, Windows, x86-32/64, ARM, PowerPC y MIPS.
En la charla se presentará el conjunto de librerías y ejemplos prácticos de uso de esta herramienta.
Cisco network equipment has always been an attractive attack target due to its prevalence and the key role that it plays in network structure and security.
This equipment is based on a wide variety of OS (firmware) architectures, types, and versions, so it is much harder to develop a universal shellcode. Publicly available Cisco IOS shellcodes are tailored to specific equipment, have narrow functionality, and are not exactly useful for penetration testing.
This talk is the presentation of a research initiated by our research center to create a shellcode which is as easily portable between different IOS firmwares as possible and which provides a lot of pentesting features because it can dynamically change the shellcode destination at the stage of post-exploitation.
We will also consider the possibility of creating a worm which could spread across the infrastructure, from firewall to router, from router to switch, etc.
Maximizing SQL Reviews and Tuning with pt-query-digestPythian
PalominoDB's Mark Filipi feels that pt-query-digest is one of the more valuable components of the Percona Toolkit available as OSS to DBAs. In this talk, Mark will teach with an eye towards real world test cases, output reviews and anecdotal production experience.
Lean React - Patterns for High Performance [ploneconf2017]Devon Bernard
Modern web tools are enabling developers to build web apps in no-wifi and low-fi environments. This talk is about performance and how frontend engineers can create a better user experience while using less resources.
Talk presented on Oct 20, 2017 at PloneConf2017.
Topics:
Airplane mode for web apps:
Mobile and native apps get lots of praise for offline mode. But why aren’t we seeing more web-apps using this. Two reasons: persistent data and code storage. We can now provide offline apps with Web Workers and IndexedDB that also improve the smoothness and robustness of our web apps in high bandwidth environments.
Redux:
Persisting state, store middleware, store subscriptions, normalizing data, normalizr, pure reducers, redux dev tools
Components:
Data heavy pages, component blocks, component skeletons, component lifecycle, shouldComponentUpdate, virtual dom, chrome render tools, method binding
Actions:
ActionTypes, action chaining, promises, store.getState()
General:
env files, route wrappers, offline first, web workers, indexeddb, eslint, airbnb style guide
From Zero to Application Delivery with NixOSSusan Potter
Managing configurations for different kinds of nodes and cloud resources in a microservice architecture can be an operational nightmare, especially if not managed with the application codebase. CI and CD job environments often tend to stray from production configuration yielding their results unpredictable at best, or producing false positives in the worst case. Code pushes to staging and production can have unintended consequences which often can’t be inspected fully on a dry run.
This session will show you a toolchain and immutable infrastructure principles that will allow you to define your infrastructure in code versioned alongside your application code that will give you repeatable configuration, ephemeral testing environments, consistent CI/CD environments, and diffable dependency transparency all before pushing changes to production.
Androsia: A step ahead in securing in-memory Android application data by Sami...CODE BLUE
Android does not provide explicit APIs to reclaim memory from sensitive objects which are not "used" ahead in the program. "java.security.*" library does provide classes for holding sensitive data (like KeyStore.PasswordProtection) and API's (like destroy()) to remove sensitive content. However, the onus of calling these APIs is on the developer. Developers may invoke these APIs at a stage very late in the code or may even forget to invoke them.
In this work, we propose a novel approach to determine at every program statement which security critical objects will not be used by the app in the future. Using results from our 'data flow analysis' we can decide to flush out the security sensitive objects immediately after their last use, thereby preventing an attacker from dumping security critical information. This way an app can truly provide defence in depth.
We incorporate support for tracking objects in all possible scopes (instance field, static field, local) in our tool called Androsia, which uses static code analysis to perform a summary based inter-procedural data flow analysis to determine the points in the program where security sensitive objects are last used. Androsia then performs bytecode transformation of the app to flush out the secrets resetting the objects to their default values.
There are 13 System level program codes in C language. Same algorithm can be used for other languages such as YACC or LEX. The programs are as follows:
1. Create a file, add view:
2. Single Pass Assembler
3. Pass 1 Direct Linking Loader
4. Pass 2 Direct Linking Loader
5. Absolute Loader
6. Relocation Loader
7. Pass 1 Macro Processor
8. Pass 2 Macro Processor
9. Lexical Analyzer
10. Parse Tree
How to Design a Great API (using flask) [ploneconf2017]Devon Bernard
How do you build an API that developers love building and consumers love using?
There's a lot that goes into creating a great API. This presentation shares some tips & tricks, architectural patterns, and best practices that go into building a great engineering environment around your API.
Talk presented on Oct 18, 2017 at PloneConf2017.
Topics covered by this talk:
Intuitive Practices:
standardization, configuration/environment files, ORMs, SQLAlchemy, database migrations, Alembic, database seeds, requirements.txt, package management, dependency management, setup scripts
Durable Practices:
Unit Tests, virtual environments, flush vs commit, error rollbacks, request lifecycle, session lifecycle
Flexible Practices:
Directory structures, application factories, blueprints, python debugger
Reliable Practices:
Logging, progressive rollouts, slack hooks, cron health checks, api versioning, api analytics
Use Friendly Practices:
Endpoint design, endpoint documentation, debugging tools, postman
Speed Practices:
Python profiling, Bulk SQL Inserts, caching
As presented at Confoo 2013.
More than some arcane NoSQL tool, Redis is a simple but powerful swiss army knife you can begin using today.
This talk introduces the audience to Redis and focuses on using it to cleanly solve common problems. Along the way, we'll see how Redis can be used as an alternative to several common PHP tools.
Sergi Álvarez & Roi Martín - Radare2 Preview [RootedCON 2010]RootedCON
Hace aproximadamente 1 año empezó radare2, un desarrollo paralelo a radare, orientado a ofrecer una API genérica y simple para C, Vala, Genie, python, perl y ruby con el fin de mantener el mínimo de código y presentar un acceso genérico a backends de debugging, formato de fichero, arquitectura, etc.
El framework facilita el uso de plugins o scripting para usar diversos backends de ensamblar/desensamblar, analizar cabeceras, emular, depurar, analizar código, buscar patrones, secuencias binarias entre otras.
Diseñado para ser portable entre múltiples arquitecturas y sistemas operativos, entre ellos, Linux, BSD, Solaris, Windows, x86-32/64, ARM, PowerPC y MIPS.
En la charla se presentará el conjunto de librerías y ejemplos prácticos de uso de esta herramienta.
Cisco network equipment has always been an attractive attack target due to its prevalence and the key role that it plays in network structure and security.
This equipment is based on a wide variety of OS (firmware) architectures, types, and versions, so it is much harder to develop a universal shellcode. Publicly available Cisco IOS shellcodes are tailored to specific equipment, have narrow functionality, and are not exactly useful for penetration testing.
This talk is the presentation of a research initiated by our research center to create a shellcode which is as easily portable between different IOS firmwares as possible and which provides a lot of pentesting features because it can dynamically change the shellcode destination at the stage of post-exploitation.
We will also consider the possibility of creating a worm which could spread across the infrastructure, from firewall to router, from router to switch, etc.
A quick tutorial on what debuggers are and how to use them. We present a debugging example using GDB. At the end of this tutorial, you will be able to work your way through a crash and analyze the cause of the error responsible for the crash.
Linux kernel tracing superpowers in the cloudAndrea Righi
The Linux 4.x series introduced a new powerful engine of programmable tracing (BPF) that allows to actually look inside the kernel at runtime. This talk will show you how to exploit this engine in order to debug problems or identify performance bottlenecks in a complex environment like a cloud. This talk will cover the latest Linux superpowers that allow to see what is happening “under the hood” of the Linux kernel at runtime. I will explain how to exploit these “superpowers” to measure and trace complex events at runtime in a cloud environment. For example, we will see how we can measure latency distribution of filesystem I/O, details of storage device operations, like individual block I/O request timeouts, or TCP buffer allocations, investigating stack traces of certain events, identify memory leaks, performance bottlenecks and a whole lot more.
Beyond PHP - It's not (just) about the codeWim Godden
Most PHP developers focus on writing code. But creating Web applications is about much more than just wrting PHP. Take a step outside the PHP cocoon and into the big PHP ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.
Workshop "Can my .NET application use less CPU / RAM?", Yevhen TatarynovFwdays
In most cases it’s very hard to predict the number of resources needed for your .NET application. But If you spot some abnormal CPU or RAM usage, how to answer the question “Can my application use less?”.
Let’s see samples from real projects, where optimal resource usage by the application became one of the values for the product owner and see how less resource consumption can be.
The workshop will be actual for .NET developers who are interested in optimization of .NET applications, QA engineers who involved performance testing of .NET applications. It also will be interesting to everyone who "suspected" their .NET applications of non-optimal use of resources, but for some reason did not start an investigation.
Beyond php it's not (just) about the codeWim Godden
Most PHP developers focus on writing code. But creating Web applications is about much more than just wrting PHP. Take a step outside the PHP cocoon and into the big PHP ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak PROIDEA
Speaker: Andrzej Dyjak
Language: English
In recent years security industry started to grow fond of Apple’s iOS and OS X platforms. This talk will cover one of XNU's flagship debugging utilities: DTrace, a dynamic tracing framework for troubleshooting kernel and application problems on production systems in real time. It will be shown how it can be used in order to ease various tasks within the realm of dynamic binary analysis and beyond.
CONFidence: http://confidence.org.pl/
Beyond php - it's not (just) about the codeWim Godden
Most PHP developers focus on writing code. But creating Web applications is about much more than just wrting PHP. Take a step outside the PHP cocoon and into the big PHP ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.
下記論文を扱った研究室内輪読用の資料です
This is slides for group reading in Lab.
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, "Operating Systems: Three Easy Pieces"
http://pages.cs.wisc.edu/~remzi/OSTEP/
Process Address Space: The way to create virtual address (page table) of user...Adrian Huang
Process Address Space: The way to create virtual address (page table) of userspace application.
Note: When you view the the slide deck via web browser, the screenshots may be blurred. You can download and view them offline (Screenshots are clear).
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016Susan Potter
This talk will introduce the audience to the Nix packaging, NixOS, and related ecosystem tools for Erlang/Elixir developers.
By reviewing common development, testing, and deployment problems we will look at what Nix has to offer to aid Erlang/Elixir developers in these areas.
From seamless developer environment bootstrapping to consistent CI environments and beyond.
Lessons Learned: Running InfluxDB Cloud and Other Cloud Services at Scale | T...InfluxData
In this session, Tim will cover principles, learnings, and practical advice from operating multiple cloud services at scale, including of course our InfluxDB Cloud service. What do we monitor, what do we alert on, and how did we architect it all? What are our underlying architectural and operational principles?
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
2. Available DebuggersAvailable Debuggers
◦ Visual Inspect
Preferred for most uses
Default if Inspect attribute on
◦ Native Inspect (eInspect)
TNS/E programs only
Extensible through tcl scripts
Default if no others available
◦ Inspect
TNS and Screen COBOL programs only
TNS saveabend files
◦ Debug is not available on TNS/E
4 - Debuggers 2
3. Debugger SelectionDebugger Selection
4 - Debuggers 3
TNS/E
Process
Visual
Inspect
Inspect
Native
Inspect
Native
Inspect
INSPECT ON INSPECT OFF
VISUAL
INSPECT
UNAVAILABLE
INSPECT
ON
INSPECT OFFTNS
Process
Visual
Inspect
4. Visual InspectVisual Inspect
TNS/E,TNS programs
◦ Basic TNS/E support , for example:
watch items, breakpoints, resume
◦ Better switching to/from system debugger (eInspect)
◦ Creating/modifying/formatting register watch items
◦ Formatting EMS/SPI buffers as watch items
◦ Displaying/modifying/monitoring/formatting
arbitrary memory
◦ Providing multi-byte support
◦ Supporting efficient conditional data breakpoints
◦ Stepping instructions and statements
◦ Displaying source statements and corresponding instructions
4 - Debuggers 4
5. Visual Inspect (1 of 5)Visual Inspect (1 of 5)
4 - Debuggers 5
Execution
Mode
Indicator
Step Instruction and
Step In Instruction
10. Native InspectNative Inspect
◦ Based on GDB (Open Source)/WDB (HP version)
◦ UNIX-style commands
for example: fopen <filenum> –d
◦ Inspect Native Inspect commands:
source list
obey source
break break
resume continue
step next
step in step
step out finish
clear delete
display print
modify set
add program snapshot
4 - Debuggers 10
11. Native Inspect — FeaturesNative Inspect — Features
◦ Automatically displays next source statement
“source on” equivalent
◦ Automatically displays function arguments
Value if data item
Address if pointer
◦ Automatically displays return values from functions
When function is “finished”
Including void functions
◦ Breakpoint display shows number of times triggered
◦ Supports TCL scripts
4 - Debuggers 11
12. Starting Native InspectStarting Native Inspect
◦ Starting the process:
Guardian: RUND or RUNV
OSS: run –debug or runv
◦ Running process
DEBUG $xyz
◦ Programmatically
PROCESS_DEBUG_()
DEBUG()
◦ Customization file: EINSCSTM executed during start-up
Note: In all of the cases above, Visual Inspect will be the
activated debugger if the Inspect attribute is on and the
Visual Inspect client is running.
4 - Debuggers 12
13. Native Inspect - HelpNative Inspect - Help
help [<topic>]
(eInspect 2,372):help
Native Inspect help
The following are major topics from which you can
choose:
all -- List all Native Inspect commands.
help -- Help on help
source -- Source in a Tcl script file.
target process -- Commands that support process
debugging.
target snapshot -- Commands that support snapshot
analysis.
Type "help" followed by the keyword of the topic or
Native Inspect command you want to browse.
4 - Debuggers 13
14. Native Inspect – BreakpointsNative Inspect – Breakpoints
◦ Setting:
break {function | paragraph | [source-file:]line#} [if cond-exp]
(eInspect 2,372):break get_second_number
Breakpoint 2 at 0x70000ba0:1: file DAGGER.$DATA00.TERRYG.CALLC,
line 6.
(eInspect 2,372):b callc:8 if second_number== 99
Breakpoint 3 at 0x70000bf0:1: file DAGGER.$DATA00.TERRYG.CALLC,
line 8.
◦ Displaying:
info break
(eInspect 2,372):info b
Num Type Disp Enb Glb Address What
2 breakpoint keep y n 0x70000ba1 in get_second_number
at DAGGER.$DATA00.TERRYG.CALLC:6 breakpoint already hit 1 time
3 breakpoint keep y n 0x70000bf1 in get_second_number
at DAGGER.$DATA00.TERRYG.CALLC:8 stop only if second_number == 99
◦ Clearing:
delete [breakpoint#] - Deletes all breakpoints if no number given
4 - Debuggers 14
15. Native Inspect – Execution ControlNative Inspect – Execution Control
◦ Execute until breakpoint:
Continue: (eInspect 2,372):c
Continuing.
Breakpoint 2, get_second_number (first_number=12,
total=0x6fffff44) at DAGGER.$DATA00.TERRYG.CALLC:6
* 6 printf ("ENTER THE SECOND NUMBER: ");
◦ Execute next statement (including called
function)
Next: (eInspect 2,372):n
main () at DAGGER.$DATA00.TERRYG.MAINC:16
* 16 while (req_run_status == 0)
4 - Debuggers 15
16. Native Inspect – Execution ControlNative Inspect – Execution Control
◦ Execute to a specified location:
until function | paragraph | [source-file:]line#
◦ Execute the remainder of a function (stop on
return to calling function):
fin[ish]
(eInspect 2,372):finish
Run till exit from #0 get_second_number (first_number=12,
total=0x6fffff44)
at DAGGER.$DATA00.TERRYG.CALLC:6
ENTER THE SECOND NUMBER: 34
THE NUMBERS ENTERED WERE: 12 & 34
0x70000af0:0 in main () at DAGGER.$DATA00.TERRYG.MAINC:24
* 24 get_second_number (first_number, &total);
Value returned is $1 = 34
4 - Debuggers 16
17. Commands at a BreakpointCommands at a Breakpoint
◦ Execute commands at a breakpoint
(eInspect 2,372):info b
Num Type Disp Enb Glb Address What
2 breakpoint keep y n 0x70000ba1 in
get_second_number at DAGGER.$DATA00.TERRYG.CALLC:6
(eInspect 2,372):commands 2
Type commands for when breakpoint 2 is hit, one per line.
End with a line saying just "end".
>print first_number
>print *total
>end
(eInspect 2,372):c - Continuing.
Breakpoint 2, get_second_number (first_number=12,
total=0x6fffff44)at DAGGER.$DATA00.TERRYG.CALLC:6
* 6 printf ("ENTER THE SECOND NUMBER: ");
$1 = 12
$2 = 0
4 - Debuggers 17
18. Native Inspect – Data DisplayNative Inspect – Data Display
◦ Local variables orWorking Storage
info locals
(eInspect 2,372):info locals
req_run_status = 0
first_number = 12
total = 46
(eInspect 0,779):info locals
REQ-RUN-STATUS = 0
warning: Invalid or Uninitialized zoned decimal value: FIRST-NUMBER = 000
◦ Other variables
print [/format-letter] <variable-name > | <condition-name>
format-letter is o(octal), x(hex), d(decimal), u(unsigned decimal),
t(binary), f(float), a(address), i(instruction), c(char) and s(string).
(eInspect 2,372):p total
$2 = 46
(eInspect 2,372):p /x total
$3 = 0x2e
4 - Debuggers 18
19. Native Inspect – Data DisplayNative Inspect – Data Display
◦ Arrays
print <array-name>@<n>
set print elements <n> (default is 200)
◦ Pointers (C)
(eInspect 2,372):p total
$4 = (short *) 0x6fffff44
(eInspect 2,372):p *total
$5 = 46
◦ Pointers (pTAL)
(eInspect 1,494):p total
$3 = (INT *) 0x6fffff54
(eInspect 1,494):p .total
A syntax error in expression, near `total'.
(eInspect 1,494):p *total
$4 = 46
4 - Debuggers 19
20. Native Inspect –Variable Information DisplayNative Inspect –Variable Information Display
◦ Data type
whatis <variable-name>
(eInspect 2,372):whatis total
type = short *
(eInspect 1,494):whatis total
type = INT *
(eInspect 0,779):whatis total
type = PIC S9999
4 - Debuggers 20
21. Native Inspect – Data ModificationNative Inspect – Data Modification
◦ Modifying variable or pointer
set [variable] <variable-name>=<new-value>
(eInspect 2,372):set *total=999
4 - Debuggers 21
22. Native Inspect – Source Statements DisplayNative Inspect – Source Statements Display
◦ list [ [<source-file>:]line#
| [<source-file>:]function ]
eInspect 2,372):l
15 display_initial_req_message ();
16 while (req_run_status == 0)
17 {
18 printf ("ENTER FIRST NUMBER [or 0 to stop]: ");
19 scanf ("%hi", &first_number);
* 20 if (first_number == 0)
21 req_run_status = 1;
22 else
23 {
24 get_second_number (first_number, &total);
(eInspect 2,372):l
25 printf ("THE TOTAL IS: %hin", total);
26 }
27 } /* end while */
28 } /* end main */
4 - Debuggers 22
23. Native Inspect – Source FilesNative Inspect – Source Files
◦ Display source file names
(eInspect 3,450):info sources
Source files for which symbols have been read in:
DAGGER.$DATA00.TERRYG.MAINC
Source files for which symbols will be read in on demand:
ATOM.$RLSE.T8432ABN.VERSNMNC, SPEEDY.$RLSE.T8432H02.CPLMAINC,
DAGGER.$DATA00.TERRYG.CALLC
◦ Find source files
dir <new-subvolume> | <new-directory>
Breakpoint 1 at 0x70000a20:0: file DAGGER.$DATA00.TERRYG.MAINC,
line 11.
(eInspect 1,559):l
DAGGER.$DATA00.TERRYG.MAINC: No such file or directory.
(eInspect 1,559):dir $data00.tgtest
Source directories searched: $data00.tgtest:$cdir:$cwd
(eInspect 1,559):list
2 short get_second_number (short, short *);
3 void display_initial_req_message (void)
4 { printf ("YOU HAVE JUST STARTED THE ...
4 - Debuggers 23
24. Native Inspect – Function Names (C)Native Inspect – Function Names (C)
◦ info functions [<wildcard-string>]
(eInspect 12,372):info functions
All defined functions:
File ATOM.$RLSE.T8432ABN.VERSNMNC:
void T8432H02_21MAY2008_CCPLMAIN();
File SPEEDY.$RLSE.T8432H02.CPLMAINC:
void _MAIN();
void __INIT__1_C();
File DAGGER.$DATA00.TERRYG.CALLC:
short get_second_number(short, short *);
File DAGGER.$DATA00.TERRYG.MAINC:
void display_initial_req_message();
int main();
Non-debugging symbols:
0x700008e0 .plt
4 - Debuggers 24
25. Native Inspect – Function Names (pTAL)Native Inspect – Function Names (pTAL)
(eInspect 1,494):info functions
All defined functions:
File DAGGER.$DATA00.TERRYG.CALLP:
void GET_SECOND_NUMBER(INT, INT *);
File DAGGER.$DATA00.TERRYG.MAINP:
void DISPLAY_INITIAL_REQ_MESSAGE();
void MAIN_PROG();
Non-debugging symbols:
0x700007c0 .plt
Current language: auto; currently ptal
4 - Debuggers 25
26. Native Inspect – Program Names (COBOL)Native Inspect – Program Names (COBOL)
(eInspect 0,779):info functions
All defined functions:
File DAGGER.$DATA00.TERRYG.CALLCOB:
GET-SECOND-NUMBER PROGRAM-UNIT;
File DAGGER.$DATA00.TERRYG.MAINCOB:
CALCULATOR PROGRAM-UNIT;
Non-debugging symbols:
0x70000a00 .plt
0x70004780 __INIT__0_CALCULATOR_
0x70004900 __INIT__1_CALCULATOR_
Current language: auto; currently COBOL
4 - Debuggers 26
27. Native Inspect – Open File InformationNative Inspect – Open File Information
fopen [<filenum> [-d] ]
(eInspect 2,372):fopen
FileNum LastErr Name
1 0 DAGGER.$ZTN0.#PTWNEAK
(eInspect 2,372):fopen 1 -d
Name DAGGER.$ZTN0.#PTWNEAK
Filenum 1
General File Information.
Device Type 0
Device Subtype 30
Object Type -1
Logical Device Number -1
Open Access 0
Open Exclusion 0
Open Nowait Depth 0
Open Sync Depth 1
Open Options 0
Physical Record Length 132 Bytes
Outstanding Requests 0
Error 0
Error Detail 0
4 - Debuggers 27
29. Native Inspect – Stack CommandsNative Inspect – Stack Commands
◦ Stack trace
backtrace | bt
(eInspect 1,559):bt
#0 get_second_number (first_number=12, total=0x6fffff44)
at DAGGER.$DATA00.TERRYG.CALLC:6
#1 0x70000af0:0 in main () at DAGGER.$DATA00.TERRYG.MAINC:24
#2 0x70000e00:0 in _MAIN () at SPEEDY.
$RLSE.T8432H02.CPLMAINC:46
(eInspect 2,557):bt
#0 GET_SECOND_NUMBER (FIRST_NUMBER=12, TOTAL=0x6fffff54)
at DAGGER.$DATA00.TERRYG.CALLP:16
#1 0x70001250:0 in MAIN_PROG () at DAGGER.
$DATA00.TERRYG.MAINP:77
(eInspect 3,457):bt
#0 GET-SECOND-NUMBER (FIRST-NUMBER=0x8001220, TOTAL=0x8001228)
at DAGGER.$DATA00.TERRYG.CALLCOB:22
#1 0x70003460:0 in CALCULATOR () at DAGGER.
$DATA00.TERRYG.MAINCOB:50
4 - Debuggers 29
30. Miscellaneous CommandsMiscellaneous Commands
◦ Change to a different debugger
switch
ChangesTNS/E process toVisual Inspect
ChangesTNS process to Inspect
◦ Create a snapshot/saveabend file
save <filename[!]>
◦ Open a snapshot/saveabend file
snapshot <filename>
4 - Debuggers 30
31. Miscellaneous CommandsMiscellaneous Commands
◦ Print allows function calls
print <expression>
(eInspect 1,919):l
1 int adder (int a, int b)
2 { return a + b; }
3 int main (void)
4 {
* 5 printf("Sample program.n");
6 }
(eInspect 1,919):print adder(14, 15)
$1 = 29
4 - Debuggers 31
32. Native Inspect —TNS ProcessNative Inspect —TNS Process
◦ Limited commands:
continue — Resume execution
kill — Terminate process
bt — Stack trace
save — Create snapshot file
switch — Switch to different debugger
4 - Debuggers 32