In 2007, Adobe launched Pixel Bender for the Flash Runtime. This allowed Flash Developers parallel processing for the first time. This presentation was the first introduction to the new capabilities in the Flash Runtime.
Core Image: The Most Fun API You're Not Using (CocoaConf Columbus 2014)Chris Adamson
Graphics on iOS and OS X isn't just about stroking shapes and paths in Core Graphics and trying to figure out OpenGL. The Core Image framework gives you access to about 100 built-in filters, providing everything from photographic effects and color manipulation to face-finding and QR Code generation. It can leverage the power of the GPU to provide performance fast enough to perform complex effects work on real-time video capture. But even if you're not writing the next Final Cut Pro or Photoshop, it's easy to call in Core Image for simple tasks, like putting a blur in part of your UI for transitions or privacy reasons. In this session, we'll explore the many ways Core Image can make your app sizzle.
Core Image: The Most Fun API You're Not Using, CocoaConf Atlanta, December 2014Chris Adamson
Graphics on iOS and OS X isn't just about stroking shapes and paths in Core Graphics and trying to figure out OpenGL. The Core Image framework gives you access to about 100 built-in filters, providing everything from photographic effects and color manipulation to face-finding and QR Code generation. It can leverage the power of the GPU to provide performance fast enough to perform complex effects work on real-time video capture. But even if you're not writing the next Final Cut Pro or Photoshop, it's easy to call in Core Image for simple tasks, like putting a blur in part of your UI for transitions or privacy reasons. In this session, we'll explore the many ways Core Image can make your app sizzle
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegelermfrancis
OSGi Community Event 2016 Presentation by David Bosschaert (Adobe) & Carsten Ziegeler (Adobe)
The OSGi expert groups are working on the next big release. Learn in this session about the various new specification efforts going on and how they will make your developer life easier. The new specifications range from configuration handling, object conversion, JAX-RS, distributed eventing, to cloud and IoT.
Core Image: The Most Fun API You're Not Using (CocoaConf Columbus 2014)Chris Adamson
Graphics on iOS and OS X isn't just about stroking shapes and paths in Core Graphics and trying to figure out OpenGL. The Core Image framework gives you access to about 100 built-in filters, providing everything from photographic effects and color manipulation to face-finding and QR Code generation. It can leverage the power of the GPU to provide performance fast enough to perform complex effects work on real-time video capture. But even if you're not writing the next Final Cut Pro or Photoshop, it's easy to call in Core Image for simple tasks, like putting a blur in part of your UI for transitions or privacy reasons. In this session, we'll explore the many ways Core Image can make your app sizzle.
Core Image: The Most Fun API You're Not Using, CocoaConf Atlanta, December 2014Chris Adamson
Graphics on iOS and OS X isn't just about stroking shapes and paths in Core Graphics and trying to figure out OpenGL. The Core Image framework gives you access to about 100 built-in filters, providing everything from photographic effects and color manipulation to face-finding and QR Code generation. It can leverage the power of the GPU to provide performance fast enough to perform complex effects work on real-time video capture. But even if you're not writing the next Final Cut Pro or Photoshop, it's easy to call in Core Image for simple tasks, like putting a blur in part of your UI for transitions or privacy reasons. In this session, we'll explore the many ways Core Image can make your app sizzle
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegelermfrancis
OSGi Community Event 2016 Presentation by David Bosschaert (Adobe) & Carsten Ziegeler (Adobe)
The OSGi expert groups are working on the next big release. Learn in this session about the various new specification efforts going on and how they will make your developer life easier. The new specifications range from configuration handling, object conversion, JAX-RS, distributed eventing, to cloud and IoT.
Open Architecture in the Adobe Marketing Cloud - Summit 2014Paolo Mottadelli
Explore the open architecture concepts of Adobe Marketing Cloud and how they increase the quality and usability of Adobe solutions. The open architecture makes Adobe components easier to integrate, test, and understand, enabling partners and customers to integrate custom data sources and applications with Adobe Marketing Cloud.
Learn about:
– The open architecture concepts applied to Adobe Marketing Cloud
– How the open architecture increases the quality and usability of Adobe solutions
– Taking advantage of integration options
This session is for the entire technical constituency, from developers to CTOs, across all Adobe Marketing Cloud solutions.
(Costless) Software Abstractions for Parallel ArchitecturesJoel Falcou
Performing large, intensive or non-trivial computing on array like data structures is one of the most common task in scientific computing, video game development and other fields. This matter of fact is backed up by the large number of tools, languages and libraries to perform such tasks. If we restrict ourselves to C++ based solutions, more than a dozen such libraries exists from BLAS/LAPACK C++ binding to template meta-programming based Blitz++ or Eigen. If all of these libraries provide good performance or good abstraction, none of them seems to fit the need of so many different user types.
Moreover, as parallel system complexity grows, the need to maintain all those components quickly become unwieldy. This talk explores various software design techniques - like Generative Programming, MetaProgramming and Generic Programming - and their application to the implementation of a parallel computing librariy in such a way that:
- abstraction and expressiveness are maximized - cost over efficiency is minimized
We'll skim over various applications and see how they can benefit from such tools. We will conclude by discussing what lessons were learnt from this kind of implementation and how those lessons can translate into new directions for the language itself.
What's new in android 2018, a content created by Google, and conducted by Shady Selim, for developers attending DevFest all across Egypt.
It combines all the latest Android for Developers updates
BeJUG Meetup - What's coming in the OSGi R7 SpecificationStijn Van Den Enden
Abstract:
The OSGi expert groups are working on the next big release of OSGi. Learn in this session about the various new specification efforts going on and how they will make your developer life easier. The new specifications range from configuration handling, object conversion, JAX-RS, distributed eventing, to cloud and IoT.
Speaker Bios:
David Bosschaert works for Adobe Research and Development. He spends the much of his time on technology relating to OSGi in Apache and other open source projects. He is co-chair of the OSGi Enterprise Expert Group. Before joining Adobe, David worked for Red Hat/JBoss and IONA Technologies in Dublin, Ireland.
Carsten Ziegeler works at Adobe Research Switzerland and spends most of his time on architectural and infrastructure topics. Working for over 25 years in open source projects, Carsten is a member of the Apache Software Foundation and heavily participates in several Apache communities. He is a frequent speaker on technology and open source conferences. Carsten participates in the Expert Groups and is a member of the OSGi Alliance board.
Seattle Cassandra Users: An OSS Java Abstraction Layer for CassandraJosh Turner
Project Casquatch is a database abstraction layer with code generation designed to streamline Cassandra development. Out of the box it comes pre-tuned with high available policies including load balancing, geo-redundancy, connection pooling, etc., sitting on top of the DataStax driver using native APIs. All of this is abstracted behind the ever prevalent POJO. Instead of writing CQL, we utilize generic programming that allows you to simply pass a generated POJO to a save() method or populate with a getById(). This is the same code reportedly used by T-Mobile for multiple national platforms including the activation of the Apple Watch and Galaxy Watch, T-Mobile Payments, Digits, and many others.
As presented at Seattle Cassandra Users Group on June . 26th, 2019.
PHP Toolkit from Zend and IBM: Open Source on IBM iAlan Seiden
PHP developers on IBM i have a new way to access resources such as RPG and COBOL programs, system commands, data areas, and more, using a new, free, flexible, open source toolkit, supported by Zend. Using IBM's XMLSERVICE toolkit on the back end, it's all open source, enabling a high level of quality and functionality delivered by Zend, IBM, and IBM i community members who take the initiative.
You will learn:
• How your older PHP applications can use the new toolkit with minimal changes, thanks to the Compatibility Wrapper (CW), developed for Zend by Alan
And how to:
• Optimize performance
• Develop PHP on your laptop (Windows, Linux) or in the "cloud" and deploy to the IBM i
With suggestions for:
• Security
• Troubleshooting
• Tips and tricks to work with your IBM i in new ways
Practical Patterns for Developing a Cross-product Cross-version AppAtlassian
Victoria Skalrud leads the team responsible for developing and maintaining the Atlassian Support Troubleshooting tools app at Atlassian.
She’ll share the development patterns that her team has used to support compatibility across product versions whilst maintaining a high release velocity.
Redis is an advanced key-value store or a data structure server. This presentation will cover the following topics:
* An overview of Redis
* Data Structures
* Basics of Setup and Installation
* Basics of Administration
* Programming with Redis
* Considerations of Running Redis in a Virtual Machine
* Redis Resources There will be a number of demonstrations to help explain some of the concepts being presented.
Modern Release Engineering in a Nutshell - Why Researchers should Care!Bram Adams
Invited talk at the Leaders of Tomorrow Symposium of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016).
The presentation (and its accompanying paper, see http://mcis.polymtl.ca/publications/2016/fose.pdf) explain the basics of release engineering pipelines, common challenges industry is facing as well as pitfalls software engineering researchers are falling into.
Speakers are Bram Adams (MCIS, http://mcis.polymtl.ca) and Shane McIntosh (McGill University, http://shanemcintosh.org).
A video-taped version of the talk will be available soon at https://www.youtube.com/channel/UCL8yG6qpHk7V66l1Jt3aZrA/featured.
Leveraging the Latest OSGi R7 Specifications - C Ziegeler & D Bosschaertmfrancis
OSGi Community Event 2017 Presentation by Carsten Ziegeler and David Bosschaert [Adobe]
Whether you're building large enterprise applications or writing code for IoT devices, the new R7 release has a lot to offer for you. Learn in this session about the various new and updated specifications and how they will make your developer life easier. Starting with new features in Declarative Services for component development, dealing with configurations, using JAX-RS with OSGi and finishing with useful libraries for object conversion and event streaming, this session is packed with information for OSGi development.
VB2013 - Security Research and Development FrameworkAmr Thabet
That's my presentation in VB2013 in Berlin, Germany ... talking about a new development framework for security
it's created for writing security tools, malware analysis tools and network tools
Elastic @ Adobe: Making Search Smarter with Machine Learning at ScaleElasticsearch
Hear how Adobe scales, manages multiple use cases, and puts machine learning features to work with Elastic and learn about extensions to Elasticsearch that allow them to search at scale natively.
Slides of talk given at London Study of Enterprise Agile Meetup in June 2019.
We go over GitOps and how it affects delivery speed in software development and release.
Software Define your Current Storage with OpensourceAntonio Romeo
While Software Defined Storage is becoming one of the major trend topics in the Data Center, what do you do with your current “legacy” arrays?
Learn how with ViPR Controller, or its Open Source counterpart, CoprHD, you can automate and make your datacenter “software defined” with your current infrastructure.
Content from my Brighttalk webinar available here: https://www.brighttalk.com/webcast/10739/169959
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
OSGi Community Event 2018 Presentation by David Bosschaert (Adobe)
Abstract: OSGi lends itself well to develop extensible applications assembled from reusable modules, where a set of bundles together with a set of configurations deployed to a provisioned OSGi framework is the application.
While this works very well for the originally intended use-cases, maintaining and building large applications developed by multiple teams often requires to assemble multiple larger components for which there is limited support in OSGi as of today. This is especially true in cases where multiple groups of bundles, configuration, metadata, and other artifacts need to be combined.
In this talk we will introduce you to OSGi RFP-188, named OSGi Features, which defines the requirements on providing a solution. We'll establish a shared understanding of the problem space and how it relates to already available mechanisms in OSGi (like e.g. subsystems, deploymentadmin, startlevels, etc.) and will subsequently, review it in the context of some of the current (open source) solutions like Apache Karaf Features and Apache Sling Features and Bnd.
It's teams all the way down - Design patterns for technology organizationsKevin Goldsmith
A challenge for startups as they scale is finding the right structure for the stage of their growth that will support them as they continue to grow. While there is no "one size fits all" solution for organizational structure, there are patterns for the different stages of startups that can be adapted to your culture and best practices to leverage.
First presented at the 0111 CTO Conference, November 2022
What Vulnerabilities? How and why to secure your ML/AI SolutionsKevin Goldsmith
Because our models and pipelines don’t usually run in production, it's natural to put less scrutiny into the security of the systems and the code. However, vulnerabilities in our data architecture, software architecture, or network design can expose critical company IP or personal data to hackers or fraudsters. Vulnerabilities in the open-source packages we use to build our models can be exploited as well. This talk covers considerations around security that should be central to anyone building ML/AI solutions.
More Related Content
Similar to Image and Video Processing Using Adobe Image Foundation's Toolkit For Flash - MAX 2007
Open Architecture in the Adobe Marketing Cloud - Summit 2014Paolo Mottadelli
Explore the open architecture concepts of Adobe Marketing Cloud and how they increase the quality and usability of Adobe solutions. The open architecture makes Adobe components easier to integrate, test, and understand, enabling partners and customers to integrate custom data sources and applications with Adobe Marketing Cloud.
Learn about:
– The open architecture concepts applied to Adobe Marketing Cloud
– How the open architecture increases the quality and usability of Adobe solutions
– Taking advantage of integration options
This session is for the entire technical constituency, from developers to CTOs, across all Adobe Marketing Cloud solutions.
(Costless) Software Abstractions for Parallel ArchitecturesJoel Falcou
Performing large, intensive or non-trivial computing on array like data structures is one of the most common task in scientific computing, video game development and other fields. This matter of fact is backed up by the large number of tools, languages and libraries to perform such tasks. If we restrict ourselves to C++ based solutions, more than a dozen such libraries exists from BLAS/LAPACK C++ binding to template meta-programming based Blitz++ or Eigen. If all of these libraries provide good performance or good abstraction, none of them seems to fit the need of so many different user types.
Moreover, as parallel system complexity grows, the need to maintain all those components quickly become unwieldy. This talk explores various software design techniques - like Generative Programming, MetaProgramming and Generic Programming - and their application to the implementation of a parallel computing librariy in such a way that:
- abstraction and expressiveness are maximized - cost over efficiency is minimized
We'll skim over various applications and see how they can benefit from such tools. We will conclude by discussing what lessons were learnt from this kind of implementation and how those lessons can translate into new directions for the language itself.
What's new in android 2018, a content created by Google, and conducted by Shady Selim, for developers attending DevFest all across Egypt.
It combines all the latest Android for Developers updates
BeJUG Meetup - What's coming in the OSGi R7 SpecificationStijn Van Den Enden
Abstract:
The OSGi expert groups are working on the next big release of OSGi. Learn in this session about the various new specification efforts going on and how they will make your developer life easier. The new specifications range from configuration handling, object conversion, JAX-RS, distributed eventing, to cloud and IoT.
Speaker Bios:
David Bosschaert works for Adobe Research and Development. He spends the much of his time on technology relating to OSGi in Apache and other open source projects. He is co-chair of the OSGi Enterprise Expert Group. Before joining Adobe, David worked for Red Hat/JBoss and IONA Technologies in Dublin, Ireland.
Carsten Ziegeler works at Adobe Research Switzerland and spends most of his time on architectural and infrastructure topics. Working for over 25 years in open source projects, Carsten is a member of the Apache Software Foundation and heavily participates in several Apache communities. He is a frequent speaker on technology and open source conferences. Carsten participates in the Expert Groups and is a member of the OSGi Alliance board.
Seattle Cassandra Users: An OSS Java Abstraction Layer for CassandraJosh Turner
Project Casquatch is a database abstraction layer with code generation designed to streamline Cassandra development. Out of the box it comes pre-tuned with high available policies including load balancing, geo-redundancy, connection pooling, etc., sitting on top of the DataStax driver using native APIs. All of this is abstracted behind the ever prevalent POJO. Instead of writing CQL, we utilize generic programming that allows you to simply pass a generated POJO to a save() method or populate with a getById(). This is the same code reportedly used by T-Mobile for multiple national platforms including the activation of the Apple Watch and Galaxy Watch, T-Mobile Payments, Digits, and many others.
As presented at Seattle Cassandra Users Group on June . 26th, 2019.
PHP Toolkit from Zend and IBM: Open Source on IBM iAlan Seiden
PHP developers on IBM i have a new way to access resources such as RPG and COBOL programs, system commands, data areas, and more, using a new, free, flexible, open source toolkit, supported by Zend. Using IBM's XMLSERVICE toolkit on the back end, it's all open source, enabling a high level of quality and functionality delivered by Zend, IBM, and IBM i community members who take the initiative.
You will learn:
• How your older PHP applications can use the new toolkit with minimal changes, thanks to the Compatibility Wrapper (CW), developed for Zend by Alan
And how to:
• Optimize performance
• Develop PHP on your laptop (Windows, Linux) or in the "cloud" and deploy to the IBM i
With suggestions for:
• Security
• Troubleshooting
• Tips and tricks to work with your IBM i in new ways
Practical Patterns for Developing a Cross-product Cross-version AppAtlassian
Victoria Skalrud leads the team responsible for developing and maintaining the Atlassian Support Troubleshooting tools app at Atlassian.
She’ll share the development patterns that her team has used to support compatibility across product versions whilst maintaining a high release velocity.
Redis is an advanced key-value store or a data structure server. This presentation will cover the following topics:
* An overview of Redis
* Data Structures
* Basics of Setup and Installation
* Basics of Administration
* Programming with Redis
* Considerations of Running Redis in a Virtual Machine
* Redis Resources There will be a number of demonstrations to help explain some of the concepts being presented.
Modern Release Engineering in a Nutshell - Why Researchers should Care!Bram Adams
Invited talk at the Leaders of Tomorrow Symposium of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016).
The presentation (and its accompanying paper, see http://mcis.polymtl.ca/publications/2016/fose.pdf) explain the basics of release engineering pipelines, common challenges industry is facing as well as pitfalls software engineering researchers are falling into.
Speakers are Bram Adams (MCIS, http://mcis.polymtl.ca) and Shane McIntosh (McGill University, http://shanemcintosh.org).
A video-taped version of the talk will be available soon at https://www.youtube.com/channel/UCL8yG6qpHk7V66l1Jt3aZrA/featured.
Leveraging the Latest OSGi R7 Specifications - C Ziegeler & D Bosschaertmfrancis
OSGi Community Event 2017 Presentation by Carsten Ziegeler and David Bosschaert [Adobe]
Whether you're building large enterprise applications or writing code for IoT devices, the new R7 release has a lot to offer for you. Learn in this session about the various new and updated specifications and how they will make your developer life easier. Starting with new features in Declarative Services for component development, dealing with configurations, using JAX-RS with OSGi and finishing with useful libraries for object conversion and event streaming, this session is packed with information for OSGi development.
VB2013 - Security Research and Development FrameworkAmr Thabet
That's my presentation in VB2013 in Berlin, Germany ... talking about a new development framework for security
it's created for writing security tools, malware analysis tools and network tools
Elastic @ Adobe: Making Search Smarter with Machine Learning at ScaleElasticsearch
Hear how Adobe scales, manages multiple use cases, and puts machine learning features to work with Elastic and learn about extensions to Elasticsearch that allow them to search at scale natively.
Slides of talk given at London Study of Enterprise Agile Meetup in June 2019.
We go over GitOps and how it affects delivery speed in software development and release.
Software Define your Current Storage with OpensourceAntonio Romeo
While Software Defined Storage is becoming one of the major trend topics in the Data Center, what do you do with your current “legacy” arrays?
Learn how with ViPR Controller, or its Open Source counterpart, CoprHD, you can automate and make your datacenter “software defined” with your current infrastructure.
Content from my Brighttalk webinar available here: https://www.brighttalk.com/webcast/10739/169959
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
OSGi Community Event 2018 Presentation by David Bosschaert (Adobe)
Abstract: OSGi lends itself well to develop extensible applications assembled from reusable modules, where a set of bundles together with a set of configurations deployed to a provisioned OSGi framework is the application.
While this works very well for the originally intended use-cases, maintaining and building large applications developed by multiple teams often requires to assemble multiple larger components for which there is limited support in OSGi as of today. This is especially true in cases where multiple groups of bundles, configuration, metadata, and other artifacts need to be combined.
In this talk we will introduce you to OSGi RFP-188, named OSGi Features, which defines the requirements on providing a solution. We'll establish a shared understanding of the problem space and how it relates to already available mechanisms in OSGi (like e.g. subsystems, deploymentadmin, startlevels, etc.) and will subsequently, review it in the context of some of the current (open source) solutions like Apache Karaf Features and Apache Sling Features and Bnd.
Similar to Image and Video Processing Using Adobe Image Foundation's Toolkit For Flash - MAX 2007 (20)
It's teams all the way down - Design patterns for technology organizationsKevin Goldsmith
A challenge for startups as they scale is finding the right structure for the stage of their growth that will support them as they continue to grow. While there is no "one size fits all" solution for organizational structure, there are patterns for the different stages of startups that can be adapted to your culture and best practices to leverage.
First presented at the 0111 CTO Conference, November 2022
What Vulnerabilities? How and why to secure your ML/AI SolutionsKevin Goldsmith
Because our models and pipelines don’t usually run in production, it's natural to put less scrutiny into the security of the systems and the code. However, vulnerabilities in our data architecture, software architecture, or network design can expose critical company IP or personal data to hackers or fraudsters. Vulnerabilities in the open-source packages we use to build our models can be exploited as well. This talk covers considerations around security that should be central to anyone building ML/AI solutions.
Whether you are responsible for salary decisions or just give input to someone else, it is important to understand the overt and subtle considerations around determining appropriate pay raises for your team. How you handle salary is a critical part of performance management and retention.
This talk gives some practical advice and things to keep in mind when you are considering what type of pay raise to make. I’ll also provide some points to make the salary discussions in your performance reviews easier.
Partly distributed teams (teams with co-located and distributed members) existed before the pandemic, but are becoming the new normal as companies plan their future. We have a lot of knowledge about managing fully co-located teams from centuries of work, and modern technology companies have pioneered fully distributed teams. However, leading a partially distributed team presents unique challenges, interpersonal and technical. What makes partially distributed teams especially challenging? How can we address these challenges to make our distributed organizations more effective? In this talk, Kevin Goldsmith discusses four main challenges: Conway's Law, Amdahl's Law (as applied to organizations), Empathy, and Communication. He gives examples of these problems and solutions from his experience leading partially distributed teams over the last 25 years.
I was privileged to be a senior leader in the product development team at Spotify from 2013 until 2016. I joined the company right after the adoption of the now well-known "Spotify Model." As a Tribe Lead and then Alliance Lead, I helped in the models' evolution as the company grew to over 800 developers across five offices on two continents.
My time at Spotify was instructive in many ways, and since leaving, I have adopted the lessons I learned as a CTO in multiple companies.
While the squads/chapters/tribes/guilds model as a method for scaling agile development is what people focus on, the ideas and values that inspired that model are valuable and applicable across a wide range of organizations.
I share those ideas and values in this talk—their application at Spotify and how I have applied them in different organizations since.
When why and how to stop coding as your day jobKevin Goldsmith
Many, if not most of us, started as developers. We learned and perfected our craft and were proud of our coding accomplishments. It was what defined us.
As you progress in leadership, more and more of your responsibilities have less and less to do with coding. When is it time to make coding your hobby instead of your job? How do you do it?
This talk is all about embracing the challenges of leading people while staying technically credible.
First Presented at ConFoo February 2021
Presenting to executives at your company is different than giving a presentation to your team, other teams, at a meetup, a conference, or customers.
When asked to present to a group of senior leaders from your company, you need to structure your presentation differently, prepare differently, and communicate differently than when speaking to other audiences.
Positive exposure with senior leaders in an organization is valuable for career advancement. It is an excellent opportunity.
This talk presents some concrete strategies for planning your presentation, preparing the attendees, handling unexpected questions, going down rabbit holes, driving the attendees to a decision (if that is your goal), and following up afterward.
This talk was first presented at LeadDev Live, January 2021
Mission and vision statements aren't just for companies, they are for teams too. They help the team understand what they will and won't do. This talk helps you build these artifacts for your team.
The idea of creating autonomous teams has been trending for a few years now. It is now considered one of the tenets of mature agile organizations.
In theory, autonomous teams move faster because they don't have to synchronize with other groups as much or wait to get approval for their decisions. They don't have to wait for direction. Autonomous teams should also be happier; autonomy being one of the three pillars of driving motivation in individuals.
In practice, many leads and their managers confuse autonomy with being completely "hands-off." Failed projects, buggy releases, or other issues are often the result of not understanding how team autonomy should work.
In this talk, I’ll discuss my experiences seeing autonomy done correctly and not in teams, and share examples of what I’ve done to establish the needed conditions for autonomy done right.
Organization, Architecture, Autonomy and Accountability (2020)Kevin Goldsmith
Many consider agile a process to implement within an existing organization. A set of rules to follow that will produce some useful outcomes. This approach can provide improvements in many different structures of organizations. As agile maturity improves, however, the benefits can become limited by the structure and culture of the organization itself.
Agile is more than a framework for organizing tasks for a team. Agile is a culture, a mindset and a structure for improving the velocity of innovation and providing real business value to customers. To gain the most benefit from Agile it must be considered as part of a more extensive system that incorporates organizational structure, software architecture, and company culture.
This talk considers the interactions between how the work, the software, and the people are organized in high performing agile organizations. Using my own experiences at companies large and small, I will share what I have learned and some best practices I use. These lessons will help you as you improve and scale your Agile teams.
I will discuss:
* How to structure your organization to remove the bottlenecks in coordination and decision-making that can slow velocity to a crawl
* How to take advantage of modern systems architectures to allow teams to move faster
* Using data to provide accountability for autonomous teams without creating more process
By the end, you will have concrete examples and ideas that you can bring back to your team to help you improve and scale agile within your organization.
Leading Distributed Teams - Stretch Conference 2020Kevin Goldsmith
This talk was presented at the Stretch Leadership Conference in Budapest, Hungary on February 14, 2020
In this talk, Kevin Goldsmith discusses four main challenges to leading distributed teams: Conway’s Law, Amdahl’s Law (as applied to organizations), Empathy, and Communication. He gives examples of these problems and solutions from his experience leading distributed teams over the last 25 years.
Distributed teams can either be very powerful, finding the best developers wherever they are, or it can be a nightmare of bad video meetings and flame wars.
What makes distributed teams especially challenging? How can we address these challenges to make our distributed organizations more effective?
How Does Salary Work - The Lead Developer Berlin 2019 extended remixKevin Goldsmith
You make a hire for your team. The person wants 20% more than anyone else. Should you give it to them?
Your manager gives you a 5% raise budget for your team. Do you give them all 5% or give one person 15% and the rest 1%?
You think you are giving a great raise to one of your top performers, but they let you know that they expected much more.
A person on your team approaches you because they got a job offer for 10% more than their current salary. Should you try to match it?
The management debt that gets accrued by poor decisions around salary is extremely painful to fix. In this talk, I will give you the tools and ideas that you can use to be well prepared for the next salary review. I will help you avoid accruing management debt around pay in your team.
How is the salary budget calculated? How you can argue for the extra budget to adjust someone that is not being paid well. Where you can find extra money to make a meaningful difference for someone. Why sometimes it is better to do no raise at all, then do a small one. How you handle the conversation when someone isn't happy with their increase. How do you decide what salary to offer a candidate? How can you make sure that you are not increasing pay disparity between different groups?
These are problems that Dev Leads face all the time. The impact of making a wrong decision is massive to an individual. The mistake of paying someone too little or too much can affect them for years.
Understanding how salary works helps you create a happier and healthier team.
[This talk was given at The Lead Developer conference in Berlin, Germany on December 6, 2019. The slides here include sections of the presentation that I had to cut for time.]
Developing your Developers: Constructing Career Paths for your Technologists ...Kevin Goldsmith
How you construct development paths in your company can support and deepen your company values. Doing it well means heightening employee engagement and improving retention. This talk gives technology and people team leaders a place to start their conversations.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaYara Milbes
Discover the transformative power of the WhatsApp API in our latest SlideShare presentation, "Top 7 Unique WhatsApp API Benefits." In today's fast-paced digital era, effective communication is crucial for both personal and professional success. Whether you're a small business looking to enhance customer interactions or an individual seeking seamless communication with loved ones, the WhatsApp API offers robust capabilities that can significantly elevate your experience.
In this presentation, we delve into the top 7 distinctive benefits of the WhatsApp API, provided by the leading WhatsApp API service provider in Saudi Arabia. Learn how to streamline customer support, automate notifications, leverage rich media messaging, run scalable marketing campaigns, integrate secure payments, synchronize with CRM systems, and ensure enhanced security and privacy.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Image and Video Processing Using Adobe Image Foundation's Toolkit For Flash - MAX 2007
1. 2007 Adobe Systems Incorporated. All Rights Reserved.
1
Kevin Goldsmith
Engineering Manager - AIF
Adobe Systems Inc.
Bob Archer
Senior Computer Scientist - AIF
Adobe Systems Inc.
Saikat Kanjilal
Computer Scientist - Emerging Solutions
Adobe Systems Inc.
MAX 2007
CONNECT. DISCOVER. INSPIRE.
17. 2007 Adobe Systems Incorporated. All Rights Reserved.
17
This Talk
Adobe Image Foundation Toolkit
Technology Preview
18. 2007 Adobe Systems Incorporated. All Rights Reserved.
18
This Talk
AIF Toolkit
19. 2007 Adobe Systems Incorporated. All Rights Reserved.
19
This Talk
AIF Toolkit
Available on Adobe Labs RIGHT NOW
http://labs.adobe.com/wiki/index.php/AIF_Toolkit
20. 2007 Adobe Systems Incorporated. All Rights Reserved.
20
This Talk
(Codename) Hydra Language
21. 2007 Adobe Systems Incorporated. All Rights Reserved.
21
This Talk
(Codename) Hydra Language
(Adobe Legal makes us say Codename)
22. 2007 Adobe Systems Incorporated. All Rights Reserved.
22
This Talk
(Codename) Hydra Language
(Adobe Legal makes us say Codename)
We’ll have a name just as cool soon
23. 2007 Adobe Systems Incorporated. All Rights Reserved.
23
This Talk
AIF
AIF
24. 2007 Adobe Systems Incorporated. All Rights Reserved.
24
This Talk
Ability for Flash Authors to create Filters a highly requested feature
25. 2007 Adobe Systems Incorporated. All Rights Reserved.
25
This Talk
Ability for Flash Authors to create Filters a highly requested feature
Iterating on pixels in the bitmap object is slow and difficult
26. 2007 Adobe Systems Incorporated. All Rights Reserved.
26
This Talk
Ability for Flash Authors to create Filters a highly requested feature
Iterating on pixels in the bitmap object is slow and difficult
Hydra for Flash can make doing animated filters easier with high performance
27. 2007 Adobe Systems Incorporated. All Rights Reserved.
27
This Talk
Ability for Flash Authors to create Filters a highly requested feature
Iterating on pixels in the bitmap object is slow and difficult
Hydra for Flash can make doing animated filters easier with high performance
For certain classes of filters
28. 2007 Adobe Systems Incorporated. All Rights Reserved.
28
Flash Bitmap API vs Hydra
29. 2007 Adobe Systems Incorporated. All Rights Reserved.
29
Flash Bitmap API vs Hydra
// loop through the pixels:
for (var x:Number = xMin; x < xMax; x++) {
for (var y:Number = yMin; y < yMax; y++) {
// get the pixel's RGB value:
var rgba:Number = bmp.getPixel32(x,y);
// isolate channels:
var red:Number = (rgba & 0xFF000000) >>
24;
var green:Number = (rgba & 0x00FF0000)
>> 16;
var blue:Number = (rgba & 0x0000FF00) >>
8;
var alpha:Number = (rgba & 0x000000FF);
red = red * .5;
green = green * .8;
var output:Number = (red << 24) | (blue <<
16) | (green << 8) | alpha;
outbmp.setPixel32(x,y,output);
}
}
kernel NewFilter
{
void evaluatePixel(in image4 src, out pixel4
dst)
{
pixel4 temp =
sampleNearest(src,outCoord());
dst = pixel4( temp.r * .5, temp.b, temp.g *
.8, temp.a );
}
}
30. 2007 Adobe Systems Incorporated. All Rights Reserved.
30
This Talk
An Introduction to the Hydra Language and the AIF Toolkit
A Sneak Peak of the AIF Server
31. 2007 Adobe Systems Incorporated. All Rights Reserved.
31
ƒ Introduction
ƒ Demonstration – some sample filters
ƒ Code walkthrough – identity filter
ƒ Hydra programming model
ƒ Code walkthrough – polka dot filter
ƒ Hydra in detail
ƒ Hydra for Flash
ƒ Efficiency tips
ƒ Demonstration – AIF toolkit
ƒ Bibliography
ƒ Summary
ƒ AIF server
Demonstration – some sample filters
32. 2007 Adobe Systems Incorporated. All Rights Reserved.
32
ƒ Introduction
ƒ Demonstration – some sample filters
ƒ Code walkthrough – identity filter
ƒ Hydra programming model
ƒ Code walkthrough – polka dot filter
ƒ Hydra in detail
ƒ Hydra for Flash
ƒ Efficiency tips
ƒ Demonstration – AIF toolkit
ƒ Bibliography
ƒ Summary
ƒ AIF server
Code walkthrough – identity filter
33. 2007 Adobe Systems Incorporated. All Rights Reserved.
33
kernel Identity
{
void evaluatePixel( in image4 src, out pixel4 dest )
{
dest = sampleNearest( src, outCoord() );
}
}
Code walkthrough – identity filter
34. 2007 Adobe Systems Incorporated. All Rights Reserved.
34
kernel Identity
{
void evaluatePixel( in image4 src, out pixel4 dest )
{
dest = sampleNearest( src, outCoord() );
}
}
Code walkthrough – identity filter
35. 2007 Adobe Systems Incorporated. All Rights Reserved.
35
kernel Identity
{
void evaluatePixel( in image4 src, out pixel4 dest )
{
dest = sampleNearest( src, outCoord() );
}
}
Code walkthrough – identity filter
36. 2007 Adobe Systems Incorporated. All Rights Reserved.
36
kernel Identity
{
void evaluatePixel( in image4 src, out pixel4 dest )
{
dest = sampleNearest( src, outCoord() );
}
}
Code walkthrough – identity filter
37. 2007 Adobe Systems Incorporated. All Rights Reserved.
37
kernel Identity
{
void evaluatePixel( in image4 src, out pixel4 dest )
{
dest = sampleNearest( src, outCoord() );
}
}
Code walkthrough – identity filter
38. 2007 Adobe Systems Incorporated. All Rights Reserved.
38
kernel Identity
{
void evaluatePixel( in image4 src, out pixel4 dest )
{
dest = sampleNearest( src, outCoord() );
}
}
Code walkthrough – identity filter
39. 2007 Adobe Systems Incorporated. All Rights Reserved.
39
Digression – what is an image?
40. 2007 Adobe Systems Incorporated. All Rights Reserved.
40
Digression – what is an image?
41. 2007 Adobe Systems Incorporated. All Rights Reserved.
41
Digression – what is an image?
42. 2007 Adobe Systems Incorporated. All Rights Reserved.
42
Digression – what is an image?
43. 2007 Adobe Systems Incorporated. All Rights Reserved.
43
Digression – what is an image?
44. 2007 Adobe Systems Incorporated. All Rights Reserved.
44
Digression – what is an image?
45. 2007 Adobe Systems Incorporated. All Rights Reserved.
45
Digression – what is an image?
46. 2007 Adobe Systems Incorporated. All Rights Reserved.
46
Digression – what is an image?
47. 2007 Adobe Systems Incorporated. All Rights Reserved.
47
Digression – what is an image?
48. 2007 Adobe Systems Incorporated. All Rights Reserved.
48
kernel Identity
{
void evaluatePixel( in image4 src, out pixel4 dest )
{
dest = sampleNearest( src, outCoord() );
}
}
Code walkthrough – identity filter
49. 2007 Adobe Systems Incorporated. All Rights Reserved.
49
kernel Identity
{
void evaluatePixel( in image4 src, out pixel4 dest )
{
dest = sampleNearest( src, outCoord() );
}
}
Code walkthrough – identity filter
50. 2007 Adobe Systems Incorporated. All Rights Reserved.
50
kernel Identity
{
void evaluatePixel( in image4 src, out pixel4 dest )
{
dest = sampleNearest( src, outCoord() );
}
}
Code walkthrough – identity filter
51. 2007 Adobe Systems Incorporated. All Rights Reserved.
51
kernel Identity
{
void evaluatePixel( in image4 src, out pixel4 dest )
{
dest = sampleNearest( src, outCoord() );
}
}
Code walkthrough – identity filter
52. 2007 Adobe Systems Incorporated. All Rights Reserved.
52
ƒ Introduction
ƒ Demonstration – some sample filters
ƒ Code walkthrough – identity filter
ƒ Hydra programming model
ƒ Code walkthrough – polka dot filter
ƒ Hydra in detail
ƒ Hydra for Flash
ƒ Efficiency tips
ƒ Demonstration – AIF toolkit
ƒ Bibliography
ƒ Summary
ƒ AIF server
Hydra programming model
53. 2007 Adobe Systems Incorporated. All Rights Reserved.
53
Write a function that produces a single
output pixel
Hydra programming model
54. 2007 Adobe Systems Incorporated. All Rights Reserved.
54
Hydra programming model
55. 2007 Adobe Systems Incorporated. All Rights Reserved.
55
Hydra programming model
56. 2007 Adobe Systems Incorporated. All Rights Reserved.
56
Hydra programming model
57. 2007 Adobe Systems Incorporated. All Rights Reserved.
57
Hydra programming model
58. 2007 Adobe Systems Incorporated. All Rights Reserved.
58
ƒ Introduction
ƒ Demonstration – some sample filters
ƒ Code walkthrough – identity filter
ƒ Hydra programming model
ƒ Code walkthrough – polka dot filter
ƒ Hydra in detail
ƒ Hydra for Flash
ƒ Efficiency tips
ƒ Demonstration – AIF toolkit
ƒ Bibliography
ƒ Summary
ƒ AIF server
Code walkthrough – polka dot filter
59. 2007 Adobe Systems Incorporated. All Rights Reserved.
59
Code walkthrough – polka dot filter
60. 2007 Adobe Systems Incorporated. All Rights Reserved.
60
Code walkthrough – polka dot filter
61. 2007 Adobe Systems Incorporated. All Rights Reserved.
61
Code walkthrough – polka dot filter
62. 2007 Adobe Systems Incorporated. All Rights Reserved.
62
Code walkthrough – polka dot filter
63. 2007 Adobe Systems Incorporated. All Rights Reserved.
63
Code walkthrough – polka dot filter
64. 2007 Adobe Systems Incorporated. All Rights Reserved.
64
Code walkthrough – polka dot filter
65. 2007 Adobe Systems Incorporated. All Rights Reserved.
65
Code walkthrough – polka dot filter
66. 2007 Adobe Systems Incorporated. All Rights Reserved.
66
Code walkthrough – polka dot filter
67. 2007 Adobe Systems Incorporated. All Rights Reserved.
67
Code walkthrough – polka dot filter
68. 2007 Adobe Systems Incorporated. All Rights Reserved.
68
Code walkthrough – polka dot filter
69. 2007 Adobe Systems Incorporated. All Rights Reserved.
69
Code walkthrough – polka dot filter
70. 2007 Adobe Systems Incorporated. All Rights Reserved.
70
kernel PinkPolkaDots
{
parameter float radius;
parameter float spacing;
const pixel4 pink = pixel4( 1.0, 0.75 ,0.8, 1.0 );
void evaluatePixel( in image4 src, out pixel4 dest )
{
float2 center = floor(outCoord() / spacing)*spacing + (spacing / 2.0);
float dist = distance( center, outCoord() );
pixel4 originalColor = sampleNearest( src, outCoord() );
dest = dist < radius ? pink : originalColor;
}
}
Code walkthrough – polka dot filter
71. 2007 Adobe Systems Incorporated. All Rights Reserved.
71
kernel PinkPolkaDots
{
parameter float radius;
parameter float spacing;
const pixel4 pink = pixel4( 1.0, 0.75 ,0.8, 1.0 );
void evaluatePixel( in image4 src, out pixel4 dest )
{
float2 center = floor(outCoord() / spacing)*spacing + (spacing / 2.0);
float dist = distance( center, outCoord() );
pixel4 originalColor = sampleNearest( src, outCoord() );
dest = dist < radius ? pink : originalColor;
}
}
Code walkthrough – polka dot filter
72. 2007 Adobe Systems Incorporated. All Rights Reserved.
72
kernel PinkPolkaDots
{
parameter float radius;
parameter float spacing;
const pixel4 pink = pixel4( 1.0, 0.75 ,0.8, 1.0 );
void evaluatePixel( in image4 src, out pixel4 dest )
{
float2 center = floor(outCoord() / spacing)*spacing + (spacing / 2.0);
float dist = distance( center, outCoord() );
pixel4 originalColor = sampleNearest( src, outCoord() );
dest = dist < radius ? pink : originalColor;
}
}
Code walkthrough – polka dot filter
73. 2007 Adobe Systems Incorporated. All Rights Reserved.
73
kernel PinkPolkaDots
{
parameter float radius;
parameter float spacing;
const pixel4 pink = pixel4( 1.0, 0.75 ,0.8, 1.0 );
void evaluatePixel( in image4 src, out pixel4 dest )
{
float2 center = floor(outCoord() / spacing)*spacing + (spacing / 2.0);
float dist = distance( center, outCoord() );
pixel4 originalColor = sampleNearest( src, outCoord() );
dest = dist < radius ? pink : originalColor;
}
}
Code walkthrough – polka dot filter
74. 2007 Adobe Systems Incorporated. All Rights Reserved.
74
ƒ Introduction
ƒ Demonstration – some sample filters
ƒ Code walkthrough – identity filter
ƒ Hydra programming model
ƒ Code walkthrough – polka dot filter
ƒ Hydra in detail
ƒ Hydra for Flash
ƒ Efficiency tips
ƒ Demonstration – AIF toolkit
ƒ Bibliography
ƒ Summary
ƒ AIF server
Hydra in detail
75. 2007 Adobe Systems Incorporated. All Rights Reserved.
75
kernel PinkPolkaDots
{
parameter float radius;
parameter float spacing;
const pixel4 pink = pixel4( 1.0, 0.75 ,0.8, 1.0 );
void evaluatePixel( in image4 src, out pixel4 dest )
{
float2 center = floor(outCoord() / spacing)*spacing + (spacing / 2.0);
float dist = distance( center, outCoord() );
pixel4 originalColor = sampleNearest( src, outCoord() );
dest = dist < radius ? pink : originalColor;
}
}
Hydra in detail – Syntax and Semantics
76. 2007 Adobe Systems Incorporated. All Rights Reserved.
76
kernel PinkPolkaDots
{
parameter float radius;
parameter float spacing;
const pixel4 pink = pixel4( 1.0, 0.75 ,0.8, 1.0 );
void evaluatePixel( in image4 src, out pixel4 dest )
{
float2 center = floor(outCoord() / spacing)*spacing + (spacing / 2.0);
float dist = distance( center, outCoord() );
pixel4 originalColor = sampleNearest( src, outCoord() );
dest = dist < radius ? pink : originalColor;
}
}
Hydra in detail – Syntax and Semantics
77. 2007 Adobe Systems Incorporated. All Rights Reserved.
77
kernel PinkPolkaDots
{
parameter float radius;
parameter float spacing;
const pixel4 pink = pixel4( 1.0, 0.75 ,0.8, 1.0 );
void evaluatePixel( in image4 src, out pixel4 dest )
{
float2 center = floor(outCoord() / spacing)*spacing + (spacing / 2.0);
float dist = distance( center, outCoord() );
pixel4 originalColor = sampleNearest( src, outCoord() );
dest = dist < radius ? pink : originalColor;
}
}
Hydra in detail – Syntax and Semantics
78. 2007 Adobe Systems Incorporated. All Rights Reserved.
78
float
int
bool
pixel1
int2 float2 bool2 pixel2
int3 float3 bool3 pixel3
int4 float4 bool4 pixel4
float2x2
float3x3
float4x4
Hydra in detail – Types
79. 2007 Adobe Systems Incorporated. All Rights Reserved.
79
float
int
bool
pixel1
int2 float2 bool2 pixel2
int3 float3 bool3 pixel3
int4 float4 bool4 pixel4
float2x2
float3x3
float4x4
Hydra in detail – Types
80. 2007 Adobe Systems Incorporated. All Rights Reserved.
80
float
int
bool
pixel1
int2 float2 bool2 pixel2
int3 float3 bool3 pixel3
int4 float4 bool4 pixel4
float2x2
float3x3
float4x4
Hydra in detail – Types
81. 2007 Adobe Systems Incorporated. All Rights Reserved.
81
kernel Twirl
{
parameter float radius;
parameter float2 center;
parameter float twirlAngle;
void evaluatePixel( in image4 src, out float4 dest )
{
float2 relativePos = outCoord() - center;
float distFromCenter = length( relativePos ) / radius;
float cosAngle = cos(twirlAngle);
float sinAngle = sin(twirlAngle);
float2x2 rotationMat = float2x2(
cosAngle, sinAngle,
-sinAngle, cosAngle );
relativePos = rotationMat * relativePos;
dest = sampleLinear( src, relativePos + center );
}
}
Hydra in detail – Operators
82. 2007 Adobe Systems Incorporated. All Rights Reserved.
82
kernel Twirl
{
parameter float radius;
parameter float2 center;
parameter float twirlAngle;
void evaluatePixel( in image4 src, out float4 dest )
{
float2 relativePos = outCoord() - center;
float distFromCenter = length( relativePos ) / radius;
float cosAngle = cos(twirlAngle);
float sinAngle = sin(twirlAngle);
float2x2 rotationMat = float2x2(
cosAngle, sinAngle,
-sinAngle, cosAngle );
relativePos = rotationMat * relativePos;
dest = sampleLinear( src, relativePos + center );
}
}
Hydra in detail – Operators
83. 2007 Adobe Systems Incorporated. All Rights Reserved.
83
kernel Twirl
{
parameter float radius;
parameter float2 center;
parameter float twirlAngle;
void evaluatePixel( in image4 src, out float4 dest )
{
float2 relativePos = outCoord() - center;
float distFromCenter = length( relativePos ) / radius;
float cosAngle = cos(twirlAngle);
float sinAngle = sin(twirlAngle);
float2x2 rotationMat = float2x2(
cosAngle, sinAngle,
-sinAngle, cosAngle );
relativePos = rotationMat * relativePos;
dest = sampleLinear( src, relativePos + center );
}
}
Hydra in detail – Operators
84. 2007 Adobe Systems Incorporated. All Rights Reserved.
84
Hydra in detail – Functions
sin
cos
tan
asin
acos
atan
atan
radians
degrees
pow
exp
exp2
log
log2
sqrt
abs
sign
floor
ceil
fract
mod
min
max
step
clamp
mix
smoothStep
matrixCompMult
inverseSqrt
length
distance
dot
cross
any
all
not
nowhere
everywhere
transform
union
intersect
outset
inset
bounds
isEmpty
sample
sampleLinear
sampleNearest
lessThan
lessThanEqual
greaterThan
greaterThanEqual
equal
notEqual
85. 2007 Adobe Systems Incorporated. All Rights Reserved.
85
Hydra in detail – Functions
sin
cos
tan
asin
acos
atan
atan
radians
degrees
pow
exp
exp2
log
log2
sqrt
abs
sign
floor
ceil
fract
mod
min
max
step
clamp
mix
smoothStep
matrixCompMult
inverseSqrt
length
distance
dot
cross
any
all
not
nowhere
everywhere
transform
union
intersect
outset
inset
bounds
isEmpty
sample
sampleLinear
sampleNearest
lessThan
lessThanEqual
greaterThan
greaterThanEqual
equal
notEqual
86. 2007 Adobe Systems Incorporated. All Rights Reserved.
86
Hydra in detail – Functions
sin
cos
tan
asin
acos
atan
atan
radians
degrees
pow
exp
exp2
log
log2
sqrt
abs
sign
floor
ceil
fract
mod
min
max
step
clamp
mix
smoothStep
matrixCompMult
inverseSqrt
length
distance
dot
cross
any
all
not
nowhere
everywhere
transform
union
intersect
outset
inset
bounds
isEmpty
sample
sampleLinear
sampleNearest
lessThan
lessThanEqual
greaterThan
greaterThanEqual
equal
notEqual
87. 2007 Adobe Systems Incorporated. All Rights Reserved.
87
Hydra in detail – Functions
sin
cos
tan
asin
acos
atan
atan
radians
degrees
pow
exp
exp2
log
log2
sqrt
abs
sign
floor
ceil
fract
mod
min
max
step
clamp
mix
smoothStep
matrixCompMult
inverseSqrt
length
distance
dot
cross
any
all
not
nowhere
everywhere
transform
union
intersect
outset
inset
bounds
isEmpty
sample
sampleLinear
sampleNearest
lessThan
lessThanEqual
greaterThan
greaterThanEqual
equal
notEqual
88. 2007 Adobe Systems Incorporated. All Rights Reserved.
88
ƒ Introduction
ƒ Demonstration – some sample filters
ƒ Code walkthrough – identity filter
ƒ Hydra programming model
ƒ Code walkthrough – polka dot filter
ƒ Hydra in detail
ƒ Hydra for Flash
ƒ Efficiency tips
ƒ Demonstration – AIF toolkit
ƒ Bibliography
ƒ Summary
ƒ AIF server
Hydra for Flash
89. 2007 Adobe Systems Incorporated. All Rights Reserved.
89
Hydra for Flash
90. 2007 Adobe Systems Incorporated. All Rights Reserved.
90
ƒ Introduction
ƒ Demonstration – some sample filters
ƒ Code walkthrough – identity filter
ƒ Hydra programming model
ƒ Code walkthrough – polka dot filter
ƒ Hydra in detail
ƒ Hydra for Flash
ƒ Efficiency tips
ƒ Demonstration – AIF toolkit
ƒ Bibliography
ƒ Summary
ƒ AIF server
Efficiency tips
91. 2007 Adobe Systems Incorporated. All Rights Reserved.
91
Write a function that produces a single
output pixel
Efficiency tips
92. 2007 Adobe Systems Incorporated. All Rights Reserved.
92
Efficiency tips
93. 2007 Adobe Systems Incorporated. All Rights Reserved.
93
Efficiency tips
94. 2007 Adobe Systems Incorporated. All Rights Reserved.
94
Efficiency tips
95. 2007 Adobe Systems Incorporated. All Rights Reserved.
95
Efficiency tips
96. 2007 Adobe Systems Incorporated. All Rights Reserved.
96
ƒ Introduction
ƒ Demonstration – some sample filters
ƒ Code walkthrough – identity filter
ƒ Hydra programming model
ƒ Code walkthrough – polka dot filter
ƒ Hydra in detail
ƒ Hydra for Flash
ƒ Efficiency tips
ƒ Demonstration – AIF toolkit
ƒ Bibliography
ƒ Summary
ƒ AIF server
Demonstration – AIF toolkit
97. 2007 Adobe Systems Incorporated. All Rights Reserved.
97
Writing a kernel in the AIF Toolkit
98. 2007 Adobe Systems Incorporated. All Rights Reserved.
98
ƒ Andrew S. Glassner – Principles of Digital Image Synthesis
ƒ Randi Rost – OpenGL® Shading Language
ƒ George Wolberg - Digital Image Warping
ƒ Randima Fernando – GPU Gems
ƒ Matt Pharr & Randima Fernando – GPU Gems 2
ƒ Hurbert Nguyen – GPU Gems 3
ƒ Shader examples: http://shady.goyman.com/
Bibliography
99. 2007 Adobe Systems Incorporated. All Rights Reserved.
99
ƒ Hydra language
ƒ AIF Toolkit
ƒ http://labs.adobe.com/wiki/index.php/AIF_Toolkit
Summary
100. 2007 Adobe Systems Incorporated. All Rights Reserved.
10
0
ƒ Introduction
ƒ Demonstration – some sample filters
ƒ Code walkthrough – identity filter
ƒ Hydra programming model
ƒ Code walkthrough – polka dot filter
ƒ Hydra in detail
ƒ Hydra for Flash
ƒ Efficiency tips
ƒ Demonstration – AIF toolkit
ƒ Bibliography
ƒ Summary
ƒ AIF server
AIF server