The document provides an overview of the iOS development platform. It describes the core components of iOS including Cocoa Touch, Core OS, Core Services, and Media frameworks. It explains concepts like the Model-View-Controller pattern and the iOS application structure and life cycle. Key topics like Objective-C classes, methods, properties, dynamic binding, and common frameworks like Foundation are also summarized.
WPF and Prism 4.1 Workshop at BASTA AustriaRainer Stropek
At BASTA Austria (http://www.basta-austria.at) I did a workshop about WPF and Prism. This is my slide deck. It summarizes the most important take-aways from the workshop. Additionally it contains sample code snippets.
This document provides instructions for using different layout algorithms in Gephi to visualize networks. It discusses installing layout plugins, importing a graph file, running initial layouts like Force Atlas to view the network structure, adjusting layout properties, and using different layouts to emphasize various network features. Various layout algorithms like Force Atlas, Fruchterman-Reingold, OpenOrd, and GeoLayout are introduced.
Dependency Inversion and Dependency Injection in PHPmtoppa
The document discusses dependency injection and inversion in PHP. It defines dependency injection as a design pattern for implementing dependency inversion. Dependency inversion is a principle where high-level modules should not depend on low-level modules, but both should depend on abstractions. The document provides an example of applying dependency injection and inversion to a button and lamp class. It discusses benefits like loose coupling and testability. It also discusses different patterns for implementing dependency injection like constructor injection and using an injection container.
This document summarizes a talk on CnC-Scala, a declarative approach to multicore parallelism using the Concurrent Collections (CnC) model implemented in Scala. CnC allows programmers to specify semantic ordering constraints between computational units rather than how operations run in parallel. This avoids complexities of low-level parallel programming. CnC-Scala generates code from a high-level specification of the program graph and dependencies. Evaluation shows it can effectively extract parallelism and scale programs to multiple cores.
Im zweiten Teil seiner OData Session zeigt Rainer Stropek, wie man eigene OData-Provider entwickelt. In einem durchgängigen Beispiel demonstriert er, wie man erst einen LINQ-Provider und darauf aufbauend einen OData-konformen REST Service erstellt und von verschiedenen Programmiersprachen und Tools darauf zugreift. In der Session werden Grundkenntnisse von OData und LINQ vorausgesetzt.
This document provides an overview of Seam in Action and highlights some of its key features:
- Seam brings together various Java EE technologies like JSF, EJB 3, JPA into a unified platform for building rich internet applications.
- Seam's mission is to provide a fully integrated development platform for building rich internet applications based on Java EE.
- Seam acts as a "framework" that provides context management, dependency injection, and other features to simplify and enhance the Java EE platform.
- Seam supports many third party libraries and technologies out of the box like Hibernate, Drools, JAX-RS and more. It aims to deliver rapid application development.
This presentation summarizes new features in Scala 2.13, including improvements to the collections library, Future, standard library, language, and compiler. Key changes include overhauling collections for simplicity, performance and safety, making Future faster and more robust, adding new classes and methods to the standard library, and making the compiler 5-10% faster with deterministic output. The redesigned collections library is highlighted as a major focus of the release.
WPF and Prism 4.1 Workshop at BASTA AustriaRainer Stropek
At BASTA Austria (http://www.basta-austria.at) I did a workshop about WPF and Prism. This is my slide deck. It summarizes the most important take-aways from the workshop. Additionally it contains sample code snippets.
This document provides instructions for using different layout algorithms in Gephi to visualize networks. It discusses installing layout plugins, importing a graph file, running initial layouts like Force Atlas to view the network structure, adjusting layout properties, and using different layouts to emphasize various network features. Various layout algorithms like Force Atlas, Fruchterman-Reingold, OpenOrd, and GeoLayout are introduced.
Dependency Inversion and Dependency Injection in PHPmtoppa
The document discusses dependency injection and inversion in PHP. It defines dependency injection as a design pattern for implementing dependency inversion. Dependency inversion is a principle where high-level modules should not depend on low-level modules, but both should depend on abstractions. The document provides an example of applying dependency injection and inversion to a button and lamp class. It discusses benefits like loose coupling and testability. It also discusses different patterns for implementing dependency injection like constructor injection and using an injection container.
This document summarizes a talk on CnC-Scala, a declarative approach to multicore parallelism using the Concurrent Collections (CnC) model implemented in Scala. CnC allows programmers to specify semantic ordering constraints between computational units rather than how operations run in parallel. This avoids complexities of low-level parallel programming. CnC-Scala generates code from a high-level specification of the program graph and dependencies. Evaluation shows it can effectively extract parallelism and scale programs to multiple cores.
Im zweiten Teil seiner OData Session zeigt Rainer Stropek, wie man eigene OData-Provider entwickelt. In einem durchgängigen Beispiel demonstriert er, wie man erst einen LINQ-Provider und darauf aufbauend einen OData-konformen REST Service erstellt und von verschiedenen Programmiersprachen und Tools darauf zugreift. In der Session werden Grundkenntnisse von OData und LINQ vorausgesetzt.
This document provides an overview of Seam in Action and highlights some of its key features:
- Seam brings together various Java EE technologies like JSF, EJB 3, JPA into a unified platform for building rich internet applications.
- Seam's mission is to provide a fully integrated development platform for building rich internet applications based on Java EE.
- Seam acts as a "framework" that provides context management, dependency injection, and other features to simplify and enhance the Java EE platform.
- Seam supports many third party libraries and technologies out of the box like Hibernate, Drools, JAX-RS and more. It aims to deliver rapid application development.
This presentation summarizes new features in Scala 2.13, including improvements to the collections library, Future, standard library, language, and compiler. Key changes include overhauling collections for simplicity, performance and safety, making Future faster and more robust, adding new classes and methods to the standard library, and making the compiler 5-10% faster with deterministic output. The redesigned collections library is highlighted as a major focus of the release.
Implementing Data Visualization Apps on iOS DevicesDouglass Turner
Douglass Turner of Elastic Image Software discusses iOS app development. iOS apps are developed using Objective-C and the Cocoa Touch framework. Objective-C is an object-oriented language that extends C, allowing C and Objective-C code to be freely intermingled. Common iOS design patterns include model-view-controller (MVC), notifications, target-action, key-value observing (KVO), blocks and dispatch queues, and delegation through protocols. iOS development emphasizes gestures, mobility, and powerful GPU capabilities compared to desktop applications.
The document discusses the structure of a basic C program. It explains that a C program contains elements like preprocessor commands, header files, main functions, and variables. It provides examples of a simple C program structure and describes the purpose and components of main functions, preprocessor commands like #include and #define, header files like stdio.h, and variable data types like integers, characters, and floating-point numbers. The document also gives examples of common header files and library functions in C programming.
Presentation derived from the "What's new in Python 2.6" document on http://www.python.org/ including much reformatting for presenting and presenter notes.
Please download the Keynote original - that way the presentation notes aren't burned into the slides.
The document compares the Graphiti and GMF frameworks for creating graphical editors. It provides an overview of both frameworks, describes how to generate a GMF editor from models, and how to handcraft a Graphiti editor by contributing necessary extensions and features. The document aims to help developers choose between Graphiti and GMF when building a new graphical editor.
The document discusses Alloy Widgets, which are self-contained UI components that encapsulate logic and can be reused across projects. It provides an example of creating a custom table view widget that manages cross-platform differences. The widget file structure is described, and it is shown how widgets can be used in a main app via the Require tag, passing parameters that can be accessed in the widget controller. Styling of widget elements is recommended to be done in the main app for reusability.
The document discusses Android Data Binding, which allows binding UI components in XML layouts to data sources in code. It introduces basic data binding, using Observables to track changes, binding collections, and using data binding with RecyclerView. Expressions can be used to bind data and call methods. Data binding avoids findViewById and directly updating views, supports code reuse, and automatically updates UIs when data changes.
The document discusses using Graphiti to create modeler tools. It provides an agenda that includes an introduction to Graphiti, a business scenario demo, architecture discussion, code snippets, and resources. Key concepts covered include EMF, domain models, pictogram models, pictorial elements, defining providers for diagrams, tools, features and drawing pictorial elements from domain objects. The presenter demonstrates preparing domain data, defining various Graphiti providers and drawing club logos by accessing images from an image provider.
This document provides an overview of creating a basic Eclipse Rich Client Platform (RCP) application, including setting up the necessary plug-in project, defining perspectives and views, and implementing core classes like Application, WorkbenchAdvisor, and Perspective. It describes how to add new views to a perspective and launch the RCP application. The key classes involved in startup and initialization of the Eclipse workbench are also explained.
1. The document describes the initialization process of SurfaceFlingerService in Android.
2. SurfaceFlinger is instantiated which creates the main SurfaceFlinger instance. This triggers the initialization of various core Android services.
3. The main display is initialized by creating a DisplayHardware instance and a graphic plane for the display. Shared memory is allocated to share display information.
Building High Perf Web Apps - IE8 FirestarterMithun T. Dhar
This document provides suggestions for optimizing web application and site performance. It discusses minimizing CSS and JavaScript file sizes, simplifying selectors, avoiding expensive operations like DOM lookups and expression evaluation, leveraging browser caching, image optimization techniques like sprites, and reducing blocking of page loads by scripts. The key recommendations are to simplify code, optimize only when needed, and consider maintainability.
The Abstract Factory pattern provides an interface for creating families of related or dependent objects without specifying their concrete classes. In the example code, abstract factories like ContinentFactory define interfaces for creating herbivores and carnivores, while concrete factories like AfricaFactory and AmericaFactory implement the interfaces and produce animal objects appropriate for their continent. A client like AnimalWorld uses the factories to populate ecosystems with different sets of animals.
Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...Eelco Visser
The document discusses three topics: pretty-printing, editor services, and term rewriting. Pretty-printing involves transforming abstract syntax trees to concrete syntax. Editor services define behaviors for syntax highlighting, code folding, outlines, and completions. Term rewriting uses rewrite rules and strategies to transform abstract syntax trees.
This document discusses developing games for Windows 8. It covers Metro-style apps, running on ARM and x86 processors, and the continued support for desktop apps. Game components like graphics, audio and networking are discussed. Developing Metro-style apps using XAML, C++ and C# with the WinRT API is explained. Handling fullscreen, snapped and filled window modes as well as orientation changes is covered. Storing game state during suspend and loading is also summarized.
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)lennartkats
Modern IDEs increase developer productivity by incorporating many different kinds of editor services. These can be purely syntactic, such as syntax highlighting, code folding, and an outline for navigation; or they can be based on the language semantics, such as in-line type error reporting and resolving identifier declarations. Building all these services from scratch requires both the extensive knowledge of the sometimes complicated and highly interdependent APIs and extension mechanisms of an IDE framework, and an in-depth understanding of the structure and semantics of the targeted language. This paper describes Spoofax/IMP, a meta-tooling suite that provides high-level domain-specific languages for describing editor services, relieving editor developers from much of the framework-specific programming. Editor services are defined as composable modules of rules coupled to a modular SDF grammar. The composability provided by the SGLR parser and the declaratively defined services allows embedded languages and language extensions to be easily formulated as additional rules extending an existing language definition. The service definitions are used to generate Eclipse editor plugins. We discuss two examples: an editor plugin for WebDSL, a domain-specific language for web applications, and the embedding of WebDSL in Stratego, used for expressing the (static) semantic rules of WebDSL.
CodeMash - Building Rich Apps with Groovy SwingBuilderAndres Almiray
This document discusses using SwingBuilder in Groovy to create Swing applications. It covers the basics of SwingBuilder, including building a simple UI, handling events with closures, and defining reusable actions. It also discusses more advanced topics like threading, binding, custom components, and graphical rendering with GraphicsBuilder. The goal is to learn how to simplify and speed up Swing development using Groovy features.
Operator overloading allows functions to be called when operators are used on user-defined types. It overloads built-in operators like + and - to work on custom classes. This makes code involving classes easier to read and write but does not add new capabilities - everything done with operators can be done with functions. There are limitations to operator overloading like not being able to change precedence or number of arguments. Overloading is useful when it improves readability, such as overloading + for a complex number class. The assignment operator (=) can also be overloaded but the compiler provides a default that does member-wise copying, which is sufficient for simple classes like a complex number class.
This document discusses using the Eclipse IDE with PHP development. It covers installing Eclipse PDT, configuring views and perspectives, managing PHP projects, using code templates and completion, integrating xDebug for debugging, and several useful plugins like Subclipse for SVN integration. The presentation provides an overview of key PHP development features in Eclipse.
Hibernate is an object-relational mapping tool that allows Java objects to be persisted to a relational database. It provides transparent persistence by handling all database operations like insert, update, delete, and retrieval. Hibernate sits between the Java application and database, mapping objects to database tables and allowing developers to work with objects rather than directly with SQL statements. Configuration files define the mappings between Java classes and database tables. Hibernate uses these mappings to automatically generate SQL to load and store objects.
The graphical sub-system of the Eclipse platform is made up of two components: SWT, the Standard Widget Toolkit ;and JFace, an architecture-independent modeling layer. This module describes how JFace extends SWT with viewers, commands, wizards, dialogs, and field assist.
Code camp 2011 Getting Started with IOS, Una DalyUna Daly
Presentation at Code Camp on Oct 8, 2011, 1:15 pm in the Foothill College Cafeteria. Overview of iOS Platform and development with demonstration of building two applications that demonstrate the model-view-controller architecture and feature buttons, textfields, labels, and alerts.
Implementing Data Visualization Apps on iOS DevicesDouglass Turner
Douglass Turner of Elastic Image Software discusses iOS app development. iOS apps are developed using Objective-C and the Cocoa Touch framework. Objective-C is an object-oriented language that extends C, allowing C and Objective-C code to be freely intermingled. Common iOS design patterns include model-view-controller (MVC), notifications, target-action, key-value observing (KVO), blocks and dispatch queues, and delegation through protocols. iOS development emphasizes gestures, mobility, and powerful GPU capabilities compared to desktop applications.
The document discusses the structure of a basic C program. It explains that a C program contains elements like preprocessor commands, header files, main functions, and variables. It provides examples of a simple C program structure and describes the purpose and components of main functions, preprocessor commands like #include and #define, header files like stdio.h, and variable data types like integers, characters, and floating-point numbers. The document also gives examples of common header files and library functions in C programming.
Presentation derived from the "What's new in Python 2.6" document on http://www.python.org/ including much reformatting for presenting and presenter notes.
Please download the Keynote original - that way the presentation notes aren't burned into the slides.
The document compares the Graphiti and GMF frameworks for creating graphical editors. It provides an overview of both frameworks, describes how to generate a GMF editor from models, and how to handcraft a Graphiti editor by contributing necessary extensions and features. The document aims to help developers choose between Graphiti and GMF when building a new graphical editor.
The document discusses Alloy Widgets, which are self-contained UI components that encapsulate logic and can be reused across projects. It provides an example of creating a custom table view widget that manages cross-platform differences. The widget file structure is described, and it is shown how widgets can be used in a main app via the Require tag, passing parameters that can be accessed in the widget controller. Styling of widget elements is recommended to be done in the main app for reusability.
The document discusses Android Data Binding, which allows binding UI components in XML layouts to data sources in code. It introduces basic data binding, using Observables to track changes, binding collections, and using data binding with RecyclerView. Expressions can be used to bind data and call methods. Data binding avoids findViewById and directly updating views, supports code reuse, and automatically updates UIs when data changes.
The document discusses using Graphiti to create modeler tools. It provides an agenda that includes an introduction to Graphiti, a business scenario demo, architecture discussion, code snippets, and resources. Key concepts covered include EMF, domain models, pictogram models, pictorial elements, defining providers for diagrams, tools, features and drawing pictorial elements from domain objects. The presenter demonstrates preparing domain data, defining various Graphiti providers and drawing club logos by accessing images from an image provider.
This document provides an overview of creating a basic Eclipse Rich Client Platform (RCP) application, including setting up the necessary plug-in project, defining perspectives and views, and implementing core classes like Application, WorkbenchAdvisor, and Perspective. It describes how to add new views to a perspective and launch the RCP application. The key classes involved in startup and initialization of the Eclipse workbench are also explained.
1. The document describes the initialization process of SurfaceFlingerService in Android.
2. SurfaceFlinger is instantiated which creates the main SurfaceFlinger instance. This triggers the initialization of various core Android services.
3. The main display is initialized by creating a DisplayHardware instance and a graphic plane for the display. Shared memory is allocated to share display information.
Building High Perf Web Apps - IE8 FirestarterMithun T. Dhar
This document provides suggestions for optimizing web application and site performance. It discusses minimizing CSS and JavaScript file sizes, simplifying selectors, avoiding expensive operations like DOM lookups and expression evaluation, leveraging browser caching, image optimization techniques like sprites, and reducing blocking of page loads by scripts. The key recommendations are to simplify code, optimize only when needed, and consider maintainability.
The Abstract Factory pattern provides an interface for creating families of related or dependent objects without specifying their concrete classes. In the example code, abstract factories like ContinentFactory define interfaces for creating herbivores and carnivores, while concrete factories like AfricaFactory and AmericaFactory implement the interfaces and produce animal objects appropriate for their continent. A client like AnimalWorld uses the factories to populate ecosystems with different sets of animals.
Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...Eelco Visser
The document discusses three topics: pretty-printing, editor services, and term rewriting. Pretty-printing involves transforming abstract syntax trees to concrete syntax. Editor services define behaviors for syntax highlighting, code folding, outlines, and completions. Term rewriting uses rewrite rules and strategies to transform abstract syntax trees.
This document discusses developing games for Windows 8. It covers Metro-style apps, running on ARM and x86 processors, and the continued support for desktop apps. Game components like graphics, audio and networking are discussed. Developing Metro-style apps using XAML, C++ and C# with the WinRT API is explained. Handling fullscreen, snapped and filled window modes as well as orientation changes is covered. Storing game state during suspend and loading is also summarized.
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)lennartkats
Modern IDEs increase developer productivity by incorporating many different kinds of editor services. These can be purely syntactic, such as syntax highlighting, code folding, and an outline for navigation; or they can be based on the language semantics, such as in-line type error reporting and resolving identifier declarations. Building all these services from scratch requires both the extensive knowledge of the sometimes complicated and highly interdependent APIs and extension mechanisms of an IDE framework, and an in-depth understanding of the structure and semantics of the targeted language. This paper describes Spoofax/IMP, a meta-tooling suite that provides high-level domain-specific languages for describing editor services, relieving editor developers from much of the framework-specific programming. Editor services are defined as composable modules of rules coupled to a modular SDF grammar. The composability provided by the SGLR parser and the declaratively defined services allows embedded languages and language extensions to be easily formulated as additional rules extending an existing language definition. The service definitions are used to generate Eclipse editor plugins. We discuss two examples: an editor plugin for WebDSL, a domain-specific language for web applications, and the embedding of WebDSL in Stratego, used for expressing the (static) semantic rules of WebDSL.
CodeMash - Building Rich Apps with Groovy SwingBuilderAndres Almiray
This document discusses using SwingBuilder in Groovy to create Swing applications. It covers the basics of SwingBuilder, including building a simple UI, handling events with closures, and defining reusable actions. It also discusses more advanced topics like threading, binding, custom components, and graphical rendering with GraphicsBuilder. The goal is to learn how to simplify and speed up Swing development using Groovy features.
Operator overloading allows functions to be called when operators are used on user-defined types. It overloads built-in operators like + and - to work on custom classes. This makes code involving classes easier to read and write but does not add new capabilities - everything done with operators can be done with functions. There are limitations to operator overloading like not being able to change precedence or number of arguments. Overloading is useful when it improves readability, such as overloading + for a complex number class. The assignment operator (=) can also be overloaded but the compiler provides a default that does member-wise copying, which is sufficient for simple classes like a complex number class.
This document discusses using the Eclipse IDE with PHP development. It covers installing Eclipse PDT, configuring views and perspectives, managing PHP projects, using code templates and completion, integrating xDebug for debugging, and several useful plugins like Subclipse for SVN integration. The presentation provides an overview of key PHP development features in Eclipse.
Hibernate is an object-relational mapping tool that allows Java objects to be persisted to a relational database. It provides transparent persistence by handling all database operations like insert, update, delete, and retrieval. Hibernate sits between the Java application and database, mapping objects to database tables and allowing developers to work with objects rather than directly with SQL statements. Configuration files define the mappings between Java classes and database tables. Hibernate uses these mappings to automatically generate SQL to load and store objects.
The graphical sub-system of the Eclipse platform is made up of two components: SWT, the Standard Widget Toolkit ;and JFace, an architecture-independent modeling layer. This module describes how JFace extends SWT with viewers, commands, wizards, dialogs, and field assist.
Code camp 2011 Getting Started with IOS, Una DalyUna Daly
Presentation at Code Camp on Oct 8, 2011, 1:15 pm in the Foothill College Cafeteria. Overview of iOS Platform and development with demonstration of building two applications that demonstrate the model-view-controller architecture and feature buttons, textfields, labels, and alerts.
This document provides an overview of iPhone development. It discusses setting up the development environment which involves getting a Mac, the iOS SDK, installing Xcode, and getting an Apple Developer account. It also covers Objective-C as the main programming language, and key iOS frameworks like UIKit, Core Graphics, Foundation. It introduces concepts like the MVC pattern, views, view controllers. It demonstrates Objective-C syntax and shows how to create interfaces and implementations in header and implementation files. Resources for learning more about iPhone development are also provided.
Pentesting iOS Apps - Runtime Analysis and ManipulationAndreas Kurtz
Apple iOS Apps are primarily developed in Objective-C, an object-oriented extension and strict superset of the C programming language. Objective-C supports the concepts of reflection, also known as introspection. This describes the ability to examine and modify the structure and behavior (specifically the values, meta-data, properties and functions) of an object at runtime.
This talk discusses the background, techniques, problems and solutions to Objective-C runtime analysis and manipulation. It will be discussed how running applications can be extended with additional debugging and runtime tracing capabilities, and how this can be used to modify instance variables and to execute or replace arbitrary object methods of an App.
Moreover, a new framework to assist dynamic analysis and security assessments of iOS Apps will be introduced and demonstrated.
This document provides an overview of the iOS development process, from development in Xcode to distributing apps on the App Store. It discusses the core components of iOS like Xcode, Objective-C, UIKit and Cocoa Touch frameworks. The document explains how to set up the development environment, design app interfaces, code apps using Objective-C and common iOS design patterns. It also outlines the steps to test apps on real devices and submit apps to the App Store for distribution.
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...Maarten Balliauw
Ever wondered how IDE’s are built? In this talk, we’ll skip the marketing bit and dive into the architecture and implementation of JetBrains Rider. We’ll look at how and why we have built (and open sourced) a reactive protocol, and how the IDE uses a “microservices” architecture to communicate with the debugger, Roslyn, a WPF renderer and even other tools like Unity3D. We’ll explore how things are wired together, both in-process and across those microservices.
This document provides an agenda for a presentation on programming in Objective-C. It introduces Xcode and common frameworks like UIKit. It discusses Objective-C concepts like message passing and memory management. It also covers design patterns frequently used in iOS like delegation, notifications, and singleton. Common UIKit classes like view controllers and views are demonstrated.
The document provides an overview of iOS development including:
- The iOS platform and SDK for developing iPhone and iPad apps
- Using Xcode and Objective-C as the main programming language
- Setting up the development environment and registering as an Apple developer
- Key aspects of the development process like debugging, deploying and distributing apps
- Common iOS frameworks like Cocoa Touch and Core Location that aid app development
This document provides an overview of iOS programming using Xcode and Objective-C. It discusses Xcode development tools like Interface Builder and iOS Simulator. It covers the Xcode IDE, navigation, and running apps on the simulator or a device. It introduces Objective-C concepts like classes, objects, methods, and message passing. It discusses core Objective-C classes like NSString, NSNumber, NSArray, and NSDictionary. It also covers view controllers, the model-view-controller design pattern, and view controller lifecycle methods. Sample code projects are provided to demonstrate concepts like handling user interfaces and responding to user interactions.
Tell Me Quando - Implementing Feature FlagsJorge Ortiz
Feature flags allow software developers to experiment with new features or changes by hiding or exposing functionality while the software is in development. The document discusses implementing feature flags by using build configurations and conditional compilation to produce different versions from the same codebase. It provides examples of using feature flags for minor UI changes like changing colors or text, and major UI changes like using different views. Tests should test both the original code with feature flags disabled and new code with them enabled.
The document discusses the Objective-C runtime and how it enables dynamic features of the Objective-C language. It covers how self is initialized by calling [super init], how messages are sent via objc_msgSend, and the basic structure of the Objective-C runtime including classes, objects, messaging and introspection. Examples of using the runtime API are provided, such as method swizzling and implementing a JSON model. The document provides references for further reading on the Objective-C runtime.
Explore some cool generic techniques which you could use for building complex ui in a declarative manner.
TableKit is a super lightweight yet powerful generic library that allows you to build complex table views in a declarative type-safe manner. It hides a complexity of UITableViewDataSource and UITableViewDelegate methods behind the scene, so your code will be look clean, easy to read and nice to maintain.
https://github.com/maxsokolov/TableKit
Presentation on the principles, philosophy and a few applications of object oriented programming along with a few pointers on how to effectively code. Presented at a session aimed at undergrad computer science students at the University of Pune.
Present along with Mr. Anirudh Tomer and Mr. Toshish Jawale.
Konstantin will tell us about challenges his team faced during this app development, about decisions on frameworks, libraries, patterns, analytics. It's always interesting to know how mobile development for different mobile platforms goes in large corporations like Microsoft.
Connect me: https://www.linkedin.com/profile/view?id=60116085
The document discusses building an interoperable programmable web through common agreements on discovery, linking, schemas, media types, formats and interfaces. It proposes using HTTP as the common protocol and representing data through common formats to allow different systems and APIs to interact. It also suggests using SQL-like constructs to enable operations like querying, filtering, joining and orchestrating requests across multiple APIs.
iPhone development from a Java perspective (Jazoon '09)Netcetera
Based on experience gained in developing the popular Zurich train/tram/bus/ship timeplan transport application, wemlin, senior software engineer Ognen Ivanovski describes development for the iPhone from the perspective of an Enterprise Java developer - covering aspects about differences in the language, the architecture, the user experience, the tools, and the market.
iOS Einführung am Beispiel von play NEXT TEEHendrik Ebel
The document discusses the iOS app play NEXT TEE, including a demo of its golf scoring functionality, an overview of Objective-C 2.0 features like properties syntax and dot notation, and best practices for Xcode like using code completion and refactoring tools. It also covers play NEXT TEE's internal architecture involving configuration, Core Data, view controllers, and delegates.
The document discusses implementing new web APIs in Firefox. It outlines how to implement APIs in both JavaScript and C++. For JavaScript implementations, developers need to create interface definition files, manifest files, and JavaScript files. For C++ implementations, developers map interfaces to C++ classes and need to handle memory management using reference counting and the cycle collector. The document provides examples and recommends reaching out to Mozilla developers on IRC for help with implementations.
The document discusses implementing new web APIs in Firefox. It outlines how to implement APIs in both JavaScript and C++. For JavaScript implementations, developers need to create interface definition files, manifest files, and JavaScript files. For C++ implementations, developers map interfaces to C++ classes and need to handle memory management using reference counting and the cycle collector. The document provides examples and recommends reaching out to Mozilla developers on IRC for help with implementations.
Use Eclipse technologies to build a modern embedded IDEBenjamin Cabé
This document discusses requirements for developing an embedded integrated development environment (IDE) using Eclipse technologies. It describes using Eclipse Modeling Framework (EMF) to model embedded projects. It also discusses using EMF validation, Graphical Modeling Framework (GMF) editors, Xpand for code generation, and the CDT and DLTK plugins for code editing. The IDE will integrate model and code editing with compilation, communication with targets via the Target Communication Framework (TCF) and Remote System Explorer (RSE). The goal is to leverage the Eclipse ecosystem to quickly create a complex IDE environment focused on embedded development.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
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.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Infrastructure Challenges in Scaling RAG with Custom AI modelsZilliz
Building Retrieval-Augmented Generation (RAG) systems with open-source and custom AI models is a complex task. This talk explores the challenges in productionizing RAG systems, including retrieval performance, response synthesis, and evaluation. We’ll discuss how to leverage open-source models like text embeddings, language models, and custom fine-tuned models to enhance RAG performance. Additionally, we’ll cover how BentoML can help orchestrate and scale these AI components efficiently, ensuring seamless deployment and management of RAG systems in the cloud.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
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
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.
2. iOS Overview
Cocoa Touch Core OS
Media
Core Services OS X Kernel Power management
Mach 3.0 Keychain Access
Core OS BSD Certificates
Sockets File System
Security Bonjour
2
3. iOS Overview
Cocoa Touch Core Services
Media
Core Services Collections Core Location
Address Book Net Services
Core OS Networking Threading
File Access Preferences
SQLite URL Utilities
3
4. iOS Overview
Cocoa Touch Media
Media
Core Services Core Audio JPEG, PNG, TIFF
OpenAL PDF
Core OS Audio Mixing Quartz (2D)
Audio Recording Core Animation
Video Playback OpenGL
4
5. iOS Overview
Cocoa Touch Cocoa Touch
Media
Multi-touch Alerts
Core Services
Core Motion Web View
Core OS View Hierarchy Map Kit
Localization Image Picker
Controls Camera
5
6. Platform Components
• Tools
• Language [display setTextColor:[UIColor blackColor]];
• Frameworks
• Design Strategies V
6
7. Model View Controller
Controller
Model View
Model – What your application is (but not how it is displayed)
Controller– How your model is presented to User (UI Logic)
View – Controller’s Minions
7
9. Application Life Cycle
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
9
10. Objective C
CalculatorViewController
Controller
action
x
7
Model View
4
+
operationPressed:
CalculatorModel UI Buttons
digitPressed:
10
11. Model
Header file
CalculatorModel.h
Model
Name of the class
#import <Foundation/Foundation.h>
Class’s Superclass
@interface CalculatorModel : NSObject
{
Instance Variable between the
double operand; paranthesis
}
Return Type
-(void) setOperand : (double) anOperand;
-(double) performOperation : (NSString*)operation;
Method declarations
Name of the method Method argument
@end
11
16. Objective C - Methods
- (NSArray *)shipsAtPoint:(CGPoint)bombLocation withDamage:(BOOL)damaged;
Instance Methods Class Methods
• Start with a dash ( - ) • Starts with a plus ( + ), used for
• Normal method singletons, allocation, utilities.
• Can access instance variables inside as if +(id) alloc;
they were locals • Can not access instance variable inside.
• can send message to self and super • Message to “Self” and “Super” mean
inside something a little different. Both invoke
• Example only other “class” methods. Inheritance
BOOL destroyed = [ ship does not work.
dropBomb:bombType at:dropPoint • Example
from:height]; CalculatorModel *model = [[
CalculatorModel alloc] init];
16
17. Objective C – Instance Variables
Scope
By default, instance variables are @protected (only the class and subclass can access).
Can be marked @private (only the class can access) or @public (anyone can access)
Scope Syntax
@interface MyObject: NSObject
{
int foo;
@private
int eye;
int jet;
@protected
int bar;
@public
int forum;
int xyz;
}
17
18. Obj C - Properties
• Now forget everything on the previous slide
•Mark all instance variable @private
• Use @property and dot to access instance variables
• Create methods to get/set an instance variable value
@interface MyObject : NSObject
{
@private
int eye;
} Letter after “set” MUST be capitalized,
otherwise dot notation will not work
- (int) eye;
- (void) setEye : (int) anInt;
@end
18
19. Obj C - Properties
• @property
Complier can generate get/set methods declaration with @property directive.
@interface MyObject : NSObject
{
@private
int eye;
}
@property int eye;
- (int) eye; hidden
- (void) setEye : (int) anInt;
@end
If “readonly” keyword is used only get method will
@property (readonly) int eye; be generated.
19
21. Obj C – Dynamic Binding
• All objects are allocated to heap, so use pointers
• It’s legal to “cast” a pointer.
• All objects inherited from NSObjects knows about
• isKindOfClass
• isMemberOfClass
• respondToSelector
21
22. Frameworks
Foundation Framework
• NSObject
• Base class for pretty much every object in the iOS SDK.
• Implements memory management primitives
• NSString
• Unicode
• Used throughout iOS instead of C language char *
• An NSString instance can not be modified. They are immutable
• NSMutableString
• Mutable version of NSString.
• NSNumber, NSData, NSDate
• NSArray, NSMutableArray
• NSDictionary, NSMutableDictionary
• NSSet, NSMutableSet
• NSUserDefaults
22
23. Creating Objects
Two Step process
-allocate
-Initiate
alloc makes space in heap for class’s instance variables.
Each class has a designated “initializer” method.
MyObject *obj = [ [ MyObject alloc] init];
23
24. Getting Objects
alloc/init is not the only way to “get” an object. Plenty of classes give the object if you ask
for it.
NSString *newDisplay = [ display.text stringByAppendingString:digit ];
NSArray *keys = [ dictionary allKeys];
Who frees the memory for all these objects?
No Garbage collection in iOS
Answer lies in “reference counting”
24
25. Reference Counting
-Take the ownership for an object you want to keep a pointer to
- When you are done with the object, you give up the ownership
- When no one claims ownership for an object, it gets de allocated.
So when do we take the ownership?
Own any object as soon as we send a msg with new, alloc, or copy. But if we receive the object from any other
source you don’t own it, but we can take ownership by sending it the NSObject message “retain”.
The object which we receive from any other source, we’ll own it temporarily until the call stack unwinds Or, the
object is retained.
Once we are done with the object, send the object the NSObject message “release”.
We now own theMoney, we got it using
the method alloc. We are responsible for
-(Money *) showMeTheMoney:(double) amount { sending it release
Money *theMoney = [[ Money alloc] init:amount];
[theMoney autorelease]; We’ve now released the object but it won’t happen
return Money; until the caller of this method has had chance to retain
to theMoney if they want.
}
Caller
Money *myMoney = [ bank showMeTheMoney:5000];
[myMoney retain];
25
26. Deallocation
What happens when the last owner calls release?
A special method, dealloc, is called on the object & the object’s memory is returned to the heap. After this
happens, sending a message to the object will crash the program.
Override “dealloc” in your class but NEVER call it !!! [ Strange ? ]
It only gets called by release when the last owner has ‘released’ the object. The one exception about calling it is
that you should call [super dealloc] in your dealloc.
Example
- (void) dealloc
{
[brain release];
[super dealloc];
}
26
27. @property
Example
display.text = [display.text stringByAppendingString:digit];
This is still owned by display (the UILabel). We don’t This is the NSString we acquired. It comes back
retain it because we are not going to keep it. We’re autoreleased. We’re not going to retain this one either
just going to use it to acquire a different NSString b’cause we’re just going to pass it on to display’s text
from stringByAppendingString property setter method.
Setting an instance variable via setter method (via property)
Did we retain that object? We need to retain instance variable and this can be done via setter methods but what about
@synthesis
There are 3 options for setters made by @synthesis
@property (retain) NSArray *myArrayProperty;
@property (copy) NSString *someNameProperty;
@property (assign) id delegate;
The first 2 options are straight forward. The third option means that neither retain nor copy is sent to the object passed to
the setter. This means that if this object is released by all other owners, we’ll have a bad pointer. So we only use “assign” if
the passed object essentially owns the object with the property.
A controller and its views (b’cause a View should never outlive its controller) A View can have a property (delegate is very
common) which is assigned to its controller.
27
28. @property examples
@property (retain) NSString *name;
@synthesis will create a setter equivalent to
-(void) setName:(NSString *) aString
@synthesis will release the retain
previous object (if any, could be
{ nil) before setting and retaining the
[name release]; new one.
name = [aString retain];
}
@property (copy) NSString *name;
@synthesis will create a setter equivalent to
copy -(void) setName:(NSString *) aString
{
[name release];
name = [aString copy];
}
@property (assign) NSString *name;
@synthesis will create a setter equivalent to
assign
-(void) setName:(NSString *) aString
{
name = aString;
}
28
29. #import <Foundation/Foundation.h> @protocol ProcessDataDelegate <NSObject> @required - (void) processSuccessful: (BOOL)success; @end
protocols
Protocols can be useful in a number of cases, a common usage is to define method that are to be implemented by other
classes.
Similar to @interface, but no implementation
@protocol Foo
-(void) doSomething; // implementors must implement
@optional
-(int) getSomething; // Optional to implement.
Class that implement will look like
@interfaceMyClass : NSObject <Foo>
…
@end
Use of protocols are mainly in delegates and dataSources
The delegate or dataSource is always defined as an assign @property
@property (assign) id <UISomeObjectDelegate> delegate;
29
31. Application Delegate
Class that adopts the protocol.
HappinessAppDelegate.h (header file for Application Delegate) This object implements the
UIApplicationDelegate protocol. The
applicationDidxxx and applicationWillxxx
@interface HappinessAppDelegate : NSObject <UIApplicationDelegate> methods
{
UIWindow *window;
Instance Variable/property/outlet
HappynessViewController *viewController; pointing to HappynessViewController
} (our controller) also hooked up to
MainWindow.xib
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet HappynessViewController *viewController;
@end
Instance Variable/property/outlet pointing to the top-level view for this
application (UIWindow). This is hooked up to MainWindow.xib
31