This document introduces Rust and provides an overview of its key concepts. It begins with an introduction to the presenter and agenda. It then covers basic terminology, common system programming errors, why Rust was created, how to install Rust, data types including primitive types, complex data structures, ownership and borrowing rules, lifetimes, and how to get involved in the Rust community. Key concepts discussed include Rust's type system, memory safety features, and package manager.
Rust has something unique to offer that languages in that space have never had before, and that is a degree of safety that languages like C and C++ have never had. Rust promises to deliver equivalent or better performance and greater productivity with guaranteed memory safety and data race freedom while allowing complete and direct control over memory.
This video will cover:
What is Rust?
Benefits of Rust
Rust Ecosystem
Popular Applications in Rust
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/28XnVtb.
Felix Klock describe the core concepts of the Rust language (ownership, borrowing, and lifetimes), as well as the tools beyond the compiler for open source software component distribution (cargo, crates.io). Filmed at qconlondon.com.
Felix Klock is a research engineer at Mozilla, where he works on the Rust compiler, runtime libraries, and language design. He previously worked on the ActionScript Virtual Machine for the Adobe Flash runtime. Klock is one of the developers of the Larceny Scheme language runtime.
Introduction to rust: a low-level language with high-level abstractionsyann_s
The document discusses the Rust programming language. It notes that Rust is a low-level language that provides high-level abstractions. It allows for high performance due to being compiled without a garbage collector or virtual machine, but also provides high-level features like types, type inference, pattern matching and functional programming. Rust aims to combine the performance of low-level languages with the safety and abstraction of high-level languages.
Rust is the new kid on the block. It's a system programming language that is blazingly fast and offers powerful high-level abstractions better known from dynamic languages like Ruby or Python. Rust offers memory safety without a Garbage Collector and makes low-level programming easier and more secure. I will give an introductory talk about Rust and show some of its nicest features.
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...Edureka!
( ** Edureka Online Training: https://www.edureka.co/ ** )
This video on Rust Programming Language will help you understand basics of Rust programming. The following topics will be covered in this tutorial:
1. Why learn Rust?
2. What is Rust?
3. Install Rust
4. Rust Fundamentals
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Rust's Journey to Async/Await
- Rust was initially built for synchronous I/O but the community wanted asynchronous capabilities for building network services.
- This led to the development of futures in Rust to support asynchronous programming. However, futures had design issues that motivated futures 2.0.
- Async/await was developed to make asynchronous code look synchronous while teaching the borrow checker about asynchronous constraints. This involved debate around syntax.
- After years of work, async/await landed in Rust 1.38, completing Rust's journey to fully supporting asynchronous programming. The implementation involved resolving language-specific challenges.
Rust is a systems programming language developed by Mozilla that provides memory safety without garbage collection. It uses concepts of ownership and borrowing to ensure memory safety issues like use-after-free do not occur. Rust offers zero-cost abstractions meaning abstraction mechanisms like generics have little to no performance overhead. It allows high levels of concurrency but requires memory references be valid during their entire lifetime.
Rust is a systems programming language that is fast, memory-efficient, and safe. It was created by Mozilla Research in 2010 and released in 2015. Rust uses a borrow checker to ensure memory safety at compile time without using garbage collection. It is suitable for writing system software, embedded applications, and web assembly. Rust aims to prevent common concurrency bugs and provides features like strong typing, pattern matching, and macros.
At first glance, writing concurrent programs in Java seems like a straight-forward task. But the devil is in the detail. Fortunately, these details are strictly regulated by the Java memory model which, roughly speaking, decides what values a program can observe for a field at any given time. Without respecting the memory model, a Java program might behave erratic and yield bugs that only occure on some hardware platforms. This presentation summarizes the guarantees that are given by Java's memory model and teaches how to properly use volatile and final fields or synchronized code blocks. Instead of discussing the model in terms of memory model formalisms, this presentation builds on easy-to follow Java code examples.
This document provides an introduction to the Rust programming language. It describes that Rust was developed by Mozilla Research beginning in 2009 to combine the type safety of Haskell, concurrency of Erlang, and speed of C++. Rust reached version 1.0 in 2015 and is a generic, multiparadigm systems programming language that runs on platforms including ARM, Apple, Linux, Windows and embedded devices. It emphasizes security, performance and fine-grained memory safety without garbage collection.
The document provides step-by-step instructions for building and running Intel DPDK sample applications on a test environment with 3 virtual machines connected by 10G NICs. It describes compiling and running the helloworld, L2 forwarding, and L3 forwarding applications, as well as using the pktgen tool for packet generation between VMs to test forwarding performance. Key steps include preparing the Linux kernel for DPDK, compiling applications, configuring ports and MAC addresses, and observing packet drops to identify performance bottlenecks.
This presentation is about Java performance and the most effective ways to work with Java memory, including memory saving techniques and overcoming of memory barriers. Moreover, it contains debunking of the most popular myths on speed boosting.
This presentation by Andrii Antilikatorov (Consultant, GlobalLogic) was delivered at GlobalLogic Java Conference #2 in Krakow on April 23, 2016.
Here are some key things to practice with regular expressions using grep, sed and awk:
- Use grep to search files for patterns using basic regex metacharacters like ^, $, ., *, [, ], etc.
- Use sed for search and replace operations on files using regex to match patterns
- Use awk to parse files into fields based on delimiters like space, comma etc and perform operations on the fields stored in variables $1, $2 etc.
- Write simple awk scripts to print, filter and manipulate data from files. For example print certain fields, filter rows, perform calculations etc.
- Learn about more advanced regex features supported by tools like extended regex in grep, backreferences in sed etc
A talk I gave at the Golang TO Meetup. Highlighting the beautiful powers of Go with respect to concurrency, and writing concurrent programs using it.
Code at: github.com/jsimnz/concurrency-talk
Presentation I gave at a Rust Austin meetup in November 2018 about exploring different approaches for interpreting custom DSLs in Rust with varying speed characteristics and associated safety issues.
This document provides an overview of Linux networking concepts relevant for interviews, including TCP/IP and socket programming. It begins with definitions of LAN, MAN, and WAN networks. It then covers the OSI and TCP/IP models, differences between hub/switch/router, TCP/IP addressing concepts like MAC addresses, IP addresses, ports, and IPv4 vs IPv6. Next it explains TCP/IP protocols like SNMP, ICMP, ARP/RARP, DNS, and DHCP. Finally it discusses socket programming concepts like sockets, client-server programming, and synchronous I/O using select().
Let's turn the table. Suppose your goal is to deliberately create buggy programs in C and C++ with serious security vulnerabilities that can be "easily" exploited. Then you need to know about things like stack smashing, shellcode, arc injection, return-oriented programming. You also need to know about annoying protection mechanisms such as address space layout randomization, stack canaries, data execution prevention, and more. These slides will teach you the basics of how to deliberately write insecure programs in C and C++.
A PDF version of the slides can be downloaded from my homepage: http://olvemaudal.com/talks
Here is a video recording of me presenting these slides at NDC 2014: http://vimeo.com/channels/ndc2014/97505677
Enjoy!
Under the Hood of a Shard-per-Core Database ArchitectureScyllaDB
Most databases are based on architectures that pre-date advances to modern hardware. This results in performance issues, the need to overprovision, and a high total cost of ownership. In this webinar we will discuss the advances to modern server technology and take a deep dive into Scylla’s shard-per-core architecture and our asynchronous engine, the Seastar framework.
Join us to learn how Seastar (and Scylla):
Avoid locks and contention on the CPU level
Bypass kernel bottlenecks
Implement its per-core shared-nothing autosharding mechanism
Utilize modern storage hardware
Leverage NUMA to get the best RAM performance
Balance your data across CPUs and nodes for best and smoothest performance
Plus we’ll cover the advantages of unlocking vertical scalability.
Symmetric Crypto for DPDK - Declan Dohertyharryvanhaaren
The document describes the DPDK symmetric cryptography framework. It includes APIs for scheduling crypto workloads using mbuf bursts, crypto primitives like cipher and hash algorithms, crypto transforms, session management, crypto operations, operation pools, and implemented PMDs like the AES-NI multi-buffer PMD and QAT PMD. Performance tests show the QAT PMD achieving higher throughput than the AES-NI multi-buffer PMD for AES128_CBC_SHA256_HMAC. Future work includes adding asymmetric crypto and an accelerated IPsec solution.
Slides for my Embedded Rust talk at #Devoxx 2016.
Rust is a systems programming language that runs blazingly fast, prevents segfaults and runs on embedded IoT devices.
This document discusses using JavaScript and the internet to control electronics. It introduces several hardware platforms like Arduino and Raspberry Pi that allow connecting electronics to computers. It then explains how JavaScript and Node.js can be used with these platforms through libraries like Johnny-Five and Firmata to control devices from code. Examples are given of using JavaScript to control an LED light and servo motor connected to an Arduino microcontroller board.
Rust is a systems programming language that is fast, memory-efficient, and safe. It was created by Mozilla Research in 2010 and released in 2015. Rust uses a borrow checker to ensure memory safety at compile time without using garbage collection. It is suitable for writing system software, embedded applications, and web assembly. Rust aims to prevent common concurrency bugs and provides features like strong typing, pattern matching, and macros.
At first glance, writing concurrent programs in Java seems like a straight-forward task. But the devil is in the detail. Fortunately, these details are strictly regulated by the Java memory model which, roughly speaking, decides what values a program can observe for a field at any given time. Without respecting the memory model, a Java program might behave erratic and yield bugs that only occure on some hardware platforms. This presentation summarizes the guarantees that are given by Java's memory model and teaches how to properly use volatile and final fields or synchronized code blocks. Instead of discussing the model in terms of memory model formalisms, this presentation builds on easy-to follow Java code examples.
This document provides an introduction to the Rust programming language. It describes that Rust was developed by Mozilla Research beginning in 2009 to combine the type safety of Haskell, concurrency of Erlang, and speed of C++. Rust reached version 1.0 in 2015 and is a generic, multiparadigm systems programming language that runs on platforms including ARM, Apple, Linux, Windows and embedded devices. It emphasizes security, performance and fine-grained memory safety without garbage collection.
The document provides step-by-step instructions for building and running Intel DPDK sample applications on a test environment with 3 virtual machines connected by 10G NICs. It describes compiling and running the helloworld, L2 forwarding, and L3 forwarding applications, as well as using the pktgen tool for packet generation between VMs to test forwarding performance. Key steps include preparing the Linux kernel for DPDK, compiling applications, configuring ports and MAC addresses, and observing packet drops to identify performance bottlenecks.
This presentation is about Java performance and the most effective ways to work with Java memory, including memory saving techniques and overcoming of memory barriers. Moreover, it contains debunking of the most popular myths on speed boosting.
This presentation by Andrii Antilikatorov (Consultant, GlobalLogic) was delivered at GlobalLogic Java Conference #2 in Krakow on April 23, 2016.
Here are some key things to practice with regular expressions using grep, sed and awk:
- Use grep to search files for patterns using basic regex metacharacters like ^, $, ., *, [, ], etc.
- Use sed for search and replace operations on files using regex to match patterns
- Use awk to parse files into fields based on delimiters like space, comma etc and perform operations on the fields stored in variables $1, $2 etc.
- Write simple awk scripts to print, filter and manipulate data from files. For example print certain fields, filter rows, perform calculations etc.
- Learn about more advanced regex features supported by tools like extended regex in grep, backreferences in sed etc
A talk I gave at the Golang TO Meetup. Highlighting the beautiful powers of Go with respect to concurrency, and writing concurrent programs using it.
Code at: github.com/jsimnz/concurrency-talk
Presentation I gave at a Rust Austin meetup in November 2018 about exploring different approaches for interpreting custom DSLs in Rust with varying speed characteristics and associated safety issues.
This document provides an overview of Linux networking concepts relevant for interviews, including TCP/IP and socket programming. It begins with definitions of LAN, MAN, and WAN networks. It then covers the OSI and TCP/IP models, differences between hub/switch/router, TCP/IP addressing concepts like MAC addresses, IP addresses, ports, and IPv4 vs IPv6. Next it explains TCP/IP protocols like SNMP, ICMP, ARP/RARP, DNS, and DHCP. Finally it discusses socket programming concepts like sockets, client-server programming, and synchronous I/O using select().
Let's turn the table. Suppose your goal is to deliberately create buggy programs in C and C++ with serious security vulnerabilities that can be "easily" exploited. Then you need to know about things like stack smashing, shellcode, arc injection, return-oriented programming. You also need to know about annoying protection mechanisms such as address space layout randomization, stack canaries, data execution prevention, and more. These slides will teach you the basics of how to deliberately write insecure programs in C and C++.
A PDF version of the slides can be downloaded from my homepage: http://olvemaudal.com/talks
Here is a video recording of me presenting these slides at NDC 2014: http://vimeo.com/channels/ndc2014/97505677
Enjoy!
Under the Hood of a Shard-per-Core Database ArchitectureScyllaDB
Most databases are based on architectures that pre-date advances to modern hardware. This results in performance issues, the need to overprovision, and a high total cost of ownership. In this webinar we will discuss the advances to modern server technology and take a deep dive into Scylla’s shard-per-core architecture and our asynchronous engine, the Seastar framework.
Join us to learn how Seastar (and Scylla):
Avoid locks and contention on the CPU level
Bypass kernel bottlenecks
Implement its per-core shared-nothing autosharding mechanism
Utilize modern storage hardware
Leverage NUMA to get the best RAM performance
Balance your data across CPUs and nodes for best and smoothest performance
Plus we’ll cover the advantages of unlocking vertical scalability.
Symmetric Crypto for DPDK - Declan Dohertyharryvanhaaren
The document describes the DPDK symmetric cryptography framework. It includes APIs for scheduling crypto workloads using mbuf bursts, crypto primitives like cipher and hash algorithms, crypto transforms, session management, crypto operations, operation pools, and implemented PMDs like the AES-NI multi-buffer PMD and QAT PMD. Performance tests show the QAT PMD achieving higher throughput than the AES-NI multi-buffer PMD for AES128_CBC_SHA256_HMAC. Future work includes adding asymmetric crypto and an accelerated IPsec solution.
Slides for my Embedded Rust talk at #Devoxx 2016.
Rust is a systems programming language that runs blazingly fast, prevents segfaults and runs on embedded IoT devices.
This document discusses using JavaScript and the internet to control electronics. It introduces several hardware platforms like Arduino and Raspberry Pi that allow connecting electronics to computers. It then explains how JavaScript and Node.js can be used with these platforms through libraries like Johnny-Five and Firmata to control devices from code. Examples are given of using JavaScript to control an LED light and servo motor connected to an Arduino microcontroller board.
Rust provides an alternative to C/C++ for programming Arduino Due boards. It offers memory safety without garbage collection, built-in unit testing, and compiles to ARM. Some challenges remain around heap allocations, interrupts, and complex language features. Proper testing is important as even single bit errors can cause software issues in real-world systems like automobiles.
The document discusses the Internet of Things (IoT) and key aspects of connecting devices through the internet. It defines IoT as a network of sensors and low power devices connected through the internet to enrich lives and lower business costs. It then covers topics like common hardware platforms used (Arduino, Raspberry Pi), connectivity protocols (MQTT, CoAP), mesh networks, collecting and analyzing telemetry data, and challenges in IoT like security, standards, and handling large volumes of data.
This document provides an overview of using STM32 microcontrollers and the ARM Cortex-M architecture. It discusses the different Cortex cores from ARM, then focuses on the Cortex-M family. It introduces the STM32F4 chip and resources for documentation. It explains concepts like memory mapping, peripherals, GPIO configuration, and provides an example of configuring USART communication. The document also mentions CMSIS for hardware abstraction and the FreeRTOS real-time operating system.
This talk exposes the reasons what Servo is and why it is necessary, its current status, future plans and details on the Rust programming language, which has a symbiotic relationship with Servo.
The document discusses using an STM32F407VGT6 microcontroller with 168MHz Cortex-M4 CPU, 1MB flash, and 192KB RAM. It provides instructions for downloading toolchains, firmware, and debugging software to interface with the microcontroller via an onboard ST-LINK/V2 debugger over USB or JTAG. The STM32F4 Discovery board is highlighted as a development platform for experimenting with the microcontroller.
Ruby is Awesome and Rust is Awesome and Building a Game in Both is AWESOMEJulien Fitzpatrick
Learning to program in Ruby was super fun, but I kept hearing people talk about typed languages that are so-called "closer to the metal," like Rust. It seemed intimidating, but I was curious! I built a small, text-based adventure game in both Ruby and Rust, side-by-side, so I could see what the differences and similarities were. I learned a lot, and now I'm here to share it all with you!
This document introduces the STM32 microcontroller. It will cover the ARM Cortex processor, the STM32 system-on-chip, and its basic building blocks. The course outline includes introductions to the Cortex architecture, CMSIS standard, STM32 system architecture, peripherals, low power operation, safety features, flash memory, and development tools.
Track 2 session 2 - st dev con 2016 - stm32 open development environmentST_World
The document discusses the STM32 Open Development Environment (ODE) for prototyping and developing IoT solutions. It provides an overview of the hardware and software building blocks available, including STM32 Nucleo development boards, X-Nucleo expansion boards, STM32Cube software, and Function Packs. Function Packs are examples that demonstrate common IoT use cases combining ST hardware and software. The ecosystem supports taking prototypes to final products by working with ST partners who can provide integrated boards and other services.
Rust provides memory safety without garbage collection through its ownership and borrowing model that is checked at compile time. Ownership rules ensure that references to resources like vectors remain valid by moving the vector when it is passed to a function. Borrowing allows immutable or mutable references to a resource, but not both at the same time, avoiding data races. Rust achieves performance comparable to C++ through its zero-cost abstractions and moves semantics that avoid unnecessary data copying.
Microservices Done Right: Key Ingredients for Microservices SuccessApigee | Google Cloud
This document discusses microservices and keys to microservices success. It defines microservices as independently deployable services that work together. Microservices allow for agility, reuse, and productivity. The document outlines how enterprises are adopting microservices with containers, registries, auto-scaling and blue/green deployments. It emphasizes that REST APIs are a key ingredient for microservices success by enabling consumption and shielding consumers from complexity. The document also notes that microservices will fail without API management for issues like API sprawl, security threats and lack of visibility. It positions Apigee as providing the API layer and management capabilities needed for successful microservices.
Slides (in German) from my Building IoT Talk "IoT mit Rust programmieren" which (tries) to answer the question: Can Rust be a solution for embedded IoT devices (instead of C/C++), which are:
connected to the internet
developed in a short time
storing personal data
secure
more intelligence
inexpensive
Docker, Linux Containers, and Security: Does It Add Up?Jérôme Petazzoni
Containers are becoming increasingly popular. They have many advantages over virtual machines: they boot faster, have less performance overhead, and use less resources. However, those advantages also stem from the fact that containers share the kernel of their host, instead of abstracting an new independent environment. This sharing has significant security implications, as kernel exploits can now lead to host-wide escalations.
In this presentation, we will:
- Review the actual security risks, in particular for multi-tenant environments running arbitrary applications and code
- Discuss how to mitigate those risks
- Focus on containers as implemented by Docker and the libcontainer project, but the discussion also stands for plain containers as implemented by LXC
Linux containers provide isolation between applications using namespaces and cgroups. While containers appear similar to VMs, they do not fully isolate applications and some security risks remain. To improve container security, Docker recommends: 1) not running containers as root, 2) dropping capabilities like CAP_SYS_ADMIN, 3) enabling user namespaces, and 4) using security modules like SELinux. However, containers cannot fully isolate applications that need full hardware or kernel access, so virtual machines may be needed in some cases.
Introduction to Rust (Presentation).pptxKnoldus Inc.
In this session, we will delve into the fundamental concepts of rust, why Rust is most beloved language over the years, and also discuss about some key features of rust like ownership and borrowing that makes is suitable for high performance systems.
The Golden Ticket: Docker and High Security Microservices by Aaron GrattafioriDocker, Inc.
True microservices are more than simply bolting a REST interface on your legacy application, packing it in a Docker container and hoping for the best. Security is a key component when designing and building out any new architecture, and it must be considered from top to bottom. Umpa Lumpas might not be considered "real" microservices, but Willy Wonka still has them locked down tight!
In this talk, Aaron will briefly touch on the idea and security benefits of microservices before diving into practical and real world examples of creating a secure microservices architecture. We'll start with designing and building high security Docker containers, using and examining the latest security features in Docker (such as User Namespaces and seccomp-bpf) as well as examine some typically forgotten security principals. Aaron will end on exploring related challenges and solutions in the areas of network security, secrets management and application hardening. Finally, while this talk is geared towards Microservices, it should prove informational for all Docker users, building a PaaS or otherwise.
Swift is Apple's language for the future, and in this presentation we'll cover a brief history of the Swift language, what advantages Swift has for today's microprocessors, and where it is going in the future.
Rust is a systems programming language that was first initiated in 2006 and reached 1.0 in 2015. It is used by Mozilla in Firefox and focuses on memory safety without garbage collection through features like ownership and borrowing. The document provides an introduction to Rust and covers topics like variables, functions, primitive types, if/loop control structures, ownership, references, and encourages readers to explore further topics in the Rust Book and Rust by Example.
Elixir/Phoenix releases and research about common deployment strategies.Michael Dimmitt
Phoenix is a web framework for the Elixir programming language which runs on the Erlang VM.
This talk covers releases in Phoenix which bundles your application and the parts of the Erlang VM needed by your application into a bundle and research about common deployment strategies.
Often this includes putting the release into a docker file and deploying on AWS.
Another strategy not included in the presentation
gigalixir is not mentioned but is another common deployment option.
The Emergent Cloud Security Toolchain for CI/CDJames Wickett
The Emergent Cloud Security Toolchain for CI/CD given at RSA Conference 2018 in San Francisco.
All organizations want to go faster and decrease friction in their cloud software delivery pipeline. Infosec has an opportunity to change their classic approach from blocker to enabler. This talk will discuss hallmarks of CI/CD and some practical examples for adding security testing across different organizations. The talk will cover emergent patterns, practices and toolchains that bring security to the table.
Learning Objectives:
1: Learn the emerging patterns for security in CI/CD pipelines.
2: Receive a pragmatic security toolchain for CI/CD to use in your organization.
3: Understand the real meaning of DevSecOps is without all the hype.
Parallelizing CI using Docker Swarm-ModeAkihiro Suda
Presented at Open Source Summit Japan (http://sched.co/AOmo)
- - -
Slowness of CI is a critical issue in software development, because it discourages engineers from writing tests, and hence deteriorates the quality of the product.
In this presentation, Akihiro Suda will talk about how to accelerate CI by executing test functions in parallel, across a Docker Swarm-mode cluster.
One of the major challenges was the nonuniformity of the makespan. e.g. some chunk of test functions can take 30 minutes, some chunk can take just 10 seconds...
So, he mitigates such a nonuniformity by randomizing the composition of chunks of test functions.
As a result, for example, the integration test of Docker itself that had taken more than 80 minutes can be finished in 4 minutes, with 10 Docker Swarm-mode nodes.
This hack can be easily applied to CI of other software as well.
Presented at NSA User Group. Steps through recent activities and technologies in use across NSA and the IC. Specifically mentions data ingress/egress with JBoss Messaging and MRG-M, storage of data with XFS and GFS, and data presentation capabilities with JBoss Enterprise Middleware Portfolio. 15-20min on Security Automation with SCAP.
Rust is a new systems programming language designed for safety, concurrency, and speed. It uses a borrow checker to ensure memory safety and avoid use-after-free bugs, and enables safe concurrency through message passing and ownership rules. The Rust team has been redesigning and implementing the language over the past year based on lessons learned from writing the compiler in Rust. Their goals are to have a memory-safe, concurrent language that achieves performance comparable to C++. They plan to use Rust for the parallel engine of the Servo browser project.
LXC, Docker, security: is it safe to run applications in Linux Containers?Jérôme Petazzoni
The document discusses the security of running applications in Linux containers. It begins by acknowledging that containers were not originally designed with security in mind. However, it then outlines several techniques that can be used to improve security, such as running containers without root privileges, dropping capabilities, enabling security modules like SELinux, and limiting access to devices and system calls. For the most security-sensitive tasks, it recommends running containers inside virtual machines to isolate them further. In the end, it argues that with the right precautions, containers can be used securely for many applications.
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
This document is a summary of a webinar on securing container deployments. It lists several important items to consider when securing containers including: running builds separately from production clusters; treating containers as immutable; avoiding privileged containers; keeping hosts updated; encrypting secrets; and preventing container drift. The document provides instructions on how to provide feedback on the webinar series and lists upcoming webinar topics.
Joxean Koret - Database Security Paradise [Rooted CON 2011]RootedCON
The document discusses vulnerabilities found in various database software products through analyzing their code and installation directories. Local privilege escalation bugs were found in IBM DB2 and Informix by exploiting how environment variables and shared libraries were handled. Remote code execution bugs were also discovered in UniData and Informix through fuzzing protocols and by exploiting unsafe functions. The document encourages searching for more bugs in database software.
Swift Install Workshop - OpenStack Conference Spring 2012Joe Arnold
OpenStack Swift is a highly-available distributed object storage
system which supports highly concurrent workloads. Swift is the
backbone behind Cloud Files, Rackspace's storage-as-a-service
offering.
In this workshop, which will be hosted by members of SwiftStack, Inc.,
we'll walk you through deployment and use of OpenStack Swift. We'll
begin by showing you how to install Swift from the ground up.
You'll learn:
- what you should know about Swift's architecture
- how to bootstrap a basic Swift installation
After that, we'll cover how to use Swift, including information on:
- creating accounts and users
- adding, removing, and managing data
- building applications on top of Swift
Bring your laptop (with virutalization extensions enabled in the BIOS)
and we will walk through setting up Swift in a virtual machine. We'll
also build an entire application on top of Swift to illustrate how to
use Swift as a storage service. This is a workshop you won't want to
miss!
TensorFlow Serving brings machine learning models in production with Bring Your Own Model (BYOM). We are all able to create a model, to find some data and train the model. But how do you host a model?
In my presentation I will give an overview and demo of TensorFlow Serving. In addition, I will show in an example how to train and host a model. But more important, I will show how you can access the model and the possibilities.
uTensor - embedded devices and machine learning modelsLars Gregori
TensorFlow has already made it possible to use trained machine learning models on smartphones. TensorFlow Lite goes one step further and run TensorFlow models on a Raspberry Pi.
uTensor even puts AI on a microcontroller (MCU). They are small and cheap, but they are also energy efficient, slow and have little RAM, which doesn’t make it any easier.
In my presentation I will take a simple machine learning model on TensorFlow and show why it will NOT work with uTensor. But don’t worry, I will also show a working example. I will also go a little bit deeper into TensorFlow operators and you will see also some C/C++ code.
Project Malmo was initiated by Microsoft Research as a platform to use Minecraft as an AI testing framework. It’s not about playing the game, it’s about using Minecraft as an experimental AI platform.
In my talk I’ll take a look into reinforcement learning and how to solve individual problems with (deep) reinforcement learning, Minecraft, and project Malmo.
The participant will learn the basics of reinforcement learning. In addition, he gets an overview of Project Malmo and concrete examples of reinforcement learning.
https://www.mcubed.london/sessions/minecraft-reinforcement-learning/
Machine Learning Models on Mobile DevicesLars Gregori
Nowadays, mobile devices have enough computing power to run pre-trained models on them. This results in an optimal use of the hardware and an increase in speed, because the data are not sent over the Internet, which also means more privacy. In my presentation I will show different ways to integrate machine learning models into an iOS and Android application.
The participants will learn how to integrate a pre-training model into an iOS and Android application with CoreML and Tensorflow Lite, and how to re-train a model for own pictures and use it instead of the pre-trained model. All examples are shown in a small demo.
https://www.mcubed.london/sessions/machine-learning-models-mobile-devices/
Minecraft and Reinforcement Learning
Project Malmo was initiated by Microsoft Research as a platform to use Minecraft as an AI testing ground. It's not about playing the game, it's about using Minecraft as an experimental AI platform. In my talk I'll take a look into reinforcement learning and how to solve individual problems with (deep) reinforcement learning, Minecraft, and project Malmo.
IoT protocols or Pay per Use (but my washing machine couldn't pay)
"Pay per Use is 'the next big' business model where you only pay for a thing when you use it, which could be a digital or a physical thing.
Mostly an Internet connection is required for the payment, but what happens when e.g., your washing machine is too far away from your Wi-Fi connection? In my presentation I'll talk about "our" Revenue Cloud. The main part will be about different IoT protocols as alternative to a Wi-Fi connection."
https://www.meetup.com/IoTMunich/events/249742137/
Das Projekt Malmo ist eine von Microsoft initiierte Plattform, um Minecraft als AI-Testumgebung zu verwenden. Dabei geht es nicht um Minecraft als Spiel, sondern vielmehr um eine experimentelle AI-Plattform.
Project Malmo was initiated by Microsoft Research as a platform to use Minecraft as an AI testing ground. It's not about playing the game, it's about using Minecraft as an experimental AI platform. In the talk, Lars is going to take a look into reinforcement learning and how to solve individual problems with (deep) reinforcement learning, Minecraft, and project Malmo.
Hacking Machine Learning Meetup: https://www.meetup.com/Hacking-Machine-Learning/events/248225473/
Pay per use ist ein Geschäftsmodell, bei dem für die tatsächliche Nutzung eines Gegenstands bezahlt wird. Dabei kann es sich um einen digitalen oder physischen Gestand handeln, der meist eine Internetverbindung für die Abrechnung benötigt. Was passiert aber, wenn zum Beispiel die Waschmaschine im Keller das Heimnetzwerk nicht erreicht? In diesem Vortrag zeige ich verschiedene Protokolle, die alternativ zu einer WiFi-Verbindung Verwendung finden können.
Using a trained model on your mobile deviceLars Gregori
Apple announced at WWDC17 with iOS 11 CoreML. This allows you to integrate trained machine learning models into your iOS app. It has a minimizes memory footprint and power consumption and is optimized for on-device performance. In my talk I'll show how to train a very simple model and how to integrate it into a mobile app. Another demo will use InceptionV3 as pre-trained model and ARKit for augmented reality visualization.
Using a trained model on your mobile deviceLars Gregori
Apple announced at WWDC17 with iOS 11 CoreML. This allows you to integrate trained machine learning models into your iOS app. It has a minimizes memory footprint and power consumption and is optimized for on-device performance. In my talk I'll show how to train a very simple model and how to integrate it into a mobile app. Another demo will use InceptionV3 as pre-trained model and ARKit for augmented reality visualization.
Project Malmo from Microsoft is a platform to use Minecraft as a AI testing ground. It's not about playing the game, it's about using Minecraft as an experimental platform for AI.
In my talk I'll show how to solve individual problems with reinforcement learning, Minecraft, and project Malmo.
[German] Boards für das IoT-PrototypingLars Gregori
IoT Boards (e.g. Arduino, Raspberry Pi, ESP8266, ...) for prototyping with price tags, technical information and comparison between MCU, MPU and SoC (System on a Chip)
IoT, APIs und Microservices - alles unter Node-REDLars Gregori
This document discusses Node-RED, an open source visual tool for wiring together hardware devices, APIs, and online services. It provides an overview of Node-RED, how to install it, how to create flows by connecting nodes, and how to install additional node modules. It also discusses using Node-RED with Arduino boards and the YaaS API. Developers can build their own nodes by writing JavaScript code.
Web Bluetooth - Next Generation Bluetooth? Lars Gregori
The document discusses Web Bluetooth and its potential uses. It begins with an agenda and demos of existing Web Bluetooth projects like controlling lights and sensors. It then covers the basics of Bluetooth and how Web Bluetooth works in browsers. Potential ideas for using Web Bluetooth are presented like connecting shoes to marketing apps or updating device firmware. Finally, it discusses building your own Bluetooth devices with platforms like Arduino, Raspberry Pi, and LightBlueBean.
Groß steuert klein - Wie lässt sich ein Arduino steuern?Lars Gregori
Der Arduino ist ideal, um analoge und digitale Sensordaten zu lesen und um Aktoren wie LEDs zu steuern. Zudem werden eine Vielzahl von Bibliotheken angeboten. Möchte man ihn aber als IoT-‚Ding‘ ins Internet bringen oder steuern, ergeben sich unterschiedliche Möglichkeiten. In meinem Vortrag zeige ich hierzu verschiedene Wege. Zunächst, wie sich der Arduino mithilfe von Firmata und einem Computer steuern lässt. Hierzu existieren Bibliothen, die das Firmata-Protokoll für verschiedene Programmiersprachen implementieren. Es werden zu Java, JavaScript und Go Beispiele gezeigt. Die serielle Schnittstelle ist eine weitere Möglichkeit, bei der ein Arduino entweder mit einem Computer oder Raspberry Pi direkt kommunizieren kann. Um hingegen mehrere Arduinos mit dem Raspberry Pi anzusprechen, eignet sich ein Datenbus-Protokoll. Der Raspberry Pi bietet hierzu SPI und I2C an, deren Unterschiede aufgezeigt werden. Zu den jeweiligen Arten werden praxisnahe Demos und Codebeispiele gezeigt.
Connecting Minecraft and e-Commerce business servicesLars Gregori
Connecting Minecraft and e-Commerce business services, using a Raspberry Pi and also Minecraft desktop edition. This is based on the YaaS Microservices.
Moto - Orchestrating IoT for business users and connecting it to YaaSLars Gregori
The document discusses connecting IoT devices like a smart wine shelf to YaaS (SAP Hybris as a Service) using Moto, an Android application, Bluetooth Low Energy (BLE), MQTT, Node-RED, and a LightBlue Bean. It provides code snippets in Android for setting up BLE and MQTT communication and discusses using Node-RED for orchestrating the IoT devices and data connected to YaaS.
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
Procurement Insights Cost To Value Guide.pptxJon Hansen
Procurement Insights integrated Historic Procurement Industry Archives, serves as a powerful complement — not a competitor — to other procurement industry firms. It fills critical gaps in depth, agility, and contextual insight that most traditional analyst and association models overlook.
Learn more about this value- driven proprietary service offering here.
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?
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
Semantic Cultivators : The Critical Future Role to Enable AIartmondano
By 2026, AI agents will consume 10x more enterprise data than humans, but with none of the contextual understanding that prevents catastrophic misinterpretations.
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.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, presentation slides, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxJustin Reock
Building 10x Organizations with Modern Productivity Metrics
10x developers may be a myth, but 10x organizations are very real, as proven by the influential study performed in the 1980s, ‘The Coding War Games.’
Right now, here in early 2025, we seem to be experiencing YAPP (Yet Another Productivity Philosophy), and that philosophy is converging on developer experience. It seems that with every new method we invent for the delivery of products, whether physical or virtual, we reinvent productivity philosophies to go alongside them.
But which of these approaches actually work? DORA? SPACE? DevEx? What should we invest in and create urgency behind today, so that we don’t find ourselves having the same discussion again in a decade?
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...SOFTTECHHUB
I started my online journey with several hosting services before stumbling upon Ai EngineHost. At first, the idea of paying one fee and getting lifetime access seemed too good to pass up. The platform is built on reliable US-based servers, ensuring your projects run at high speeds and remain safe. Let me take you step by step through its benefits and features as I explain why this hosting solution is a perfect fit for digital entrepreneurs.
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
📕 Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
👉 Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
TrsLabs - Fintech Product & Business ConsultingTrs Labs
Hybrid Growth Mandate Model with TrsLabs
Strategic Investments, Inorganic Growth, Business Model Pivoting are critical activities that business don't do/change everyday. In cases like this, it may benefit your business to choose a temporary external consultant.
An unbiased plan driven by clearcut deliverables, market dynamics and without the influence of your internal office equations empower business leaders to make right choices.
Getting things done within a budget within a timeframe is key to Growing Business - No matter whether you are a start-up or a big company
Talk to us & Unlock the competitive advantage
9. Rust FAQ
• safe, concurrent, practical system language
• “We do not intend to be
100% static,
100% safe,
100% reflective,
or too dogmatic in any other sense.”
• Mozilla Servo
10. Rust FAQ
• multi-paradigm
• OO
• no garbage collection
• strong influences from the world of functional programming
• built on LLVM
16. Rust Concepts
• ownership, the key concept
• borrowing, and their associated feature ‘references’
• lifetimes, an advanced concept of borrowing
‘fighting with the borrow checker’
https://doc.rust-lang.org/book/
22. Rust Concepts: Ownership
fn foo(v1: Vec<i32>, v2: Vec<i32>) -> (Vec<i32>, Vec<i32>, i32) {
// do stuff with v1 and v2
(v1, v2, 42) // hand back ownership, and the result of our function
}
let v1 = vec![1, 2, 3];
let v2 = vec![1, 2, 3];
let (v1, v2, answer) = foo(v1, v2);
23. Rust Concepts: References and Borrowing
fn foo(v1: &Vec<i32>, v2: &Vec<i32>) -> i32 {
// do stuff with v1 and v2
42 // return the answer
}
let v1 = vec![1, 2, 3];
let v2 = vec![1, 2, 3];
let answer = foo(&v1, &v2);
// we can use v1 and v2 here!
24. Rust Concepts: References and Borrowing
fn foo(v: &Vec<i32>) {
v.push(5);
}
let v = vec![];
foo(&v);
25. Rust Concepts: References and Borrowing
fn foo(v: &Vec<i32>) {
v.push(5);
}
let v = vec![];
foo(&v);
ERROR
cannot borrow immutable borrowed content `*v` as mutable
26. Rust Concepts: References and Borrowing
let mut x = 5;
{
let y = &mut x;
*y += 1;
}
println!("{}", x);
RUN
27. Rust Concepts: References and Borrowing
let mut x = 5;
{
let y = &mut x;
*y += 1;
}
println!("{}", x); OK: 6
RUN
28. Rust Concepts: References and Borrowing
let mut x = 5;
{
let y = &mut x;
*y += 1;
}
println!("{}", x); OK: 6
☜
☜
☟
RUN
29. Rust Concepts: References and Borrowing
The Rules for borrowing:
1. Any borrow must last for a scope no greater than that of the owner.
2. Only one of these kinds of borrows, but not both at the same time:
• one or more references (&T) to a resource
• exactly one mutable reference (&mut T)
30. Rust Concepts: References and Borrowing
let mut x = 5;
let y = &mut x;
*y += 1;
println!("{}", x); Error
RUN
cannot borrow `x` as immutable
because it is also borrowed as mutable
33. zinc.rs
Zinc is an experimental attempt to write an ARM stack
that would be similar to CMSIS or mbed in capabilities
but would show rust’s best safety features applied to
embedded development.
Zinc is mostly assembly-free and completely C-free at
the moment.