Changing organisations through hands-on trainingJim Barritt
A talk I gave at XP2012 in Malmo, Sweden. It describes some of the practices we used whilst training at ThoughtWorks University with the aim that they might be interesting to people who are trying to train staff in "agile"
The performance achieved by today’s new
smartphones and tablets is enabling businesses
to come up with ever more innovative services
for their target audiences, but also with new
ways of working and interacting.
Among the many new mobile projects created
for our clients, we have been able to sense
the outstanding creative potential of these
tools, both for the design teams and the users
themselves, who are driving this (r)evolution
in phone use. More relevant and responsive
marketing campaigns through more detailed
knowledge of consumers (geolocation), which
has the added benefit of being available at any
time, improvements in customer relations with
a new and dynamic role for sales, instant
access to reliable data, more effective and
user-friendly marketing and communication
resources, increased compagny performance
and productivity through the simplification of
processes, faster deployment within teams, and
easier change management thanks to the sheer
fun and enjoyability of these new resources…
You will discover some of these many benefits
over the next few pages of this new edition of
SqliMag, entirely dedicated to mobile projects.
Our teams are bursting with ideas for new interactive
services and solutions, accessible via
these new devices. They can also help making
your new ideas become real…
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache CordovaHazem Saleh
Apache Cordova is a platform for building mobile applications using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile application developers to access mobile native functions such as (Audio, Camera, File, Battery, Contacts ...) using JavaScript. Although there are many JavaScript mobile application frameworks, jQuery mobile is one of the best mobile web application frameworks which allows the web developers to develop neat mobile web apps. This session illustrates how to use Apache Cordova with the combination of jQuery mobile in order to design, develop, and deploy a complete hybrid Android (and iOS) app. The demo app utilizes the device native functions (Audio and Camera) using pure JavaScript.
Changing organisations through hands-on trainingJim Barritt
A talk I gave at XP2012 in Malmo, Sweden. It describes some of the practices we used whilst training at ThoughtWorks University with the aim that they might be interesting to people who are trying to train staff in "agile"
The performance achieved by today’s new
smartphones and tablets is enabling businesses
to come up with ever more innovative services
for their target audiences, but also with new
ways of working and interacting.
Among the many new mobile projects created
for our clients, we have been able to sense
the outstanding creative potential of these
tools, both for the design teams and the users
themselves, who are driving this (r)evolution
in phone use. More relevant and responsive
marketing campaigns through more detailed
knowledge of consumers (geolocation), which
has the added benefit of being available at any
time, improvements in customer relations with
a new and dynamic role for sales, instant
access to reliable data, more effective and
user-friendly marketing and communication
resources, increased compagny performance
and productivity through the simplification of
processes, faster deployment within teams, and
easier change management thanks to the sheer
fun and enjoyability of these new resources…
You will discover some of these many benefits
over the next few pages of this new edition of
SqliMag, entirely dedicated to mobile projects.
Our teams are bursting with ideas for new interactive
services and solutions, accessible via
these new devices. They can also help making
your new ideas become real…
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache CordovaHazem Saleh
Apache Cordova is a platform for building mobile applications using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile application developers to access mobile native functions such as (Audio, Camera, File, Battery, Contacts ...) using JavaScript. Although there are many JavaScript mobile application frameworks, jQuery mobile is one of the best mobile web application frameworks which allows the web developers to develop neat mobile web apps. This session illustrates how to use Apache Cordova with the combination of jQuery mobile in order to design, develop, and deploy a complete hybrid Android (and iOS) app. The demo app utilizes the device native functions (Audio and Camera) using pure JavaScript.
This is the presentation I have at the ExperienceCamp09 in Milan.
Tha main objective of the presentations is to explain which are the difficulties we need to deal with when thinking about mobile user experience at the operator level.
Huge number of mobiles, market speed, and flexibility of the vendors are some of the elements we need to cope with on a day by day basis.
Social Media Club and Barcamp Orlando Presentation - 140 CHARACTERS OR LESS: ...Murray Izenwasser
My presentation to Social Media Club of South Florida on April 14, 2009 and at BarcampOrlando on the 18th. I discussed how Social Media is not a strategy unto itself, but a tactic like other marketing tactics that would support a compaign that supports a organizational strategy. Also discussed the process we go through to develop social media programs for our clients, in a case study for Nova Southeastern University.
A view on the Events Industry in 2013 including:- big data, content, social media, social media promotions driven by event content, event technology, apps, event photo & video marketing, eLiterature for events, crowdsourcing and WiFi photography.
[FullStack NYC 2019] Effective Unit Tests for JavaScriptHazem Saleh
Unit testing coverage is a great way to show us the amount of tested lines and branches of code, but is this really enough? The answer is "no" since unit testing coverage does not really fully measure the efficiency of the unit tests. This is why there is a need for using techniques that can improve unit tests efficiency. Mutation testing is one of these powerful techniques. The main idea of mutation testing is to automatically insert bugs (mutants) into production code and then run unit tests to check if they are strong enough to fail as a result of these mutations.
This session discusses mutation testing techniques and demonstrates Stryker as a powerful mutation testing tool for JavaScript applications.
Mockito 2.x Migration - Droidcon UK 2018Hazem Saleh
Mockito 2.x solves many problems that most of the Android developers were having in their tests in Mockito 1.x. But what if you are having today large tests written in Mockito 1.x and PowerMock, will it be an easy task to migrate?
Unfortunately, it is not a straightforward task since Mockito 2 is not fully compatible with the old behaviour of Mockito 1.x. Adding to this complexity, If you are having PowerMock in your old tests, then you will have to face another dimension of complexity since most of PowerMock’s versions are having integration issues with Mockito 2.x.
This session goes through the tips and tricks that you need to consider in order to migrate to and utilize Mockito 2.x. It has demos to show migrating Android app Mockito 1.x tests to Mockito 2.x.
[AnDevCon 2016] Mutation Testing for AndroidHazem Saleh
Unit testing coverage is a great way to show us the amount of tested lines and branches of code, but is this really enough? The answer is "no" since unit testing coverage does not really fully measure the efficiency of the unit tests.
This is why there is a need for having techniques that show unit tests efficiency. Mutation testing is one of these powerful techniques. The main idea of mutation testing is to perform byte code modifications (mutations) to original Android app source code and then run app unit tests to check if they are strong enough to fail as a result of these mutations.
This session discusses mutation testing techniques, and demonstrates PIT as a powerful mutation testing tool for Android apps with demos.
Apache Cordova is a platform for building mobile apps using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile app developers to utilize mobile native functions such as (Audio, Camera, Contacts …etc) using JavaScript. This session discusses and demonstrates the advanced aspects of Apache Cordova. Advanced aspects include extending Apache Cordova framework by creating custom plugins in order to access more device hardware features. Advanced aspects also include empowering Apache Cordova apps with Push notifications and Cloud services. Finally, this session demonstrates the power of automated JavaScript unit testing for producing quality Apache Cordova apps.
[Devoxx Morocco 2015] Apache Cordova In ActionHazem Saleh
Apache Cordova is a platform for building native mobile apps using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile app developers to utilize mobile native functions such as (Audio, Camera, Contacts …etc) using JavaScript. jQuery mobile is one of the best mobile web application frameworks, which allows the web developers to develop neat mobile web applications. This session discusses why there is a need for Hybrid mobile development, the current challenges of mobile development, and how using Apache Cordova can help in overcoming many of these technical challenges. It also highlights the best practices of using Apache Cordova with jQuery mobile. Finally, it demonstrates a real Cordova mobile app for showing the audience the best practices of designing, developing, and deploying hybrid Android and iOS mobile apps.
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache CordovaHazem Saleh
Apache Cordova is a platform for building native mobile applications using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile application developers to access mobile native functions such as (Audio, Camera, File, Battery, Contacts …etc) using JavaScript. Although there are many JavaScript mobile application frameworks, jQuery mobile is one of the best mobile web application frameworks which allows the web developers to develop web applications that are mobile friendly. This session illustrates how to use Apache Cordova with the combination of jQuery mobile in order to develop a native Android application and deploy on a real Android device. The demo application (“Memo” application) utilizes mobile native functions (Audio and Camera) using pure JavaScript.
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Hazem Saleh
Apache Cordova is a platform for building native mobile applications using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile application developers to access mobile native functions such as (Audio, Camera, File, Battery, Contacts …etc) using JavaScript. Although there are many JavaScript mobile application frameworks, jQuery mobile is one of the best mobile web application frameworks which allows the web developers to develop web applications that are mobile friendly. This session illustrates how to use Apache Cordova with the combination of jQuery mobile in order to develop a native Android hybrid application and deploy on a real Android device. The demo application (“Memo” application) utilizes mobile native functions (Audio and Camera) using pure JavaScript.
Get the session recording from SoundCloud:
http://tinyurl.com/cordova2014
This is the presentation I have at the ExperienceCamp09 in Milan.
Tha main objective of the presentations is to explain which are the difficulties we need to deal with when thinking about mobile user experience at the operator level.
Huge number of mobiles, market speed, and flexibility of the vendors are some of the elements we need to cope with on a day by day basis.
Social Media Club and Barcamp Orlando Presentation - 140 CHARACTERS OR LESS: ...Murray Izenwasser
My presentation to Social Media Club of South Florida on April 14, 2009 and at BarcampOrlando on the 18th. I discussed how Social Media is not a strategy unto itself, but a tactic like other marketing tactics that would support a compaign that supports a organizational strategy. Also discussed the process we go through to develop social media programs for our clients, in a case study for Nova Southeastern University.
A view on the Events Industry in 2013 including:- big data, content, social media, social media promotions driven by event content, event technology, apps, event photo & video marketing, eLiterature for events, crowdsourcing and WiFi photography.
[FullStack NYC 2019] Effective Unit Tests for JavaScriptHazem Saleh
Unit testing coverage is a great way to show us the amount of tested lines and branches of code, but is this really enough? The answer is "no" since unit testing coverage does not really fully measure the efficiency of the unit tests. This is why there is a need for using techniques that can improve unit tests efficiency. Mutation testing is one of these powerful techniques. The main idea of mutation testing is to automatically insert bugs (mutants) into production code and then run unit tests to check if they are strong enough to fail as a result of these mutations.
This session discusses mutation testing techniques and demonstrates Stryker as a powerful mutation testing tool for JavaScript applications.
Mockito 2.x Migration - Droidcon UK 2018Hazem Saleh
Mockito 2.x solves many problems that most of the Android developers were having in their tests in Mockito 1.x. But what if you are having today large tests written in Mockito 1.x and PowerMock, will it be an easy task to migrate?
Unfortunately, it is not a straightforward task since Mockito 2 is not fully compatible with the old behaviour of Mockito 1.x. Adding to this complexity, If you are having PowerMock in your old tests, then you will have to face another dimension of complexity since most of PowerMock’s versions are having integration issues with Mockito 2.x.
This session goes through the tips and tricks that you need to consider in order to migrate to and utilize Mockito 2.x. It has demos to show migrating Android app Mockito 1.x tests to Mockito 2.x.
[AnDevCon 2016] Mutation Testing for AndroidHazem Saleh
Unit testing coverage is a great way to show us the amount of tested lines and branches of code, but is this really enough? The answer is "no" since unit testing coverage does not really fully measure the efficiency of the unit tests.
This is why there is a need for having techniques that show unit tests efficiency. Mutation testing is one of these powerful techniques. The main idea of mutation testing is to perform byte code modifications (mutations) to original Android app source code and then run app unit tests to check if they are strong enough to fail as a result of these mutations.
This session discusses mutation testing techniques, and demonstrates PIT as a powerful mutation testing tool for Android apps with demos.
Apache Cordova is a platform for building mobile apps using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile app developers to utilize mobile native functions such as (Audio, Camera, Contacts …etc) using JavaScript. This session discusses and demonstrates the advanced aspects of Apache Cordova. Advanced aspects include extending Apache Cordova framework by creating custom plugins in order to access more device hardware features. Advanced aspects also include empowering Apache Cordova apps with Push notifications and Cloud services. Finally, this session demonstrates the power of automated JavaScript unit testing for producing quality Apache Cordova apps.
[Devoxx Morocco 2015] Apache Cordova In ActionHazem Saleh
Apache Cordova is a platform for building native mobile apps using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile app developers to utilize mobile native functions such as (Audio, Camera, Contacts …etc) using JavaScript. jQuery mobile is one of the best mobile web application frameworks, which allows the web developers to develop neat mobile web applications. This session discusses why there is a need for Hybrid mobile development, the current challenges of mobile development, and how using Apache Cordova can help in overcoming many of these technical challenges. It also highlights the best practices of using Apache Cordova with jQuery mobile. Finally, it demonstrates a real Cordova mobile app for showing the audience the best practices of designing, developing, and deploying hybrid Android and iOS mobile apps.
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache CordovaHazem Saleh
Apache Cordova is a platform for building native mobile applications using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile application developers to access mobile native functions such as (Audio, Camera, File, Battery, Contacts …etc) using JavaScript. Although there are many JavaScript mobile application frameworks, jQuery mobile is one of the best mobile web application frameworks which allows the web developers to develop web applications that are mobile friendly. This session illustrates how to use Apache Cordova with the combination of jQuery mobile in order to develop a native Android application and deploy on a real Android device. The demo application (“Memo” application) utilizes mobile native functions (Audio and Camera) using pure JavaScript.
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Hazem Saleh
Apache Cordova is a platform for building native mobile applications using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile application developers to access mobile native functions such as (Audio, Camera, File, Battery, Contacts …etc) using JavaScript. Although there are many JavaScript mobile application frameworks, jQuery mobile is one of the best mobile web application frameworks which allows the web developers to develop web applications that are mobile friendly. This session illustrates how to use Apache Cordova with the combination of jQuery mobile in order to develop a native Android hybrid application and deploy on a real Android device. The demo application (“Memo” application) utilizes mobile native functions (Audio and Camera) using pure JavaScript.
Get the session recording from SoundCloud:
http://tinyurl.com/cordova2014
Integrating Mashups in web applications is not an easy job. Web developers need to write intensive JavaScript code and much duplicate feed parsing code in order to create an interactive Mashup web application.
Mashups4JSF is an open source library that aims at integrating Mashup services in JSF web applications. Using Mashups4JSF, JSF developers will be able to construct rich and customized Mashups using a set of custom JSF components. They will be able to export domain model data as mashup feeds. They will be able to create rich Google Maps declaratively and create custom Ajax actions powered by JSF 2.x architecture. This session discusses how to utilize this library in order to build interactive mashups in the JavaServer Faces applications.
This session was presented by Hazem Saleh in JavaOne Russia 2013.
Efficient JavaScript Unit Testing, March 2013Hazem Saleh
This material about efficient JavaScript unit testing is presented by Hazem Saleh in the Egyptian Java Developer Conference that was held in 09 March 2013.
This presentation goes through the most popular JavaScript tools on the different browsers (Internet Explorer, Firefox, Safari and Chrome). It goes through popular JavaScript debugging tools, JavaScript verification tool (JSLint), and finally JavaScript minification tools.
Efficient JavaScript Unit Testing, May 2012Hazem Saleh
One of the biggest challenges of many web applications is the support on the different browsers with different versions. JavaScript code that runs on Safari does not necessarily mean it will work on IE or Firefox or Google chrome. This challenge is inherited from the lack of testing the JavaScript code that lives in the presentation tier from day one. Without unit testing the JavaScript code, organization will pay much money for testing, re-testing, and re-testing web applications for just deciding upgrading or supporting new browsers. This presentation shows the solution of this problem.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
2. AGENDA
1 What is mashability?
How does mashability influence the success of a venture for
2 both the public and enterprise.
3 Enterprise mashups.
4 Mashups development current challenges.
5 Mashup application idea.
6 What is Mashups4JSF?
7 Building the mashup application using Mashups4JSF.
8 Conclusion
3. AGENDA
1 What is mashability?
How does mashability influence the success of a venture for
2 both the public and enterprise.
3 Enterprise mashups.
4 Mashups development current challenges.
5 Mashup application idea.
6 What is Mashups4JSF?
7 Building the mashup application using Mashups4JSF.
8 Conclusion
4. Mashability
adjective
The property of a software system to be re-used in contexts
not imagined at the time the system was first deployed
Mashability is a matter of degree
Not just embedding
It's possible for software to only have superficial mashability
5. Mashability
Ease of performing the mashup
Twitter, yammer,
etc.
Browser
AS/400 extensions
Flash/Applet
Sy Sc In Pr D Sy
to ste re A str pl ov ec en ste
m pr m en O um ug id or co m
a s e v de sc P en in e a at ur d e
ha e si ra io
pi tw n ag si
bi nt gn ng ith e gn
lit ed m ed
y as t
ha o
Kind of mashup technique bi
lit
y
6. Mashability
Ease of performing the mashup
Twitter, yammer,
etc.
Browser
AS/400 extensions
Flash/Applet
Sy Sc In Pr D Sy
to ste re A str pl ov ec en ste
m pr m en O um ug id or co m
a s e v de sc P en in e a at ur d e
ha e si ra io
pi tw n ag si
bi nt gn ng ith e gn
lit ed m ed
y as t
ha o
Kind of mashup technique bi
lit
y
7. AGENDA
1 What is mashability?
How does mashability influence the success of a venture for
2 both the public and enterprise.
3 Enterprise mashups.
4 Mashups development current challenges.
5 Mashup application idea.
6 What is Mashups4JSF?
7 Building the mashup application using Mashups4JSF.
8 Conclusion
8. How does mashability influence the
success of a software venture?
General Public Enterprise
Ø Create alternate Ø Extend the ROI on IT
revenue streams Ø Spreads skills more
Ø Co-optition broadly throughout
Ø It fits reality: the enterprise
successful Ø Encourages re-
ventures derive usable software
success from development
different areas over
time
9. AGENDA
1 What is mashability?
How does mashability influence the success of a venture for
2 both the public and enterprise.
3 Enterprise mashups.
4 Mashups development current challenges.
5 Mashup application idea.
6 What is Mashups4JSF?
7 Building the mashup application using Mashups4JSF.
8 Conclusion
10. Enterprise Mashups
● Example: twitter
● Twitter designed from day one to be mashable
● Explosive growth fueled by ease of mashability
● But how many of the mashups are focused on use
within an enterprise?
11. Enterprise Mashups
● Example: yammer
● nano-pitch: twitter for Enterprise
● Featured in recent Economist magazine technology
quarterly
● https://www.yammer.com/about/applications
12. AGENDA
1 What is mashability?
How does mashability influence the success of a venture for
2 both the public and enterprise.
3 Enterprise mashups.
4 Mashups development current challenges.
5 Mashup application idea.
6 What is Mashups4JSF?
7 Building the mashup application using Mashups4JSF.
8 Conclusion
13. Mashups Development
current challenges
There is no unified model agreed by all the mashup
service providers for mashup service creation and
consumption.
Different representation of mashup
services
SOAP REST
Different protocols of mashup services
ATOM RSS JSON Others
14. Mashups Development
current challenges
Intensive JavaScript.
Atom Feed Parsing.
RSS Feed Parsing.
JSON Parsing.
Other formats Parsing.
15. Mashups Development
current challenges
Study low level APIs of the
Mashup service provider.
Write a great deal of
integration code.
16. AGENDA
1 What is mashability?
How does mashability influence the success of a venture for
2 both the public and enterprise.
3 Enterprise mashups.
4 Mashups development current challenges.
5 Mashup application idea.
6 What is Mashups4JSF?
7 Building the mashup application using Mashups4JSF.
8 Conclusion
20. Step 1: Go to the youTube API documentation site for getting the REST search URL
and search parameters:
http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_p
21. Step 1: Go to the youTube API documentation site for getting the REST search URL
Open a URL Connection to the youTube Search URL:
Step 2:
and search parameters:
http://gdata.youtube.com/feeds/api/videos?alt=rss&v=2&max-results=5&q
http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_p
=#{param}
Where
1. alt indicates the feed format to be returned.
2. v indicates the API version to be used.
3. max-results indicates the maximum number of returned results.
4. q indicates the query to search by.
22. Step 1: Go to the youTube API documentation site for getting the REST search URL
Open a URL Connection to the youTube Search URL:
Step 2:
and search parameters:
http://gdata.youtube.com/feeds/api/videos?alt=rss&v=2&max-results=5&q
The rss feed for a single video item
http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_p
Step 3: =#{param}
<?xml version='1.0' encoding='UTF-8'?>
<rss ...>
<channel>
...
<item>
<guid isPermaLink='false'>tag:youtube.com,2008:video:5EFb77oGRmo</guid>
<pubDate>Mon, 11 Jun 2007 20:39:55 +0000</pubDate>
<atom:updated>2010-08-22T06:05:23.000Z</atom:updated>
<category domain='http://schemas.google.com/g/2005#kind'>
http://gdata.youtube.com/schemas/2007#video
</category>
<title>JavaOne: Open Possibilities</title>
<link>http://www.youtube.com/watch?v=5EFb77oGRmo&feature=youtube_gdata</link>
<author>SunMicrosystemsInc</author>
<yt:accessControl action='comment' permission='moderated'/>
<yt:accessControl action='videoRespond' permission='moderated'/>
<yt:accessControl action='rate' permission='allowed'/>
<yt:accessControl action='embed' permission='allowed'/>
<yt:accessControl action='syndicate' permission='allowed'/>
<yt:accessControl action='commentVote' permission='allowed'/>
<gd:comments>
<gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/5EFb77oGRmo/comments?v=2'
countHint='2'/>
</gd:comments>
<media:group>
<media:title type='plain'>JavaOne: Open Possibilities</media:title>
<yt:duration seconds='114'/>
<yt:uploaded>2007-06-11T20:39:55.000Z</yt:uploaded>
<yt:videoid>5EFb77oGRmo</yt:videoid>
...
</media:group>
...
</item>
...
</channel>
</rss>
23.
24. Go to the Twitter API documentation site for getting the REST search URL
Step 1: and search parameters:
http://apiwiki.twitter.com/Twitter-API-Documentation
25. Go to the Twitter API documentation site for getting the REST search URL
Step 1: and search parameters:
Open a URL Connection to the twitter Search URL:
Step 2: http://apiwiki.twitter.com/Twitter-API-Documentation
http://search.twitter.com/search.json?q=#{param}&rpp=10
Where:
1. q indicates the query to search by.
2. rpp indicates the number of tweets per page.
26. Go to the Twitter API documentation site for getting the REST search URL
Step 1: and search parameters:
Open a URL Connection to the twitter Search URL:
Step 2: http://apiwiki.twitter.com/Twitter-API-Documentation
http://search.twitter.com/search.json?q=#{param}&rpp=10
The JSON feed for a single tweet
Step 3:
{"results":
[
{
"profile_image_url":"http://a1.twimg.com/profile_images/598447517/
twitterProfilePhoto_normal.jpg",
"created_at":"Mon, 23 Aug 2010 22:33:30 +0000",
"from_user":"jamesfarrar",
"metadata":{"result_type":"recent"},
"to_user_id":null,
"text":"RT @oracleopenworld: Larry Ellison to Join EVP Thomas Kurian in
JavaOne Keynote to Discuss Future of Java http://bit.ly/ausg7I #javaone10",
"id":21948746363,
"from_user_id":23963,
"geo":null,
"iso_language_code":"en",
"source":"<a href="http://www.tweetdeck.com"
rel="nofollow">TweetDeck</a>"
}
],
"max_id":21948746363,
"since_id":0,
"refresh_url":"?since_id=21948746363&q=javaone",
"next_page":"?page=2&max_id=21948746363&rpp=1&q=javaone",
"results_per_page":1,"page":1,
"completed_in":0.016396,"query":"javaone"
}
27.
28. Step 1: Go to the Google Maps API documentation site for creating the map:
http://code.google.com/apis/maps/documentation/javascript
29. Step 1: Go to the Google Maps API documentation site for creating the map:
Step 2: http://code.google.com/apis/maps/documentation/javascript
Write a JS code
<script type="text/javascript">
// Google Maps code ...
if (GBrowserIsCompatible()) {
var address = "NY, USA";
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(24, 15), 13);
var geocoder = new GClientGeocoder();
geocoder.getLatLng(address,
function(location) {
if (!location) {
alert(location + " not found");
} else {
map.setCenter(location, 13);
marker.openInfoWindow(address);
map.addOverlay(marker);
}
}
● );
//add the map control.
var mapControlPosition = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,
10));
map.addControl(new GLargeMapControl(), mapControlPosition);
}
</script>
31. Many Web Sites To Visit
Much Documentation To Read
<script type="text/javascript">
// Google Maps code ...
if (GBrowserIsCompatible()) {
{"results": = "NY, USA";
var address
[var map
{
= new GMap2(document.getElementById("map"));
Many Configurations to Do
map.setCenter(new GLatLng(24, 15), 13);
var geocoder...> "profile_image_url":"http://a1.twimg.com/profile_images/598447517/
<rss = new GClientGeocoder();
geocoder.getLatLng(address, twitterProfilePhoto_normal.jpg",
<channel> "created_at":"Mon, 23 Aug 2010 22:33:30 +0000",
function(location) {
<item>
"from_user":"jamesfarrar",
if (!location) {
<guid isPermaLink='false'>tag:youtube.com,2008:video:5EFb77oGRmo</guid>
"metadata":{"result_type":"recent"},
alert(location + " not found");
<pubDate>Mon, 11 Jun 2007 20:39:55 +0000</pubDate>
"to_user_id":null,
} else {
<atom:updated>2010-08-22T06:05:23.000Z</atom:updated>
"text":"RT @oracleopenworld:
map.setCenter(location, 13); Larry Ellison to Join EVP Thomas Kurian in
<category domain='http://schemas.google.com/g/2005#kind'>
JavaOne Keynote to Discuss Future of Java http://bit.ly/ausg7I
http://gdata.youtube.com/schemas/2007#video
#javaone10",
marker.openInfoWindow(address);
</category>
"id":21948746363,
<title>JavaOne: Open Possibilities</title>
"from_user_id":23963,
map.addOverlay(marker);
<link>http://www.youtube.com/watch?v=5EFb77oGRmo&feature=youtube_gdata</link>
"geo":null,
<author>SunMicrosystemsInc</author>
"iso_language_code":"en",
Much Code to Write during project construction
} <yt:accessControl action='comment' permission='moderated'/>
} "source":"<a href="http://www.tweetdeck.com"
<yt:accessControl action='videoRespond' permission='moderated'/>
rel="nofollow">TweetDeck</a>"
); <yt:accessControl action='rate' permission='allowed'/>
}
<yt:accessControl action='embed' permission='allowed'/>
and maintenance
],
//add the map control.
<yt:accessControl action='syndicate' permission='allowed'/>
"max_id":21948746363,
var mapControlPosition = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new
<yt:accessControl action='commentVote' permission='allowed'/>
GSize(10, 10)); "since_id":0,
<gd:comments>
"refresh_url":"?since_id=21948746363&q=javaone",
map.addControl(new GLargeMapControl(), mapControlPosition);
<gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/5EFb77oGRmo/comments?v=2'
"next_page":"?page=2&max_id=21948746363&rpp=1&q=javaone",
countHint='2'/>
"results_per_page":1,"page":1,
} </gd:comments>
</script> "completed_in":0.016396,"query":"javaone"
} <media:group>
<media:title type='plain'>JavaOne: Open Possibilities</media:title>
<yt:duration seconds='114'/>
<yt:uploaded>2007-06-11T20:39:55.000Z</yt:uploaded>
<yt:videoid>5EFb77oGRmo</yt:videoid>
...
</media:group>
</item>
...
</channel>
</rss>
32.
33. AGENDA
1 What is mashability?
How does mashability influence the success of a venture for
2 both the public and enterprise.
3 Enterprise mashups.
4 Mashups development current challenges.
5 Mashup application idea.
6 What is Mashups4JSF?
7 Building the mashup application using Mashups4JSF.
8 Conclusion
34. What is Mashups4JSF
Simplify JSF
Feed Import Components
API Export
Wrapper
Provides feed reader set of JSF
Provides a
One of the possible setcomponents for
Provides a of APIs components that
ways for simplifying the low different the JSF
that wraps reading allows
level information feeds and the construct
mashup development types of ofdeveloper to
in the JavaMashup@Feed annotation for
World services. rich and customized
exporting applicationinside the
mashups
data as mashup feeds.page.
web
36. AGENDA
1 What is mashability?
How does mashability influence the success of a venture for
2 both the public and enterprise.
3 Enterprise mashups.
4 Mashups development current challenges.
5 Mashup application idea.
6 What is Mashups4JSF?
7 Building the mashup application using Mashups4JSF.
8 Conclusion
37. Building the mashup application using
Mashups4JSF.
<m:map />
<mashup:
twitterSearchList />
<mashup:
youTubeVideoList />
<mashup:
yahooWeather />
38. Demo
● This demo runs on GlassFish, Tomcat.
● Also runs on Google App Engine:
http://bit.ly/mashups4jsfGAE
39. AGENDA
1 What is mashability?
How does mashability influence the success of a venture for
2 both the public and enterprise.
3 Enterprise mashups.
4 Mashups development current challenges.
5 Mashup application idea.
6 What is Mashups4JSF?
7 Building the mashup application using Mashups4JSF.
8 Conclusion
40. Conclusion
Mashups are important.
Having a mashup meta-model gives developers a lot of
power.
Key ingredients for a mashup meta-model:
Mashup integration happens on the server.
There is a declarative syntax for describing the mashup:
This syntax includes a suitably powerful component abstraction
model.
There is a powerful programming language that works
closely with the declarative syntax.
Hide the lower level APIs offered by the mashup service
providers.
41. References
● Project Home:
http://code.google.com/p/mashups4jsf/
● Project Demo:
http://www.mashups4jsf.com
● Mashups4JSF article on developerWorks (on
WebSphere Application Server and Tomcat):
http://bit.ly/9YLOhT