Coby Viner gave a technical talk at a lab meeting about GNU Parallel, a tool for executing jobs in parallel using one or more computers. Viner covered why GNU Parallel is useful, basic examples from its tutorial on syntax and usage, additional syntax for more complex tasks, and real examples of how they have used it. The talk provided an overview and introduction to GNU Parallel for parallelizing tasks, with a focus on explaining its syntax and capabilities through examples.
A humble introduction to ROP chaining basics. The ppt deals with what is ROP. It builds the basics by introducing basics of buffer overflow and then talks about ROPs and why they are needed. It also has animated videos to help understand the layout of the stack clearly.
This document discusses return-oriented programming (ROP) attacks and variants. It begins with an introduction to ROP attacks, explaining that they circumvent data execution prevention by chaining small snippets of executable code (called gadgets) that end in return instructions. It then covers different ROP attack techniques like using arithmetic, comparison, and loop gadgets to achieve Turing completeness. The document discusses challenges like handling null bytes and describes variants like jump-oriented programming (JOP) that uses indirect jumps. It also covers creating alphanumeric ROP shellcode by selecting printable addresses. In the end, it provides tips for effectively searching gadgets.
This document summarizes Anton Babenko's presentation on Terraform 0.12 and Terragrunt. Some key points include:
- Terraform 0.12 includes improvements like HCL2 syntax, loops and dynamic blocks that make configurations easier to write and maintain.
- Terragrunt is useful for orchestrating Terraform modules and enforcing best practices and standards.
- Modules.tf is a tool that can generate Terraform configurations from visual diagrams created in Cloudcraft, potentially providing ready-to-use infrastructure code.
Command line arguments that make you smileMartin Melin
Slides from my talk at the Stockholm Python User Group's meetup on Best Practices on October 31st, 2013: http://www.meetup.com/pysthlm/events/145658462/
This document discusses Ansible, an open source orchestration and automation engine. It provides instructions on installing Ansible and using it to provision and configure AWS instances. Key steps include cloning the Ansible repository, installing required Python libraries, generating SSH keys, and executing playbooks to deploy and test instances. Ansible allows automating infrastructure setup and management through agentless configuration files called playbooks.
Dive into ROP - a quick introduction to Return Oriented ProgrammingSaumil Shah
The document introduces Return Oriented Programming (ROP) and its core concepts. It discusses how Data Execution Prevention (DEP) prevents execution of injected shellcode by marking the stack and heap as non-executable. ROP overcomes this by chaining together small snippets of existing code (called "gadgets") in libraries and binaries to achieve arbitrary code execution. This is done by creating fake stack frames and controlling the instruction pointer (EIP) to return to addresses of gadgets. An example demonstrates overflowing a function and making it return to another function by placing a fake stack frame.
- The document summarizes common Perl command line options for testing, debugging, importing modules, looping, editing files in-place, line endings and autosplitting. It provides examples of using many of the options.
- Key options covered include -c for syntax checking, -w/-W/-X for warnings, -d for debugging, -e for eval, -M for module import, -n/-p for looping through files, -i for in-place editing, -l for line endings and -a/-F for autosplitting.
- Many examples demonstrate how these options can be combined with Perl code to perform tasks like searching/replacing text in files from the command line.
This document provides an overview of Bonobo, a Python framework for writing ETL (extract, transform, load) jobs. It discusses the history and concepts of ETL, existing ETL tools, and how Bonobo provides a Pythonic approach using code as configuration. Key features of Bonobo highlighted include writing transformations as Python functions or classes, using services and plugins, and its focus on being lightweight, extensible, and easy to install.
A humble introduction to ROP chaining basics. The ppt deals with what is ROP. It builds the basics by introducing basics of buffer overflow and then talks about ROPs and why they are needed. It also has animated videos to help understand the layout of the stack clearly.
This document discusses return-oriented programming (ROP) attacks and variants. It begins with an introduction to ROP attacks, explaining that they circumvent data execution prevention by chaining small snippets of executable code (called gadgets) that end in return instructions. It then covers different ROP attack techniques like using arithmetic, comparison, and loop gadgets to achieve Turing completeness. The document discusses challenges like handling null bytes and describes variants like jump-oriented programming (JOP) that uses indirect jumps. It also covers creating alphanumeric ROP shellcode by selecting printable addresses. In the end, it provides tips for effectively searching gadgets.
This document summarizes Anton Babenko's presentation on Terraform 0.12 and Terragrunt. Some key points include:
- Terraform 0.12 includes improvements like HCL2 syntax, loops and dynamic blocks that make configurations easier to write and maintain.
- Terragrunt is useful for orchestrating Terraform modules and enforcing best practices and standards.
- Modules.tf is a tool that can generate Terraform configurations from visual diagrams created in Cloudcraft, potentially providing ready-to-use infrastructure code.
Command line arguments that make you smileMartin Melin
Slides from my talk at the Stockholm Python User Group's meetup on Best Practices on October 31st, 2013: http://www.meetup.com/pysthlm/events/145658462/
This document discusses Ansible, an open source orchestration and automation engine. It provides instructions on installing Ansible and using it to provision and configure AWS instances. Key steps include cloning the Ansible repository, installing required Python libraries, generating SSH keys, and executing playbooks to deploy and test instances. Ansible allows automating infrastructure setup and management through agentless configuration files called playbooks.
Dive into ROP - a quick introduction to Return Oriented ProgrammingSaumil Shah
The document introduces Return Oriented Programming (ROP) and its core concepts. It discusses how Data Execution Prevention (DEP) prevents execution of injected shellcode by marking the stack and heap as non-executable. ROP overcomes this by chaining together small snippets of existing code (called "gadgets") in libraries and binaries to achieve arbitrary code execution. This is done by creating fake stack frames and controlling the instruction pointer (EIP) to return to addresses of gadgets. An example demonstrates overflowing a function and making it return to another function by placing a fake stack frame.
- The document summarizes common Perl command line options for testing, debugging, importing modules, looping, editing files in-place, line endings and autosplitting. It provides examples of using many of the options.
- Key options covered include -c for syntax checking, -w/-W/-X for warnings, -d for debugging, -e for eval, -M for module import, -n/-p for looping through files, -i for in-place editing, -l for line endings and -a/-F for autosplitting.
- Many examples demonstrate how these options can be combined with Perl code to perform tasks like searching/replacing text in files from the command line.
This document provides an overview of Bonobo, a Python framework for writing ETL (extract, transform, load) jobs. It discusses the history and concepts of ETL, existing ETL tools, and how Bonobo provides a Pythonic approach using code as configuration. Key features of Bonobo highlighted include writing transformations as Python functions or classes, using services and plugins, and its focus on being lightweight, extensible, and easy to install.
This describes writing command-line processing for Perl scripts. Don't re-invent the wheel - this problem has been solved. Use Getopt::Long or a similar module from CPAN.
This was presented as one of several "lightning talk" mini-presenations at the Silicon Valley Perl (SVPerl) meeting on Thursday, November 12, 2015 where the primary meeting topic was CPAN, the Comprehensive Perl Archive Network with the tag line "Your project is already half done".
Apache TinkerPop is a graph computing framework that supports both graph databases (OLTP) and analytic systems (OLAP). It includes providers for property graphs, components like the Gremlin traversal machine/language and Gremlin Server. Gremlin has traversal languages implemented in Groovy, Java, .NET, JavaScript, Python and more. Getting started involves using Gremlin Server and resources are available on the Apache TinkerPop website and Kelvin Lawrence's book.
Presentation on major features of PHP 5.3 for the July 2009 Baltimore/Washington DC PHP Meetup. It touches on major features and changes that were made in the PHP 5.3 series
This presentation is from a hands-on session that happened at the Hacker Thursdays series of OWASP Bay Area delivered by Gábor, Co-Founder and CTO at Avatao. Join our meetup at https://www.meetup.com/Bay-Area-OWASP and follow @OWASPBayArea on Twitter and Instagram to keep up with the latest updates and chapter events.
Details:
As the topic itself is quite complex and deep, we don’t aim at digging into the details of any of the memory corruption errors (e.g., stack or heap overflow). Rather the goal is to get a bit of understanding of CPU internals, the assembly language, the goal of debuggers, program memory layouts and basic exploitation techniques. This information will help us to analyze binaries together and find ways to misuse them. This session intends to give an appetizer to those who spend most of their time with recent web technologies, but interested to understand a little bit the nature of the underlying native world. The exercises are going to be hosted on the Avatao framework, so everybody can easily join to solve them.
Trainer:
Gábor is a co-founder and CTO at Avatao, a cloud-based virtual lab to teach people build secure software and systems. He earned his Ph.D. degree in 2015 from the CrySyS Lab of Budapest University of Technology and Economics, but completed internships at iSecLab at Eurecom, France and TU Wien, Austria, too. His main research focus was on malware analysis and virtualization security. One of the vulnerabilities he found (XSA-59/CVE[masked]) affected several Intel chipsets that enabled attacks against hypervisors such as Xen or KVM. He was one of the key members of the Duqu, Flame, Miniduke and Teamspy targeted attack investigation teams. He founded and coordinated CrySyS Student Core for almost 5 years, which was an invite-only group of exceptionally talented students interested in system security. This group gave birth to the "!SpamAndHex" (https://ctftime.org/team/5347) CTF team, which became one of the top teams in the world in 2 years. As a member of !SpamAndHex he is a three-times DEFCON CTF finalist, that is widely regarded as the hacker world championship. Over the years, he gave talks at several cyber security conferences in the academia (e.g., ACM AsiaCCS, ESORICS, USENIX ASE ) and industry (e.g., DevSecCon, POC, Belluminar, Hacktivity).
Pwning Your Phone with Adhearsion and Asteriskjicksta
This presentation was given by Jay Phillips, Adhearsion's creator, at the Gotham Ruby Conference on April 21st, 2007. Adhearsion is a framework for developing collaboration applications with Asterisk (VoIP), Rails, instant messaging, email, and many other technologies.
Artificial Neural Network in a Tic Tac Toe Symfony Console Application - Symf...aferrandini
This document discusses using artificial neural networks (ANNs) with PHP and the Symfony Console component. It covers ANN theory like activation functions, backpropagation, and learning types. It demonstrates how to build a Tic-Tac-Toe game with reinforcement learning and the Symfony Console. The document also provides instructions for installing the PHP FANN extension to interface with ANNs and code examples using this library.
Morpheus configuration engine (slides from Saint Perl-2 conference)Vyacheslav Matyukhin
Morpheus is an ultimate configuration engine that provides a unified configuration tree assembled from various sources. It separates configuration consumers from providers and supports retrieving configuration values from environment variables, databases, files, and defaults. Configuration files can contain Perl code and are loaded from specific paths. The engine uses plugins to retrieve values from different sources and supports recursive calls. It aims to standardize configuration handling across applications.
This document summarizes the Shellshock bug in Bash software discovered in September 2014. It describes four vulnerabilities (CVE-2014-6271, CVE-2014-6277, CVE-2014-7169, and an unknown CVE) that could allow remote code execution by manipulating environment variables passed to Bash. The document also outlines potential attack scenarios like reverse shells, data theft, and click fraud that could exploit Shellshock. It concludes by mentioning Patch 27 and a script to fix the vulnerable Bash versions.
Echtzeitapplikationen mit Elixir und GraphQLMoritz Flucht
Wir stellen unsere Erfahrung vor, die wir in 15 Monaten Einsatz von Elixir und GraphQL in Produktion nach Relaunch eines großen
Jobanzeigenportals gesammelt haben.
Elixir bietet uns die Möglichkeit, ein hoch verfügbares Backend mit extrem geringen Antwortzeiten zu entwickeln. Dieses wird über eine GraphQL Schnittstelle von mehreren Frontends genutzt.
Elixir ist eine junge, funktionale Programmiersprache, die 2011 vorgestellt wurde. Jedoch setzt sie auf dem Erlang Ökosystem auf, welches in über 32 Jahren eine extrem stabile Basis zur Entwicklung von Anwendungen geworden ist.
Ein häufiger Anwendungsfall von Elixir sind Echtzeitapplikationen, zum Beispiel Chatanwendungen, Bots und IoT-Anwendungen. In Verbindung mit GraphQL Subscriptions ist es einfach möglich, Clients über Statusaktualisierungen vom Server zu Informieren. Wir zeigen, wofür man Elixir einsetzen kann, wie GraphQL einen leichten Einstieg in Datenexploration anbietet und wieso beide zusammen eine Überlegung wert sind.
The document describes a demonstrator project implementing a floor heating controller on a Raspberry Pi. It uses the Homeport middleware to connect simulated and real devices. A graphical user interface displays temperature readings in real-time from a Simulink simulation running on the Raspberry Pi, but graphics performance is limited due to the Raspberry Pi's hardware.
Dataflow: Declarative concurrency in RubyLarry Diehl
While Ruby is known for its flexibility due to high mutability and meta-programming capability, these features make writing thread-safe programs using manual locking very error-prone. For this reason some people are switching to languages with easier to manage concurrency paradigms, such as Erlang/Scala’s message passing, or Clojure/Haskell’s Software Transactional Memory (STM).
This talk is about Dataflow, a pure Ruby gem that adds dataflow variables to the Ruby language. Dataflow variables are write-once (or write multiple times with the same value), and suspend execution in the current thread/context if called before being assigned/bound. We will explore how this technique makes writing concurrent but thread-safe code easy, even making it possible to write tests that spawn threads without needing to worry.
Declarative concurrency is a relatively unknown programming model that is an alternative to message passing and STM. Ruby’s malleability makes it an ideal host for this model. Besides performance implications, dataflow variables also have an important impact on declarative program modeling. The talk will also go over the differences in performance and memory of the library in various Ruby implementations.
This document discusses various techniques related to software exploitation, including:
- Common software vulnerabilities like buffer overflows, integer overflows, and use-after-frees
- CPU registers important for exploitation like EIP, EBP, and ESP
- Calling conventions like cdecl and stdcall that determine how arguments are passed to functions
- Tools used in exploitation like Mona.py, Immunity Debugger, msfvenom, and Metasploit for generating and executing shellcode payloads
- Defenses against exploitation like ASLR, DEP, and stack canaries
This document provides an overview of how to add new syntax to the Python programming language by modifying the CPython implementation. It begins with terminology related to compilers like grammars, scanners, parsers, abstract syntax trees, and bytecode. It then discusses the general architecture of a bytecode compiler and how CPython's compiler works. The document uses adding a new "unless" statement as a case study, outlining the four main steps: 1) describing the syntax, 2) adding new AST nodes, 3) transforming parses trees to ASTs, and 4) emitting bytecode. It emphasizes examining existing constructs like "if" for examples and provides context on working with the CPython source code.
The document describes a low frequency sound meter developed by Aalborg University that can:
1) Display current sound pressure levels on LEDs between 12-35 dB(A,LF).
2) Record up to 2 minutes of sound and save files.
3) Transfer recordings over the internet to a university server.
It provides a simple user interface and allows users to find locations with more annoying sounds. The original prototype is in Holbaek, Denmark, and the project involved various personnel developing hardware, software, networking, and more in an iterative process without a strict master plan.
Course lecture - An introduction to the Return Oriented ProgrammingJonathan Salwan
This document provides an introduction and overview of Return Oriented Programming (ROP). It discusses classical stack overflow attacks and the mitigations put in place like Address Space Layout Randomization (ASLR) and No eXecute (NX) bit. It then introduces ROP as a technique to bypass these mitigations by chaining small snippets of existing code, called gadgets, to perform malicious tasks without injecting code. Several tools for finding gadgets are presented, and an example exploitation of the CVE-2011-1938 vulnerability is discussed to demonstrate ROP in practice. The document concludes with discussing mitigations against ROP and some related research topics.
[Quase] Tudo que você precisa saber sobre tarefas assíncronasFilipe Ximenes
This document provides information about Xima and his 5 years of experience in the Python community. It then summarizes some of Xima's work, including Django and Javascript projects on GitHub. The remainder of the document discusses Celery, a Python asynchronous task queue/job queue, including examples of using Celery tasks, chains, groups, signatures, and custom task classes.
Connecting C++ and JavaScript on the Web with EmbindChad Austin
Embind allows binding C++ code to JavaScript, enabling use of high-performance C++ code in web applications. It uses Emscripten to compile C++ to asm.js, a low-level subset of JavaScript. Embind features include binding C++ classes, enums, constants, and functions to JavaScript. It supports calling JavaScript functions from C++ using emscripten::val. Embind minimizes overhead through techniques like generating signature strings at compile-time and using lightweight RTTI instead of full typeid. select_overload and optional_override help bind overloaded and lambda functions in a clean way.
This document discusses buffer overflows and how they can be exploited to execute arbitrary code. It explains that buffer overflows occur when more data is written to a buffer than it can hold, overwriting adjacent memory. This can be used to overwrite the return address on the stack and redirect execution to injected code placed in the overflowed buffer. The document provides an example of exploiting a buffer overflow in a web server program to crash it or potentially gain remote code execution.
This document discusses scaling R to large datasets using Scala and Akka. It describes how R has limitations for parallelism and handling large data in memory. The author demonstrates reading a large CSV file of 100 million doubles (1.7GB) in parallel using Scala, Akka actors and Rserve. Producer and Worker actors divide the file and sum parts in Rserve. This allows scaling R computations to large data beyond a single machine's memory. Potential applications mentioned include optimization, distributed linear algebra, machine learning and statistics.
GNU Parallel: Lab meeting—technical talkHoffman Lab
The document summarizes an upcoming lab meeting technical talk on GNU Parallel, a shell tool for executing jobs in parallel. The talk will cover why GNU Parallel is useful, basic examples and syntax from its tutorial, additional advanced syntax for various tasks, recently added features since 2020, and more examples from the tutorial and the speaker's own use of GNU Parallel.
Incredible Machine with Pipelines and Generatorsdantleech
The document discusses using generators and pipelines in PHP to build a performance testing tool called J-Meter. It begins by explaining generators in PHP and how they allow yielding control and passing values between functions. This enables building asynchronous pipelines where stages can be generators. Various PHP frameworks and patterns for asynchronous programming with generators are mentioned. The document concludes by outlining how generators and pipelines could be used to build the major components of a J-Meter-like performance testing tool in PHP.
This describes writing command-line processing for Perl scripts. Don't re-invent the wheel - this problem has been solved. Use Getopt::Long or a similar module from CPAN.
This was presented as one of several "lightning talk" mini-presenations at the Silicon Valley Perl (SVPerl) meeting on Thursday, November 12, 2015 where the primary meeting topic was CPAN, the Comprehensive Perl Archive Network with the tag line "Your project is already half done".
Apache TinkerPop is a graph computing framework that supports both graph databases (OLTP) and analytic systems (OLAP). It includes providers for property graphs, components like the Gremlin traversal machine/language and Gremlin Server. Gremlin has traversal languages implemented in Groovy, Java, .NET, JavaScript, Python and more. Getting started involves using Gremlin Server and resources are available on the Apache TinkerPop website and Kelvin Lawrence's book.
Presentation on major features of PHP 5.3 for the July 2009 Baltimore/Washington DC PHP Meetup. It touches on major features and changes that were made in the PHP 5.3 series
This presentation is from a hands-on session that happened at the Hacker Thursdays series of OWASP Bay Area delivered by Gábor, Co-Founder and CTO at Avatao. Join our meetup at https://www.meetup.com/Bay-Area-OWASP and follow @OWASPBayArea on Twitter and Instagram to keep up with the latest updates and chapter events.
Details:
As the topic itself is quite complex and deep, we don’t aim at digging into the details of any of the memory corruption errors (e.g., stack or heap overflow). Rather the goal is to get a bit of understanding of CPU internals, the assembly language, the goal of debuggers, program memory layouts and basic exploitation techniques. This information will help us to analyze binaries together and find ways to misuse them. This session intends to give an appetizer to those who spend most of their time with recent web technologies, but interested to understand a little bit the nature of the underlying native world. The exercises are going to be hosted on the Avatao framework, so everybody can easily join to solve them.
Trainer:
Gábor is a co-founder and CTO at Avatao, a cloud-based virtual lab to teach people build secure software and systems. He earned his Ph.D. degree in 2015 from the CrySyS Lab of Budapest University of Technology and Economics, but completed internships at iSecLab at Eurecom, France and TU Wien, Austria, too. His main research focus was on malware analysis and virtualization security. One of the vulnerabilities he found (XSA-59/CVE[masked]) affected several Intel chipsets that enabled attacks against hypervisors such as Xen or KVM. He was one of the key members of the Duqu, Flame, Miniduke and Teamspy targeted attack investigation teams. He founded and coordinated CrySyS Student Core for almost 5 years, which was an invite-only group of exceptionally talented students interested in system security. This group gave birth to the "!SpamAndHex" (https://ctftime.org/team/5347) CTF team, which became one of the top teams in the world in 2 years. As a member of !SpamAndHex he is a three-times DEFCON CTF finalist, that is widely regarded as the hacker world championship. Over the years, he gave talks at several cyber security conferences in the academia (e.g., ACM AsiaCCS, ESORICS, USENIX ASE ) and industry (e.g., DevSecCon, POC, Belluminar, Hacktivity).
Pwning Your Phone with Adhearsion and Asteriskjicksta
This presentation was given by Jay Phillips, Adhearsion's creator, at the Gotham Ruby Conference on April 21st, 2007. Adhearsion is a framework for developing collaboration applications with Asterisk (VoIP), Rails, instant messaging, email, and many other technologies.
Artificial Neural Network in a Tic Tac Toe Symfony Console Application - Symf...aferrandini
This document discusses using artificial neural networks (ANNs) with PHP and the Symfony Console component. It covers ANN theory like activation functions, backpropagation, and learning types. It demonstrates how to build a Tic-Tac-Toe game with reinforcement learning and the Symfony Console. The document also provides instructions for installing the PHP FANN extension to interface with ANNs and code examples using this library.
Morpheus configuration engine (slides from Saint Perl-2 conference)Vyacheslav Matyukhin
Morpheus is an ultimate configuration engine that provides a unified configuration tree assembled from various sources. It separates configuration consumers from providers and supports retrieving configuration values from environment variables, databases, files, and defaults. Configuration files can contain Perl code and are loaded from specific paths. The engine uses plugins to retrieve values from different sources and supports recursive calls. It aims to standardize configuration handling across applications.
This document summarizes the Shellshock bug in Bash software discovered in September 2014. It describes four vulnerabilities (CVE-2014-6271, CVE-2014-6277, CVE-2014-7169, and an unknown CVE) that could allow remote code execution by manipulating environment variables passed to Bash. The document also outlines potential attack scenarios like reverse shells, data theft, and click fraud that could exploit Shellshock. It concludes by mentioning Patch 27 and a script to fix the vulnerable Bash versions.
Echtzeitapplikationen mit Elixir und GraphQLMoritz Flucht
Wir stellen unsere Erfahrung vor, die wir in 15 Monaten Einsatz von Elixir und GraphQL in Produktion nach Relaunch eines großen
Jobanzeigenportals gesammelt haben.
Elixir bietet uns die Möglichkeit, ein hoch verfügbares Backend mit extrem geringen Antwortzeiten zu entwickeln. Dieses wird über eine GraphQL Schnittstelle von mehreren Frontends genutzt.
Elixir ist eine junge, funktionale Programmiersprache, die 2011 vorgestellt wurde. Jedoch setzt sie auf dem Erlang Ökosystem auf, welches in über 32 Jahren eine extrem stabile Basis zur Entwicklung von Anwendungen geworden ist.
Ein häufiger Anwendungsfall von Elixir sind Echtzeitapplikationen, zum Beispiel Chatanwendungen, Bots und IoT-Anwendungen. In Verbindung mit GraphQL Subscriptions ist es einfach möglich, Clients über Statusaktualisierungen vom Server zu Informieren. Wir zeigen, wofür man Elixir einsetzen kann, wie GraphQL einen leichten Einstieg in Datenexploration anbietet und wieso beide zusammen eine Überlegung wert sind.
The document describes a demonstrator project implementing a floor heating controller on a Raspberry Pi. It uses the Homeport middleware to connect simulated and real devices. A graphical user interface displays temperature readings in real-time from a Simulink simulation running on the Raspberry Pi, but graphics performance is limited due to the Raspberry Pi's hardware.
Dataflow: Declarative concurrency in RubyLarry Diehl
While Ruby is known for its flexibility due to high mutability and meta-programming capability, these features make writing thread-safe programs using manual locking very error-prone. For this reason some people are switching to languages with easier to manage concurrency paradigms, such as Erlang/Scala’s message passing, or Clojure/Haskell’s Software Transactional Memory (STM).
This talk is about Dataflow, a pure Ruby gem that adds dataflow variables to the Ruby language. Dataflow variables are write-once (or write multiple times with the same value), and suspend execution in the current thread/context if called before being assigned/bound. We will explore how this technique makes writing concurrent but thread-safe code easy, even making it possible to write tests that spawn threads without needing to worry.
Declarative concurrency is a relatively unknown programming model that is an alternative to message passing and STM. Ruby’s malleability makes it an ideal host for this model. Besides performance implications, dataflow variables also have an important impact on declarative program modeling. The talk will also go over the differences in performance and memory of the library in various Ruby implementations.
This document discusses various techniques related to software exploitation, including:
- Common software vulnerabilities like buffer overflows, integer overflows, and use-after-frees
- CPU registers important for exploitation like EIP, EBP, and ESP
- Calling conventions like cdecl and stdcall that determine how arguments are passed to functions
- Tools used in exploitation like Mona.py, Immunity Debugger, msfvenom, and Metasploit for generating and executing shellcode payloads
- Defenses against exploitation like ASLR, DEP, and stack canaries
This document provides an overview of how to add new syntax to the Python programming language by modifying the CPython implementation. It begins with terminology related to compilers like grammars, scanners, parsers, abstract syntax trees, and bytecode. It then discusses the general architecture of a bytecode compiler and how CPython's compiler works. The document uses adding a new "unless" statement as a case study, outlining the four main steps: 1) describing the syntax, 2) adding new AST nodes, 3) transforming parses trees to ASTs, and 4) emitting bytecode. It emphasizes examining existing constructs like "if" for examples and provides context on working with the CPython source code.
The document describes a low frequency sound meter developed by Aalborg University that can:
1) Display current sound pressure levels on LEDs between 12-35 dB(A,LF).
2) Record up to 2 minutes of sound and save files.
3) Transfer recordings over the internet to a university server.
It provides a simple user interface and allows users to find locations with more annoying sounds. The original prototype is in Holbaek, Denmark, and the project involved various personnel developing hardware, software, networking, and more in an iterative process without a strict master plan.
Course lecture - An introduction to the Return Oriented ProgrammingJonathan Salwan
This document provides an introduction and overview of Return Oriented Programming (ROP). It discusses classical stack overflow attacks and the mitigations put in place like Address Space Layout Randomization (ASLR) and No eXecute (NX) bit. It then introduces ROP as a technique to bypass these mitigations by chaining small snippets of existing code, called gadgets, to perform malicious tasks without injecting code. Several tools for finding gadgets are presented, and an example exploitation of the CVE-2011-1938 vulnerability is discussed to demonstrate ROP in practice. The document concludes with discussing mitigations against ROP and some related research topics.
[Quase] Tudo que você precisa saber sobre tarefas assíncronasFilipe Ximenes
This document provides information about Xima and his 5 years of experience in the Python community. It then summarizes some of Xima's work, including Django and Javascript projects on GitHub. The remainder of the document discusses Celery, a Python asynchronous task queue/job queue, including examples of using Celery tasks, chains, groups, signatures, and custom task classes.
Connecting C++ and JavaScript on the Web with EmbindChad Austin
Embind allows binding C++ code to JavaScript, enabling use of high-performance C++ code in web applications. It uses Emscripten to compile C++ to asm.js, a low-level subset of JavaScript. Embind features include binding C++ classes, enums, constants, and functions to JavaScript. It supports calling JavaScript functions from C++ using emscripten::val. Embind minimizes overhead through techniques like generating signature strings at compile-time and using lightweight RTTI instead of full typeid. select_overload and optional_override help bind overloaded and lambda functions in a clean way.
This document discusses buffer overflows and how they can be exploited to execute arbitrary code. It explains that buffer overflows occur when more data is written to a buffer than it can hold, overwriting adjacent memory. This can be used to overwrite the return address on the stack and redirect execution to injected code placed in the overflowed buffer. The document provides an example of exploiting a buffer overflow in a web server program to crash it or potentially gain remote code execution.
This document discusses scaling R to large datasets using Scala and Akka. It describes how R has limitations for parallelism and handling large data in memory. The author demonstrates reading a large CSV file of 100 million doubles (1.7GB) in parallel using Scala, Akka actors and Rserve. Producer and Worker actors divide the file and sum parts in Rserve. This allows scaling R computations to large data beyond a single machine's memory. Potential applications mentioned include optimization, distributed linear algebra, machine learning and statistics.
GNU Parallel: Lab meeting—technical talkHoffman Lab
The document summarizes an upcoming lab meeting technical talk on GNU Parallel, a shell tool for executing jobs in parallel. The talk will cover why GNU Parallel is useful, basic examples and syntax from its tutorial, additional advanced syntax for various tasks, recently added features since 2020, and more examples from the tutorial and the speaker's own use of GNU Parallel.
Incredible Machine with Pipelines and Generatorsdantleech
The document discusses using generators and pipelines in PHP to build a performance testing tool called J-Meter. It begins by explaining generators in PHP and how they allow yielding control and passing values between functions. This enables building asynchronous pipelines where stages can be generators. Various PHP frameworks and patterns for asynchronous programming with generators are mentioned. The document concludes by outlining how generators and pipelines could be used to build the major components of a J-Meter-like performance testing tool in PHP.
PuppetCamp London fall 2014
Martin Alfke - Can you upgrade to Puppet 4.x?
My talk at PuppetCamp London 2014 taking care on best practices and bad examples and an outlook to Puppet 4.
Java 8 introduces several new features that help modernize the Java platform and move it closer to parallelism. These include lambda expressions, which allow treating code as data, and default methods in interfaces, which allow interfaces to evolve while maintaining compatibility. Streams and bulk operations on collections enable a more functional, parallel style of programming. The invokedynamic bytecode instruction is enhanced to allow lambda expressions to be compiled to anonymous methods and executed efficiently by the JVM.
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...Dan Halperin
Apache Beam is a unified programming model for efficient and portable data processing pipelines. It provides abstractions like PCollections, sources/readers, ParDo, GroupByKey, side inputs, and windowing that hide complexity and allow runners to optimize efficiency. Beam supports both batch and streaming workloads on different distributed processing backends. It gives runners control over bundle size, splitting, and triggering to make tradeoffs between latency, throughput, and efficiency based on workload and cluster resources. This allows the same pipeline to be executed efficiently in different contexts without changes to the user code.
This document provides information about using the LSF (Platform Load Sharing Facility) to submit and manage batch jobs on a computing cluster. It describes several LSF commands:
bqueues displays queue information, bhosts displays host and resource information, bsub submits jobs to LSF queues either as batch or interactive jobs, bjobs displays and filters job information, lsload shows host load information, and sample submit script templates are provided. Automating job submissions and monitoring jobs and queues is also discussed to help optimize workload scheduling and resource usage.
St Petersburg R user group meetup 2, Parallel RAndrew Bzikadze
This document provides an overview of parallel computing techniques in R using various packages like snow, multicore, and parallel. It begins with motivation for parallelizing R given its limitations of being single-threaded and memory-bound. It then covers the snow package which enables explicit parallelism across computer clusters. The multicore package provides implicit parallelism using forking, but is deprecated. The parallel package acts as a wrapper for snow and multicore. It also discusses load balancing, random number generation, and provides examples of using snow and multicore for parallel k-means clustering and lapply.
Puppet Camp Duesseldorf 2014: Martin Alfke - Can you upgrade to puppet 4.x?NETWAYS
PuppetLabs takes care on the Puppet software stack and they provide regular updates of their software.
But how about your Puppet DSL code? How can you ensure that your code will also work fine on newer Puppet versions?
This talks shows basic steps and actions which should be done to ensure fully functional Puppet DSL code on newer Puppet versions.
I will show common old practices, which have been replaced by more modern ways in using Puppet and how to migrate to the new solution. Additionally I want you to learn how you can test your Puppet DSL code prior putting it onto a new Puppet master.
Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...Puppet
This document discusses upgrading Puppet code to work with newer versions of Puppet, specifically Puppet 4. It outlines reasons to upgrade like getting security updates and new features. It provides tips for testing code like using rspec and additional Puppet master processes. Code practices that are deprecated in newer versions are identified like inheritance and modifying remote modules. The presentation demonstrates upgrading a module to Puppet 4.
This document provides an overview of learning Python in three hours. It covers installing and running Python, basic data types like integers, floats and strings. It also discusses sequence types like lists, tuples and strings, including accessing elements, slicing, and using operators like + and *. The document explains basic syntax like comments, indentation and naming conventions. It provides examples of simple functions and scripts.
Loops and Unicorns - The Future of the Puppet Language - PuppetConf 2013Puppet
"Loops and Unicorns - The Future of the Puppet Language" by Henrik Lindberg, Platform Engineer, Puppet Labs.
Presentation Overview: Loops, Unicorns and other magical animals lives in your puppet since Puppet 3.2. This is the first version to ship with the future just a setting away! In this talk you will see the new features at work; we are talking loops, lambdas, puppet templates and other unicorns! In addition to learning how loops work, we will present the background to the new parser and the future capabilities this enables such as being able to support multiple language compliance levels, provide better error messages, and much more. Parts of this talk will touch on advanced topics such has to use lambdas in your custom functions.
Speaker Bio: Henrik has 30 years of experience architecting and developing software. Past positions include CTO of Cloudsmith Inc, leadership of BEA’s Java Run-Time Group (JRockit) and CTO and/or technical founder of several publicly and privately held software companies. Henrik works on the Platform team at Puppet Labs with special focus on the Puppet Language. He is also a committer and leader of several Eclipse projects, and leads the Puppet IDE Geppetto project.
This Presentation is an introducing to the IT automation environment, starting from a sys admin point of view.
The purpose of these tools is to help in troubleshooting and handling an heterogeneous it environment to ensure availability and reliability.
This document provides an introduction to C++ programming. It discusses key differences between C and C++, shows simple C++ examples, and covers important C++ concepts like input/output streams, header files, inline functions, references, and reference parameters. The document is intended to teach basic C++ syntax and features to someone new to the language.
- Legacy Perl code is code that uses outdated practices, has no tests or documentation, and is difficult to understand and modify. It often results from organic growth over many years and developers.
- Unit testing legacy code provides safety during refactoring, speeds up development by replacing debugging, and creates regression tests. However, the code's dependencies make it difficult to isolate and test.
- Techniques like dependency injection, sprouting, monkey patching, and temporary object reblessing can help break dependencies and make legacy code more testable. Instrumentation with profilers also aids understanding the code.
Pipe2Py is a tool that converts Yahoo Pipes workflows into Python code so they can still be run if Yahoo Pipes shuts down. Each Yahoo Pipes module is coded as a separate Python module. Pipe2Py translates Yahoo Pipes into pipelines of Python generators to closely match the original data flow. This allows users to prototype workflows visually in Yahoo Pipes and then generate Python code to host themselves independently of Yahoo Pipes.
Fine-tuning your development environment means more than just getting your editor set up just so -- it means finding and setting up a variety of tools to take care of the mundane housekeeping chores that you have to do -- so you have more time to program, of course! I'll share the benefits of a number of yak shaving expeditions, including using App::GitGot to batch manage _all_ your git repos, App::MiseEnPlace to automate getting things _just_ so in your working environment, and a few others as time allows.
Delivered at OpenWest 2016, 13 July 2016
Docopt, beautiful command-line options for R, user2014Edwin de Jonge
Docopt is a utility library for R that allows programmers to define command line interfaces through documentation strings. It parses command line options, arguments, switches and help messages based on usage patterns defined in the documentation. This avoids having to write complex command line parsing code. The documentation string is the specification, and docopt handles generating a fully functioning parser from it. It provides an elegant way to build command line tools in R with automatically generated help and argument handling.
(1) c sharp introduction_basics_dot_netNico Ludwig
This document provides an introduction to parsing an update log using different programming languages, including C#, Visual Basic, C++/CLI, F#, and others. It describes the problem of parsing a software update log file to retrieve the latest updates for different applications. It then shows sample code solutions in each language and provides brief descriptions and context about each language.
This document summarizes a new technique and Python package called TCRpower for quantifying the detection power of T-cell receptor sequencing methods using spike-in standards. TCRpower uses a negative binomial model to estimate detection probabilities of target T-cell receptors based on sequencing read counts. It calibrates this model using spike-in controls containing known T-cell receptor sequences added at defined concentrations. Results from applying TCRpower to PCR-based T-cell receptor sequencing data show it can reliably detect clonotypes down to a frequency of 10-6 but has higher variability for rarer clonotypes below 300 per million RNA. TCRpower improves method selection, optimization and reproducibility for T-cell receptor sequencing.
Efficient querying of genomic reference databases with ggetHoffman Lab
gget is a free, open-source command-line tool and Python package for efficiently querying genomic reference databases. It allows users to retrieve gene and transcript sequences, search for genes, find correlated genes from expression databases, enrich gene sets in pathways and ontologies, and more. gget also integrates tools for sequence alignment, BLAST/BLAT searches, and protein structure prediction with AlphaFold.
The WashU Epigenome Browser is an online tool for exploring epigenomic data. It was recently updated in 2022 with new features like dynamic tracks that allow users to overlay additional data on top of existing tracks. The meeting covered a live demo of the browser and directed attendees to its documentation and dynamic tracks feature page to learn more.
Wireguard: A Virtual Private Network TunnelHoffman Lab
Wireguard is a simple yet secure VPN tunnel that can provide access to an entire private network rather than just a single machine. It runs on Linux, Windows, macOS, and phones. With Wireguard, you create a virtual network interface and cryptographic key pair, share your public key, and add the public keys of networks you want to access. This allows you to securely connect your device to the private network and access resources like network attached storage from anywhere via an encrypted single point of access.
Plotting heatmap with matplotlib/seabornHoffman Lab
The document describes several methods for creating heatmaps using the matplotlib and seaborn Python libraries. It provides code examples for creating basic heatmaps with matplotlib and seaborn, heatmaps with labels and annotations using seaborn, combining multiple heatmaps, and manually creating heatmaps with matplotlib by adding colored rectangles. The final sections provide an example of creating a heatmap with two colors and adding polygons manually.
Go Get Data (GGD) is a genomics data management system that provides access to processed and curated genomic data files. It allows users to create "data recipes" that define genomic data files and their metadata. These recipes are used to generate data packages that can be installed and their files accessed via environment variables. GGD also supports finding, installing, uninstalling, and listing installed data packages.
The document discusses fastp, an ultra-fast all-in-one FASTQ preprocessor. Fastp performs adapter trimming, quality trimming, base correction, polyG/polyX tail trimming, and can handle UMIs. It is very fast due to being written in C++ and multi-threaded. Fastp outputs metrics that can be integrated into MultiQC reports. The document provides examples of fastp commands and usage with GNU Parallel for processing multiple samples simultaneously.
R markdown allows connecting data, code, and text into reports, presentations, and other documents. It works with R, Python, and Bash code. The rmdformats package creates clean HTML documents from R markdown files using different template designs like "readthedown" and "docute". Templates allow formatting code and content into pages, tables of contents, and other features. Parameters control template features such as figure sizes and code folding. Resources for learning more about R markdown and rmdformats were also provided.
This document discusses various file searching tools. It introduces grep for searching files using regular expressions. Faster alternatives to grep like Ag, Ack, and Ripgrep are presented. The document also covers finding files using find or fd, fuzzy filtering with FZF, code searching with ctags or language servers, and summarizes to consider faster tools when possible and leverage editor plugins for code context.
The document discusses Better BibTeX (BBT), an add-on for the desktop version of Zotero. BBT improves on the standard BibTeX file export from Zotero by handling key formatting, duplicates, special characters, and journal abbreviations to produce cleaner BibTeX files that are suitable for use in LaTeX documents on platforms like Overleaf.
Bioawk is a tool that extends GNU awk to facilitate working with biological file formats like FASTA, FASTQ, SAM, BED, GFF, and VCF. It directly reads gzipped files and treats spanning sequences as single records. Some key functions added in Bioawk include calculating GC content, reversing/reverse complementing sequences, and working with quality values. Bioawk allows for convenient parsing, manipulation and statistical analysis of genomic data.
This document discusses terminals and shells. It defines that a shell is a program that interprets commands from a user and executes those commands, while a terminal is a physical device for displaying output and reading input. It provides a brief history of terminals, from telexes and teletypewriters to modern terminal emulators. It also covers terminal configuration, customization, multiplexing using software like tmux and screen, and pseudoterminals. Finally, it discusses different shells, how to choose a shell, shell modes of operation, and shell configuration files like bashrc and profiles.
This document discusses molecular biology concepts for computer scientists and tools for creating glossaries and displaying acronyms. It introduces BioRender, a tool for creating biological diagrams and illustrations. It then evaluates different LaTeX packages for creating glossaries and displaying acronyms, finding that the glossaries-extra package allows for creating both a glossary and acronyms. It concludes that BioRender is easy to use and has a useful icon library, and that glossaries-extra is effective for defining terms and acronyms.
Linters in R provides a 3 sentence summary of the document:
The document discusses the R package lintr, which checks R code for adherence to style guidelines, syntax errors, and possible semantic issues. It describes how to install lintr for use with RStudio, Emacs, and Vim and configure which checks or "linters" are applied. The document also gives examples of what lintr checks for, such as syntax, formatting, code quality, and provides information on customizing lintr using a project-specific configuration file.
BioSyntax: syntax highlighting for computational biologyHoffman Lab
bioSyntax is syntax highlighting software for computational biology. It highlights nucleotides, amino acids, and quality scores in common file formats used in bioinformatics like FASTA, FASTQ, SAM, BAM, VCF, GTF and custom formats. bioSyntax works in many text editors and terminals to help visualize and interpret genomic data. It supports common color schemes and allows customizing colors for specific nucleotides, amino acids or quality scores to highlight features of interest in sequences and alignments.
This document provides an overview and introduction to using the version control system Git. It covers basic Git concepts and operations including configuration, the three main states files can be in, committing changes, viewing history and logs, branching, merging, rebasing, tagging, and collaborating remotely. The document also discusses some internals of Git including how objects are stored and how Git and other version control systems originated.
The document discusses the UCSC Genome Browser, an online tool for viewing and interacting with genomic data. It allows users to view multiple data sources simultaneously for a genomic region across many organisms. The document covers basic usage, uploading temporary custom tracks, creating permanent track hubs to host data, and sharing views using saved sessions. Track hubs and sessions allow sharing genomic views and custom data without time limits.
MultiQC: summarize analysis results for multiple tools and samples in a singl...Hoffman Lab
MultiQC is a tool that aggregates bioinformatics quality control (QC) results from different tools into a single HTML report. It currently supports 73 tools and can integrate QC metrics from preprocessing, alignment, and post-alignment stages. MultiQC generates interactive plots and tables in an customizable report to allow users to compare QC metrics across multiple samples and tools in an flexible manner.
Esquisse is an R package called dreamRs that provides an interactive graphical user interface for creating ggplot2 graphs. The interface allows users to build plots by selecting aesthetic mappings and geoms directly in the UI without writing any code. dreamRs can be launched from within R or installed directly from GitHub, and it offers various customization options for adjusting plot properties through the visual interface.
This document provides an overview of basic cryptography and security concepts. It discusses creating and revealing digital secrets using techniques like encryption, hashing, and passwords. It provides examples of encryption tools like PuTTY and warns against improperly implementing your own encryption. The document outlines key principles like key length and management, and how asymmetric keys work. It also discusses password security best practices and techniques like key derivation functions and salting hashes.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/temporal-event-neural-networks-a-more-efficient-alternative-to-the-transformer-a-presentation-from-brainchip/
Chris Jones, Director of Product Management at BrainChip , presents the “Temporal Event Neural Networks: A More Efficient Alternative to the Transformer” tutorial at the May 2024 Embedded Vision Summit.
The expansion of AI services necessitates enhanced computational capabilities on edge devices. Temporal Event Neural Networks (TENNs), developed by BrainChip, represent a novel and highly efficient state-space network. TENNs demonstrate exceptional proficiency in handling multi-dimensional streaming data, facilitating advancements in object detection, action recognition, speech enhancement and language model/sequence generation. Through the utilization of polynomial-based continuous convolutions, TENNs streamline models, expedite training processes and significantly diminish memory requirements, achieving notable reductions of up to 50x in parameters and 5,000x in energy consumption compared to prevailing methodologies like transformers.
Integration with BrainChip’s Akida neuromorphic hardware IP further enhances TENNs’ capabilities, enabling the realization of highly capable, portable and passively cooled edge devices. This presentation delves into the technical innovations underlying TENNs, presents real-world benchmarks, and elucidates how this cutting-edge approach is positioned to revolutionize edge AI across diverse applications.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...Jason Yip
The typical problem in product engineering is not bad strategy, so much as “no strategy”. This leads to confusion, lack of motivation, and incoherent action. The next time you look for a strategy and find an empty space, instead of waiting for it to be filled, I will show you how to fill it in yourself. If you’re wrong, it forces a correction. If you’re right, it helps create focus. I’ll share how I’ve approached this in the past, both what works and lessons for what didn’t work so well.
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
Presentation of the OECD Artificial Intelligence Review of Germany
GNU Parallel
1. LAB MEETING—
TECHNICAL
TALK
COBY VINER
USE CASES
BASIC EXAMPLES
BASIC SYNTAX
ADDITIONAL
SYNTAX
MORE EXAMPLES
REAL EXAMPLES
LAB MEETING—TECHNICAL TALK
GNU PARALLEL
O. TANGE, “GNU PARALLEL - THE COMMAND-LINE
POWER TOOL”, ;login: The USENIX Magazine, VOL. 36, NO.
1, PP. 42–47, FEB. 2011
Coby Viner
Hoffman Lab
Wednesday, April 13, 2016
2. LAB MEETING—
TECHNICAL
TALK
COBY VINER
USE CASES
BASIC EXAMPLES
BASIC SYNTAX
ADDITIONAL
SYNTAX
MORE EXAMPLES
REAL EXAMPLES
OVERVIEW
WHY USE GNU PARALLEL?
BASIC EXAMPLES FROM THE TUTORIAL
BASIC ELEMENTS OF SYNTAX [FROM THE TUTORIAL]
MUCH MORE SYNTAX FOR MANY OTHER TASKS
MORE TUTORIAL EXAMPLES
SOME EXAMPLES OF MY GNU PARALLEL USAGE
3. LAB MEETING—
TECHNICAL
TALK
COBY VINER
USE CASES
BASIC EXAMPLES
BASIC SYNTAX
ADDITIONAL
SYNTAX
MORE EXAMPLES
REAL EXAMPLES
WHY USE GNU PARALLEL?
a shell tool for executing jobs in parallel using one
or more computers.
4. LAB MEETING—
TECHNICAL
TALK
COBY VINER
USE CASES
BASIC EXAMPLES
BASIC SYNTAX
ADDITIONAL
SYNTAX
MORE EXAMPLES
REAL EXAMPLES
WHY USE GNU PARALLEL?
a shell tool for executing jobs in parallel using one
or more computers.
Easily parallelize perfectly parallel tasks
5. LAB MEETING—
TECHNICAL
TALK
COBY VINER
USE CASES
BASIC EXAMPLES
BASIC SYNTAX
ADDITIONAL
SYNTAX
MORE EXAMPLES
REAL EXAMPLES
WHY USE GNU PARALLEL?
a shell tool for executing jobs in parallel using one
or more computers.
Easily parallelize perfectly parallel tasks
For each chromosome. . .
6. LAB MEETING—
TECHNICAL
TALK
COBY VINER
USE CASES
BASIC EXAMPLES
BASIC SYNTAX
ADDITIONAL
SYNTAX
MORE EXAMPLES
REAL EXAMPLES
WHY USE GNU PARALLEL?
a shell tool for executing jobs in parallel using one
or more computers.
Easily parallelize perfectly parallel tasks
For each chromosome. . .
For each sex, for each technical replicate, for each
hyper-parameter(s)
7. LAB MEETING—
TECHNICAL
TALK
COBY VINER
USE CASES
BASIC EXAMPLES
BASIC SYNTAX
ADDITIONAL
SYNTAX
MORE EXAMPLES
REAL EXAMPLES
WHY USE GNU PARALLEL?
a shell tool for executing jobs in parallel using one
or more computers.
Easily parallelize perfectly parallel tasks
For each chromosome. . .
For each sex, for each technical replicate, for each
hyper-parameter(s)
Job submission scripts within a for loop
8. LAB MEETING—
TECHNICAL
TALK
COBY VINER
USE CASES
BASIC EXAMPLES
BASIC SYNTAX
ADDITIONAL
SYNTAX
MORE EXAMPLES
REAL EXAMPLES
WHY USE GNU PARALLEL?
a shell tool for executing jobs in parallel using one
or more computers.
Easily parallelize perfectly parallel tasks
For each chromosome. . .
For each sex, for each technical replicate, for each
hyper-parameter(s)
Job submission scripts within a for loop
Improved, cleaner, syntax (for the programmer), even in
serial
9. LAB MEETING—
TECHNICAL
TALK
COBY VINER
USE CASES
BASIC EXAMPLES
BASIC SYNTAX
ADDITIONAL
SYNTAX
MORE EXAMPLES
REAL EXAMPLES
WHY USE GNU PARALLEL?
a shell tool for executing jobs in parallel using one
or more computers.
Easily parallelize perfectly parallel tasks
For each chromosome. . .
For each sex, for each technical replicate, for each
hyper-parameter(s)
Job submission scripts within a for loop
Improved, cleaner, syntax (for the programmer), even in
serial
Facile interleaving of tasks, in the order one is thinking
about them
10. A BASIC [MAN PAGE] EXAMPLE: “WORKING
AS XARGS -N1. ARGUMENT APPENDING”
find . -name '*.html' | parallel gzip --best
17. ANOTHER BASIC [MAN PAGE] EXAMPLE:
“INSERTING MULTIPLE ARGUMENTS”
bash: /bin/mv: Argument list too long
ls | grep -E '.log$' | parallel mv {} destdir
18. ANOTHER BASIC [MAN PAGE] EXAMPLE:
“INSERTING MULTIPLE ARGUMENTS”
bash: /bin/mv: Argument list too long
ls | grep -E '.log$' | parallel mv {} destdir
ls | grep -E '.log$' | parallel -m mv {} destdir
19. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Input:
parallel echo ::: A B C # command line
cat abc-file | parallel echo # from STDIN
parallel -a abc-file echo # from a file
20. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Input:
parallel echo ::: A B C # command line
cat abc-file | parallel echo # from STDIN
parallel -a abc-file echo # from a file
Output [line order may vary]:
A
B
C
21. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Multiple inputs.
Input:
parallel echo ::: A B C ::: D E F
cat abc-file | parallel -a - -a def-file echo
parallel -a abc-file -a def-file echo
cat abc-file | parallel echo :::: - def-file # alt. file
parallel echo ::: A B C :::: def-file # mix cmd. and file
22. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Multiple inputs.
Input:
parallel echo ::: A B C ::: D E F
cat abc-file | parallel -a - -a def-file echo
parallel -a abc-file -a def-file echo
cat abc-file | parallel echo :::: - def-file # alt. file
parallel echo ::: A B C :::: def-file # mix cmd. and file
Output [line order may vary]:
A D
A E
A F
B D
B E
B F
C D
C E
C F
23. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Matching input.
Input:
parallel --xapply echo ::: A B C ::: D E F
24. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Matching input.
Input:
parallel --xapply echo ::: A B C ::: D E F
Output [line order may vary]:
A D
B E
C F
25. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Matching input.
Input:
parallel --xapply echo ::: A B C ::: D E F
Output [line order may vary]:
A D
B E
C F
-xapply will wrap, if insufficient input is provided.
26. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Replacement strings: The 7 predefined replacement strings
Input:
parallel echo {} ::: A/B.C
parallel echo {.} ::: A/B.C
Output:
A/B.C
A/B
27. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Replacement strings: The 7 predefined replacement strings
Input:
parallel echo {} ::: A/B.C
parallel echo {.} ::: A/B.C
Output:
A/B.C
A/B
Rep. String Result
. remove ext.
/ remove path
// only path
/. only ext. and path
# job number
% job slot number
28. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Customizing replacement strings
-extensionreplace to change {.} etc.
Shorthand custom (PCRE+) replacement strings
GNU parallel’s 7 replacement strings:
--rpl '{} '
--rpl '{#} $_=$job->seq()'
--rpl '{%} $_=$job->slot()'
--rpl '{/} s:.*/::'
--rpl '{//} $Global::use{"File::Basename"}
||= eval "use File::Basename; 1;"; $_ = dirname($_);'
--rpl '{/.} s:.*/::; s:.[^/.]+$::;'
--rpl '{.} s:.[^/.]+$::'
29. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Multiple input sources and positional replacement:
parallel echo {1} and {2} ::: A B ::: C D
30. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Multiple input sources and positional replacement:
parallel echo {1} and {2} ::: A B ::: C D
Always try to define replacements, with {<>} syntax.
31. BASIC ELEMENTS OF SYNTAX [FROM THE
TUTORIAL]
Multiple input sources and positional replacement:
parallel echo {1} and {2} ::: A B ::: C D
Always try to define replacements, with {<>} syntax.
Test with --dry-run first.
32. MUCH MORE SYNTAX FOR MANY OTHER TASKS
--pipe: instead of STDIN as command args, data sent to
STDIN of command
33. MUCH MORE SYNTAX FOR MANY OTHER TASKS
--pipe: instead of STDIN as command args, data sent to
STDIN of command
command_A | command_B | command_C, where
command_B is slow
34. MUCH MORE SYNTAX FOR MANY OTHER TASKS
--pipe: instead of STDIN as command args, data sent to
STDIN of command
command_A | command_B | command_C, where
command_B is slow
Remote execution to directly parallelize over multiple
machines
35. MUCH MORE SYNTAX FOR MANY OTHER TASKS
--pipe: instead of STDIN as command args, data sent to
STDIN of command
command_A | command_B | command_C, where
command_B is slow
Remote execution to directly parallelize over multiple
machines
Working directly with a SQL database
36. MUCH MORE SYNTAX FOR MANY OTHER TASKS
--pipe: instead of STDIN as command args, data sent to
STDIN of command
command_A | command_B | command_C, where
command_B is slow
Remote execution to directly parallelize over multiple
machines
Working directly with a SQL database
Shebang: often cat input_file | parallel command,
but can do #!/usr/bin/parallel --shebang -r echo
37. MUCH MORE SYNTAX FOR MANY OTHER TASKS
--pipe: instead of STDIN as command args, data sent to
STDIN of command
command_A | command_B | command_C, where
command_B is slow
Remote execution to directly parallelize over multiple
machines
Working directly with a SQL database
Shebang: often cat input_file | parallel command,
but can do #!/usr/bin/parallel --shebang -r echo
As a counting semaphore: parallel --semaphore or sem
38. MUCH MORE SYNTAX FOR MANY OTHER TASKS
--pipe: instead of STDIN as command args, data sent to
STDIN of command
command_A | command_B | command_C, where
command_B is slow
Remote execution to directly parallelize over multiple
machines
Working directly with a SQL database
Shebang: often cat input_file | parallel command,
but can do #!/usr/bin/parallel --shebang -r echo
As a counting semaphore: parallel --semaphore or sem
Default is one slot: a mutex
39. ANOTHER [MAN PAGE] EXAMPLE:
“AGGREGATING CONTENT OF FILES”
parallel --header : echo x{X}y{Y}z{Z} >
x{X}y{Y}z{Z}
::: X {1..5} ::: Y {01..10} ::: Z {1..5}
40. ANOTHER [MAN PAGE] EXAMPLE:
“AGGREGATING CONTENT OF FILES”
parallel --header : echo x{X}y{Y}z{Z} >
x{X}y{Y}z{Z}
::: X {1..5} ::: Y {01..10} ::: Z {1..5}
parallel eval 'cat {=s/y01/y*/=} >
{=s/y01//=}' ::: *y01*
This runs: cat x1y*z1 > x1z1, ∀x∀z
41. POST-MEME2IMAGES INKSCAPE
CONVERSIONS FOR PUBLICATION-READY
CENTRIMO PLOTS AND SEQUENCE LOGOS
parallel inkscape --vacuum-defs --export-pdf={.}.pdf {}
::: "$centrimo_eps_1" "$centrimo_eps_2"