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.
"Scaling RAG Applications to serve millions of users", Kevin GoedeckeFwdays
How we managed to grow and scale a RAG application from zero to thousands of users in 7 months. Lessons from technical challenges around managing high load for LLMs, RAGs and Vector databases.
Conversational agents, or chatbots, are increasingly used to access all sorts of services using natural language. While open-domain chatbots - like ChatGPT - can converse on any topic, task-oriented chatbots - the focus of this paper - are designed for specific tasks, like booking a flight, obtaining customer support, or setting an appointment. Like any other software, task-oriented chatbots need to be properly tested, usually by defining and executing test scenarios (i.e., sequences of user-chatbot interactions). However, there is currently a lack of methods to quantify the completeness and strength of such test scenarios, which can lead to low-quality tests, and hence to buggy chatbots.
To fill this gap, we propose adapting mutation testing (MuT) for task-oriented chatbots. To this end, we introduce a set of mutation operators that emulate faults in chatbot designs, an architecture that enables MuT on chatbots built using heterogeneous technologies, and a practical realisation as an Eclipse plugin. Moreover, we evaluate the applicability, effectiveness and efficiency of our approach on open-source chatbots, with promising results.
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...TrustArc
Global data transfers can be tricky due to different regulations and individual protections in each country. Sharing data with vendors has become such a normal part of business operations that some may not even realize they’re conducting a cross-border data transfer!
The Global CBPR Forum launched the new Global Cross-Border Privacy Rules framework in May 2024 to ensure that privacy compliance and regulatory differences across participating jurisdictions do not block a business's ability to deliver its products and services worldwide.
To benefit consumers and businesses, Global CBPRs promote trust and accountability while moving toward a future where consumer privacy is honored and data can be transferred responsibly across borders.
This webinar will review:
- What is a data transfer and its related risks
- How to manage and mitigate your data transfer risks
- How do different data transfer mechanisms like the EU-US DPF and Global CBPR benefit your business globally
- Globally what are the cross-border data transfer regulations and guidelines
Introducing BoxLang : A new JVM language for productivity and modularity!Ortus Solutions, Corp
Just like life, our code must adapt to the ever changing world we live in. From one day coding for the web, to the next for our tablets or APIs or for running serverless applications. Multi-runtime development is the future of coding, the future is to be dynamic. Let us introduce you to BoxLang.
Dynamic. Modular. Productive.
BoxLang redefines development with its dynamic nature, empowering developers to craft expressive and functional code effortlessly. Its modular architecture prioritizes flexibility, allowing for seamless integration into existing ecosystems.
Interoperability at its Core
With 100% interoperability with Java, BoxLang seamlessly bridges the gap between traditional and modern development paradigms, unlocking new possibilities for innovation and collaboration.
Multi-Runtime
From the tiny 2m operating system binary to running on our pure Java web server, CommandBox, Jakarta EE, AWS Lambda, Microsoft Functions, Web Assembly, Android and more. BoxLang has been designed to enhance and adapt according to it's runnable runtime.
The Fusion of Modernity and Tradition
Experience the fusion of modern features inspired by CFML, Node, Ruby, Kotlin, Java, and Clojure, combined with the familiarity of Java bytecode compilation, making BoxLang a language of choice for forward-thinking developers.
Empowering Transition with Transpiler Support
Transitioning from CFML to BoxLang is seamless with our JIT transpiler, facilitating smooth migration and preserving existing code investments.
Unlocking Creativity with IDE Tools
Unleash your creativity with powerful IDE tools tailored for BoxLang, providing an intuitive development experience and streamlining your workflow. Join us as we embark on a journey to redefine JVM development. Welcome to the era of BoxLang.
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsDianaGray10
Join us to learn how UiPath Apps can directly and easily interact with prebuilt connectors via Integration Service--including Salesforce, ServiceNow, Open GenAI, and more.
The best part is you can achieve this without building a custom workflow! Say goodbye to the hassle of using separate automations to call APIs. By seamlessly integrating within App Studio, you can now easily streamline your workflow, while gaining direct access to our Connector Catalog of popular applications.
We’ll discuss and demo the benefits of UiPath Apps and connectors including:
Creating a compelling user experience for any software, without the limitations of APIs.
Accelerating the app creation process, saving time and effort
Enjoying high-performance CRUD (create, read, update, delete) operations, for
seamless data management.
Speakers:
Russell Alfeche, Technology Leader, RPA at qBotic and UiPath MVP
Charlie Greenberg, host
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
QA or the Highway - Component Testing: Bridging the gap between frontend appl...zjhamm304
These are the slides for the presentation, "Component Testing: Bridging the gap between frontend applications" that was presented at QA or the Highway 2024 in Columbus, OH by Zachary Hamm.
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillLizaNolte
HERE IS YOUR WEBINAR CONTENT! 'Mastering Customer Journey Management with Dr. Graham Hill'. We hope you find the webinar recording both insightful and enjoyable.
In this webinar, we explored essential aspects of Customer Journey Management and personalization. Here’s a summary of the key insights and topics discussed:
Key Takeaways:
Understanding the Customer Journey: Dr. Hill emphasized the importance of mapping and understanding the complete customer journey to identify touchpoints and opportunities for improvement.
Personalization Strategies: We discussed how to leverage data and insights to create personalized experiences that resonate with customers.
Technology Integration: Insights were shared on how inQuba’s advanced technology can streamline customer interactions and drive operational efficiency.
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...GlobalLogic Ukraine
Під час доповіді відповімо на питання, навіщо потрібно підвищувати продуктивність аплікації і які є найефективніші способи для цього. А також поговоримо про те, що таке кеш, які його види бувають та, основне — як знайти performance bottleneck?
Відео та деталі заходу: https://bit.ly/45tILxj
MongoDB to ScyllaDB: Technical Comparison and the Path to SuccessScyllaDB
What can you expect when migrating from MongoDB to ScyllaDB? This session provides a jumpstart based on what we’ve learned from working with your peers across hundreds of use cases. Discover how ScyllaDB’s architecture, capabilities, and performance compares to MongoDB’s. Then, hear about your MongoDB to ScyllaDB migration options and practical strategies for success, including our top do’s and don’ts.
Essentials of Automations: Exploring Attributes & Automation ParametersSafe Software
Building automations in FME Flow can save time, money, and help businesses scale by eliminating data silos and providing data to stakeholders in real-time. One essential component to orchestrating complex automations is the use of attributes & automation parameters (both formerly known as “keys”). In fact, it’s unlikely you’ll ever build an Automation without using these components, but what exactly are they?
Attributes & automation parameters enable the automation author to pass data values from one automation component to the next. During this webinar, our FME Flow Specialists will cover leveraging the three types of these output attributes & parameters in FME Flow: Event, Custom, and Automation. As a bonus, they’ll also be making use of the Split-Merge Block functionality.
You’ll leave this webinar with a better understanding of how to maximize the potential of automations by making use of attributes & automation parameters, with the ultimate goal of setting your enterprise integration workflows up on autopilot.
Guidelines for Effective Data VisualizationUmmeSalmaM1
This PPT discuss about importance and need of data visualization, and its scope. Also sharing strong tips related to data visualization that helps to communicate the visual information effectively.
Session 1 - Intro to Robotic Process Automation.pdfUiPathCommunity
👉 Check out our full 'Africa Series - Automation Student Developers (EN)' page to register for the full program:
https://bit.ly/Automation_Student_Kickstart
In this session, we shall introduce you to the world of automation, the UiPath Platform, and guide you on how to install and setup UiPath Studio on your Windows PC.
📕 Detailed agenda:
What is RPA? Benefits of RPA?
RPA Applications
The UiPath End-to-End Automation Platform
UiPath Studio CE Installation and Setup
💻 Extra training through UiPath Academy:
Introduction to Automation
UiPath Business Automation Platform
Explore automation development with UiPath Studio
👉 Register here for our upcoming Session 2 on June 20: Introduction to UiPath Studio Fundamentals: https://community.uipath.com/events/details/uipath-lagos-presents-session-2-introduction-to-uipath-studio-fundamentals/
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving
What began over 115 years ago as a supplier of precision gauges to the automotive industry has evolved into being an industry leader in the manufacture of product branding, automotive cockpit trim and decorative appliance trim. Value-added services include in-house Design, Engineering, Program Management, Test Lab and Tool Shops.
This talk will cover ScyllaDB Architecture from the cluster-level view and zoom in on data distribution and internal node architecture. In the process, we will learn the secret sauce used to get ScyllaDB's high availability and superior performance. We will also touch on the upcoming changes to ScyllaDB architecture, moving to strongly consistent metadata and tablets.
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