The document discusses OpenShift security context constraints (SCCs) and how to configure them to allow running a WordPress container. It begins with an overview of SCCs and their purpose in OpenShift for controlling permissions for pods. It then describes issues running the WordPress container under the default "restricted" SCC due to permission errors. The document explores editing the "restricted" SCC and removing capabilities and user restrictions to address the errors. Alternatively, it notes the "anyuid" SCC can be used which is more permissive and standard for allowing the WordPress container to run successfully.
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013dotCloud
The document outlines the agenda for the OpenStack Summit in November 2013. The agenda includes sessions on Docker and its ecosystem, using Docker with OpenStack and Rackspace, and a cross-cloud deployment demo. Docker is presented as a solution for developing and deploying applications across multiple environments by encapsulating code and dependencies in portable containers. It can help eliminate inconsistencies between development, testing, and production environments.
DevOpsDays Taipei 2024 - Evolution of DevOps: Lessons Learned from a Growing ...smalltown
Discover the journey of DevOps in a startup environment through our presentation from DevOpsDays. As the Head of SRE at MaiCoin Group, I share practical insights and lessons learned from our experience in building and scaling a DevOps team. This presentation covers:
- The realities of DevOps in a startup, beyond the buzzwords
- Strategies for team expansion and role evolution
- Tools and techniques for effective DevOps practices
- Balancing technical choices and budget constraints
- Survival guide for DevOps engineers in startups
Reference:
💡 Monitoring
🔗 Prometheus Operator — 為 Kubernetes 設定及管理 Prometheus: https://blog.amis.com/kubernetes-operators-prometheus-3584edd72275
🔗 Kubernetes Multi-Clusters Monitoring With Prometheus & Thanos: https://medium.com/starbugs/kubernetes-multi-clusters-monitoring-with-prometheus-thanos-acff364f29d1
🔗 服務總是在半夜出事嗎? — 令人不再害怕 On Call 的系統化做法: https://medium.com/starbugs/%E6%9C%8D%E5%8B%99%E7%B8%BD%E6%98%AF%E5%9C%A8%E5%8D%8A%E5%A4%9C%E5%87%BA%E4%BA%8B%E5%97%8E-%E4%BB%A4%E4%BA%BA%E4%B8%8D%E5%86%8D%E5%AE%B3%E6%80%95-on-call-%E7%9A%84%E7%B3%BB%E7%B5%B1%E5%8C%96%E5%81%9A%E6%B3%95-1a1e6497cb13
💡 Logging
🔗 我的 ElasticSearch 進化之旅: https://medium.com/starbugs/%E6%88%91%E7%9A%84-elasticsearch-log-%E6%94%B6%E9%9B%86%E4%B9%8B%E6%97%85-39016c3b9a29
💡 IaC
🔗 Infrastructure As Code Day 2 — Unity: https://blog.amis.com/infrastructure-as-code-day-2-unity-82280521ebdb
🔗 Infrastructure As Code Day 2 — Testing: https://blog.amis.com/infrastructure-as-code-day-2-testing-942800fe1b5f
🔗 Infrastructure As Code Day 2 — Collaboration: https://blog.amis.com/infrastructure-as-code-day-2-collaboration-242bd82a102c
💡 CI/CD
🔗 Argo CD ApplicationSet Controller: 世界為我而轉動!: https://medium.com/starbugs/argo-cd-applicationset-controller-%E4%B8%96%E7%95%8C%E7%82%BA%E6%88%91%E8%80%8C%E8%BD%89%E5%8B%95-a837f9392298
Short Introduction to Docker. These slides show the basic idea behind the container technology Docker. The slides present the basic features for the daily use with Docker, Docker Compose, Docker Machine and Docker Swarm.
Docker is specially important for DevOps, because it gives Software Developers more control about their dependencies in different environments.
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Edureka!
( ** DevOps Training: https://www.edureka.co/devops ** )
This Docker Explained PPT will explain to you the fundamentals of Docker with a hands-on. Below are the topics covered in the PPT:
Problems Before Docker
Virtualization vs Containerization
What is Docker?
How does Docker work?
Docker Components
Docker Architecture
Docker Compose & Docker Swarm
Hands-On
Testing Ansible with Jenkins and DockerDennis Rowe
This document discusses using Jenkins and Docker to test Ansible code. It describes two approaches: the first uses Jenkins plugins to build a Docker image and run tests in a container, while the second builds and tests directly with Docker without plugins. The key steps are to create Jenkins jobs to build an image with the Ansible code and test playbooks, run the test playbook in a container, and verify the results. Benefits of this approach include fast test cycles and reproducible environments.
- Stefan Streichsbier is the CEO of GuardRails and a professional white-hat hacker who has identified severe shortcomings in security processes and technologies, leading him to create GuardRails.
- The document discusses the evolution of DevOps and increasing complexity, the state of security and how it needs to fit within modern development workflows, and introduces the concept of DevSecOps to address shortcomings and better integrate security.
- Key aspects of DevSecOps discussed include how to create, test, and monitor secure applications and empower development teams to build security in from the start rather than see it as a separate function. Automated security tools and the need to reduce noise and improve usability for developers is also
The document discusses problem solving and some best practices. It defines problem solving as making an algorithm to solve a given problem within time and memory limits. It notes that problem solving can involve simulation, optimization of functions, or finding important data. While problem solving is helpful for programming, some example codes provided have issues like unused header files, global variables, and a lack of comments or readability. Effective problem solving involves translating problems into mathematics and algorithms, optimizing solutions, coding routines, and developing libraries to solve common problems. Overall, problem solving is a useful skill that involves analyzing problems and developing efficient coded solutions.
Docker is an open platform for developing, shipping, and running applications. It allows packaging applications into standardized units for software called containers that can run on any infrastructure. The key components of Docker include images, containers, a client-server architecture using Docker Engine, and registries for storing images. Images act as templates for creating containers, which are run-time instances of images. Docker provides portability and isolation of applications using containers.
This document provides instructions on various Docker commands and concepts. It begins with definitions of Docker and the differences between VMs and Docker containers. It then covers topics like installing Docker, finding Docker images and versions, building images with Dockerfiles, running containers with commands like docker run, and managing images and containers.
My college ppt on topic Docker. Through this ppt, you will understand the following:- What is a container? What is Docker? Why its important for developers? and many more!
AST - the only true tool for building JavaScriptIngvar Stepanyan
The document discusses working with code abstract syntax trees (ASTs). It provides examples of parsing code into ASTs using libraries like Esprima, querying ASTs using libraries like grasp-equery, constructing and transforming ASTs, and generating code from ASTs. It introduces aster, an AST-based code builder that allows defining reusable AST transformations as plugins and integrating AST-based builds into generic build systems like Grunt and Gulp. Aster aims to improve on file-based builders by working directly with ASTs in a streaming fashion.
ASTs are an incredibly powerful tool for understanding and manipulating JavaScript. We'll explore this topic by looking at examples from ESLint, a pluggable static analysis tool, and Browserify, a client-side module bundler. Through these examples we'll see how ASTs can be great for analyzing and even for modifying your JavaScript. This talk should be interesting to anyone that regularly builds apps in JavaScript either on the client-side or on the server-side.
DevOpsDays Taipei 2024 - Evolution of DevOps: Lessons Learned from a Growing ...smalltown
Discover the journey of DevOps in a startup environment through our presentation from DevOpsDays. As the Head of SRE at MaiCoin Group, I share practical insights and lessons learned from our experience in building and scaling a DevOps team. This presentation covers:
- The realities of DevOps in a startup, beyond the buzzwords
- Strategies for team expansion and role evolution
- Tools and techniques for effective DevOps practices
- Balancing technical choices and budget constraints
- Survival guide for DevOps engineers in startups
Reference:
💡 Monitoring
🔗 Prometheus Operator — 為 Kubernetes 設定及管理 Prometheus: https://blog.amis.com/kubernetes-operators-prometheus-3584edd72275
🔗 Kubernetes Multi-Clusters Monitoring With Prometheus & Thanos: https://medium.com/starbugs/kubernetes-multi-clusters-monitoring-with-prometheus-thanos-acff364f29d1
🔗 服務總是在半夜出事嗎? — 令人不再害怕 On Call 的系統化做法: https://medium.com/starbugs/%E6%9C%8D%E5%8B%99%E7%B8%BD%E6%98%AF%E5%9C%A8%E5%8D%8A%E5%A4%9C%E5%87%BA%E4%BA%8B%E5%97%8E-%E4%BB%A4%E4%BA%BA%E4%B8%8D%E5%86%8D%E5%AE%B3%E6%80%95-on-call-%E7%9A%84%E7%B3%BB%E7%B5%B1%E5%8C%96%E5%81%9A%E6%B3%95-1a1e6497cb13
💡 Logging
🔗 我的 ElasticSearch 進化之旅: https://medium.com/starbugs/%E6%88%91%E7%9A%84-elasticsearch-log-%E6%94%B6%E9%9B%86%E4%B9%8B%E6%97%85-39016c3b9a29
💡 IaC
🔗 Infrastructure As Code Day 2 — Unity: https://blog.amis.com/infrastructure-as-code-day-2-unity-82280521ebdb
🔗 Infrastructure As Code Day 2 — Testing: https://blog.amis.com/infrastructure-as-code-day-2-testing-942800fe1b5f
🔗 Infrastructure As Code Day 2 — Collaboration: https://blog.amis.com/infrastructure-as-code-day-2-collaboration-242bd82a102c
💡 CI/CD
🔗 Argo CD ApplicationSet Controller: 世界為我而轉動!: https://medium.com/starbugs/argo-cd-applicationset-controller-%E4%B8%96%E7%95%8C%E7%82%BA%E6%88%91%E8%80%8C%E8%BD%89%E5%8B%95-a837f9392298
Short Introduction to Docker. These slides show the basic idea behind the container technology Docker. The slides present the basic features for the daily use with Docker, Docker Compose, Docker Machine and Docker Swarm.
Docker is specially important for DevOps, because it gives Software Developers more control about their dependencies in different environments.
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Edureka!
( ** DevOps Training: https://www.edureka.co/devops ** )
This Docker Explained PPT will explain to you the fundamentals of Docker with a hands-on. Below are the topics covered in the PPT:
Problems Before Docker
Virtualization vs Containerization
What is Docker?
How does Docker work?
Docker Components
Docker Architecture
Docker Compose & Docker Swarm
Hands-On
Testing Ansible with Jenkins and DockerDennis Rowe
This document discusses using Jenkins and Docker to test Ansible code. It describes two approaches: the first uses Jenkins plugins to build a Docker image and run tests in a container, while the second builds and tests directly with Docker without plugins. The key steps are to create Jenkins jobs to build an image with the Ansible code and test playbooks, run the test playbook in a container, and verify the results. Benefits of this approach include fast test cycles and reproducible environments.
- Stefan Streichsbier is the CEO of GuardRails and a professional white-hat hacker who has identified severe shortcomings in security processes and technologies, leading him to create GuardRails.
- The document discusses the evolution of DevOps and increasing complexity, the state of security and how it needs to fit within modern development workflows, and introduces the concept of DevSecOps to address shortcomings and better integrate security.
- Key aspects of DevSecOps discussed include how to create, test, and monitor secure applications and empower development teams to build security in from the start rather than see it as a separate function. Automated security tools and the need to reduce noise and improve usability for developers is also
The document discusses problem solving and some best practices. It defines problem solving as making an algorithm to solve a given problem within time and memory limits. It notes that problem solving can involve simulation, optimization of functions, or finding important data. While problem solving is helpful for programming, some example codes provided have issues like unused header files, global variables, and a lack of comments or readability. Effective problem solving involves translating problems into mathematics and algorithms, optimizing solutions, coding routines, and developing libraries to solve common problems. Overall, problem solving is a useful skill that involves analyzing problems and developing efficient coded solutions.
Docker is an open platform for developing, shipping, and running applications. It allows packaging applications into standardized units for software called containers that can run on any infrastructure. The key components of Docker include images, containers, a client-server architecture using Docker Engine, and registries for storing images. Images act as templates for creating containers, which are run-time instances of images. Docker provides portability and isolation of applications using containers.
This document provides instructions on various Docker commands and concepts. It begins with definitions of Docker and the differences between VMs and Docker containers. It then covers topics like installing Docker, finding Docker images and versions, building images with Dockerfiles, running containers with commands like docker run, and managing images and containers.
My college ppt on topic Docker. Through this ppt, you will understand the following:- What is a container? What is Docker? Why its important for developers? and many more!
AST - the only true tool for building JavaScriptIngvar Stepanyan
The document discusses working with code abstract syntax trees (ASTs). It provides examples of parsing code into ASTs using libraries like Esprima, querying ASTs using libraries like grasp-equery, constructing and transforming ASTs, and generating code from ASTs. It introduces aster, an AST-based code builder that allows defining reusable AST transformations as plugins and integrating AST-based builds into generic build systems like Grunt and Gulp. Aster aims to improve on file-based builders by working directly with ASTs in a streaming fashion.
ASTs are an incredibly powerful tool for understanding and manipulating JavaScript. We'll explore this topic by looking at examples from ESLint, a pluggable static analysis tool, and Browserify, a client-side module bundler. Through these examples we'll see how ASTs can be great for analyzing and even for modifying your JavaScript. This talk should be interesting to anyone that regularly builds apps in JavaScript either on the client-side or on the server-side.
Hardware Acceleration on Mobile, Ariya Hidayat & Jarred NichollsSencha
GPU acceleration on mobile browsers, if it is leveraged correctly, can lead to a smooth and fluid applications, thus improving the user experience. There has been a lot of mentions and best practices of hardware acceleration these days, although so far it has been pretty general and hasn’t provided much technical direction apart from simple magical advice such as “use translate3d”. This talk sheds some more light on browser interactions with the GPU and explain what happens behind the scenes, covering the topic of acceleration of primitive drawing, the use of tiled backing store, and composited layer. Knowing the actual machinery behind hardware acceleration, you will be in the position to plan your strategy to improve the performance of your web application.
The document discusses the use of salts in password hashing. It explains that salts are random strings that are added to passwords before hashing to protect against rainbow table attacks. It provides an example of how salts can be added to user IDs and passwords in a database to make each hashed password unique even if the original passwords are the same. The document recommends regularly generating new salts for each user to further strengthen security.
(COSCUP 2015) A Beginner's Journey to Mozilla SpiderMonkey JS EngineZongXian Shen
This is my slides of COSCUP 2015 at Taipei, Taiwan.
The material is about the engine implementation overview from a 3 month experienced mentor bug contributor.
Node.js vs Play Framework (with Japanese subtitles)Yevgeniy Brikman
Video: http://www.nicovideo.jp/watch/1410857293
Here's the showdown you've been waiting for: Node.js vs Play Framework. Both are popular open source web frameworks that are built for developer productivity, asynchronous I/O, and the real time web. But which one is easier to learn, test, deploy, debug, and scale? Should you pick Javascript or Scala? The Google v8 engine or the JVM? NPM or Ivy? Grunt or SBT? Two frameworks enter, one framework leaves.
This version of the presentation has Japanese subtitles. For the English only version, see http://www.slideshare.net/brikis98/nodejs-vs-play-framework
The document discusses graphics processing units (GPUs) and their role in computer graphics. It explains that GPUs are needed to translate binary data from the CPU into images on a monitor, as CPUs fail for high-end graphics work. It then covers the components of a graphics card, techniques like anti-aliasing and shaders, and APIs like OpenGL and DirectX. Finally, it discusses applications of GPUs in areas like gaming, design, movies, and medicine.
The document discusses the evolution of GPU architecture and capabilities over time. It describes how GPUs have become massively parallel processors with programmable capabilities beyond just graphics. The document outlines the core components of a GPU including the graphics pipeline and programming model. It also discusses how GPUs are well suited for parallel, data-intensive applications and how their capabilities have expanded into general purpose computing through technologies like CUDA.
NHN NEXT 게임 서버 프로그래밍 강의 자료입니다. 최소한의 필요한 이론 내용은 질문 위주로 구성되어 있고 (답은 학생들 개별로 고민해와서 피드백 받는 방식) 해당 내용에 맞는 실습(구현) 과제가 포함되어 있습니다.
참고로, 서버 아키텍처에 관한 과목은 따로 있어서 본 강의에는 포함되어 있지 않습니다.
(Video of these slides here http://fsharpforfunandprofit.com/rop)
(My response to "this is just Either" here: http://fsharpforfunandprofit.com/rop/#monads)
Many examples in functional programming assume that you are always on the "happy path". But to create a robust real world application you must deal with validation, logging, network and service errors, and other annoyances.
So, how do you handle all this in a clean functional way? This talk will provide a brief introduction to this topic, using a fun and easy-to-understand railway analogy.
JavaScript hat eine bewegte Geschichte hinter sich. Manch einer erinnert sich diesbzüglich vielleicht an die ersten Gehversuche für kleinere Spielereien auf Webseiten. Inzwischen hat sich JavaScript nicht nur zu einer ernstzunehmenden Programmiersprache gemausert, sondern gehört auch zu den Top 10 der meist genutzten Sprachen.
Tausende von frei verfügbaren Web-Frameworks auf JavaScript-Basis bieten einen reichhaltigen Fundus zur Entwicklung oder Ergänzung von eigenen Anwendungen.
Darüberhinaus gibt es nicht nur Client-basiert sondern auch Server-basiert mächtige Werkzeuge, mit denen sich unterschiedlichste Anwendungsszenarien – vom Number-Crunching bis zu hochskalierbaren Server-Diensten – effektiv umsetzen lassen.
Wie man sich diese Möglichkeiten innerhalb von FileMaker zu Nutze machen kann, erklärt dieser Vortrag anhand von Beispielen – wie z.B. interaktive Kalender, graphische Auswertungen, Batch-Verarbeitung von umfangreichen Berechnungen.
Aus der Praxis wird ein Beispielprojekt vorgestellt zur Lösung des TSP (Traveling Salesman Problem), wo die Möglichkeiten von JavaScript effektiv in eine FileMaker-Anwendung integriert wurden. Es werden Herangehensweisen erläutert und frei verfügbare Bibliotheken für unterschiedliche Anwendungszwecke vorgestellt.
Interessant für den FileMaker-Entwicker sind die unterschiedlichen Integrations-Möglichkeiten von JavaScript in eigene Anwendungen. Hierzu werden alternative Integrations- und Schnittstellen-Methoden vorgestellt, die über die Standard-Möglichkeiten des Webviewers hinausgehen.
Aus der Praxis wird ein Beispielprojekt vorgestellt zur Lösung des TSP (Traveling Salesman Problem), wo die Möglichkeiten von JavaScript effektiv in eine FileMaker-Anwendung integriert wurden.
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...Verein FM Konferenz
Jeder arbeitet gerne mit Software, die gut aussieht und sich leicht bedienen lässt. Bei einer Datenbanksoftware sollte es nicht anders sein. Mit dem Erscheinen von FileMaker Pro 12 haben wir als Entwickler viele neue Möglichkeiten an die Hand bekommen, "einfach" zu sehr ansprechenden Ergebnissen zu kommen.
In diesem Vortrag können Sie lernen:
- Welche Möglichkeiten der Gestaltung der Benutzeroberfläche bietet uns FileMaker Pro von Haus aus
- Wie kann man eine Datenbank nicht nur schön sondern auch schnell machen
- Wie kann man Trigger zur Benutzerführung verwenden
- Was ist anders bei WebDirect
Für diesen Vortrag sollten Sie mitbringen:
- Grundkenntnisse in FileMaker Pro
- Viel Liebe zum Detail
Data Structures Handling Trillions of Daily Streaming Events by Evan ChanScyllaDB
Conviva built a high-performance streaming analytics pipeline processing trillions of events daily—then made it programmable for diverse workloads. This talk covers how they boosted throughput & memory efficiency 5x+ with Rust, zero-copy data, better execution models & smarter data structures.
This document discusses using Apache Spark and Amazon DSSTNE to generate product recommendations at scale. It summarizes that Amazon uses Spark and Zeppelin notebooks to allow data scientists to develop queries in an agile manner. Deep learning jobs are run on GPUs using Amazon ECS, while CPU jobs run on Amazon EMR. DSSTNE is optimized for large sparse neural networks and allows defining networks in a human-readable JSON format to efficiently handle Amazon's large recommendation problems.
This document discusses XDP (eXpress Data Path), a high-performance network data path that allows programs to run on the receive path of a network interface card. XDP enables packet processing using eBPF programs before packets reach the Linux networking stack. The document provides an overview of XDP and its performance advantages over other packet processing methods. It also discusses XDP's current status and support in the Linux kernel as well as example use cases and benchmarks.
Using GPUs to handle Big Data with Java by Adam Roberts.J On The Beach
Modern graphics processing units (GPUs) are efficient general-purpose stream processors. Learn how Java can exploit the power of GPUs to optimize high-performance enterprise and technical computing applications such as big data and analytics workloads. This presentation covers principles and considerations for GPU programming from Java and looks at the software stack and developer tools available. It also presents a demo showing GPU acceleration and discusses what is coming in the future.
Build Large-Scale Data Analytics and AI Pipeline Using RayDPDatabricks
A large-scale end-to-end data analytics and AI pipeline usually involves data processing frameworks such as Apache Spark for massive data preprocessing, and ML/DL frameworks for distributed training on the preprocessed data. A conventional approach is to use two separate clusters and glue multiple jobs. Other solutions include running deep learning frameworks in an Apache Spark cluster, or use workflow orchestrators like Kubeflow to stitch distributed programs. All these options have their own limitations. We introduce Ray as a single substrate for distributed data processing and machine learning. We also introduce RayDP which allows you to start an Apache Spark job on Ray in your python program and utilize Ray’s in-memory object store to efficiently exchange data between Apache Spark and other libraries. We will demonstrate how this makes building an end-to-end data analytics and AI pipeline simpler and more efficient.
Vous avez récemment commencé à travailler sur Spark et vos jobs prennent une éternité pour se terminer ? Cette présentation est faite pour vous.
Himanshu Arora et Nitya Nand YADAV ont rassemblé de nombreuses bonnes pratiques, optimisations et ajustements qu'ils ont appliqué au fil des années en production pour rendre leurs jobs plus rapides et moins consommateurs de ressources.
Dans cette présentation, ils nous apprennent les techniques avancées d'optimisation de Spark, les formats de sérialisation des données, les formats de stockage, les optimisations hardware, contrôle sur la parallélisme, paramétrages de resource manager, meilleur data localité et l'optimisation du GC etc.
Ils nous font découvrir également l'utilisation appropriée de RDD, DataFrame et Dataset afin de bénéficier pleinement des optimisations internes apportées par Spark.
These slides were presented on a Software Craftsmanship meetup @ EPAM Hungary on 26 January, 2017.
During the talk we went through the evolution of structured data analytics in Spark. We compared the RDD, the SparkSQL (DataFrame) and the DataSet APIs. We used the very latest and greatest Spark 2.1, released on December 28, went through code samples and dove deep into Spark optimizations. The code samples can be downloaded from here: https://github.com/symat/spark-api-comparison
Porting a Streaming Pipeline from Scala to RustEvan Chan
How we at Conviva ported a streaming data pipeline in months from Scala to Rust. What are the important human and technical factors in our port, and what did we learn?
Building a SIMD Supported Vectorized Native Engine for Spark SQLDatabricks
Spark SQL works very well with structured row-based data. Vectorized reader and writer for parquet/orc can make I/O much faster. It also used WholeStageCodeGen to improve the performance by Java JIT code. However Java JIT is usually not working very well on utilizing latest SIMD instructions under complicated queries. Apache Arrow provides columnar in-memory layout and SIMD optimized kernels as well as a LLVM based SQL engine Gandiva. These native based libraries can accelerate Spark SQL by reduce the CPU usage for both I/O and execution.
The document discusses the JavaScript engine architecture in SpiderMonkey. It describes the roles of the interpreter, baseline just-in-time (JIT) compiler, and IonMonkey JIT compiler. The interpreter parses JavaScript code into bytecode, which is then run by interpreting and invoking C++ functions. The baseline JIT compiles hot bytecode into optimized assembly code. IonMonkey performs a full optimization of JavaScript functions by compiling them into a graph representation. Bailouts can occur if type assumptions made during JIT compilation turn out to be incorrect.
This paper talks about algorithms to do database joins on a GPU. Some interesting work here, that will someday lead to implementing databases on a GPGPU like CUDA.
Nibin - Reverse Engineering for exploit writers - ClubHack2008ClubHack
The document summarizes a presentation about reverse engineering the MS08-067 Windows Server Service vulnerability to enable exploitation. It covers the vulnerability discovered in netapi32.dll, how the bug allows overwriting the return address on the stack, identifying vectors for proof of concept exploitation, and techniques for reliable mass exploitation on different Windows versions.
The document summarizes a presentation about reverse engineering the MS08-067 Windows Server Service vulnerability to enable exploitation. It covers the vulnerability discovered in netapi32.dll, how the bug allows overwriting the return address on the stack, identifying vectors for proof of concept exploitation, and techniques for reliable mass exploitation on different Windows versions.
Beyond Breakpoints: A Tour of Dynamic AnalysisFastly
Despite advances in software design and static analysis techniques, software remains incredibly complicated and difficult to reason about. Understanding highly-concurrent, kernel-level, and intentionally-obfuscated programs are among the problem domains that spawned the field of dynamic program analysis. More than mere debuggers, the challenge of dynamic analysis tools is to be able record, analyze, and replay execution without sacrificing performance. This talk will provide an introduction to the dynamic analysis research space and hopefully inspire you to consider integrating these techniques into your own internal tools.
This document provides an overview of using the Xen management API with the Ruby programming language. It discusses how the API standardizes the data model and communication protocol. It then demonstrates how to use a Ruby gem to interface with the API, giving examples of accessing virtual machines, calling methods on them, and using the API to perform operations equivalent to "xm create".
import rdma: zero-copy networking with RDMA and Pythongroveronline
The document discusses using RDMA (Remote Direct Memory Access) for high performance networking in Python. It describes how traditional sockets involve multiple memory copies that reduce performance. RDMA allows data to be directly placed in the receiving application's memory without intermediate copies. The document outlines an implementation of RDMA sockets in Python, called RdmaSocket, that exposes an interface similar to regular sockets but uses RDMA under the hood. Examples are given showing how it can simplify high performance networking applications in Python.
Adventures in Thread-per-Core Async with Redpanda and SeastarScyllaDB
Thread-per-core programming models are well known in software domains where latency is important. Pinning application threads to physical cores and handling data in a core-affine way can yield impressive results, but what is it like to build a large scale general purpose software product within these constraints?
Redpanda is a high performance persistent stream engine, built on the Seastar framework. This session will describe practical experience of building high performance systems with C++20 in an asynchronous runtime, the unexpected simplicity that can come from strictly mapping data to cores, and explore the challenges & tradeoffs in adopting a thread-per-core architecture.
The .NET Garbage Collector (GC) is really cool. It helps providing our applications with virtually unlimited memory, so we can focus on writing code instead of manually freeing up memory. But how does .NET manage that memory? What are hidden allocations? Are strings evil? It still matters to understand when and where memory is allocated. In this talk, we’ll go over the base concepts of .NET memory management and explore how .NET helps us and how we can help .NET – making our apps better. Expect profiling, Intermediate Language (IL), ClrMD and more!
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
Quantum Computing Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...Alan Dix
Talk at the final event of Data Fusion Dynamics: A Collaborative UK-Saudi Initiative in Cybersecurity and Artificial Intelligence funded by the British Council UK-Saudi Challenge Fund 2024, Cardiff Metropolitan University, 29th April 2025
https://alandix.com/academic/talks/CMet2025-AI-Changes-Everything/
Is AI just another technology, or does it fundamentally change the way we live and think?
Every technology has a direct impact with micro-ethical consequences, some good, some bad. However more profound are the ways in which some technologies reshape the very fabric of society with macro-ethical impacts. The invention of the stirrup revolutionised mounted combat, but as a side effect gave rise to the feudal system, which still shapes politics today. The internal combustion engine offers personal freedom and creates pollution, but has also transformed the nature of urban planning and international trade. When we look at AI the micro-ethical issues, such as bias, are most obvious, but the macro-ethical challenges may be greater.
At a micro-ethical level AI has the potential to deepen social, ethnic and gender bias, issues I have warned about since the early 1990s! It is also being used increasingly on the battlefield. However, it also offers amazing opportunities in health and educations, as the recent Nobel prizes for the developers of AlphaFold illustrate. More radically, the need to encode ethics acts as a mirror to surface essential ethical problems and conflicts.
At the macro-ethical level, by the early 2000s digital technology had already begun to undermine sovereignty (e.g. gambling), market economics (through network effects and emergent monopolies), and the very meaning of money. Modern AI is the child of big data, big computation and ultimately big business, intensifying the inherent tendency of digital technology to concentrate power. AI is already unravelling the fundamentals of the social, political and economic world around us, but this is a world that needs radical reimagining to overcome the global environmental and human challenges that confront us. Our challenge is whether to let the threads fall as they may, or to use them to weave a better future.
Mastering Advance Window Functions in SQL.pdfSpiral Mantra
How well do you really know SQL?📊
.
.
If PARTITION BY and ROW_NUMBER() sound familiar but still confuse you, it’s time to upgrade your knowledge
And you can schedule a 1:1 call with our industry experts: https://spiralmantra.com/contact-us/ or drop us a mail at [email protected]
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Aqusag Technologies
In late April 2025, a significant portion of Europe, particularly Spain, Portugal, and parts of southern France, experienced widespread, rolling power outages that continue to affect millions of residents, businesses, and infrastructure systems.
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxAnoop Ashok
In today's fast-paced retail environment, efficiency is key. Every minute counts, and every penny matters. One tool that can significantly boost your store's efficiency is a well-executed planogram. These visual merchandising blueprints not only enhance store layouts but also save time and money in the process.
10. Why JavaScript on the GPU?
Better question:
Why a GPU?
A: They’re fast!
(well, at certain things...)
11. GPUs are fast b/c...
Totally different paradigm from CPUs
Data parallelism vs. Task parallelism
Stream processing vs. Sequential processing
GPUs can divide-and-conquer
Hardware capable of a large number of “threads”
e.g. ATI Radeon HD 6770m:
480 stream processing units == 480 cores
Typically very high memory bandwidth
Many, many GigaFLOPs
12. GPUs don’t solve all problems
Not all tasks can be accelerated by GPUs
Tasks must be parallelizable, i.e.:
Side effect free
Homogeneous and/or streamable
Overall tasks will become limited by Amdahl’s Law
16. LateralJS
Our Mission
To make JavaScript a first-class citizen on all GPUs
and take advantage of hardware accelerated
operations & data parallelization.
17. Our Options
OpenCL Nvidia CUDA
AMD, Nvidia, Intel, etc. Nvidia only
A shitty version of C99 C++ (C for CUDA)
No dynamic memory Dynamic memory
No recursion Recursion
No function pointers Function pointers
Terrible tooling Great dev. tooling
Immature (arguably) More mature (arguably)
18. Our Options
OpenCL Nvidia CUDA
AMD, Nvidia, Intel, etc. Nvidia only
A shitty version of C99 C++ (C for CUDA)
No dynamic memory Dynamic memory
No recursion Recursion
No function pointers Function pointers
Terrible tooling Great dev. tooling
Immature (arguably) More mature (arguably)
19. Why not a Static Compiler?
We want full JavaScript support
Object / prototype
Closures
Recursion
Functions as objects
Variable typing
Type Inference limitations
Reasonably limited to size and complexity of “kernel-
esque” functions
Not nearly insane enough
21. Why an Interpreter?
We want it all baby - full JavaScript support!
Most insane approach
Challenging to make it good, but holds a lot of promise
24. Oh the agony...
Multiple memory spaces - pointer hell
No recursion - all inlined functions
No standard libc libraries
No dynamic memory
No standard data structures - apart from vector ops
Buggy ass AMD/Nvidia compilers
26. Multiple Memory Spaces
In the order of fastest to slowest:
space description
very fast
private stream processor cache (~64KB)
scoped to a single work item
fast
local ~= L1 cache on CPUs (~64KB)
scoped to a single work group
slow, by orders of magnitude
global ~= system memory over slow bus
constant available to all work groups/items
all the VRAM on the card (MBs)
27. Memory Space Pointer Hell
global uchar* gptr = 0x1000;
local uchar* lptr = (local uchar*) gptr; // FAIL!
uchar* pptr = (uchar*) gptr; // FAIL! private is implicit
0x1000
global local private
0x1000 points to something different
depending on the address space!
28. Memory Space Pointer Hell
Pointers must always be fully qualified
Macros to help ease the pain
#define GPTR(TYPE) global TYPE*
#define CPTR(TYPE) constant TYPE*
#define LPTR(TYPE) local TYPE*
#define PPTR(TYPE) private TYPE*
29. No Recursion!?!?!?
No call stack
All functions are inlined to the kernel function
uint factorial(uint n) {
if (n <= 1)
return 1;
else
return n * factorial(n - 1); // compile-time error
}
33. Yes! dynamic memory
Create a large buffer of global memory - our “heap”
Implement our own malloc() and free()
Create a handle structure - “virtual memory”
P(T, hnd) macro to get the current pointer address
GPTR(handle) hnd = malloc(sizeof(uint));
GPTR(uint) ptr = P(uint, hnd);
*ptr = 0xdeadbeef;
free(hnd);
55. Lateral AST structs
Shared across the Host and the OpenCL runtime
Host writes, Lateral reads
Constructed on Host as contiguous blobs
Easy to send to GPU: memcpy(gpu, ast, ast->size);
Fast to send to GPU, single buffer write
Simple to traverse w/ pointer arithmetic
79. Stack-based Interpreter
Slow as molasses
Memory hog Eclipse style
Heavy memory access
“var x = 1 + 2;” == 30 stack hits alone!
Too much dynamic allocation
No inline optimizations, just following the yellow brick AST
Straight up lazy
Replace with something better!
Bytecode compiler on Host
Bytecode register-based interpreter on Device
81. Too much global access
Everything is dynamically allocated to global memory
Register based interpreter & bytecode compiler can
make better use of local and private memory
// 11.1207 seconds
size_t tid = get_global_id(0);
c[tid] = a[tid];
while(b[tid] > 0) { // touch global memory on each loop
b[tid]--; // touch global memory on each loop
c[tid]++; // touch global memory on each loop Optimizing memory access
}
// 0.0445558 seconds!! HOLY SHIT!
yields crazy results
size_t tid = get_global_id(0);
int tmp = a[tid]; // temp private variable
for(int i=b[tid]; i > 0; i--) tmp++; // touch private variables on each loop
c[tid] = tmp; // touch global memory one time
82. No data or task parallelism
Everything being interpreted in a single “thread”
We have hundreds of cores available to us!
Build in heuristics
Identify side-effect free statements
Break into parallel tasks - very magical
input[0] = Math.pow((0 + 1) / 1.23, 3);
var input = new Array(10);
for (var i = 0; i < input.length; i++) { input[1] = Math.pow((1 + 1) / 1.23, 3);
}
input[i] = Math.pow((i + 1) / 1.23, 3);
...
input[9] = Math.pow((9 + 1) / 1.23, 3);
83. What’s in store
Acceptable performance on all CL devices
V8/Node extension to launch Lateral tasks
High-level API to perform map-reduce, etc.
Lateral-cluster...mmmmm