We have developed technology that allows a wide range of graphical interfaces to be streamed efficiently over wide area networks. This is an enabling technology that enables remote graphics akin to the way MPEG compression enables video streaming.
This is a presentation deck for Data+AI Summit 2021 at
https://databricks.com/session_na21/enabling-vectorized-engine-in-apache-spark
This presentation is about a methodology which allows patching of a running Linux kernel, its technical details, limitations as well as kpatch tools.
The talk was delivered by Ruslan Bilovol (Associate Manager, Consultant, GlobalLogic) at GlobalLogic Embedded Career Day #2 on February 10, 2018.
More about GlobalLogic Embedded Career Day #2: https://www.globallogic.com/ua/events/globallogic-kyiv-embedded-career-day-2-materials
OpenStack 개요 및 활용 사례 @ Community Open Camp with MicrosoftIan Choi
2016년 4월 9일, Microsoft와 함께 하는 Community Open Camp에서 오픈스택 한국 커뮤니티 첫 번째 세션 자료입니다.
두 번째 자료는 다음 URL에서 확인 가능합니다
: http://www.slideshare.net/YooEdward/why-openstack-is-operating-system-60685165
Top 5 Mistakes When Writing Spark ApplicationsSpark Summit
This document discusses 5 common mistakes when writing Spark applications:
1) Improperly sizing executors by not considering cores, memory, and overhead. The optimal configuration depends on the workload and cluster resources.
2) Applications failing due to shuffle blocks exceeding 2GB size limit. Increasing the number of partitions helps address this.
3) Jobs running slowly due to data skew in joins and shuffles. Techniques like salting keys can help address skew.
4) Not properly managing the DAG to avoid shuffles and bring work to the data. Using ReduceByKey over GroupByKey and TreeReduce over Reduce when possible.
5) Classpath conflicts arising from mismatched library versions, which can be addressed using sh
Bucketing is a popular data partitioning technique to pre-shuffle and (optionally) pre-sort data during writes. This is ideal for a variety of write-once and read-many datasets at Facebook, where Spark can automatically avoid expensive shuffles/sorts (when the underlying data is joined/aggregated on its bucketed keys) resulting in substantial savings in both CPU and IO.
Over the last year, we’ve added a series of optimizations in Apache Spark as a means towards achieving feature parity with Hive and Spark. These include avoiding shuffle/sort when joining/aggregating/inserting on tables with mismatching buckets, allowing user to skip shuffle/sort when writing to bucketed tables, adding data validators before writing bucketed data, among many others. As a direct consequence of these efforts, we’ve witnessed over 10x growth (spanning 40% of total compute) in queries that read one or more bucketed tables across the entire data warehouse at Facebook.
In this talk, we’ll take a deep dive into the internals of bucketing support in SparkSQL, describe use-cases where bucketing is useful, touch upon some of the on-going work to automatically suggest bucketing tables based on query column lineage, and summarize the lessons learned from developing bucketing support in Spark at Facebook over the last 2 years
This document provides an overview of DevOps with Swapnil Jain. It introduces Swapnil and his background, then covers an agenda on Ansible including an introduction, use cases, architecture, modules demo, playbook demo, Ansible Tower features, and Tower demo. Ansible is introduced as an open source configuration management and orchestration tool that can automate and standardize remote host configuration. Common use cases include provisioning, configuration management, application deployment, continuous delivery, security and compliance, and orchestration.
Pulsar Functions Deep Dive_Sanjeev kulkarniStreamNative
Pulsar Functions provide a simple yet powerful way of interacting with Pulsar topics, transforming, enriching and analyzing data contained in the streams. And with pluggable runtime environments, one can run Pulsar functions as threads/processes managed by Pulsar, or as containers/pods managed by external schedulers like Kubernetes. This talk does into the deep weeds of the underlying concepts in its implementation. In particular we will talk about the concepts of Runtime and scheduler that manages Pulsar managed functions. We will also delve into current pitfalls and areas of improvement.
The Linux Block Layer - Built for Fast StorageKernel TLV
The arrival of flash storage introduced a radical change in performance profiles of direct attached devices. At the time, it was obvious that Linux I/O stack needed to be redesigned in order to support devices capable of millions of IOPs, and with extremely low latency.
In this talk we revisit the changes the Linux block layer in the
last decade or so, that made it what it is today - a performant, scalable, robust and NUMA-aware subsystem. In addition, we cover the new NVMe over Fabrics support in Linux.
Sagi Grimberg
Sagi is Principal Architect and co-founder at LightBits Labs.
This document discusses repetitive system administration tasks and proposes Ansible as a solution. It describes how Ansible works using agentless SSH to automate tasks like software installation, configuration, and maintenance across multiple servers. Key aspects covered include Ansible's inventory, modules, playbooks, templates, variables, roles and Docker integration. Ansible Tower is also introduced as a GUI tool for running Ansible jobs. The document recommends Ansible for anyone doing the same tasks across multiple servers to gain efficiencies over manual processes.
Kubernetes Best Practices with GKE
Cost Optimisation, Performance & Security
The document discusses best practices for optimizing costs, ensuring availability and reliability, and enhancing security when using Google Kubernetes Engine (GKE). It recommends using preemptible VMs to reduce infrastructure costs by up to 24%. To prevent downtime from frequent preemptions, it suggests using a combination of on-demand and preemptible node pools. It also discusses using custom schedulers to improve performance by 11% by evenly spreading pods. For security, it recommends tightening the network, using shielded GKE nodes, containerd as the runtime, and least privilege service accounts with workload identity.
Introduction to KSQL: Streaming SQL for Apache Kafka®confluent
Join Tom Green, Solution Engineer at Confluent for this Lunch and Learn talk covering KSQL. Confluent KSQL is the streaming SQL engine that enables real-time data processing against Apache Kafka®. It provides an easy-to-use, yet powerful interactive SQL interface for stream processing on Kafka, without the need to write code in a programming language such as Java or Python. KSQL is scalable, elastic, fault-tolerant, and it supports a wide range of streaming operations, including data filtering, transformations, aggregations, joins, windowing, and sessionization.
By attending one of these sessions, you will learn:
-How to query streams, using SQL, without writing code.
-How KSQL provides automated scalability and out-of-the-box high availability for streaming queries
-How KSQL can be used to join streams of data from different sources
-The differences between Streams and Tables in Apache Kafka
The document introduces the ELK stack, which consists of Elasticsearch, Logstash, Kibana, and Beats. Beats ship log and operational data to Elasticsearch. Logstash ingests, transforms, and sends data to Elasticsearch. Elasticsearch stores and indexes the data. Kibana allows users to visualize and interact with data stored in Elasticsearch. The document provides descriptions of each component and their roles. It also includes configuration examples and demonstrates how to access Elasticsearch via REST.
Ansible is an automation platform that allows users to configure, deploy, and manage applications on servers. It combines multi-node software deployment, configuration management, and task execution. Ansible works by provisioning machines using SSH and executing commands via modules. Playbooks allow users to automate complex deployment workflows through YAML scripts. Roles in Ansible allow for reusable and modular components.
KSQL is an open source streaming SQL engine for Apache Kafka. Come hear how KSQL makes it easy to get started with a wide-range of stream processing applications such as real-time ETL, sessionization, monitoring and alerting, or fraud detection. We'll cover both how to get started with KSQL and some under-the-hood details of how it all works.
Delivered as plenary at USENIX LISA 2013. video here: https://www.youtube.com/watch?v=nZfNehCzGdw and https://www.usenix.org/conference/lisa13/technical-sessions/plenary/gregg . "How did we ever analyze performance before Flame Graphs?" This new visualization invented by Brendan can help you quickly understand application and kernel performance, especially CPU usage, where stacks (call graphs) can be sampled and then visualized as an interactive flame graph. Flame Graphs are now used for a growing variety of targets: for applications and kernels on Linux, SmartOS, Mac OS X, and Windows; for languages including C, C++, node.js, ruby, and Lua; and in WebKit Web Inspector. This talk will explain them and provide use cases and new visualizations for other event types, including I/O, memory usage, and latency.
Cloud-init is a set of services that handles early initialization and configuration of virtual machines. It retrieves user-data and metadata from cloud providers to customize VMs during boot. Cloud-init runs in stages, starting with network setup and continuing through configuration and finalization. It supports various data sources like CloudStack and ConfigDrive and runs modules specified in /etc/cloud/cloud.cfg to perform tasks like package installation, user management, and more.
Key-Key-Value Store: Generic NoSQL Datastore with Tombstone Reduction and Aut...ScyllaDB
This document describes a key-key-value store that Discord built to store composite primary keys in ScyllaDB. The store aims to mitigate performance issues from tombstones and large partitions by using application tombstones and automatic partition splitting. It provides APIs for creating, getting, deleting and scanning entities under a parent identifier. When partitions grow too large, it doubles the shard count and copies data to new shards in a resilient process. This generic datastore has supported over 20 use cases at Discord with no production incidents attributed to ScyllaDB.
HPC Application Profiling and AnalysisRishi Pathak
This document discusses application profiling and analysis. Profiling involves recording summary information during program execution to reflect performance behavior. It can expose bottlenecks and hotspots with low overhead. Profiling is implemented via sampling, which uses periodic interrupts, or instrumentation, which directly inserts measurement code. Tracing records significant execution points to reconstruct program behavior. Profiling provides summary statistics while tracing generates a large volume of event data. Tools like HPCToolkit use sampling and instrumentation to collect metrics that are correlated back to source code to analyze performance.
Materialize: a platform for changing dataAltinity Ltd
Frank McSherry, Chief Scientist from Materialize, joins the SF Bay Area ClickHouse meetup to introduce Materialize, which creates real-time materialized views on event streams. Materialize is in the same space, solving similar problems to ClickHouse. It's fun to hear what the neighbors are up to.
Materialize: https://materialize.com
Meetup: https://www.meetup.com/San-Francisco-Bay-Area-ClickHouse-Meetup/events/282872933/
Altinity: https://altinity.com
레드햇의 Etsuji Nakai 씨의 "OpenStack: Inside Out" 한글 번역본입니다.
다시 한번 좋은 문서를 공유해주신 Etsuji Nakai 씨에게 감사를 드립니다.
http://www.slideshare.net/enakai/open-stack-insideoutv10
Ansible can be used to summarize documents in 3 sentences or less:
1) The document provides tips and tricks for using Ansible for tasks like automation, orchestration, and distributed batch execution across multiple hosts.
2) It also demonstrates how Ansible can be used for auditing changes to files and system configuration over time through plugins, callbacks, and other extensions.
3) Additionally, the document shows how Ansible can be customized and expanded through techniques like abstracting packages and configurations, creating custom modules, and executing tasks in a more programmatic way.
Introducing the Apache Flink Kubernetes OperatorFlink Forward
Flink Forward San Francisco 2022.
The Apache Flink Kubernetes Operator provides a consistent approach to manage Flink applications automatically, without any human interaction, by extending the Kubernetes API. Given the increasing adoption of Kubernetes based Flink deployments the community has been working on a Kubernetes native solution as part of Flink that can benefit from the rich experience of community members and ultimately make Flink easier to adopt. In this talk we give a technical introduction to the Flink Kubernetes Operator and demonstrate the core features and use-cases through in-depth examples."
by
Thomas Weise
This is a talk on how you can monitor your microservices architecture using Prometheus and Grafana. This has easy to execute steps to get a local monitoring stack running on your local machine using docker.
Amazon EKS Architecture in detail including CNI/Networking, IAM, Provisioning, Shared Responsibility Model, Project Calico, Load Balancing, Logging/Metrics, CI/CD using AWS CodePipeline, CodeCommit, CodeBuild, Lambda, Amazon ECR and Parameter Store and finally the use of Spot Instances which could yield a savings of 70-90% versus conventional on-demand EC2 instances.
Ricardo Schmidt gave a presentation on Ansible, an open source tool for configuration management, application deployment, provisioning, and orchestration. He explained that Ansible is fast, clear, complete, and secure. It uses SSH to connect to nodes agentlessly without requiring additional firewall rules or open ports. Key components include the inventory to define hosts and groups, modules to run tasks on nodes, and playbooks to orchestrate tasks across multiple hosts. The presentation demonstrated Ansible's capabilities through examples and a demo of its core features.
Cloud Graphical Rendering: A New ParadigmJoel Isaacson
Cloud rendering of modern graphics is typically performed via remote hardware rendering and pixel-based video compression techniques for image transmission. These solutions perform poorly, profligately expending both system and network resources. In response, Ascender Technologies developed novel enabling technology where the rendering of pixels is performed only on the local client, which makes for a much more affordable solution without expensive graphical hardware in the cloud. In addition, Ascender’s compression techniques reduce the networking overhead, typically by over an order of magnitude.
Pulsar Functions Deep Dive_Sanjeev kulkarniStreamNative
Pulsar Functions provide a simple yet powerful way of interacting with Pulsar topics, transforming, enriching and analyzing data contained in the streams. And with pluggable runtime environments, one can run Pulsar functions as threads/processes managed by Pulsar, or as containers/pods managed by external schedulers like Kubernetes. This talk does into the deep weeds of the underlying concepts in its implementation. In particular we will talk about the concepts of Runtime and scheduler that manages Pulsar managed functions. We will also delve into current pitfalls and areas of improvement.
The Linux Block Layer - Built for Fast StorageKernel TLV
The arrival of flash storage introduced a radical change in performance profiles of direct attached devices. At the time, it was obvious that Linux I/O stack needed to be redesigned in order to support devices capable of millions of IOPs, and with extremely low latency.
In this talk we revisit the changes the Linux block layer in the
last decade or so, that made it what it is today - a performant, scalable, robust and NUMA-aware subsystem. In addition, we cover the new NVMe over Fabrics support in Linux.
Sagi Grimberg
Sagi is Principal Architect and co-founder at LightBits Labs.
This document discusses repetitive system administration tasks and proposes Ansible as a solution. It describes how Ansible works using agentless SSH to automate tasks like software installation, configuration, and maintenance across multiple servers. Key aspects covered include Ansible's inventory, modules, playbooks, templates, variables, roles and Docker integration. Ansible Tower is also introduced as a GUI tool for running Ansible jobs. The document recommends Ansible for anyone doing the same tasks across multiple servers to gain efficiencies over manual processes.
Kubernetes Best Practices with GKE
Cost Optimisation, Performance & Security
The document discusses best practices for optimizing costs, ensuring availability and reliability, and enhancing security when using Google Kubernetes Engine (GKE). It recommends using preemptible VMs to reduce infrastructure costs by up to 24%. To prevent downtime from frequent preemptions, it suggests using a combination of on-demand and preemptible node pools. It also discusses using custom schedulers to improve performance by 11% by evenly spreading pods. For security, it recommends tightening the network, using shielded GKE nodes, containerd as the runtime, and least privilege service accounts with workload identity.
Introduction to KSQL: Streaming SQL for Apache Kafka®confluent
Join Tom Green, Solution Engineer at Confluent for this Lunch and Learn talk covering KSQL. Confluent KSQL is the streaming SQL engine that enables real-time data processing against Apache Kafka®. It provides an easy-to-use, yet powerful interactive SQL interface for stream processing on Kafka, without the need to write code in a programming language such as Java or Python. KSQL is scalable, elastic, fault-tolerant, and it supports a wide range of streaming operations, including data filtering, transformations, aggregations, joins, windowing, and sessionization.
By attending one of these sessions, you will learn:
-How to query streams, using SQL, without writing code.
-How KSQL provides automated scalability and out-of-the-box high availability for streaming queries
-How KSQL can be used to join streams of data from different sources
-The differences between Streams and Tables in Apache Kafka
The document introduces the ELK stack, which consists of Elasticsearch, Logstash, Kibana, and Beats. Beats ship log and operational data to Elasticsearch. Logstash ingests, transforms, and sends data to Elasticsearch. Elasticsearch stores and indexes the data. Kibana allows users to visualize and interact with data stored in Elasticsearch. The document provides descriptions of each component and their roles. It also includes configuration examples and demonstrates how to access Elasticsearch via REST.
Ansible is an automation platform that allows users to configure, deploy, and manage applications on servers. It combines multi-node software deployment, configuration management, and task execution. Ansible works by provisioning machines using SSH and executing commands via modules. Playbooks allow users to automate complex deployment workflows through YAML scripts. Roles in Ansible allow for reusable and modular components.
KSQL is an open source streaming SQL engine for Apache Kafka. Come hear how KSQL makes it easy to get started with a wide-range of stream processing applications such as real-time ETL, sessionization, monitoring and alerting, or fraud detection. We'll cover both how to get started with KSQL and some under-the-hood details of how it all works.
Delivered as plenary at USENIX LISA 2013. video here: https://www.youtube.com/watch?v=nZfNehCzGdw and https://www.usenix.org/conference/lisa13/technical-sessions/plenary/gregg . "How did we ever analyze performance before Flame Graphs?" This new visualization invented by Brendan can help you quickly understand application and kernel performance, especially CPU usage, where stacks (call graphs) can be sampled and then visualized as an interactive flame graph. Flame Graphs are now used for a growing variety of targets: for applications and kernels on Linux, SmartOS, Mac OS X, and Windows; for languages including C, C++, node.js, ruby, and Lua; and in WebKit Web Inspector. This talk will explain them and provide use cases and new visualizations for other event types, including I/O, memory usage, and latency.
Cloud-init is a set of services that handles early initialization and configuration of virtual machines. It retrieves user-data and metadata from cloud providers to customize VMs during boot. Cloud-init runs in stages, starting with network setup and continuing through configuration and finalization. It supports various data sources like CloudStack and ConfigDrive and runs modules specified in /etc/cloud/cloud.cfg to perform tasks like package installation, user management, and more.
Key-Key-Value Store: Generic NoSQL Datastore with Tombstone Reduction and Aut...ScyllaDB
This document describes a key-key-value store that Discord built to store composite primary keys in ScyllaDB. The store aims to mitigate performance issues from tombstones and large partitions by using application tombstones and automatic partition splitting. It provides APIs for creating, getting, deleting and scanning entities under a parent identifier. When partitions grow too large, it doubles the shard count and copies data to new shards in a resilient process. This generic datastore has supported over 20 use cases at Discord with no production incidents attributed to ScyllaDB.
HPC Application Profiling and AnalysisRishi Pathak
This document discusses application profiling and analysis. Profiling involves recording summary information during program execution to reflect performance behavior. It can expose bottlenecks and hotspots with low overhead. Profiling is implemented via sampling, which uses periodic interrupts, or instrumentation, which directly inserts measurement code. Tracing records significant execution points to reconstruct program behavior. Profiling provides summary statistics while tracing generates a large volume of event data. Tools like HPCToolkit use sampling and instrumentation to collect metrics that are correlated back to source code to analyze performance.
Materialize: a platform for changing dataAltinity Ltd
Frank McSherry, Chief Scientist from Materialize, joins the SF Bay Area ClickHouse meetup to introduce Materialize, which creates real-time materialized views on event streams. Materialize is in the same space, solving similar problems to ClickHouse. It's fun to hear what the neighbors are up to.
Materialize: https://materialize.com
Meetup: https://www.meetup.com/San-Francisco-Bay-Area-ClickHouse-Meetup/events/282872933/
Altinity: https://altinity.com
레드햇의 Etsuji Nakai 씨의 "OpenStack: Inside Out" 한글 번역본입니다.
다시 한번 좋은 문서를 공유해주신 Etsuji Nakai 씨에게 감사를 드립니다.
http://www.slideshare.net/enakai/open-stack-insideoutv10
Ansible can be used to summarize documents in 3 sentences or less:
1) The document provides tips and tricks for using Ansible for tasks like automation, orchestration, and distributed batch execution across multiple hosts.
2) It also demonstrates how Ansible can be used for auditing changes to files and system configuration over time through plugins, callbacks, and other extensions.
3) Additionally, the document shows how Ansible can be customized and expanded through techniques like abstracting packages and configurations, creating custom modules, and executing tasks in a more programmatic way.
Introducing the Apache Flink Kubernetes OperatorFlink Forward
Flink Forward San Francisco 2022.
The Apache Flink Kubernetes Operator provides a consistent approach to manage Flink applications automatically, without any human interaction, by extending the Kubernetes API. Given the increasing adoption of Kubernetes based Flink deployments the community has been working on a Kubernetes native solution as part of Flink that can benefit from the rich experience of community members and ultimately make Flink easier to adopt. In this talk we give a technical introduction to the Flink Kubernetes Operator and demonstrate the core features and use-cases through in-depth examples."
by
Thomas Weise
This is a talk on how you can monitor your microservices architecture using Prometheus and Grafana. This has easy to execute steps to get a local monitoring stack running on your local machine using docker.
Amazon EKS Architecture in detail including CNI/Networking, IAM, Provisioning, Shared Responsibility Model, Project Calico, Load Balancing, Logging/Metrics, CI/CD using AWS CodePipeline, CodeCommit, CodeBuild, Lambda, Amazon ECR and Parameter Store and finally the use of Spot Instances which could yield a savings of 70-90% versus conventional on-demand EC2 instances.
Ricardo Schmidt gave a presentation on Ansible, an open source tool for configuration management, application deployment, provisioning, and orchestration. He explained that Ansible is fast, clear, complete, and secure. It uses SSH to connect to nodes agentlessly without requiring additional firewall rules or open ports. Key components include the inventory to define hosts and groups, modules to run tasks on nodes, and playbooks to orchestrate tasks across multiple hosts. The presentation demonstrated Ansible's capabilities through examples and a demo of its core features.
Cloud Graphical Rendering: A New ParadigmJoel Isaacson
Cloud rendering of modern graphics is typically performed via remote hardware rendering and pixel-based video compression techniques for image transmission. These solutions perform poorly, profligately expending both system and network resources. In response, Ascender Technologies developed novel enabling technology where the rendering of pixels is performed only on the local client, which makes for a much more affordable solution without expensive graphical hardware in the cloud. In addition, Ascender’s compression techniques reduce the networking overhead, typically by over an order of magnitude.
Diapositivas en español en blog, blogger, blogspotAndres Reinosa
El documento describe diferentes estrategias de exhibición para comercios minoristas como A Tono Butique, Supermercado Olímpica y Papelería Zarzal. Describe exhibiciones horizontales, verticales y mixtas, así como niveles y zonas de exhibición en un supermercado. También cubre temas como implantación vertical, horizontal, mixta y en forma de malla para maximizar las ventas.
The document discusses types of exhibitions presented by Erika Marcela Villa, Yadi Marcela Ordoñez, Laura Alejandra Chaverra, and Alirio Andres Reynosa. It covers types of exhibitions and types of implantation for exhibitions.
Microsoft recently announced a “mobile first, cloud first” strategy. Ascender’s Android in the Cloud technology perfectly fits Microsoft's strategy with apps hosted in the cloud and the GUI displayed on the users device. Ascender's enabling technology allows numerous use cases centered around Android in the cloud.
This document discusses using Ascender's technology to enable Android applications to run remotely in the cloud on a variety of client devices. It describes three main use cases: 1) running Android apps from Chromebooks and other clients, 2) enabling BYOD by hosting enterprise apps securely in the cloud, and 3) allowing wearable devices to access Android apps by streaming them from mobile phones. The technology transmits rendering commands instead of pixels, making it more efficient than traditional VDI and allowing Android apps to run smoothly on different client platforms using low bandwidth. This expands Android's reach and helps solve problems with mobile enterprise security and management.
Seams 2012: Reliability-Driven Dynamic Binding via Feedback ControlAF85
This document proposes a method for dynamically binding services to ensure reliability goals are continuously met. It models the system as a discrete-time Markov chain with states that represent successful or failed service invocations. A controller monitors the number of successes/failures and adjusts the probability of selecting each service to maximize overall reliability over time. The goal is to use established control theory for efficient and scalable dynamic service selection that provides desired reliability levels.
El documento describe las normas de urbanidad y comportamiento que se deben seguir durante una entrevista de trabajo. Explica que la urbanidad incluye buenos modales para vivir en familia y comunidad. Luego enumera las normas de comportamiento a seguir durante una entrevista, como saludar, escuchar atentamente y controlar los nervios. También detalla las normas de etiqueta e incluye posibles errores como llegar tarde, hablar mal de otras empresas o tener mal aspecto personal.
For many years it has been possible to access graphical application via remote desktop software. In recent years Cloud computing has become more prominent and is a crucial
computing paradigm.
Android has captured a large market share. The challenge addressed in this talk is to efficiently export Android graphics so as to support standard Android apps remotely.
More information can be found at: http://www.ascender.com/remote-graphics
For many years it has been possible to access graphical application via remote desktop software. In recent years Cloud computing has become more prominent and is a crucial
computing paradigm.
Android has captured a large market share. The challenge addressed in this talk is to efficiently export Android graphics so as to support standard Android apps remotely.
More information can be found at: http://www.ascender.com/remote-graphics
Introduction to Skia by Ryan Chou @20141008Ryan Chou
This introduces the fundamental knowledge about Skia which is open-source project used in Android. In this, it contains the history of skia, and the roll of skia in Android.
This document provides an overview of various types of 3D computer graphics software, including proprietary software like 3ds Max and Cinema 4D, free software like Blender and FreeCAD, and freeware packages like Sculptris and SketchUp. It also discusses renderers, related software for tasks like match moving and mesh processing, and resources for finding more information.
[03 1][gpu용 개발자 도구 - parallel nsight 및 axe] miller axelaparuma
NVIDIA provides a family of software modules called Application Acceleration Engines (AXE) that enable developers to enhance applications with high performance GPU capabilities. The AXE include PhysX, Cg/CgFX, SceniX, CompleX, and OptiX which are free to use and help apps exploit NVIDIA GPUs. These engines provide features like physics simulation, programmable shading, scene management, scaling to large datasets, and ray tracing to accelerate application development.
The document provides an overview of DirectX, including its history, architecture, libraries, and comparison to OpenGL. It discusses how DirectX is a collection of APIs from Microsoft that allows low-level access to graphics cards, sound devices, and other hardware from a Windows system. The architecture uses HAL and HEL drivers to interface with hardware and a DDI layer between programs and devices. Libraries cover 3D graphics, input, networking, sound, and multimedia. DirectX is designed for gaming and multimedia on Windows, while OpenGL is platform-independent and aimed at general 2D/3D graphics.
JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdfSamiraKids
This document discusses bypassing Control Flow Guard (CFG) via Windows Advanced Rasterization Platform (WARP) shader Just-In-Time (JIT) spraying. It begins with background on Direct3D, WARP, shaders, and WebGL. It then explains the basic principle of CFG and known bypass methods. The presentation will demonstrate a new JIT spraying technique to bypass CFG by circumventing restrictions on the WARP JIT engine and reliably achieving CFG bypass. It concludes with a live demo of bypassing CFG on Internet Explorer 11 and Microsoft Edge on Windows 10.
This document provides a step-by-step guide for creating a Windows 8 Metro-style game from a programmer's perspective. It covers setting up the game, coding it, and optimizing it. The coding section discusses app initialization, opening a window, rendering graphics, loading and saving data, adding input controls, adding sound effects, and creating an asset pipeline. The sample code uses C++ and Windows Runtime APIs to access devices, services, and graphics through DirectX.
Bobby Clarke from ARM gave an introduction to ARM and their partnership model. ARM designs ARM processor cores and licenses them to partners who integrate the cores into their own chips. ARM also provides development tools and software to help with ARM architecture design and development. They are working to better integrate their tools with the Eclipse IDE through plug-ins and extensions.
Bobby Clarke from ARM Ltd introduced ARM and its business model. ARM designs RISC processor cores and licenses them to partners who integrate the cores into their own chips. ARM also provides development tools and technologies to support the ARM architecture. ARM joined the Eclipse Foundation to contribute extensions and work with projects like CDT and DSDP. Eclipse integration of ARM tools is envisioned.
OW2con'14 - XLcoud, 3D rendering in the cloud, Marius Preda, Institut Mines T...xlcloud
The XLcloud project strives to establish the demonstration of a High Performance Cloud Computing (HPCC) platform based on OpenStack that is designed to run a representative set of compute intensive workloads. This presentation introduces a Use Case based on cloud gaming and 3D visualization. XLcloud is a three-year long collaborative project funded by the French FSN (Fonds national pour la Société Numérique) programme.
This document provides an overview of OpenGL including:
- What OpenGL is and why computer graphics are used.
- A brief history of cathode ray tubes and their role in early computer displays.
- How OpenGL was developed in the 1990s by Silicon Graphics and later managed by Khronos Group.
- Some advantages of OpenGL like cross-platform support and extensibility.
- How OpenGL is implemented on Windows.
- The introduction of DirectX by Microsoft.
- Requirements to use OpenGL like having a graphics card from Nvidia's Fermi family or AMD's Radeon HD 5000 series.
An API is a set of routines and protocols that allows software developers to build applications. It provides standard ways to develop applications that will work within an operating system. Popular 3D graphics APIs like OpenGL and Direct3D define standard pipelines that graphics hardware uses to process 3D scenes and convert them into 2D images for display. The graphics pipeline involves several stages including clipping, lighting, texturing, rasterization, and display.
The document discusses Kinect and 3D motion sensing technology. It introduces the Kinect sensor device, the PrimeSense technology behind it, and the OpenNI and NITE libraries for developing applications using depth sensor data. It provides details on the Kinect sensor components and how it measures depth, and describes the various software options for Kinect development including OpenNI, OpenKinect, and Microsoft's Kinect SDK. It also summarizes the PrimeSense technology, OpenNI architecture and nodes, and NITE middleware for gesture and skeleton tracking.
EclipseCon NA 2015 - Arduino designer : the making of!melbats
Video : http://www.infoq.com/presentations/arduino-designer
What brings together a model, a microcontroller and a cat ?
The Arduino Designer ! Last year, we demoed this new modeler which allows kids to easily write programs for Arduino platforms using a visual tool. The purpose of this new talk is to unveil the making-of of this modeler, by detailing how it is possible to quickly develop such a simple dedicated modeler thanks to Sirius.
We’ll start by explaining how to use Sirius to create graphical editors such as the ones provided by the Arduino Designer. Then we’ll see how to simplify the Eclipse UI to keep the minimum useful interactions for an RCP application dedicated to kids. Finally, we’ll discuss how to integrate the modeler with a code generator and how to combine it with the Arduino tools to build and upload software into the Arduino hardware platform.
Join this session, and discover the power of graphical designers, the simplicity of creating new ones and integrating them with existing tools!
Raheel Khalid (Envrmnt by Verizon): Cloud XR Experience on 5G with Mobile Edg...AugmentedWorldExpo
Envrmnt is a company that provides tools and technology to enable the streaming of AR and VR experiences without large downloads. This is done through a streaming graphics engine that decodes experiences on devices. Envrmnt also provides self-service creation tools and leverages mobile edge computing through partnerships with companies like Verizon to process graphics-heavy tasks on the edge network to improve performance and scalability. The document discusses Envrmnt's technology solutions like hybrid rendering and computer vision processing that are optimized for edge computing environments.
This document discusses developing 3D applications for Android. It begins by explaining why Android and 3D are good platforms, discussing features like OpenGL ES and the growing market. It then covers various 3D techniques like rendering, modeling, sensors and augmented reality. Throughout it provides examples and references for further learning OpenGL ES, getting 3D models, head tracking and more. It envisions future possibilities for 3D on Android.
A presentation I made at OpenStack Summit in Paris (November 2014) showing the Remote Rendering plateform built in the XLCloud project. The main topic of the presentation is related to optimizing the video encoding by analysing the images and user attention.
This resume is for Sudheer Adigopula, seeking a senior software engineering role. He has over 8 years of experience designing and developing applications using C, C++, Qt and MFC on Windows and Linux platforms. Some of his projects include developing GUIs for machine vision sensors, testing sensor interfaces, and geographic information processing systems. He is proficient in software design patterns, databases, networking, and debugging tools.
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.
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.
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.
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.
How Can I use the AI Hype in my Business Context?Daniel Lehner
𝙄𝙨 𝘼𝙄 𝙟𝙪𝙨𝙩 𝙝𝙮𝙥𝙚? 𝙊𝙧 𝙞𝙨 𝙞𝙩 𝙩𝙝𝙚 𝙜𝙖𝙢𝙚 𝙘𝙝𝙖𝙣𝙜𝙚𝙧 𝙮𝙤𝙪𝙧 𝙗𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙣𝙚𝙚𝙙𝙨?
Everyone’s talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know 𝗵𝗼𝘄.
✅ What exactly should you ask to find real AI opportunities?
✅ Which AI techniques actually fit your business?
✅ Is your data even ready for AI?
If you’re not sure, you’re not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
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
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.
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
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell
With expertise in data architecture, performance tracking, and revenue forecasting, Andrew Marnell plays a vital role in aligning business strategies with data insights. Andrew Marnell’s ability to lead cross-functional teams ensures businesses achieve sustainable growth and operational excellence.
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.
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.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
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.
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.
3. Exporting Graphics
Graphics can be exported from any of the four
levels of the graphics stack
– Application level
– Toolkit level
– Rendering level
– Bitmap level
Ascender Technology Ltd Remote Rendering
5. Application Level (1)
This is the normal way Linux/Android/Iphone
runs apps.
The application itself is exported and run locally.
Normally applications either come installed with
the system or are added later (e.g. Android
Market).
Applications can run locally without using any
network bandwidth.
Ascender Technology Ltd Remote Rendering
6. Bitmap Level (4)
Common approach to exporting graphics (VNC,
Chromoting).
Works well for any mix of graphics applications.
Simple to implement.
Heavy user of network bandwidth.
Amenable to compression.
Computationally intensive.
Ascender Technology Ltd Remote Rendering
7. Toolkit Level (2)
It is technically very complex. Android, to date,
has 15 different toolkit API variants.
Every application can extend the toolkit with
custom widgets (subclasses of android.view.View).
Clearly impossible.
Ascender Technology Ltd Remote Rendering
8. Toolkit Level (2)
It is technically very complex. Android, to date,
has 15 different toolkit API variants.
Every application can extend the toolkit with
custom widgets (subclasses of android.view.View).
Clearly impossible.
This talk will show that effectively exporting
graphics at the toolkit level and even the
application level is in fact possible.
Ascender Technology Ltd Remote Rendering
9. Android Rendering Level
This work exports graphics at the rendering level.
In Android there are a number of rendering
interfaces that can be used:
– Skia graphics
– OpenGL ES 1.1 or OpenGL ES 2.0
– Android.view.View
We shall see that in effect toolkit and application
level graphics can be exported.
Ascender Technology Ltd Remote Rendering
12. Software Rendering Level (Skia)
The rendering level is the graphics layer that
actually “colors” the pixels in the bitmap.
The Skia Graphics Engine is a compact open
source graphics library written in C++.
It was originally developed by Skia Inc., which
was subsequently acquired by Google, who
released the software as open source.
Now known as Skia, it is currently used in Google
Chrome, Chrome OS, Chromium OS, and Android.
Ascender Technology Ltd Remote Rendering
13. Rendering Level (Skia)
Skia is a complete 2D graphic library for drawing
Text, Geometries, and Images. Features include:
− 3x3 matrices w/ perspective
− Antialiasing, transparency, filters
− Shaders, xfermodes, maskfilters,
patheffects
Ascender Technology Ltd Remote Rendering
14. Rendering Level (Skia)
Each Skia call has two components: the primitive
being drawing (SkRect, SkPath, etc.) and
color/style attributes (SkPaint).
For example:
canvas.save();
canvas.rotate(45);
canvas.drawRect(rect, paint);
canvas.drawText(“abc”, 3, x, y, paint);
canvas.restore();
Ascender Technology Ltd Remote Rendering
18. Android Remote Rendering
We can simply modify the Skia library to export
graphics by adding a small stub to Android to
serialize and send a RPC-like rendering stream.
The local client can be on any system (Linux, MS
Windows, Mac OS).
The prototype developed was on Linux-X11.
Only 17 Skia routines had to be modified to
provide remote Android graphics.
Ascender Technology Ltd Remote Rendering
19. Round Trip Latencies
The US east-west coast round trip is about 70 ms.
Just one round trip delay per frame would reduce
the possible frame rate to 14 FPS.
Potentially every Skia call returns a result. Some
results are critical for “Measure Passes”.
In order to obtain measurements, we run a Skia
renderer in parallel on the remote machine.
We can then send the rendering stream at full
network bandwidth, via a simplex link.
Ascender Technology Ltd Remote Rendering
21. Compression
Android apps have a frame rate of 30-60 FPS.
For every frame the complete rendering sequence
is sent. Compression is a good idea.
Ascender Technology Ltd Remote Rendering
22. MPEG Compression
Video streams, photographically taken or
photorealistically synthesized, can be compressed
with MPEG standard codecs.
Even though no specific technique used in MPEG
compression is applicable for the compression of
our problem domain (rendering streams), some of
the assumptions about how the data sets are
generated are similar and the compression model
design is similar.
Ascender Technology Ltd Remote Rendering
23. MPEG Stream Assumptions
The material consists of a large number of
sequential images (frames).
The target of the video images is the human visual
system and consists of moving images.
The subject matter is a product of our everyday
visual world and not some random series of
random images.
Apparent smooth motion depends on visual
continuity between frames.
Ascender Technology Ltd Remote Rendering
24. MPEG Compression Techniques
The conversion of RGB images to YUV and sub-
sampling is motivated by the color physiological
opponency theory model of human vision.
Within each frame, the accuracy of spacial changes
with shorter wavelengths are less important than
the accuracy of longer wavelengths.
Inter-frame compression is based on finding
motion vectors of the current frame based on
previous and subsequent frames.
Ascender Technology Ltd Remote Rendering
25. Rendering Stream Assumptions
The rendered material consists of a large number of
sequential images (frames).
The target of the GUI images is the human visual
system.
The subject matter while not being a product of our
everyday visual world is modeled on the visual
contexts of this world.
The GUI images are generated frame after frame
by repeated invocation of GUI procedures.
Ascender Technology Ltd Remote Rendering
26. Repeated Invocation of GUI
Procedures
In practice, the number of unique sequences of
rendering functions in execution paths taken within
the code are bounded. This is because the rendering
commands are generated by a fixed number of GUI
functions and an application running a bounded
amount of code.
The execution paths can be incrementally learned
and entered into a procedure dictionary as the
rendering commands are streamed.
Ascender Technology Ltd Remote Rendering
27. Rendering Compression Techniques
Even if the sequences of rendering functions
themselves are in the dictionary, the data
arguments associated with these functions might be
quite different from one another. Therefore, we
keep a dictionary of the data arguments previously
encountered for this particular sequence.
As a rendering procedural sequence with
associated data is encountered, the data sequence
dictionary for this procedural sequence is searched
for the closest match to the current data sequence.
Ascender Technology Ltd Remote Rendering
30. Structured Procedural Compression
A careful examination of the rendering stream
generated by the Android GUI reveals additional
structural information that can be used to improve
the data model.
The rendering stream has balanced save()-restore()
pairs within each frame of the rendering stream.
Each save() is found at the beginning of a GUI
function and a restore() is found at the end of each
GUI function.
Ascender Technology Ltd Remote Rendering
31. Structured Procedural Compression
This information can be used to reverse engineer
individual GUI and application procedures.
It will also reveal the call-graph of these procedures.
Using this information, the rendering code
dictionary becomes a rendering procedure
dictionary.
The call-graph data is best embedded in the per-
procedure data dictionary.
DEMO
Ascender Technology Ltd Remote Rendering
32. Structured Procedural Compression
The server (encoder) constructs a “procedure
dictionary” that is identical to the dictionary that is
constructed by the client (decoder). Similar of
LZW compression.
The procedures in this dictionary, surprisingly, are
reversed engineered toolkit and application level
routines.
We in effect have ended up exporting graphics at
the toolkit-application level.
Ascender Technology Ltd Remote Rendering
33. Structured Procedural Compression
Statistics
Our compression algorithm was tested on the
rendering trace of a 60 frame sequence.
There were 13702 rendering commands for an
average of 228 rendering commands per frame.
Of the 13702 rendering commands, there were
2691 functions (save/restore pairs).
Of these, only 47 were unique. This gives a
compression rate of 1.75% (about 1:57).
Ascender Technology Ltd Remote Rendering
34. Functional Compression
47 Unique Functions From 2691 Total
Ascender Technology Ltd Remote Rendering
35. Structured Procedural Compression
Statistics
Of the 13702 rendering commands only 354 had
completely unique data parameter sets and 203 had
data sets which are partially different.
Only these 557 data sets must be transmitted,
thereby giving data compression of 4.06% (about
1:25).
If the partially different data sets are differentially
transmitted, a data compression of 3.3% (about
1:30) is obtained.
Ascender Technology Ltd Remote Rendering
36. Functional Compression
557 Unique Data Args From 13702 Total
Ascender Technology Ltd Remote Rendering
37. Structured Procedural Compression
Entropy Encoding
For the last stage of compression, general
techniques such as run length encoding (RLE) and
entropy encoding (Huffman or Arithmetic) are
used to produce a minimum bit count
representation of the compressed material.
This additional phase should be expected to reduce
the number of bits by a factor of 2-3
Ascender Technology Ltd Remote Rendering
38. ICS GUI Rendering
Under ICS remote rendering can be done in any of
three different interfaces:
– Software rendering – Skia
– Hardware rendering – OpenGL ES 2.0
– Abstract rendering – Canvas class
All three interfaces can use procedural
compression.
The OpenGL rendering stream is much more
verbose (5x) than the equivalent Skia stream.
Ascender Technology Ltd Remote Rendering
39. Uses
So what is all this useful for:
− Cloud computing, remote app server
− App library, subscription model
− App demos
− Remote enterprise applications
− Set-top boxes
Ascender Technology Ltd Remote Rendering
40. Cloud computing
Any Android app can be run on the server.
It is not necessary that the remote server and the
local device have the same architecture, i.e. an
ARM server can provide services for an Intel
device.
For example: You might use Remote Rendering to
provide Android apps to Chrome OS.
Ascender Technology Ltd Remote Rendering
41. App Library / Subscription Model
Currently, apps are loaded into the local device -
either installed at the time of purchase or added
subsequently.
If efficient remote execution of apps can be
supported, then instead of software purchases, a
subscription model becomes possible.
A fixed monthly fee would entitle the subscriber to
access a large library of applications.
Ascender Technology Ltd Remote Rendering
42. App Demos
In a purchase/rental model, apps can be demoed
remotely, prior to purchase.
If the user of the device finds the app to his/her
liking, it can then be bought.
Ascender Technology Ltd Remote Rendering
43. Remote Enterprise Applications
Applications may benefit from running within the
enterprise's data centers, with the obvious benefits
of scalability, security and maintainability.
Enterprise workers typically migrates through
various computing environments (mobile-fixed-
mobile) during a typical day.
Having the application running on a server will
allow the running applications to migrate to
various clients seamlessly.
Ascender Technology Ltd Remote Rendering
44. Set-top Boxes
Many set-top boxes cannot practically run Android
since the set-top box might not have sufficient
resources or might not contain an ARM processor.
A local client application that only performs
remote rendering takes limited resources and needs
no long term persistent state.
Set-top boxes typically don't have complex local
installations. Installing Android apps locally would
present a support challenge to the operator.
Ascender Technology Ltd Remote Rendering