The full video from CppCon is available here: https://www.youtube.com/watch?v=PVYdHDm0q6Y
C++ provides a much richer set of abstractions than C. Classes, templates, overloading, and other core C++ features can be leveraged for more readable syntax, better compile time typechecking, more open ended genericity and improved modularity. On the flip side, C89 still boasts some advantages over C++, especially when viewed through a pragmatic lens. C ABIs on many platforms have been stable for decades, practically every language supports binding to C code through foreign function interfaces, and including nearly any C89 header has a negligible effect on compile time on modern computers.
The hourglass pattern provides the best of both worlds. By placing a headers-only C++ interface on top of a minimal C89 interface, it makes ABI issues a non-concern, and enables just a single binary to be shipped for a given platform. It makes providing bindings from other languages easier, and prevents ABI issues like incompatibilities between debug and release variants of runtimes.
This talk provides an overview of the pattern and teaches practical techniques for its implementation using C++14. Real shipping projects inspired the best practices described in the slides.
Code corresponding to this presentation can be found here: https://github.com/CppCon/CppCon2014/tree/master/Presentations/Hourglass%20Interfaces%20for%20C%2B%2B%20APIs%20-%20Stefanus%20Du%20Toit%20-%20CppCon%202014/code
In this WebHack talk I shared about what I have learnt from SpiderMonkey: the JavaScript engine inside Firefox browser. I extracted and concluded 3 slides made in the past, and updated some few content.
JavaScript and popular programming paradigms (OOP, AOP, FP, DSL). Overview of the language to see what tools we can leverage to reduce complexity of our projects.
This part goes over language features and looks at OOP and AOP with JavaScript.
The presentation was delivered at ClubAJAX on 2/2/2010.
Blog post: http://lazutkin.com/blog/2010/feb/5/exciting-js-1/
Continued in Part II: http://www.slideshare.net/elazutkin/exciting-javascript-part-ii
The full video from CppCon is available here: https://www.youtube.com/watch?v=PVYdHDm0q6Y
C++ provides a much richer set of abstractions than C. Classes, templates, overloading, and other core C++ features can be leveraged for more readable syntax, better compile time typechecking, more open ended genericity and improved modularity. On the flip side, C89 still boasts some advantages over C++, especially when viewed through a pragmatic lens. C ABIs on many platforms have been stable for decades, practically every language supports binding to C code through foreign function interfaces, and including nearly any C89 header has a negligible effect on compile time on modern computers.
The hourglass pattern provides the best of both worlds. By placing a headers-only C++ interface on top of a minimal C89 interface, it makes ABI issues a non-concern, and enables just a single binary to be shipped for a given platform. It makes providing bindings from other languages easier, and prevents ABI issues like incompatibilities between debug and release variants of runtimes.
This talk provides an overview of the pattern and teaches practical techniques for its implementation using C++14. Real shipping projects inspired the best practices described in the slides.
Code corresponding to this presentation can be found here: https://github.com/CppCon/CppCon2014/tree/master/Presentations/Hourglass%20Interfaces%20for%20C%2B%2B%20APIs%20-%20Stefanus%20Du%20Toit%20-%20CppCon%202014/code
In this WebHack talk I shared about what I have learnt from SpiderMonkey: the JavaScript engine inside Firefox browser. I extracted and concluded 3 slides made in the past, and updated some few content.
JavaScript and popular programming paradigms (OOP, AOP, FP, DSL). Overview of the language to see what tools we can leverage to reduce complexity of our projects.
This part goes over language features and looks at OOP and AOP with JavaScript.
The presentation was delivered at ClubAJAX on 2/2/2010.
Blog post: http://lazutkin.com/blog/2010/feb/5/exciting-js-1/
Continued in Part II: http://www.slideshare.net/elazutkin/exciting-javascript-part-ii
One Shellcode to Rule Them All: Cross-Platform ExploitationQuinn Wilton
As the internet of things becomes less a buzzword, and more a reality, we're noticing that it's growing increasingly common to see embedded software which runs across different architectures -whether that's the same router firmware running across different models, or the operating system for a smart TV being used by different manufacturers. In a world where even your toaster might have internet access, we suspect that the ability to write cross-platform shellcode is going transition from being a merely neat trick, to a viable tool for attackers.
Writing cross-platform shellcode is tough, but there's a few techniques you can use to simplify the problem. We discuss one such method, which we used to great success during the DEFCON CTF qualifiers this year.
Presented by Tinfoil Security founder Michael Borohovski and engineer Shane Wilton at Secuinside 2014, in Seoul.
https://www.tinfoilsecurity.com/blog/cross-platform-exploitation
"JavaScript in 2016" by Eduard Tomàs
Some years ago in a far far away company, Brendan Eich created JavaScript. A lot of things happened since then. Times changed, the web grown, the language itself was updated, and we as a developers need to adapt too. Last year the last standard of the language arose: ECMAScript 2015 is here, and has some new and interesting features. In this talk we will show the most relevant ones, and also we will introduce some interesting patterns that you can use in JavaScript: you'll learn how to master the language and made JavaScript your best ally to conquest the world!
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.
Els Oosthoek, artikel TVOO 2017 Nick van Dam Els Oosthoek
Learning agility; lifelong learning. Niemand kan daar tegen zijn. Maar hoe staat we er eigenlijk voor in Nederland? En wat is er nodig? Ik interviewde Nick van Dam, net gestart als Hoogleraar Corporate Learning and Development bij Nyenrode Business Universiteit.
One Shellcode to Rule Them All: Cross-Platform ExploitationQuinn Wilton
As the internet of things becomes less a buzzword, and more a reality, we're noticing that it's growing increasingly common to see embedded software which runs across different architectures -whether that's the same router firmware running across different models, or the operating system for a smart TV being used by different manufacturers. In a world where even your toaster might have internet access, we suspect that the ability to write cross-platform shellcode is going transition from being a merely neat trick, to a viable tool for attackers.
Writing cross-platform shellcode is tough, but there's a few techniques you can use to simplify the problem. We discuss one such method, which we used to great success during the DEFCON CTF qualifiers this year.
Presented by Tinfoil Security founder Michael Borohovski and engineer Shane Wilton at Secuinside 2014, in Seoul.
https://www.tinfoilsecurity.com/blog/cross-platform-exploitation
"JavaScript in 2016" by Eduard Tomàs
Some years ago in a far far away company, Brendan Eich created JavaScript. A lot of things happened since then. Times changed, the web grown, the language itself was updated, and we as a developers need to adapt too. Last year the last standard of the language arose: ECMAScript 2015 is here, and has some new and interesting features. In this talk we will show the most relevant ones, and also we will introduce some interesting patterns that you can use in JavaScript: you'll learn how to master the language and made JavaScript your best ally to conquest the world!
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.
Els Oosthoek, artikel TVOO 2017 Nick van Dam Els Oosthoek
Learning agility; lifelong learning. Niemand kan daar tegen zijn. Maar hoe staat we er eigenlijk voor in Nederland? En wat is er nodig? Ik interviewde Nick van Dam, net gestart als Hoogleraar Corporate Learning and Development bij Nyenrode Business Universiteit.
Earthsoft Foundation of Guidance (EFG) is working as an NGO/NPO for students - Education & Career guidance and for Professionals for soft skills enhancements. I am working
on speading , sharing knowledge; experience globally.All presentations have been uploaded at www.slideshare.net and search using key word "earthsoft"
What you are today is based on deeds & decisions of the past
Life of individual can be much better if one has sought career guidance & took right decisions at critical mile stones Exhibiting & utilising soft skills and Has avoided mistakes
in past if any
Earthsoft Foundation of Guidance to be an NGO globally aiming for
Students - Career guidance to decide path aligned to the potential & interest
Professionals - Soft skill enhancements to be good human being & professional
Citizen – Learning from mistakes of others & avoiding those in own life
Be mentor using your education, knowledge & experience to contribute for a social cause & do conduct free training/ workshop seeking help of existing platforms like
rotary,etc
Kindly spread to your friends.Thank you!
- Earthsoft Foundation of Guidance
Let us make earth little softer..
From company business intelligence to predictive value chain business intelligence and from internally-focused and historically based risk and performance forecasting to leveraging the forecasting and analytics wisdom of the market Best In Class:
:
SIMMETHOD provides predictive competitive intelligence linking the value chain via a common set of metrics enabling partners (suppliers, customers) to align their strategies and synchronize their business models, processes and execution.
SIMMETHOD risk and performance management global database is based on competitive intelligence measuring of external market forces that will have major risk and opportunities implications for you and your business.
Earthsoft Foundation of Guidance (EFG) is working as an NGO/NPO for students - Education & Career guidance and for Professionals for soft skills enhancements. I
am working on speading , sharing knowledge; experience globally.All presentations have been uploaded at www.slideshare.net and search using key word
"earthsoft"
What you are today is based on deeds & decisions of the past
Life of individual can be much better if one has sought career guidance & took right decisions at critical mile stones Exhibiting & utilising soft skills and Has
avoided mistakes in past if any
Earthsoft Foundation of Guidance to be an NGO globally aiming for
Students - Career guidance to decide path aligned to the potential & interest
Professionals - Soft skill enhancements to be good human being & professional
Citizen – Learning from mistakes of others & avoiding those in own life
Be mentor using your education, knowledge & experience to contribute for a social cause & do conduct free training/ workshop seeking help of existing platforms
like rotary,etc
Kindly spread to your friends.Thank you!
- Earthsoft Foundation of Guidance
Let us make earth little softer..
Presentación escuela SEC/FEC de paciente experto. Organizada por Mimocardio
16/12/15 20:00h Casa del Corazón (Madrid)
http://pacienteexperto.mimocardio.org
#PacienteExperto
Dra. Almudena Castro Conde, Directora Mimocardio. Presidenta Sección Riesgo Vascular y Rehabilitación Cardiaca SEC
@almucastro01
Dr. Andrés Íñiguez Romo, Presidente SEC
@AIniguezRomo
Dr. José Ramón González-Juanatey, Presidente anterior SEC
@JoseJuanatey
Dr. Manuel Anguita Sánchez, Presidente electo SEC
@anguita_m
PRESENTACIÓN ESCUELA DEL PACIENTE EXPERTO
Dra. Raquel Campuzano, Cardióloga Hospital Universitario Fundación Alcorcón (Madrid)
@R_Campuzano_R
DEBATE: ¿QUÉ UTILIDAD TIENE PARA EL CARDIÓLOGO LA ESCUELA DE PACIENTE EXPERTO?
Dr. Ignacio Fernández Lozano, Secretario general SEC
@ifdezlozano
Dra. Raquel Campuzano Ruiz, Cardióloga Hospital Universitario Fundación Alcorcón (Madrid)
@R_Campuzano_R
Dr. Domingo Marzal Martín, Coordinador Mimocardio Insuficiencia Cardiaca
@domingomarzal
Dra. Inmaculada Roldán Rabadán, Cardióloga Hospital Universitario La Paz (Madrid)
How do we raise our boys? Which impact does it have on their emotional and physical health? Which initiatives exist to challenge the traditional vision of masculinity?
Nadav Markus goes over the path from a simple crash POC provided by Google Project Zero (for CVE-2015-7547), to a fully weaponized exploit.
He explores how an attacker can utilize the behavior of the Linux kernel in order to bypass ASLR, allowing an attacker to remotely execute code on vulnerable targets.
What has to be paid attention when reviewing code of the library you developAndrey Karpov
Developers of libraries have to be more diligent than «classic» application programmers. Why? You never know where and when the library will be used: Platforms; Compilers; Optimizations; Usage scenarios.
With the advent of ESM modules, any tool that dynamically loads modules needs
to do so asynchronously: due to its runtime plugins and configuration systems,
Babel is slowly migrating from a synchronous to an asynchronous API. However,
sometimes you really need your libraries to be synchronous: learn with us how
we solved this problem, thanks to Workers and Atomics!
(c) The Belgian Javascript Conference (BeJS Conf) 2023
12 May 2023
Brussels & Online
https://www.bejs.io/conf
https://www.youtube.com/playlist?list=PL53Z0yyYnpWhtlmFjyX1cIlisuFvHv1JK
Jit builder status and directions 2018 03-28Mark Stoodley
Quick status summary of the JitBuilder library at the Eclipse OMR project, followed by the areas the community is currently focusing on for 2018. This presentation is a starting point for ongoing discussion with the community of users and contributors; there are many GitHub issue links where you can join us to participate in the evolution of this exciting project!
Fast as C: How to Write Really Terrible JavaCharles Nutter
For years we’ve been told that the JVM’s amazing optimizers can take your running code and make it “fast” or “as fast as C++” or “as fast as C”…or sometimes “faster than C”. And yet we don’t often see this happen in practice, due in large part to (good and bad) development patterns that have taken hold in the Java world.
In this talk, we’ll explore the main reasons why Java code rarely runs as fast as C or C++ and how you can write really bad Java code that the JVM will do a better job of optimizing. We’ll take some popular microbenchmarks and burn them to the ground, monitoring JIT logs and assembly dumps along the way.
Create C++ Applications with the Persistent Memory Development KitIntel® Software
Persistent memory retains data after a program crash or power failure. This demonstration shows how to make your application aware of persistent memory using the Persistent Memory Development Kit and includes a C++ code sample walk-through.
This slide deck focuses on eBPF JIT compilation infrastructure and how it plays an important role in the entire eBPF life cycle inside the Linux kernel. First, it does quite a number of control flow checks to reject vulnerable programs and then JIT compiles the eBPF program to either host or offloading target instructions which boost performance. However, there is little documentation about this topic which this slide deck will dive into.
Similar to Statically Compiling Ruby with LLVM (20)
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
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.
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
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
4. MacRuby
•
2007: Project created (as a hobby)
•
Replacement for RubyCocoa
•
Fork of CRuby 1.9
•
2008: Had a beer with Chris Lattner
•
2009: Replaced bytecode VM by LLVM JIT
•
2011: Left Apple
6. RubyMotion
•
Command-line toolchain for iOS / OS X dev
•
Implementation of Ruby dialect
•
Unified Ruby runtime with Objective-C
•
Static compiler for Ruby into Intel/ARM
•
Platform for wrappers/libraries ecosystem
•
Commercial product & sustainable business
7. RubyMotion
•
Command-line toolchain for iOS / OS X dev
•
Implementation of Ruby dialect
•
Unified Ruby runtime with Objective-C
•
Static compiler for Ruby into Intel/ARM
•
Platform for wrappers/libraries ecosystem
•
Commercial product & sustainable business
15. File functions
class Hello
def initialize(something)
…
end
def say
…
end
end
!
class Ohai < Hello
def say
…
end
end
!
Hello.new(‘world’).say
File Scope
1
5
3
Hello
Ctor
2
Hello
Scope
Ohai
Ctor
4
Ohai
Scope
File
Code
34. Exceptions
•
Implemented as C++ exceptions
•
Zero-cost for “normal flow”
•
Handlers are compiled using IR intrinsics
•
•
“catch all” landing pad clause
Exception#raise triggers __cxa_raise()
35. DWARF
•
All instructions have proper debug location
metadata
•
Method/block arguments and local variables are
tagged as DW_TAG_{arg,auto}_variable
•
Build system generates a .dSYM bundle
•
Can be loaded by gdb/lldb, atos(1), profilers, etc.
36. REPL
•
Allows to interpret expressions at runtime
•
Only for development (simulator)
•
App process loads the compiler
•
Uses JIT execution engine
38. LLVM lessons
Pluses
• Great to write static
compilers
• Easy to target new
platforms
• Lots of great
optimization passes
Minuses
• C++ API breakage
• Huge code size
• IR is not 100% portable
• Proprietary backends
• Not as great to use as a JIT