Save 10% off ANY FITC event with discount code 'slideshare'
See our upcoming events at www.fitc.ca
OVERVIEW
Join Raimundas (author of mvcExpress frameworks) as he presents his vision of next step in AS3 MVC framework evolution.
Writing maintainable software fast – was never a trivial task, but MVC frameworks are here to help us! In this session you will see short reminder of MVC framework history, comparison of coding convenience and performance benchmark results for PureMVC, robotlegs and mvcExpress frameworks.
For those who does not enjoy seeing code or statistic tables as much as running applications, Raimundas will show dungeon editor/crawler to demonstrate mvcExpress modular programming features, designed to save even more time and headaches while developing games and applications.
The Next Step in AS3 Framework Evolution - FITC Amsterdam 2013Raimundas Banevičius
Join Raimundas (author of mvcExpress frameworks) as he presents his vision of next step in AS3 MVC framework evolution.
Writing maintainable software fast – was never a trivial task, but MVC frameworks are here to help us! In this session you will see short reminder of MVC framework history, comparison of coding convenience and performance benchmark results for PureMVC, robotlegs and mvcExpress frameworks.
For those who does not enjoy seeing code or statistic tables as much as running applications, Raimundas will show dungeon editor/crawler to demonstrate mvcExpress modular programming features, designed to save even more time and headaches while developing games and applications.
Introduction
Spring Boot testing features
Example of microservices with Spring Cloud
Component & Integration testing with Hoverfly
Contract testing with Pact or Spring Cloud Contract
Load testing with Gatling
Integration & end-to-end testing with Arquillian Cube
Summary
Mvp - типичные задачи и способ их решения в MoxyYuri Shmakov
Популярность MVP в последнее время зашкаливает, как и число подходов к его реализации. Однако не все подходы одинаково хороши. В докладе будут разобраны проблемы, возникающие при имплементации MVP, их решения, а также рассказано, как их можно избежать с помощью Moxy. После этого доклада вы сможете вновь полюбить MVP, используя Moxy, или взять идеи из Moxy и применить их в своём решении.
The Next Step in AS3 Framework Evolution - FITC Amsterdam 2013Raimundas Banevičius
Join Raimundas (author of mvcExpress frameworks) as he presents his vision of next step in AS3 MVC framework evolution.
Writing maintainable software fast – was never a trivial task, but MVC frameworks are here to help us! In this session you will see short reminder of MVC framework history, comparison of coding convenience and performance benchmark results for PureMVC, robotlegs and mvcExpress frameworks.
For those who does not enjoy seeing code or statistic tables as much as running applications, Raimundas will show dungeon editor/crawler to demonstrate mvcExpress modular programming features, designed to save even more time and headaches while developing games and applications.
Introduction
Spring Boot testing features
Example of microservices with Spring Cloud
Component & Integration testing with Hoverfly
Contract testing with Pact or Spring Cloud Contract
Load testing with Gatling
Integration & end-to-end testing with Arquillian Cube
Summary
Mvp - типичные задачи и способ их решения в MoxyYuri Shmakov
Популярность MVP в последнее время зашкаливает, как и число подходов к его реализации. Однако не все подходы одинаково хороши. В докладе будут разобраны проблемы, возникающие при имплементации MVP, их решения, а также рассказано, как их можно избежать с помощью Moxy. После этого доклада вы сможете вновь полюбить MVP, используя Moxy, или взять идеи из Moxy и применить их в своём решении.
Postgres MVCC - A Developer Centric View of Multi Version Concurrency ControlReactive.IO
Scaling a data-tier requires multiple concurrent database connections that are all vying for read and write access of the same data. In order to cater to this complex demand, PostgreSQL implements a concurrency method known as Multi Version Concurrency Control, or MVCC. By understating MVCC, you will be able to take advantage of advanced features such as transactional memory, atomic data isolation, and point in time consistent views.
This presentation will show you how MVCC works in both a theoretical and practical level. Furthermore, you will learn how to optimize common tasks such as database writes, vacuuming, and index maintenance. Afterwards, you will have a fundamental understanding on how PostgreSQL operates on your data.
Key points discussed:
* MVCC; what is really happening when I write data.
* Vacuuming; why it is needed and what is really going on.
* Transactions; much more then just an undo button.
* Isolation levels; seeing only the data you want to see.
* Locking; ensure writes happen in the order you choose.
* Cursors; how to stream chronologically correct data more efficiency.
SQL examples given during the presentation are available here: http://www.reactive.io/academy/presentations/postgresql/mvcc/mvcc-examples.zip
Slides for JJUG(Japan Java User Group) 2009 Fall BOF.
Talking about groovy history, new features in Groovy 1.6,1.7.
Especially focused on AST Transformations.
Slides for a talk at the Seattle Java User Group about building a workflow management application for a biomedical lab on top of the OSGi module system and the Eclipse Rich Client Platform.
How to build to do app using vue composition api and vuex 4 with typescriptKaty Slemon
In this tutorial, we will build a to-do app using Vue Composition API & Vuex 4 with Typescript. We will learn and explore Composition API & Options API as well
This is Class 4 on a 6 week course I taught on Software Design Patterns.
This course goes over Command and Adapter pattern.
Class based on "Head First Design Patterns."
Gradle is a flexible general purpose build system with a build-by-convention framework a la Maven on top. It uses Apache Ivy under the hood for its dependency management. Its build scripts are written in Groovy.
Doze mode is just around the corner. Introduced in Marshmallow, as the shy guy that was allowed to step in only when your device went to sleep. ZzzZzzzz With the new N release, Doze mode becomes the rockstar. He rushes into the room with a big shabang by shooting all background services and network requests that forgot to get away. He should no longer be shy. He just shoots and dances on bones of your scheduled alarms, while you wonder why this particular task is no longer running. With the new Doze mode, you require to adapt your app architecture to the new reality. On this talk, we will learn how to survive Doze mode using Job Scheduler and stay in one piece.
A collection of libraries that help you design robust, testable, and maintainable apps. Start with classes for managing your UI component lifecycle and handling data persistence.
Building non-blocking JavaFX 8 applications with JacpFX [CON1823]Andy Moncsek
Event bus, message passing, and async execution are concepts that are getting more and more popular for server-side applications. JacpFX brings this approach to the client, combining JavaFX with an actorlike component model. It is an UI application framework based on JavaFX, supporting developers in structuring applications with loosely coupled, reusable components. It frees you from the pitfalls of traditional multithreaded programming, helping you separate the task execution from UI changes in your client application. Furthermore, this component model works well with common communication technologies such as WebSocket, SSE, and JMS.
Postgres MVCC - A Developer Centric View of Multi Version Concurrency ControlReactive.IO
Scaling a data-tier requires multiple concurrent database connections that are all vying for read and write access of the same data. In order to cater to this complex demand, PostgreSQL implements a concurrency method known as Multi Version Concurrency Control, or MVCC. By understating MVCC, you will be able to take advantage of advanced features such as transactional memory, atomic data isolation, and point in time consistent views.
This presentation will show you how MVCC works in both a theoretical and practical level. Furthermore, you will learn how to optimize common tasks such as database writes, vacuuming, and index maintenance. Afterwards, you will have a fundamental understanding on how PostgreSQL operates on your data.
Key points discussed:
* MVCC; what is really happening when I write data.
* Vacuuming; why it is needed and what is really going on.
* Transactions; much more then just an undo button.
* Isolation levels; seeing only the data you want to see.
* Locking; ensure writes happen in the order you choose.
* Cursors; how to stream chronologically correct data more efficiency.
SQL examples given during the presentation are available here: http://www.reactive.io/academy/presentations/postgresql/mvcc/mvcc-examples.zip
Slides for JJUG(Japan Java User Group) 2009 Fall BOF.
Talking about groovy history, new features in Groovy 1.6,1.7.
Especially focused on AST Transformations.
Slides for a talk at the Seattle Java User Group about building a workflow management application for a biomedical lab on top of the OSGi module system and the Eclipse Rich Client Platform.
How to build to do app using vue composition api and vuex 4 with typescriptKaty Slemon
In this tutorial, we will build a to-do app using Vue Composition API & Vuex 4 with Typescript. We will learn and explore Composition API & Options API as well
This is Class 4 on a 6 week course I taught on Software Design Patterns.
This course goes over Command and Adapter pattern.
Class based on "Head First Design Patterns."
Gradle is a flexible general purpose build system with a build-by-convention framework a la Maven on top. It uses Apache Ivy under the hood for its dependency management. Its build scripts are written in Groovy.
Doze mode is just around the corner. Introduced in Marshmallow, as the shy guy that was allowed to step in only when your device went to sleep. ZzzZzzzz With the new N release, Doze mode becomes the rockstar. He rushes into the room with a big shabang by shooting all background services and network requests that forgot to get away. He should no longer be shy. He just shoots and dances on bones of your scheduled alarms, while you wonder why this particular task is no longer running. With the new Doze mode, you require to adapt your app architecture to the new reality. On this talk, we will learn how to survive Doze mode using Job Scheduler and stay in one piece.
A collection of libraries that help you design robust, testable, and maintainable apps. Start with classes for managing your UI component lifecycle and handling data persistence.
Building non-blocking JavaFX 8 applications with JacpFX [CON1823]Andy Moncsek
Event bus, message passing, and async execution are concepts that are getting more and more popular for server-side applications. JacpFX brings this approach to the client, combining JavaFX with an actorlike component model. It is an UI application framework based on JavaFX, supporting developers in structuring applications with loosely coupled, reusable components. It frees you from the pitfalls of traditional multithreaded programming, helping you separate the task execution from UI changes in your client application. Furthermore, this component model works well with common communication technologies such as WebSocket, SSE, and JMS.
Taming startup dynamics - Magnus Jungsbluth & Domagoj Cosicmfrancis
OSGi Community Event 2016 Presentation by Magnus Jungsbluth & Domagoj Cosic (Bundesdruckerei GmbH)
If you had to name a single great thing about OSGi, it would probably be its dynamics. Services come and go; other services react to those events, configuration can change and so on. Even the startup is dynamic: start levels are increased synchronously; however, configuration, Declarative Services, and Blueprint are started asynchronously after bundles turn active. We love that but sometimes you want to exercise control over when your application is actually fully started or more importantly when it is not. You certainly do not want your system to be accessible with a security module that threw an exception during startup. Unlike monolithic applications, an OSGi application behaves more like a distributed system that converges to a final state eventually.
We will show you a way to monitor startup of your application by creatively using some common OSGi mechanisms and demonstrate failure scenarios for common subsystems like configuration and Blueprint. We will also demonstrate the concept of start phases which are a higher-level concept on top of OSGi start levels. A phased start enables a higher level of security in the face of failures during startup.
The source code for the APIs and the reference implementation are available under Apache 2.0 license
Czym się różnie JMS od AMQP? Co to jest queue? Co to jest topic? Jak zlecać zadania w przyszłości używając kolejek? Jak się do tego podpiąć z Javy? Na te i inne pytania postaram się odpowiedzieć na mojej prezentacji.
Projet d'accès aux résultats des étudiant via client mobile Patrick Bashizi
J'ai réalisé ce petit projet en 2009 (je crois) dans le cadre d'un cours à la faculté. Je l'ai retrouvé par hasard et vu sa simplicité, il pourait aider quelqu'un..
Il s'agit d'une application mobile J2ME cliente à un web service, developpé dans le même cadre, permettant aux étudiants de s'authentifier et accéder aux résultants de leurs examens.
Le temps est révolu où Java EE ne serait qu’à développer des applications de mise à jour de données, avec JSF / EJB / JPA. Aujourd’hui Java EE s’est assoupli et s’est ouvert sur le monde, avec CDI comme clé de voûte et a repoussé nos limites grâce à des capacités d’extension puissantes et faciles d’utilisation comme JCA.
Dans un premier temps, nous reviendrons rapidement sur la place de CDI dans JavaEE 7 et sur ses mécanismes d’extension. Dans un deuxième temps, nous verrons les techniques de connecteurs JCA et comment ils peuvent aussi constituer une possibilité d’ouverture simple à mettre en œuvre. JCA fournit des techniques pour gérer des connexions sortantes ou entrantes, sur des formats ou protocoles variés.
React for Re-use: Creating UI Components with Confluence ConnectAtlassian
Using React to create reusable components for Confluence extension points saves time and allows for a richer user experience. Join Matt Jensen, an Atlassian developer for over 10 years, for a session on using React to modularise the UI layer of your Confluence add-on, then bringing it together to take advantage of the common components. Matt will demonstrate the benefits of React for UI elements like macros, pages, and dialogs.
Matthew Jensen, Development Team Lead, Atlassian
Architecting Single Activity Applications (With or Without Fragments)Gabor Varadi
Presentation by Gabor Varadi (@zhuinden)
What Activity and Fragment actually are in Android
What are the problems they solve, and what are their downsides
How to use a custom solution that simplifies navigation in Android applications
https://github.com/Zhuinden/navigation-example
Similar to The Next Step in AS3 Framework Evolution (20)
Varun Vachhar
rangle.io
Overview
JavaScript frameworks allow us to build innovative and delightful experiences for our users. A common approach adopted with these modern tools is to combine all required JavaScript into one large bundle. Therefore, causing the loading performance to suffer. Especially on older devices or devices with low memory and processing power.
An alternative approach is to split your code into various smaller chunks which you can then be loaded on demand — allowing you to reduce the load time drastically.
In this session, Varun will demonstrate how you can adopt the practice of code-splitting when building applications with frameworks such as React and Vue.
Objective
Learn how to use code-splitting to improve the loading performance of Javascript heavy applications.
Target Audience
Front-end developers who build JavaScript heavy applications
Assumed Audience Knowledge
Basic understanding of web development and some familiarity with frameworks such as React, Angular or Vue.
Level
Intermediate
Five Things Audience Members Will Learn
What is code-splitting?
Different types of code-splitting
How to split a React or Vue application
How to “lazy-load” parts of the application
Removing duplicate code from chunksa
Presented at Web Unleashed 2019
More info at www.fitc.ca/webu
Andréa Crofts
League
Overview
Examining our responsibility as creators to design for disconnection.
The “restore connection” alert isn’t just for devices– it applies to people too. And it’s more important now than ever before.
Digital creators, we need to talk. The rise in mental health as a result of situational stress is a prevailing theme in today’s society, and some of the products we’re building are the root cause. But we have the power to change this. As creators of digital products, how might we enable our users to be more present in their lives? How might we invest in features like Instagram’s activity timer, despite the fact that they’re fundamentally counterintuitive to the usage metrics most behemoth tech companies are driving towards?
We have a responsibility as creators of digital products to enable others to disconnect …and re-connect with themselves, physically and mentally. This intersection is an emerging category Andrea likes to call digital health, and it’s something we can create together.
Objective
To share actionable strategies, principles and considerations for designing with digital health top of mind. Andrea will get into some #realtalk about how we can collectively create more balance and presence for the humans using our products.
Target Audience
Designers and digital creators of all kinds – especially those building digital products at scale!
Level
Open to audience members of any skill level (this is a more high-level talk)
Five Things Audience Members Will Learn
Tips and best-in-class examples of designing for digital health
Design guidelines and principles for designing with digital health in mind
Evidence-based practices to ground your future design decisions
Strategies for re-framing the success metrics of digital products
Design ethics resources
Presented at Web Unleashed 2019
More info at www.fitc.ca/webu
Luke DeWitt
REDspace
Overview
JavaScript’s popularity has exploded over the last decade, taking it from a laughable scripting language to one that powers much of the web today. Because it’s so flexible and so easy to learn, it’s extremely popular with new developers looking to cut their teeth in programming. However, these strengths are also weaknesses, as it’s incredibly easy to write bad JavaScript without even knowing it.
A lot of these newer developers jump from “Hello, World!”, to TodoMVC in order to find the library that makes their life easier. By doing this, they skip over some of the important details of not only how JavaScript works, but also how to optimize its performance to ensure the best user experience.
The Chrome profiler is a very handy tool that not a lot of developers have experience with. In this talk, we’ll take a beginner’s look at the profiler tool and examine how to use it to best improve your web application, and identify bottlenecks in your code without having to rely only on console.log statements.
Objective
To help developers understand how to better make use of the JavaScript profiler.
Target Audience
Any JavaScript developers
Assumed Audience Knowledge
Basic JavaScript
Level
Beginner / intermediate
Five Things Audience Members Will Learn
Javascript inner-workings
Profiling concepts
Identifying bottlenecks
Profiling node applications
Tooling
presented at Web Unleashed 2019
For more info see https://fitc.ca/event/webu19/
Kevin Daly RBC Ventures
Every developer has faced the difficult choice of deciding what tech stack they should use for a new project. Should you use the latest tech or something that everyone knows? Which framework is the best for your team? To survive your tech stack, developers must make trade-offs with developing on new tech stacks and the ability to maintain and scale their applications.
In this presentation, you’ll learn how to evaluate your tech stack and understand the pros and cons of using bleeding edge technology. Using his past experiences, Kevin will also share his lessons learned and how his team tackles managing their tech stack today.
Presented at FITC Toronto 2019
More info at www.fitc.ca/toronto
Bushra Mahmood
Unity Technologies
Overview
In this talk, Bushra Mahmood will explain how to articulate and pitch augmented reality as a viable medium to help solve problems. Learn about what makes an AR application come together on both mobile devices and headsets. Uncover different tools and methodologies for problem-solving and making a compelling story.
By properly understanding this technology and its parts, creatives can take an active role in shaping and defining this new space in computing.
Objective
Learn the tools and techniques required to pitch an augmented reality project.
Target Audience
Designers, product managers, product stakeholders.
Assumed Audience Knowledge
An understanding of product design and an awareness of AR
Five Things Audience Members Will Learn
The right language to use when explaining ‘spatial’ design
The different requirements and considerations for scoping an AR project
The tools that are currently available for AR authoring
Insights into what the near and far future will hold for this medium.
An example of an AR application pitch
Start by Understanding the Problem, Not by Delivering the AnswerFITC
Presented at FITC Toronto 2019
More info at www.fitc.ca/toronto
Karri Ojanen
RBC Royal Bank of Canada
Overview
Over the past number of years companies have adopted the idea of customer-centricity. People across functions can fluently talk about the importance of paying special attention to end-user needs and overall customer experience.
But innovation and forward-thinking ideas that connect both customer and business needs can’t simply be squeezed out of brainstorm sessions and sticky notes if the organization doesn’t learn how to effectively look outside of its own silos. In this session, Karri will show how to move from jumping to solutions to driving innovation by understanding the question first.
Target Audience
Designers, researchers, strategists, product managers, and technology leads
Three Things Audience Members Will Learn
Methodologies and tools to form insights out of a holistic understanding of customer challenges
How to synthesize data to form a vision of the better future
How to break the vision into manageable chunks that drive value for the business and the customer at every launch
Cocaine to Carrots: The Art of Telling Someone Else’s StoryFITC
Presented at FITC Toronto 2019
More info at www.fitc.ca/toronto
Alan Williams
Imaginary Forces
Overview
During dailies as an intern at Imaginary Forces, Alan’s director, Karin Fong, would follow her animation feedback with one of the scariest and empowering questions of his career, “what do you think?” Over the last eight years, Alan’s transition from technician to creative director came from a dramatic shift in how he approached and answered that question. By examining larger conceptual principles to practical application in commercial and tv/film design, such as HBO’s Vinyl and Netflix’s Anne with an E, he will share hard-learned lessons that can empower you, whether in Photoshop, behind a camera, or pitching to clients, in developing and selling your creative voice.
Target Audience
Visual communicators eager to become more evocative storytellers
Five Things Audience Members Will Learn
‘Method branding’ in a selfie culture
O.C.D. (observe, collect, dissect) & the imagination
The resuscitating power of rearrangement
Pertinence vs pipeline: the crippling cage of routine
Less pitching, more poetry
Presented at FITC Toronto 2019
More info at www.fitc.ca/toronto
Carl Sziebert
Google
Overview
Innovation is defined as the process of making an idea into a good or service that creates value by meeting a need or solving a problem at scale. This talk explores ways to find inspiration from everyday sources, invest in skills that foster collaboration, and identify opportunities for impact. While leveraging the core principles of and learnings from designing products for real people, Carl will examine a number methods for building creativity and innovation into our everyday work.
Target Audience
For individual contributors looking to cultivate opportunities for impact and find the right time, space, and tools to innovate in our everyday work.
Five Things Audience Members Will Learn
A bottom-up approach to framing innovation within your daily work
Identify and validate opportunities that make an impact
Prioritize, prototype, and build understanding of the problems you are solving
Collaborate locally and globally
Seek, give, and apply feedback often
Presented at FITC Toronto 2019
More info at www.fitc.ca/toronto
Chris Zacharias
imgix
Overview
The average website loads over 1.5MBs of content per page, making over 75 requests. Many popular websites are serving over 5MBs just to load their homepages. And these numbers represent measurements taken AFTER compression is applied. The full weight of many popular websites is pushing 20+ MBs these days. In an era where performance truly matters to the end user experience, web developers need techniques to help curtail this bloat in data down the wire.
No matter how well you optimize, there is no better way to than to delete things you do not need. How does one determine what is essential to the user experience and what is not? One answer Chris posits is to develop a hyper-lightweight version of your website which will provide critical insights into your specific performance priorities. This is a process that he has leveraged on many projects, in particular at YouTube to reduce the size of the video watch page from 1.5MBs to 100KBs. In this talk, Chris will take real-world web pages and show techniques for dramatically reducing their page weight and for identifying areas to optimize, while outlining the key steps to doing this well.
Objective
Learn a process for building a hyper-lightweight version of your website for establishing reasonable performance budgets, grounded in reality, to work from.
Target Audience
Web developers
Assumed Audience Knowledge
HTML, CSS, Javascript, some server-side awareness.
Level
Intermediate
Five Things Audience Members Will Learn
How to analyze a web page for performance issues
A holistic approach to deconstructing an existing website
A clear process for building a hyper-lightweight version of your website
Translating your findings into real performance priorities
Establishing a realistic performance budget
Presented at FITC Toronto 2019
More info at www.fitc.ca/toronto
Michael Fullman
VT Pro Design
Overview
An exploration of the process of creation. We live in a time where technology and inspiration are more readily available and accessible than ever before. That being said we also live in a time that mostly highlights the successes of projects and process. In this particular talk Michael wants to touch on the process of creation with technology at VT Pro, to further explore a full circle approach to inspiration and creation where often times our next project is inspired by something learned in the process of creating something else.
By exploring what went wrong and what went right in a number of different projects he’s created, Michael will touch on points where inspiration can be found in this world of seemingly endless technology; the importance of collaboration; what can be learned from the moments that don’t necessarily go as planned; and how often projects come close to failure than the audience ever knows. Lastly he wants to touch on the process of finding personal inspiration to inspire an audience, and the momentum to push further that comes from their energy.
Objective
Things often don’t go as planned, but often that’s the fun part.
Target Audience
Creative technologists and experience designers
Five Things Audience Members Will Learn
Collaborative process
Giving personality to a piece of technology
How to learn from the unexpected
We all start somewhere (the journey is just as important as the destination)
Everything is possible now
Post-Earth Visions: Designing for Space and the Future HumanFITC
Presented at FITC Toronto 2019
More info at www.fitc.ca/toronto
Sands Fish
MIT Media Lab
Overview
Today, the environments that humans occupy in space are designed for survival. Humans are carefully shuttled to and from space, and during their relatively short stays, they are provided with minimum supplies to remain alive and able to perform experiments. As we begin to plan less for short visits and more for life in space (such as a six to eight month trip to Mars and beyond) the question becomes: What does human culture look like in space?
This talk will explore how human culture, design, and creativity might evolve as we begin to live in space, and the unique environmental conditions that might guide us in certain directions, just as the environment on Earth has. It will discuss space tourism, living in zero gravity, and some experiments in art and design that hint at future aesthetics.
Objective
Convey what opportunities exist at the outset of a more democratized New Space age, and call out the aesthetics, ethics, and cultural frontiers we find ourselves faced with at the end of the second decade of this century.
Target Audience
Those interested in the future of human life in space
Five Things Audience Members Will Learn
The history of human culture in space
Unique design constraints and considerations when designing for zero gravity
The experience of flying in a zero-g flight
The aesthetics at play in human spacefaring — (what has been)
New forms, new materials, new ideas — (what might be)
The Rise of the Creative Social Influencer (and How to Become One)FITC
Presented at FITC Toronto 2019
More info at www.fitc.ca/toronto
Lindsay Munro
Adobe XD
Overview
Your social network could be more valuable than the work you’re doing today, because it could (and should) lead to the opportunities you get tomorrow. Your next post could result in your next recommendation, job, collaboration, exhibit, and next level experience.
In this session, you’ll learn how to hone and build your online social media presence to attract brands and engage in the modern-day endorsement deal. Get a behind-the-scenes perspective on the things brands look for in creative profiles and the rules of engagement.
Objective
Teach the ins and outs of what it means to be a creative social influencer.
Target Audience
Creatives looking to up level their social media presence and strike brand partnerships.
Things Audience Members Will Learn
How to set yourself up for “success” on social media
The importance of working with the right brands
Figuring out compensation and negotiating contracts
The ins and outs of disclosure and liability
How to not mess it up
Presented at FITC Toronto 2019
More info at www.fitc.ca/toronto
Amelie Rosser
Jam3
Overview
For the past two years Jam3 worked alongside Joy Kogawa and the NFB to create East of the Rockies, an augmented reality storytelling experience.
East of the Rockies is the first interactive AR game of its kind. The story takes users through a piece of Canadian history where Japanese Canadians were forced to leave their homes and live at internment camps during WWII.
This talk will cover the creation of the game: from concept and storyboarding, to the development process in Unity and various challenges and questions to consider from a creator’s perspective.
Objective
To let the audience in on the behind the scenes of developing an AR experience like East of the Rockies.
Target Audience
For those interested in Augmented Reality storytelling and game development.
Five Things Audience Members Will Learn
AR techniques using Unity
Storytelling in AR
Prototyping interactions in AR
Game state management using Unidux
Game optimization techniques in Unity
The Knowledge Society: Three Talks About the Future
Futurism Innovation Science
Isabella Grandic
The Knowledge Society
Overview
Join three incredible, young, and brilliant minds as they present their findings on topics that we’ll all have to deal with in the not so distant future. This series of talks will explore how exponential technologies like synthetic farming, nanotechnology, and quantum computing can be used to solve some of the world’s most difficult problems.
The speakers are all students of The Knowledge Society (TKS), a human accelerator for high school students designed to help them impact billions. TKS encourages students to take risks and think big.
Ayaan Esmail‘s talk will cover creating a proactive healthcare system
World Transformation: The Secret Agenda of Product DesignFITC
R.C. Woodmass
Crescendo
Overview
The reports are in: how we relate to technology directly affects how we relate to other humans, to our environments, and to ourselves. Are we headed for a technological dystopia, where robots are in charge and empathy is just a word for the history books? Not necessarily! Learn how the interfaces we interact with can teach us how to be better communicators, increase our understanding of each other, and how product design might be the key to building a positive future for all.
Objective
Directly address fear and skepticism about technology, inspiring all who design and build tech to think more empathetically when building UX and UI.
Target Audience
Product designers, HR specialists, and anyone skeptical about technology
Three Things Audience Members Will Learn
How to create user interfaces that are flexible enough to include everyone, even if they can’t keep up with all the different identities and new labels that people are using
What is conversation design, and how it has the power to teach people how to communicate
How AI has the potential to be more inclusive than previous data analysis systems, if we leverage its weaknesses to the human advantage
Matt Swoboda
Notch
Overview
The adoption of real-time technologies and workflows for content creation is a seismic shift in the world of video/graphics. It has a fundamental effect on not just on render times but on the entire creative process. In this session hear from someone who has been using realtime graphics for creative work for almost 20 years, and his experiences in applying it to productions such as the Ed Sheeran world tour and Cirque du Soleil.
Objective
Give the audience an overview of what really is capable in a real-time workflow today, and where things are headed.
Target Audience
Anyone who wants to take confident steps in the direction of real-time motion graphics, especially within the live, installation and AR fields.
Five Things Audience Members Will Learn
How does real-time change the creative and production process
Limitations – where does it work, where doesn’t it make sense
What real-time graphics are capable of today
What happens on a rock’n’roll tour bus
What DOESN’T happen on a rock’n’roll tour bus
Hasan Ahmad
Aquent DEV6
Overview
PWAs are a newly emerging delivery format for web, desktop apps. The fact that they can be installed on a client device and behave like natively installed apps means that special care should be taken when designing and building these types of apps, above and beyond a typical browser-only web application. One of the most important (potential) differentiators in the user experience of a PWA app vs a traditional web app is the ability to provide a high-performance UI because of their ability to do things like cache resources offline, including entire pieces of Web UI code, and the use of background services. In this talk we are going to do an exhaustive overview of the entire landscape of building PWAs from a performance-first perspective.
Target Audience
Web development teams
Assumed Audience Knowledge
Web Development fundamentals
Objective
Large enterprise applications
Five Things Audience Members Will Learn
Why PWA’s require performance engineering
What tools are available to measure performance metrics
Offline caching strategies
Host device considerations: desktop and mobile
Taking advantage of background code: Service Workers
Bhavana Srinivas
Netlify
Overview
A new web stack has emerged. A stack powered by modern browsers, API economy and Git based workflows. A stack that is not tied to specific technologies. A stack that takes into account both developer experience while building the application, and user experience when interacting with the application. A stack that delivers better performance, higher security, and lower cost of scaling for web applications.
In this talk, Bhavana will dive more into the architecture and best practices for building performant web applications using the JAMstack
Objective
Educate the audience about the JAMstack and why it powers performant sites
Target Audience
Web stakeholders who want fast, secure and performant websites
Assumed Audience Knowledge
Built a website/interacted with sites
Five Things Audience Members Will Learn
What is the JAMstack
The ecosystem around the JAMstack
How to improve the performance of your site built on the JAMstack
Example sites built on this architecture
Resources and best practices
From Closed to Open: A Journey of Self DiscoveryFITC
Midge “Mantissa” Sinnaeve
Mantissa
Overview
Midge will be speaking about his experience of switching to open source applications for his freelance work. From ditching expensive software subscriptions to going down the linux rabbit hole, he’ll take you along for the ride and show you some cool stuff along the way.
It’s an in-depth look at what happens when your digital tools become an extension of yourself and how that can in turn inspire you to get better as an artist and find your style.
Objective
Taking a critical look at how you work and why.
Target Audience
(Motion) designers, 3D & VFX artists
Four Things Audience Members Will Learn
Open Source Design Tools
Self-criticism
Inspiration
Letting go
Studio Macouno has been realizing post industrial projects for two decades. Though they’re very busy doing things like creating generative shavers for Philips and designing life size 3D printed petition elephants, those are but a fraction of what they would like to do.
In this talk Dolf will explore the projects they just don’t have time for. The things the studio would love to do but can’t do on it’s own. The things that are way out there… Those that don’t seem possible, or are just too much work. The dreams that they think are a bit too much, but they just might do anyway.
Objective
Finding, funding and founding cooperatives for creative futurist projects.
Target Audience
People interested in making things today that seem ideas for tomorrow.
Five Things Audience Members Will Learn
Some about generative design
3d printing
Art
Running projects
And making things happen
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
This 7-second Brain Wave Ritual Attracts Money To You.!nirahealhty
Discover the power of a simple 7-second brain wave ritual that can attract wealth and abundance into your life. By tapping into specific brain frequencies, this technique helps you manifest financial success effortlessly. Ready to transform your financial future? Try this powerful ritual and start attracting money today!
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
Wireless communication involves the transmission of information over a distance without the help of wires, cables or any other forms of electrical conductors.
Wireless communication is a broad term that incorporates all procedures and forms of connecting and communicating between two or more devices using a wireless signal through wireless communication technologies and devices.
Features of Wireless Communication
The evolution of wireless technology has brought many advancements with its effective features.
The transmitted distance can be anywhere between a few meters (for example, a television's remote control) and thousands of kilometers (for example, radio communication).
Wireless communication can be used for cellular telephony, wireless access to the internet, wireless home networking, and so on.
# Internet Security: Safeguarding Your Digital World
In the contemporary digital age, the internet is a cornerstone of our daily lives. It connects us to vast amounts of information, provides platforms for communication, enables commerce, and offers endless entertainment. However, with these conveniences come significant security challenges. Internet security is essential to protect our digital identities, sensitive data, and overall online experience. This comprehensive guide explores the multifaceted world of internet security, providing insights into its importance, common threats, and effective strategies to safeguard your digital world.
## Understanding Internet Security
Internet security encompasses the measures and protocols used to protect information, devices, and networks from unauthorized access, attacks, and damage. It involves a wide range of practices designed to safeguard data confidentiality, integrity, and availability. Effective internet security is crucial for individuals, businesses, and governments alike, as cyber threats continue to evolve in complexity and scale.
### Key Components of Internet Security
1. **Confidentiality**: Ensuring that information is accessible only to those authorized to access it.
2. **Integrity**: Protecting information from being altered or tampered with by unauthorized parties.
3. **Availability**: Ensuring that authorized users have reliable access to information and resources when needed.
## Common Internet Security Threats
Cyber threats are numerous and constantly evolving. Understanding these threats is the first step in protecting against them. Some of the most common internet security threats include:
### Malware
Malware, or malicious software, is designed to harm, exploit, or otherwise compromise a device, network, or service. Common types of malware include:
- **Viruses**: Programs that attach themselves to legitimate software and replicate, spreading to other programs and files.
- **Worms**: Standalone malware that replicates itself to spread to other computers.
- **Trojan Horses**: Malicious software disguised as legitimate software.
- **Ransomware**: Malware that encrypts a user's files and demands a ransom for the decryption key.
- **Spyware**: Software that secretly monitors and collects user information.
### Phishing
Phishing is a social engineering attack that aims to steal sensitive information such as usernames, passwords, and credit card details. Attackers often masquerade as trusted entities in email or other communication channels, tricking victims into providing their information.
### Man-in-the-Middle (MitM) Attacks
MitM attacks occur when an attacker intercepts and potentially alters communication between two parties without their knowledge. This can lead to the unauthorized acquisition of sensitive information.
### Denial-of-Service (DoS) and Distributed Denial-of-Service (DDoS) Attacks
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
Talk presented at Kubernetes Community Day, New York, May 2024.
Technical summary of Multi-Cluster Kubernetes Networking architectures with focus on 4 key topics.
1) Key patterns for Multi-cluster architectures
2) Architectural comparison of several OSS/ CNCF projects to address these patterns
3) Evolution trends for the APIs of these projects
4) Some design recommendations & guidelines for adopting/ deploying these solutions.
2. About me
Raimundas Banevicius
Senior AS3 Developer
Working with Flash from 2001
Author of open source AS3 framework – mvcExpress
Blog : http://www.mindscriptact.com/
Twitter : @Deril
E-mail : raima156@yahoo.com
3. About this presentation
● AS3 framework evolution
● Modular programming in mvcExpress
● mvcExpress live
5. AS3 framework history
(ActionScript 3.0 released in 2006)
●PureMVC (2006)
●Cairngorm (2007?) [flex only]
●Springactionscript (2007)
●Parsley(2008)
●Mate(2008) [flex only]
●Robotlegs(2009)
●Swiz(2009) [flex only]
●mvcExpress(2012)
●Robotlegs 2 (2012) (in beta)
6. AS3 framework history
(ActionScript 3.0 released in 2006)
●PureMVC (2006)
●Cairngorm (2007?) [flex only]
●Springactionscript (2007)
●Parsley(2008)
●Mate(2008) [flex only]
●Robotlegs(2009)
●Swiz(2009) [flex only]
●mvcExpress(2012)
●Robotlegs 2 (2012) (in beta)
7. AS3 framework history
(ActionScript 3.0 released in 2006)
●PureMVC (2006)
●Cairngorm (2007?) [flex only]
●Springactionscript (2007)
●Parsley(2008)
●Mate(2008) [flex only]
●Robotlegs(2009)
●Swiz(2009) [flex only]
●mvcExpress(2012)
●Robotlegs 2 (2012) (in beta)
8. PureMVC
The good The bad
● Organize your code in small units ● Slightly hurts performance
● Let those units communicate
● Built on static classes
● Standardize your code
● Focus on app instead of architecture ● Lots of boilerplate code
● Ported to many languages
Can it be done simpler?
9. robotlegs
The good The bad
● All PureMVC goodness. ● Hurts performance a lot!
● Removed most boilerplate
code
● Introduces dependency
injection
Can it be done simpler...
and run fast?
10. robotlegs 2 (beta)
The good The bad
● Highly configurable ● Adds some boilerplate code
● Modular ● Code less standardized
● Guards, hooks, rules. ● Hurts performance a lot
(and more)
Can it be done simpler...
and run fast?
11. mvcExpress
The good The bad
●
All PureMVC and robotlegs ● Hurts performance the least
goodness.
● Young framework
● Focus on modular development
● Simplifies code even more
Simplest and fastest MVC framework!
12. package { pureMVC mediator
public class PureMvcMediator extends Mediator implements IMediator {
public static const NAME:String = "PureMvcMediator";
public function PureMvcMediator(initViewComponent:ViewComponent) {
super(NAME, initViewComponent);
}
// cast view for convenient local use.
public function get view():ViewComponent {
return super.getViewComponent() as ViewComponent;
}
// listen for framework notices
override public function listNotificationInterests():Array {
return [ //
DataNote.STUFF_DONE //
];
}
// handle framework events
override public function handleNotification(notice:INotification):void {
switch (notice.getName()) {
case DataNote.STUFF_DONE:
// do stuff…
break;
}
}}
13. package { pureMVC mediator
public class PureMvcMediator extends Mediator implements IMediator {
public static const NAME:String = "PureMvcMediator";
public function PureMvcMediator(initViewComponent:ViewComponent) {
super(NAME, initViewComponent);
}
// cast view for convenient local use.
public function get view():ViewComponent {
return super.getViewComponent() as ViewComponent;
}
// listen for framework notices
override public function listNotificationInterests():Array {
return [ //
DataNote.STUFF_DONE //
];
}
// handle framework events
override public function handleNotification(notice:INotification):void {
switch (notice.getName()) {
case DataNote.STUFF_DONE:
// do stuff…
break;
}
}}
14. package { pureMVC mediator
public class PureMvcMediator extends Mediator implements IMediator {
public static const NAME:String = "PureMvcMediator";
public function PureMvcMediator(initViewComponent:ViewComponent) {
super(NAME, initViewComponent);
}
// cast view for convenient local use.
public function get view():ViewComponent {
return super.getViewComponent() as ViewComponent;
}
// listen for framework notices
override public function listNotificationInterests():Array {
return [ //
DataNote.STUFF_DONE //
];
}
// handle framework events
override public function handleNotification(notice:INotification):void {
switch (notice.getName()) {
case DataNote.STUFF_DONE:
// do stuff…
break;
}
}}
15. package { pureMVC mediator
public class PureMvcMediator extends Mediator implements IMediator {
public static const NAME:String = "PureMvcMediator";
public function PureMvcMediator(initViewComponent:ViewComponent) {
super(NAME, initViewComponent);
}
// cast view for convenient local use.
public function get view():ViewComponent {
return super.getViewComponent() as ViewComponent;
}
// listen for framework notices
override public function listNotificationInterests():Array {
return [ //
DataNote.STUFF_DONE //
];
}
// handle framework events
override public function handleNotification(notice:INotification):void {
switch (notice.getName()) {
case DataNote.STUFF_DONE:
// do stuff…
break;
}
}}
16. mvcExress mediator
package {
public class MvcExpressMediator extends Mediator {
[Inject]
public var view:ViewComponent;
override public function onRegister():void {
// listen for framework events
addHandler(DataMessage.STUFF_DONE, handleStuffDone);
}
// handle framework events
private function handleStuffDone(params:DataChangeParamsVO):void {
view.showStuff(params.dataParam1);
}
}}
17. mvcExress mediator
package {
public class MvcExpressMediator extends Mediator {
[Inject]
public var view:ViewComponent;
override public function onRegister():void {
// listen for framework events
addHandler(DataMessage.STUFF_DONE, handleStuffDone);
}
// handle framework events
private function handleStuffDone(params:DataChangeParamsVO):void {
view.showStuff(params.dataParam1);
}
}}
18. mvcExress mediator
package {
public class MvcExpressMediator extends Mediator {
[Inject]
public var view:ViewComponent;
override public function onRegister():void {
// listen for framework events
addHandler(DataMessage.STUFF_DONE, handleStuffDone);
}
// handle framework events
private function handleStuffDone(params:DataChangeParamsVO):void {
view.showStuff(params.dataParam1);
}
}}
19. mvcExress mediator
package {
public class MvcExpressMediator extends Mediator {
[Inject]
public var view:ViewComponent;
override public function onRegister():void {
// listen for framework events
addHandler(DataMessage.STUFF_DONE, handleStuffDone);
}
// handle framework events
private function handleStuffDone(params:DataChangeParamsVO):void {
view.showStuff(params.dataParam1);
}
}}
20. Speed test data
mvcExpress pureMVC robotlegs robotlegs 2
Command creation and execution: 0.00087 0.00219 0.00866 0.01894
1.0 /2.5 /10.0 /21.8
Proxy inject into command: 0.00037 0.00024 0.00491 0.00247
1.0 /0.7 /13.2 /6.6
Mediator create: 0.02100 0.02100 0.05100 0.13600
1.0 /1.0 /2.4 /6.5
https://github.com/MindScriptAct/as3-mvcFramework-performanceTest
Mediator remove: 0.01700 0.10300 0.01850 0.05550
1.0 /6.1 /1.1 /3.3
Communication 1 to 1: 0.00030 0.00060 0.00153 0.00141
1.0 /2.0 /5.0 /4.6
Communication 1 to 10: 0.00073 0.00788 0.00670 0.00629
1.0 /10.9 /9.2 /8.7
Communication 1 to 100: 0.00480 0.06897 0.05746 0.05071
1.0 /14.4 /12.0 /10.6
35. Modular programming
pitfalls
● Planning is needed
● Good module should be able to stand
as application on its own
– Chat window
– Stand alone tutorial
● Worst case scenario: extracting
module/reintegrating module refactoring.
45. package com.mindscriptact.testProject.engine { Process example
public class GameEngineProcess extends Process {
override protected function onRegister():void {
addTask(MoveHeroTask);
addTask(MoveEnemiesTask);
addTask(HeroCollideEnemiesTask);
addTask(EnemySpawnTask);
addTask(ShowHeroTask);
addTask(ShowEnemiesTask);
addHandler(Message.PAUSE_GAME, handleGamePause);
}
private function handleGamePause(isPaused:Boolean):void {
if (isPaused) {
disableTask(MoveHeroTask);
disableTask(MoveEnemiesTask);
} else {
enableTask(MoveHeroTask);
enableTask(MoveEnemiesTask);
}
}
}}
46. Task example
package com.mindscriptact.testProject.engine.tasks {
public class ShowEnemiesTask extends Task {
[Inject(name="enemyDatas")]
public var enemyDatas:Vector.<EnemyVO>;
[Inject(name="enemyViews")]
public var enemyImages:Vector.<EnemySprite>;
override public function run():void {
for (var i:int = 0; i < enemyDatas.length; i++) {
enemyImages[i].x = enemyDatas[i].x;
enemyImages[i].y = enemyDatas[i].y;
enemyImages[i].rotation = enemyDatas[i].rotations;
}
}
}}
47. mvcExpress live testing
package com.mindscriptact.testProject.engine.tasks {
public class ShowEnemiesTask extends Task {
[Inject(name="enemyDatas")]
public var enemyDatas:Vector.<EnemyVO>;
[Inject(name="enemyViews")]
public var enemyImages:Vector.<EnemySprite>;
override public function run():void {
for (var i:int = 0; i < enemyDatas.length; i++) {
enemyImages[i].x = enemyDatas[i].x;
enemyImages[i].y = enemyDatas[i].y;
enemyImages[i].rotation = enemyDatas[i].rotations;
}
}
[Test]
public function showEnemiesTask_enemyViewAndDataCount_isEqual():void {
assert.equals(enemyDatas.length, enemyImages.length, "Enemies data and view count must be the same!");
}
[Test(delay="500")]
public function showEnemiesTask_enemyViewAndDataPosition_isEqual():void {
for (var i:int = 0; i < enemyDatas.length; i++) {
assert.equals(enemyImages[i].x, enemyDatas[i].x, "Enemy x is damaged. enemyId:" + enemyDatas[i].id);
assert.equals(enemyImages[i].y, enemyDatas[i].y, "Enemy y is damaged. enemyId:" + enemyDatas[i].id);
}
}
}}
48. Process run speed
● Best case:
– Runs 1000000 empty Task's in 17 ms
– 58823 empty tasks in 1 ms
● Worst case:
– 13300 empty tasks in 1 ms
49. mvcExpress live overview
● Designed with games in mind but can be used in any
application than has repeating logic to run.
● Processes and Task's are decoupled
● Convenient communication with MVC
● It is possible to break Model and View decoupling
rules, but gives tools to detect it.
● It is fast!
● It just works!
51. On learning curve
● MVC framework initial learning curve is steep...
● But if you learned one – learning another is easy!
http://mvcexpress.org/documentation/
https://github.com/MindScriptAct/mvcExpress-examples
Also I do workshops.