This document summarizes a lecture on iPhone application performance. It discusses loading resources lazily, avoiding memory leaks, managing autorelease pools, reusing objects, and responding to memory warnings. The lecture covers optimizing memory usage, concurrency with threads and queues, and additional performance tips and tricks.
This document discusses WSGI (Web Server Gateway Interface), Django, and Gunicorn. WSGI defines an interface between web servers and Python applications. Django integrates with WSGI through packages like django-wsgi and twod.wsgi. Gunicorn is a WSGI HTTP server that supports Django and is simple, minimal, performant and Unix-oriented for deploying Python web applications.
This document summarizes a lecture on iPhone application development from the CS193P course. The lecture covered building applications using the Model-View-Controller (MVC) design pattern, interface builder and nib files, and controls and target-action methods. It introduced MVC, the roles of models, views and controllers, and how they interact. It discussed how nib files are used to design interfaces and connect controllers and UI. It also explained how controls trigger actions on target objects in response to events.
This document summarizes a lecture on iPhone application development. It discusses Objective-C and the Foundation framework. It also covers announcements about the enrollment process and office hours. Key topics from the lecture include Objective-C classes and instances, inheritance, messaging syntax, and common Foundation classes like NSString and NSObject.
The document discusses memory management in Objective-C for iPhone applications. It covers key concepts like reference counting, object ownership, autorelease pools, and common mistakes to avoid. The document also provides examples of proper memory management techniques like retaining objects, releasing objects, and using autorelease to avoid memory leaks.
This document summarizes a lecture about navigation controllers, tab bar controllers, and combining approaches in iPhone application development. The lecture covers navigation controllers and how they manage a stack of view controllers. It discusses customizing navigation bars and buttons. It also covers tab bar controllers and how they display a selection of view controllers. The lecture demonstrates setting up and configuring navigation controllers and tab bar controllers.
The document discusses client-side scripting implemented in browsers through JavaScript. It provides enhanced user interfaces and dynamic functionality on websites. The document then discusses criticisms of JavaScript and how jQuery addresses these issues. It introduces jQuery as a JavaScript library that simplifies DOM manipulation, event handling, animations and AJAX. Key jQuery concepts are discussed such as the $() function to select elements, chaining of methods, and custom events. Finally, it demonstrates writing jQuery plugins.
Eclipse Virgo presentation at OSGi Users' Forum UK (27 Apr 2010)mfrancis
Virgo is an open source dynamic enterprise application platform based on SpringSource dm Server 2.0. It aims to provide a better OSGi platform and enable easier migration of Java EE applications. Virgo solves problems with managing OSGi bundles and using existing libraries. It provisions applications from repositories and provides extensive diagnostics. Users can get started by downloading Virgo, dropping applications into its pickup directory, and exploring its documentation. The project is currently working to rename components, complete IP scrutiny, and release an initial baseline version.
The document discusses HTML5 apps and widgets for mobile devices. It covers topics like JavaScript, CSS, cross-platform development using tools like PhoneGap, differences between W3C widgets and other specifications, and how widgets can access device capabilities. EmbedJS is presented as a tool for building cross-platform widgets using Dojo, and it supports generating code for different mobile platforms from a single codebase.
This document discusses WSGI (Web Server Gateway Interface), Django, and Gunicorn. WSGI defines an interface between web servers and Python applications. Django integrates with WSGI through packages like django-wsgi and twod.wsgi. Gunicorn is a WSGI HTTP server that supports Django and is simple, minimal, performant and Unix-oriented for deploying Python web applications.
This document summarizes a lecture on iPhone application development from the CS193P course. The lecture covered building applications using the Model-View-Controller (MVC) design pattern, interface builder and nib files, and controls and target-action methods. It introduced MVC, the roles of models, views and controllers, and how they interact. It discussed how nib files are used to design interfaces and connect controllers and UI. It also explained how controls trigger actions on target objects in response to events.
This document summarizes a lecture on iPhone application development. It discusses Objective-C and the Foundation framework. It also covers announcements about the enrollment process and office hours. Key topics from the lecture include Objective-C classes and instances, inheritance, messaging syntax, and common Foundation classes like NSString and NSObject.
The document discusses memory management in Objective-C for iPhone applications. It covers key concepts like reference counting, object ownership, autorelease pools, and common mistakes to avoid. The document also provides examples of proper memory management techniques like retaining objects, releasing objects, and using autorelease to avoid memory leaks.
This document summarizes a lecture about navigation controllers, tab bar controllers, and combining approaches in iPhone application development. The lecture covers navigation controllers and how they manage a stack of view controllers. It discusses customizing navigation bars and buttons. It also covers tab bar controllers and how they display a selection of view controllers. The lecture demonstrates setting up and configuring navigation controllers and tab bar controllers.
The document discusses client-side scripting implemented in browsers through JavaScript. It provides enhanced user interfaces and dynamic functionality on websites. The document then discusses criticisms of JavaScript and how jQuery addresses these issues. It introduces jQuery as a JavaScript library that simplifies DOM manipulation, event handling, animations and AJAX. Key jQuery concepts are discussed such as the $() function to select elements, chaining of methods, and custom events. Finally, it demonstrates writing jQuery plugins.
Eclipse Virgo presentation at OSGi Users' Forum UK (27 Apr 2010)mfrancis
Virgo is an open source dynamic enterprise application platform based on SpringSource dm Server 2.0. It aims to provide a better OSGi platform and enable easier migration of Java EE applications. Virgo solves problems with managing OSGi bundles and using existing libraries. It provisions applications from repositories and provides extensive diagnostics. Users can get started by downloading Virgo, dropping applications into its pickup directory, and exploring its documentation. The project is currently working to rename components, complete IP scrutiny, and release an initial baseline version.
The document discusses HTML5 apps and widgets for mobile devices. It covers topics like JavaScript, CSS, cross-platform development using tools like PhoneGap, differences between W3C widgets and other specifications, and how widgets can access device capabilities. EmbedJS is presented as a tool for building cross-platform widgets using Dojo, and it supports generating code for different mobile platforms from a single codebase.
0507 057 01 98 * Adana Çukurova Klima Servisleri, Adana Çukurova Klima Servisi, Adana Çukurova Klima Servisleri, Arçelik Klima Servisi Adana Çukurova, Beko Klima Servisi Adana Çukurova, Demirdöküm Klima Servisi Adana Çukurova, Vestel Klima Servisi Adana Çukurova, Aeg Klima Servisi Adana Çukurova, Bosch Klima Servisi Adana Çukurova, Ariston Klima Servisi Adana Çukurova, Samsung Klima Servisi Adana Çukurova, Siemens Klima Servisi Adana Çukurova, Profilo Klima Servisi Adana Çukurova, Fujitsu Klima Servisi Adana Çukurova, Baymak Klima Servisi Adana Çukurova, Sharp Klima Servisi Adana Çukurova, Mitsubishi Klima Servisi Adana Çukurova, Alaska Klima Servisi Adana Çukurova, Aura Klima Servisi Adana Çukurova, Adana Çukurova Klima Servisleri, Alarko Klima Servisi Adana Çukurova
Optimizing mobile applications - Ian Dundore, Mark Harknessozlael ozlael
This document provides tips and best practices for optimizing mobile applications. It discusses using profiling tools like Instruments to identify performance issues. Specific topics covered include reducing startup time, examining callbacks and coroutines, identifying asset loads, and reducing memory usage. The document also provides recommendations for reducing CPU usage through techniques like splitting canvases, avoiding string manipulation, and replacing direct callbacks with an update manager.
Avoid memory leaks using unit tests - Swift Delhi Meetup - Chapter 15Raunak Talwar
Slides used in swift delhi meetup chapter 15 at Kite HQ.
Here I've talked about how iOS does its memory management and then problem of reatin cycle and a solution to avoid this through unit tests.
The document discusses iPhone programming and provides an overview of several key topics:
1. It outlines some initial barriers to entry in iPhone programming like Objective C syntax and Xcode development tools.
2. It then covers important concepts to learn like memory management, frameworks, and view lifecycles.
3. Additional sections cover user interface topics, different types of testing, and other concerns for iPhone development like persistence, performance, resolutions and network connectivity.
The document provides an overview of SQLitePersistentObjects (SQLPO), an object-relational mapping (ORM) tool for SQLite databases on iPhone. It discusses how to define persistent objects that map to database tables, and perform common CRUD operations like saving, finding, and deleting objects. SQLPO handles mapping data types to columns and storing relationships and collections. It also supports custom queries, indices, and other features to improve performance and flexibility.
This document provides an introduction to dependency injection. It explains that dependency injection allows code to request dependencies rather than create them directly, making code more flexible and testable. It demonstrates how to define interfaces for dependencies and configure a dependency injection container to resolve them. Writing unit tests is easier with dependency injection because mock dependencies can be passed in instead of real implementations. The document also discusses additional features of dependency injection containers like lifetime management and configuration options.
This document summarizes key aspects of memory management in RubyMotion. It discusses how Ruby uses garbage collection while iOS uses reference counting. Developers need to avoid retain cycles when objects strongly reference each other. Using WeakRef allows child objects to weakly reference parent objects to prevent retain cycles from occurring. The document demonstrates examples of retain cycles and how to avoid them using WeakRef. It also provides information on how to use Xcode Instruments to detect memory leaks and profile memory usage in RubyMotion applications.
This document provides an overview and instructions for installing and configuring Reconnoiter, a system for large-scale trending and fault detection. It describes the goals of the system, its architectural design including main components, and steps for installing the code, database, and web console. It also provides information on setting up SSL, configuring the noitd and stratcond components, and contact information for support and hiring.
Multithreading and Parallelism on iOS [MobOS 2013]Kuba Břečka
This document summarizes an overview of parallelism and multithreading on iOS. It covers key topics like parallelism terminology, why parallelization is important, and how it can be achieved through multiple processes, threads, high-level abstractions like Grand Central Dispatch and operation queues, and instruction-level parallelism. It also discusses challenges like race conditions and synchronization issues that must be addressed with techniques like locks and mutexes when working with threads.
The document discusses developing an exploit from a vulnerability and integrating it into the Metasploit framework. It covers finding a buffer overflow vulnerability in an application called "Free MP3 CD Ripper", using tools like ImmunityDebugger and Mona.py to crash the application and gain control of EIP. It then shows using Mona.py to generate an exploit, testing it works, and submitting it to the Metasploit framework. It also provides an overview of Meterpreter and its capabilities.
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015Jeremy Brown
The web client is critical software to secure from any perspective. No matter if you're an organization or a casual client, you're typically just as vulnerable as anyone else. OSes are often supplemented with hardening toolsets or built-in mitigations as an extra measure to avoid compromise, but as with all things, they aren't completely solid either. Thus the need for systems that break systems, some of which deploy fuzzing and almost all of them work to find implementation bugs. Browser fuzzing has been explored and improved in many different ways over the past several years. In this presentation, we'll be primarily talking about a mutation engine that provides a somewhat novel technique for finding bugs in a still-ripe attack surface: the browser's rendering engine. This technique has the flexibility to be applied even more broadly than browsers, for example, there's initial support for fuzzing PDF readers. We'll also be discussing the tooling and infrastructure areas of the process, detailing what's needed to build a system that will scale and enable your fuzzing strategies to be successful. Finally, we can conclude the talk with some incubation results and how you can start making use of these fuzzing techniques today to find the bugs you need to exploit browsers or identify and fix the code responsible for each vulnerability.
The document provides information about running Ruby applications on Google App Engine using JRuby. It discusses key features and limitations of App Engine, how to set up the development environment, deploy apps, and pay-as-you-go billing. It also introduces Mirah as a way to write Java code using a Ruby-like syntax and compiles to Java bytecode.
This is the first draft of the presentation for talk proposal at PyCon 2014. For more information about this framework, please visit https://github.com/shiroyuki/Tori
The document provides an overview of SQLitePersistentObjects (SQLPO), an object-relational mapping (ORM) tool for SQLite databases on iPhone. It discusses how SQLPO allows defining persistent objects that can save and load data to/from a SQLite database with simple calls. Properties of persistent objects automatically map to database columns. SQLPO supports finding, filtering, indexing objects and more with minimal code. The document gives examples of defining persistent objects and performing common data operations like saving, loading, querying objects using SQLPO.
The Good, the Bad and the Ugly things to do with androidStanojko Markovik
The document discusses good practices, bad habits, and ugly issues that can arise when developing Android applications.
The good section covers clean code practices, using libraries, XML resources, and lifecycle methods. The bad section notes lazy practices like ignoring lifecycles and leaving cursors open. The ugly section describes ANRs, memory issues like bitmaps and strings, and overuse of logs and notifications. Developers are advised to follow proper patterns, manage resources carefully, and leverage tools like TraceView and MAT to debug problems.
The Cowardly Test-o-Phobe's Guide To TestingTim Duckett
The document discusses testing iOS applications. It begins by addressing why testing can be scary and introduces test-driven development as an approach to make testing less scary. It then covers different tools for testing iOS apps, including frameworks for unit testing and UI testing. It emphasizes the importance of mocking and stubbing dependencies to isolate parts of the code for testing. The document also discusses approaches for testing network requests, such as using a tool called OHHTTPStubs to stub network responses from files. It concludes by encouraging testing user interfaces in code and using mocking/stubbing to handle dependencies.
The document discusses Netflix's approach to proactive security. It defines proactive security as anticipating and addressing security issues before they become problems through automation, intelligence, and continuous monitoring and improvement. Some key aspects of Netflix's proactive security program include using tools like Monterey to automatically discover and scan assets, the Simian Army to test resiliency, Dirty Laundry to find exposed assets, Security Monkey to monitor AWS changes, and sharing security knowledge and tools through open source projects. The document advocates for simplifying security to encourage developer adoption and continuously reevaluating approaches as environments change.
Esteban Lorenzano presents Reef, a Javascript/Ajax component framework for Seaside. Reef allows developers to build Ajax interactions into Seaside applications using a transparent component model. It uses a dispatcher architecture with jQuery and supports callbacks, context, decorations, and plugins to extend components. Developers are encouraged to try Reef and provide feedback.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
0507 057 01 98 * Adana Çukurova Klima Servisleri, Adana Çukurova Klima Servisi, Adana Çukurova Klima Servisleri, Arçelik Klima Servisi Adana Çukurova, Beko Klima Servisi Adana Çukurova, Demirdöküm Klima Servisi Adana Çukurova, Vestel Klima Servisi Adana Çukurova, Aeg Klima Servisi Adana Çukurova, Bosch Klima Servisi Adana Çukurova, Ariston Klima Servisi Adana Çukurova, Samsung Klima Servisi Adana Çukurova, Siemens Klima Servisi Adana Çukurova, Profilo Klima Servisi Adana Çukurova, Fujitsu Klima Servisi Adana Çukurova, Baymak Klima Servisi Adana Çukurova, Sharp Klima Servisi Adana Çukurova, Mitsubishi Klima Servisi Adana Çukurova, Alaska Klima Servisi Adana Çukurova, Aura Klima Servisi Adana Çukurova, Adana Çukurova Klima Servisleri, Alarko Klima Servisi Adana Çukurova
Optimizing mobile applications - Ian Dundore, Mark Harknessozlael ozlael
This document provides tips and best practices for optimizing mobile applications. It discusses using profiling tools like Instruments to identify performance issues. Specific topics covered include reducing startup time, examining callbacks and coroutines, identifying asset loads, and reducing memory usage. The document also provides recommendations for reducing CPU usage through techniques like splitting canvases, avoiding string manipulation, and replacing direct callbacks with an update manager.
Avoid memory leaks using unit tests - Swift Delhi Meetup - Chapter 15Raunak Talwar
Slides used in swift delhi meetup chapter 15 at Kite HQ.
Here I've talked about how iOS does its memory management and then problem of reatin cycle and a solution to avoid this through unit tests.
The document discusses iPhone programming and provides an overview of several key topics:
1. It outlines some initial barriers to entry in iPhone programming like Objective C syntax and Xcode development tools.
2. It then covers important concepts to learn like memory management, frameworks, and view lifecycles.
3. Additional sections cover user interface topics, different types of testing, and other concerns for iPhone development like persistence, performance, resolutions and network connectivity.
The document provides an overview of SQLitePersistentObjects (SQLPO), an object-relational mapping (ORM) tool for SQLite databases on iPhone. It discusses how to define persistent objects that map to database tables, and perform common CRUD operations like saving, finding, and deleting objects. SQLPO handles mapping data types to columns and storing relationships and collections. It also supports custom queries, indices, and other features to improve performance and flexibility.
This document provides an introduction to dependency injection. It explains that dependency injection allows code to request dependencies rather than create them directly, making code more flexible and testable. It demonstrates how to define interfaces for dependencies and configure a dependency injection container to resolve them. Writing unit tests is easier with dependency injection because mock dependencies can be passed in instead of real implementations. The document also discusses additional features of dependency injection containers like lifetime management and configuration options.
This document summarizes key aspects of memory management in RubyMotion. It discusses how Ruby uses garbage collection while iOS uses reference counting. Developers need to avoid retain cycles when objects strongly reference each other. Using WeakRef allows child objects to weakly reference parent objects to prevent retain cycles from occurring. The document demonstrates examples of retain cycles and how to avoid them using WeakRef. It also provides information on how to use Xcode Instruments to detect memory leaks and profile memory usage in RubyMotion applications.
This document provides an overview and instructions for installing and configuring Reconnoiter, a system for large-scale trending and fault detection. It describes the goals of the system, its architectural design including main components, and steps for installing the code, database, and web console. It also provides information on setting up SSL, configuring the noitd and stratcond components, and contact information for support and hiring.
Multithreading and Parallelism on iOS [MobOS 2013]Kuba Břečka
This document summarizes an overview of parallelism and multithreading on iOS. It covers key topics like parallelism terminology, why parallelization is important, and how it can be achieved through multiple processes, threads, high-level abstractions like Grand Central Dispatch and operation queues, and instruction-level parallelism. It also discusses challenges like race conditions and synchronization issues that must be addressed with techniques like locks and mutexes when working with threads.
The document discusses developing an exploit from a vulnerability and integrating it into the Metasploit framework. It covers finding a buffer overflow vulnerability in an application called "Free MP3 CD Ripper", using tools like ImmunityDebugger and Mona.py to crash the application and gain control of EIP. It then shows using Mona.py to generate an exploit, testing it works, and submitting it to the Metasploit framework. It also provides an overview of Meterpreter and its capabilities.
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015Jeremy Brown
The web client is critical software to secure from any perspective. No matter if you're an organization or a casual client, you're typically just as vulnerable as anyone else. OSes are often supplemented with hardening toolsets or built-in mitigations as an extra measure to avoid compromise, but as with all things, they aren't completely solid either. Thus the need for systems that break systems, some of which deploy fuzzing and almost all of them work to find implementation bugs. Browser fuzzing has been explored and improved in many different ways over the past several years. In this presentation, we'll be primarily talking about a mutation engine that provides a somewhat novel technique for finding bugs in a still-ripe attack surface: the browser's rendering engine. This technique has the flexibility to be applied even more broadly than browsers, for example, there's initial support for fuzzing PDF readers. We'll also be discussing the tooling and infrastructure areas of the process, detailing what's needed to build a system that will scale and enable your fuzzing strategies to be successful. Finally, we can conclude the talk with some incubation results and how you can start making use of these fuzzing techniques today to find the bugs you need to exploit browsers or identify and fix the code responsible for each vulnerability.
The document provides information about running Ruby applications on Google App Engine using JRuby. It discusses key features and limitations of App Engine, how to set up the development environment, deploy apps, and pay-as-you-go billing. It also introduces Mirah as a way to write Java code using a Ruby-like syntax and compiles to Java bytecode.
This is the first draft of the presentation for talk proposal at PyCon 2014. For more information about this framework, please visit https://github.com/shiroyuki/Tori
The document provides an overview of SQLitePersistentObjects (SQLPO), an object-relational mapping (ORM) tool for SQLite databases on iPhone. It discusses how SQLPO allows defining persistent objects that can save and load data to/from a SQLite database with simple calls. Properties of persistent objects automatically map to database columns. SQLPO supports finding, filtering, indexing objects and more with minimal code. The document gives examples of defining persistent objects and performing common data operations like saving, loading, querying objects using SQLPO.
The Good, the Bad and the Ugly things to do with androidStanojko Markovik
The document discusses good practices, bad habits, and ugly issues that can arise when developing Android applications.
The good section covers clean code practices, using libraries, XML resources, and lifecycle methods. The bad section notes lazy practices like ignoring lifecycles and leaving cursors open. The ugly section describes ANRs, memory issues like bitmaps and strings, and overuse of logs and notifications. Developers are advised to follow proper patterns, manage resources carefully, and leverage tools like TraceView and MAT to debug problems.
The Cowardly Test-o-Phobe's Guide To TestingTim Duckett
The document discusses testing iOS applications. It begins by addressing why testing can be scary and introduces test-driven development as an approach to make testing less scary. It then covers different tools for testing iOS apps, including frameworks for unit testing and UI testing. It emphasizes the importance of mocking and stubbing dependencies to isolate parts of the code for testing. The document also discusses approaches for testing network requests, such as using a tool called OHHTTPStubs to stub network responses from files. It concludes by encouraging testing user interfaces in code and using mocking/stubbing to handle dependencies.
The document discusses Netflix's approach to proactive security. It defines proactive security as anticipating and addressing security issues before they become problems through automation, intelligence, and continuous monitoring and improvement. Some key aspects of Netflix's proactive security program include using tools like Monterey to automatically discover and scan assets, the Simian Army to test resiliency, Dirty Laundry to find exposed assets, Security Monkey to monitor AWS changes, and sharing security knowledge and tools through open source projects. The document advocates for simplifying security to encourage developer adoption and continuously reevaluating approaches as environments change.
Esteban Lorenzano presents Reef, a Javascript/Ajax component framework for Seaside. Reef allows developers to build Ajax interactions into Seaside applications using a transparent component model. It uses a dispatcher architecture with jQuery and supports callbacks, context, decorations, and plugins to extend components. Developers are encouraged to try Reef and provide feedback.
Similar to Lecture 10 slides (february 4, 2010) (20)
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
OpenID AuthZEN Interop Read Out - AuthorizationDavid Brossard
During Identiverse 2024 and EIC 2024, members of the OpenID AuthZEN WG got together and demoed their authorization endpoints conforming to the AuthZEN API
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Webinar: Designing a schema for a Data WarehouseFederico Razzoli
Are you new to data warehouses (DWH)? Do you need to check whether your data warehouse follows the best practices for a good design? In both cases, this webinar is for you.
A data warehouse is a central relational database that contains all measurements about a business or an organisation. This data comes from a variety of heterogeneous data sources, which includes databases of any type that back the applications used by the company, data files exported by some applications, or APIs provided by internal or external services.
But designing a data warehouse correctly is a hard task, which requires gathering information about the business processes that need to be analysed in the first place. These processes must be translated into so-called star schemas, which means, denormalised databases where each table represents a dimension or facts.
We will discuss these topics:
- How to gather information about a business;
- Understanding dictionaries and how to identify business entities;
- Dimensions and facts;
- Setting a table granularity;
- Types of facts;
- Types of dimensions;
- Snowflakes and how to avoid them;
- Expanding existing dimensions and facts.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
1. CS193P - Lecture 10
iPhone Application Development
Performance
Monday, February 8, 2010 1
2. Announcements
• Paparazzi 2 is due next Wednesday at 11:59pm
• Friday section tomorrow at 4 PM, Building 260 Room 113
■ Yelp
Monday, February 8, 2010 2
3. A little more Core Data
• NSFetchedResultsController
■ Interacts with the Core Data database on your behalf
■ [fetchedResultsController objectAtIndexPath:] gets at row data
■ [fetchedResultsController sections] gets at section data
• NSFetchedResultsSectionInfo
■ Protocol defining methods that you can call from your
UITableViewDataSource methods
■ numberOfSectionsInTableView:
■ tableView:numberOfRowsInSection:
■ tableView:cellForRowAtIndexPath:
Monday, February 8, 2010 3
5. iPhone Performance Overview
• iPhone applications must work with...
■ Limited memory
■ Slow or unavailable network resources
■ Less powerful hardware
• Write your code with these constraints in mind
• Use performance tools to figure out where to invest
Monday, February 8, 2010 5
7. Memory on the iPhone
• Starting points for performance
■ Load lazily
■ Don’t leak
■ Watch your autorelease footprint
■ Reuse memory
• System memory warnings are a last resort
■ Respond to warnings or be terminated
Monday, February 8, 2010 7
8. Loading Lazily
• Pervasive in Cocoa frameworks
• Do only as much work as is required
■ Application launch time!
• Think about where your code really belongs
• Use multiple NIBs for your user interface
Monday, February 8, 2010 8
9. Loading a Resource Too Early
• What if it’s not needed until much later? Or not at all?
- (id)init
{
self = [super init];
if (self) {
// Too early...
myImage = [self readSomeHugeImageFromDisk];
}
return self;
}
Monday, February 8, 2010 9
10. Loading a Resource Lazily
• Wait until someone actually requests it, then create it
- (UIImage *)myImage
{
if (myImage == nil) {
myImage = [self readSomeHugeImageFromDisk];
}
}
• This pattern benefits both memory and launch time
• Not always the right move, consider your specific situation
• Notice that above implementation is not thread-safe!
Monday, February 8, 2010 10
11. Plugging Leaks
• Memory leaks are very bad
■ Especially in code that runs often
• Luckily, leaks are easy to find with the right tools
Monday, February 8, 2010 11
12. Method Naming and Object Ownership
• If a method’s name contains alloc, copy or new,
then it returns a retained object
• Balance calls to alloc, copy, new or retain with calls to release or
autorelease
■ Early returns can make this very difficult to do!
Monday, February 8, 2010 12
13. Finding Leaks
• Use Instruments with the Leaks recorder
Monday, February 8, 2010 13
14. Identifying Leaks in Instruments
• Each leak comes with a backtrace
• Leaks in system code do exist, but they’re rare
■ If you find one, tell us at http://bugreport.apple.com
• Consider your own application code first
Monday, February 8, 2010 14
16. Demo:
Finding Leaks with Instruments
Monday, February 8, 2010 16
17. Autorelease and You
• Autorelease simplifies your code
■ Worry less about the scope and lifetime of objects
• When an autorelease pool is drained, it calls -release on each
object
• An autorelease pool is created automatically for each iteration
of your application’s run loop
Monday, February 8, 2010 17
18. So What’s the Catch?
• What if many objects are autoreleased before the pool pops?
• Consider the maximum memory footprint of your application
Monday, February 8, 2010 18
20. Reducing Your High-Water Mark
• When many objects will be autoreleased, create and release
your own pool
■ Usually not necessary, don’t do this without thinking!
■ Tools can help identify cases where it’s needed
■ Loops are the classic case
Monday, February 8, 2010 20
21. Autorelease in a Loop
• Remember that many methods return autoreleased objects
for (int i = 0; i < someLargeNumber; i++) {
NSString *string = ...;
string = [string lowercaseString];
string = [string stringByAppendingString:...];
NSLog(@“%@”, string);
}
Monday, February 8, 2010 21
22. Creating an Autorelease Pool
• One option is to create and release for each iteration
for (int i = 0; i < someLargeNumber; i++) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *string = ...;
string = [string lowercaseString];
string = [string stringByAppendingString:...];
NSLog(@“%@”, string);
[pool release];
}
Monday, February 8, 2010 22
23. Outliving the Autorelease Pool
• What if some object is needed outside the scope of the pool?
NSString *stringToReturn = nil;
for (int i = 0; i < someLargeNumber; i++) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *string = ...;
string = [string stringByAppendingString:...];
if ([string someCondition]) {
stringToReturn = [string retain];
}
[pool release];
if (stringToReturn) break;
}
return [stringToReturn autorelease];
Monday, February 8, 2010 23
24. Reducing Use of Autorelease
• Another option is to cut down on use of autoreleased objects
■ Not always possible if you’re callling into someone else’s code
• When it makes sense, switch to alloc/init/release
• In previous example, perhaps use a single NSMutableString?
Monday, February 8, 2010 24
25. Demo:
Measuring Your High-Water Mark
Monday, February 8, 2010 25
26. Object Creation Overhead
• Most of the time, creating and deallocating objects is not a
insignificant hit to application performance
• In a tight loop, though, it can become a problem...
for (int i = 0; i < someLargeNumber; i++) {
MyObject *object = [[MyObject alloc] initWithValue:...];
[object doSomething];
[object release];
}
Monday, February 8, 2010 26
27. Reusing Objects
• Update existing objects rather than creating new ones
• Combine intuition and evidence to decide if it’s necessary
MyObject *myObject = [[MyObject alloc] init];
for (int i = 0; i < someLargeNumber; i++) {
myObject.value = ...;
[myObject doSomething];
}
[myObject release];
• Remember -[UITableView dequeueReusableCellWithIdentifier]
Monday, February 8, 2010 27
28. Memory Warnings
• Coexist with system applications
• Memory warnings issued when memory runs out
• Respond to memory warnings or face dire consequences!
Monday, February 8, 2010 28
29. Responding to Memory Warnings
• Every view controller gets -didReceiveMemoryWarning
■ By default, releases the view if it’s not visible
■ Release other expensive resources in your subclass
- (void)didReceiveMemoryWarning
{
// Always call super
[super didReceiveMemoryWarning];
// Release expensive resources
[expensiveResource release];
expensiveResource = nil;
}
• App Delegate gets -applicationDidReceiveMemoryWarning:
Monday, February 8, 2010 29
30. What Other Resources Do I Release?
• Images
• Sounds
• Cached data
Monday, February 8, 2010 30
31. Use SQLite/Core Data for Large Data Sets
• Many data formats keep everything in memory
• SQLite can work with your data in chunks
Monday, February 8, 2010 31
32. More on Memory Performance
• “Memory Usage Performance Guidelines”
https://developer.apple.com/iphone/library/documentation/
Performance/Conceptual/ManagingMemory/
Monday, February 8, 2010 32
34. Why Concurrency?
• With a single thread, long-running operations may interfere
with user interaction
• Multiple threads allow you to load resources or perform
computations without locking up your entire application
Monday, February 8, 2010 34
35. Threads on the iPhone
• Based on the POSIX threading API
■ /usr/include/pthread.h
• Higher-level wrappers in the Foundation framework
Monday, February 8, 2010 35
36. NSThread Basics
• Run loop automatically instantiated for each thread
• Each NSThread needs to create its own autorelease pool
• Convenience methods for messaging between threads
Monday, February 8, 2010 36
37. Typical NSThread Use Case
- (void)someAction:(id)sender
{
// Fire up a new thread
[NSThread detachNewThreadSelector:@selector(doWork:)
withTarget:self object:someData];
}
- (void)doWork:(id)someData
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[someData doLotsOfWork];
// Message back to the main thread
[self performSelectorOnMainThread:@selector(allDone:)
withObject:[someData result] waitUntilDone:NO];
[pool release];
}
Monday, February 8, 2010 37
38. UIKit and Threads
• Unless otherwise noted, UIKit classes are not threadsafe
■ Objects must be created and messaged from the main thread
• You can create a UIImage on a background thread
■ But you can’t set it on a UIImageView
Monday, February 8, 2010 38
39. Demo:
Threads and Xcode
Monday, February 8, 2010 39
40. Locks
• Protect critical sections of code, mediate access to shared data
• NSLock and subclasses
- (void)init
{
myLock = [[NSLock alloc] init];
}
- (void)someMethod
{
[myLock lock];
// We only want one thread executing this code at once
[myLock unlock]
}
Monday, February 8, 2010 40
41. Conditions
• NSCondition is useful for producer/consumer model
// On the producer thread // On the consumer thread
- (void)produceData - (void)consumeData
{ {
[condition lock]; [condition lock];
while(!newDataExists) {
// Produce new data [condition wait];
newDataExists = YES; }
[condition signal]; // Consume the new data
[condition unlock]; newDataExists = NO;
}
[condition unlock];
}
• Wait is equivalent to: unlock, sleep until signalled, lock
Monday, February 8, 2010 41
42. The Danger of Locks
• Very difficult to get locking right!
• All it takes is one poorly behaved client
■ Accessing shared data outside of a lock
■ Deadlocks
■ Priority inversion
Monday, February 8, 2010 42
43. Threading Pitfalls
• Subtle, nondeterministic bugs may be introduced
• Code may become more difficult to maintain
• In the worst case, more threads can mean slower code
Monday, February 8, 2010 43
44. Alternatives to Threading
• Asynchronous (nonblocking) functions
■ Specify target/action or delegate for callback
■ NSURLConnection has synchronous and asynchronous variants
• Timers
■ One-shot or recurring
■ Specify a callback method
■ Managed by the run loop
• Higher level constructs like operations
Monday, February 8, 2010 44
45. NSOperation
• Abstract superclass
• Manages thread creation and lifecycle
• Encapsulate a unit of work in an object
• Specify priorities and dependencies
Monday, February 8, 2010 45
46. Creating an NSOperation Subclass
• Define a custom init method
- (id)initWithSomeObject:(id)someObject
{
self = [super init];
if (self) {
self.someObject = someObject;
}
return self;
}
• Override -main method to do work
- (void)main
{
[someObject doLotsOfTimeConsumingWork];
}
Monday, February 8, 2010 46
47. NSOperationQueue
• Operations are typically scheduled by adding to a queue
• Choose a maximum number of concurrent operations
• Queue runs operations based on priority and dependencies
Monday, February 8, 2010 47
48. Using an NSInvocationOperation
• Concrete subclass of NSOperation
• For lightweight tasks where creating a subclass is overkill
- (void)someAction:(id)sender
{
NSInvocationOperation *operation =
[[NSInvocationOperation alloc] initWithTarget:self
selector:@selector(doWork:)
object:someObject];
[queue addObject:operation];
[operation release];
}
Monday, February 8, 2010 48
49. Demo:
Threaded Flickr Loading
Monday, February 8, 2010 49
50. More on Concurrent Programming
• “Threading Programming Guide”
https://developer.apple.com/iphone/library/documentation/
Cocoa/Conceptual/Multithreading
Monday, February 8, 2010 50
52. Drawing Performance
• Avoid transparency when possible
■ Opaque views are much faster to draw than transparent views
■ Especially important when scrolling
• Don’t call -drawRect: yourself
• Use -setNeedsDisplayInRect: instead of -setNeedsDisplay
• Use CoreAnimation Instrument
Monday, February 8, 2010 52
53. Reuse Table View Cells
• UITableView provides mechanism for reusing table view cells
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Ask the table view if it has a cell we can reuse
UITableViewCell *cell =
[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (!cell) { // If not, create one with our identifier
cell = [[UITableViewCell alloc] initWithFrame:CGRectZero
identifier:MyIdentifier];
[cell autorelease];
}
return cell;
}
Monday, February 8, 2010 53
54. Get notified
• Don’t continuously poll!
■ Unless you must, which is rare
• Hurts both responsiveness and battery life
• Look in the documentation for a notification, delegate callback
or other asynchronous API
Monday, February 8, 2010 54
55. Take Samples
• Instrument that lets you monitor CPU usage
• Backtrace taken every fraction of a second
• Higher samples = better candidates for optimization
Monday, February 8, 2010 55
56. Recap
• Performance is an art and a science
■ Combine tools & concrete data with intuition & best practices
• Don’t waste memory
• Concurrency is tricky, abstract it if possible
• Drawing is expensive, avoid unnecessary work
Monday, February 8, 2010 56