- Software rewrites are tempting but often more difficult than initially expected. It's better to write code that can coexist with existing software as an optional add-on.
- When using new systems or technologies, plan to build a "throwaway" version first since the best planning won't get it right the first time.
- For early-stage products, don't sink too much time and money into implementation until proving market viability. Build minimal throwaway proof-of-concept versions instead.
- Code is generally harder to read than write, so old code often seems like a "mess" even if it's not.
Value Management: Scaling Business AgilityLinda Luu
This is our presentation at the Global Scrum Alliance 2016 in Munich.
As organizations scale Agile, one of the remaining pieces of transformation is the funding, budgeting and PMO. This talk describes how Value Management is applied to maximize the value of organization level investment. It includes concepts such as incremental and dynamic funding, outcome based goals, autonomous teams and measuring value (not work output).
Data Sharing Between Child and Parent Components in AngularJSFibonalabs
Data sharing between components in angular is an important thing in a component-based framework. Small components are good to manage in angular. When we start breaking down the complex requirements into smaller ones (I.e., smaller components) then it's very important to have a proper data-sharing mechanism. There are multiple ways in which data is shared between the components.
Value Management: Scaling Business AgilityLinda Luu
This is our presentation at the Global Scrum Alliance 2016 in Munich.
As organizations scale Agile, one of the remaining pieces of transformation is the funding, budgeting and PMO. This talk describes how Value Management is applied to maximize the value of organization level investment. It includes concepts such as incremental and dynamic funding, outcome based goals, autonomous teams and measuring value (not work output).
Data Sharing Between Child and Parent Components in AngularJSFibonalabs
Data sharing between components in angular is an important thing in a component-based framework. Small components are good to manage in angular. When we start breaking down the complex requirements into smaller ones (I.e., smaller components) then it's very important to have a proper data-sharing mechanism. There are multiple ways in which data is shared between the components.
DashMash: a Mashup Environment for End User DevelopmentMatteo Picozzi
Web mashups are a new generation of applications based on the “composition” of ready-to-use services. In different contexts, ranging from the consumer Web to Enterprise systems, the potential of this new technology is to make users evolve from passive receivers of applications to actors actively involved in the “creation of innovation”. Enabling end users to self-define applications that satisfy their situational needs is emerging as an important new requirement. In this paper, we address the current lack of lightweight development processes and environments and discuss models, methods, and technologies that can make mashups a technology for end user development.
This Angular 4 tutorial will introduce you to angular 4 components.
To watch the YouTube videos in this Angular 4 tutorial playlist, click here: https://www.youtube.com/watch?v=R4wGCHzn6-Q&list=PL9ooVrP1hQOF4aDuqaWYWSuj1isPF6HHg.
React Js Basic Details and Descriptions
Frontend Javascript Library, to make decent SPA
The fastest way to build a segregated component based front end for software development.
Rich Internet Applications (RIA) provide desktop-like usability with web deployment model. The benefits of this combination are obvious and RIA is now common a choice for the presentation layer in many applications. Unfortunately, moving logic from the server to an untrusted client may open up security holes that would not be present in the page-oriented "Web 1.0" architecture. In this presentation we will take a look at client- and server-side RIA architectures from the security angle, identify some of the most common security problems and discuss strategies for avoiding them. We'll go through an example application implemented in both architectures and demonstrate the problems. Java-based RIA frameworks, Google Web Toolkit and Vaadin, are used in the examples, but the demonstrated principles are applic
DashMash: a Mashup Environment for End User DevelopmentMatteo Picozzi
Web mashups are a new generation of applications based on the “composition” of ready-to-use services. In different contexts, ranging from the consumer Web to Enterprise systems, the potential of this new technology is to make users evolve from passive receivers of applications to actors actively involved in the “creation of innovation”. Enabling end users to self-define applications that satisfy their situational needs is emerging as an important new requirement. In this paper, we address the current lack of lightweight development processes and environments and discuss models, methods, and technologies that can make mashups a technology for end user development.
This Angular 4 tutorial will introduce you to angular 4 components.
To watch the YouTube videos in this Angular 4 tutorial playlist, click here: https://www.youtube.com/watch?v=R4wGCHzn6-Q&list=PL9ooVrP1hQOF4aDuqaWYWSuj1isPF6HHg.
React Js Basic Details and Descriptions
Frontend Javascript Library, to make decent SPA
The fastest way to build a segregated component based front end for software development.
Rich Internet Applications (RIA) provide desktop-like usability with web deployment model. The benefits of this combination are obvious and RIA is now common a choice for the presentation layer in many applications. Unfortunately, moving logic from the server to an untrusted client may open up security holes that would not be present in the page-oriented "Web 1.0" architecture. In this presentation we will take a look at client- and server-side RIA architectures from the security angle, identify some of the most common security problems and discuss strategies for avoiding them. We'll go through an example application implemented in both architectures and demonstrate the problems. Java-based RIA frameworks, Google Web Toolkit and Vaadin, are used in the examples, but the demonstrated principles are applic
The magic of jQuery's CSS-based selection makes it easy to think about our code in terms of the DOM, and sometimes that approach is exactly right. Other times, though, what we're trying to accomplish is only tangentially related to our nodes, and opting for an approach where we think in terms of functionality -- not how that functionality is manifested on our page -- can pay big dividends in terms of flexibility. In this talk, we'll look at a small sample application where the DOM takes a back seat to functionality-focused modules, and see how the approach can change the way we write and organize our code.
jQuery is drawing newcomers to JavaSCript in droves. As a community, we have an obligation -- and it is in our interest -- to help these newcomers understand where jQuery ends and JavaScript begins.
When you move beyond adding simple enhancements to your website with jQuery and start building full-blown client-side applications, how do you organize your code? At this month's Triangle JS Meetup, we'll take a look at patterns for application development using jQuery that promote the principles of tight encapsulation and loose coupling, including classes, the publish/subscribe paradigm, and dependency management and build systems.
I’ve been using, teaching, and evangelizing about jQuery for years. The library's simplicity is seductive; after a while, it kind of writes itself. So why did I venture into the unknown world of Dojo for a recent project? Find out what I learned about JavaScript code organization, inheritance, dependency management, and more in a whirlwind beginner's tour of a toolkit that answers some of the big questions surrounding JavaScript development.
When you move beyond simple snippets of jQuery and start developing more complex interactions, your code can quickly become unwieldy and difficult to debug and maintain. In this presentation, I outline an object-based approach to organizing your jQuery.
This course will give you the knowledge you need to properly and effectively start integrating jQuery, the popular JavaScript library, into your web development projects. Over the course of two days, you'll learn the fundamental concepts of JavaScript and jQuery and tackle real-world exercises to solidify your understanding of the language and the library. This class is aimed at beginning jQuery users, although intermediate users may also benefit from the more formalized introduction to the library this class will offer.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
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.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
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.
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Lessons from a Rewrite
1. Lessons from a rewrite
Rebecca Murphey • TXJS 2011 • Austin, Texas
Saturday, June 11, 2011
2. Rewrite projects are ... tempting because they
always look easier than they actually are.
If you want to survive a software rewrite,
don’t throw away your existing software ...
Write the code in such a way that it co-exists
with your existing software, perhaps as an
optional add-on that you can sell.
James Shore
Saturday, June 11, 2011
3. Where a new system concept or new
technology is used, one has to build a system to
throw away, for even the best planning is not
so omniscient as to get it right the rst time.
Hence plan to throw one away; you will,
anyhow.
Fred Brooks
Saturday, June 11, 2011
4. Until you are able to prove that you have a
viable market ... you shouldn’t be sinking a lot
of time and money into implementation.
Assuming you are [competent], you should be
able to ... take on quite a bit of technical
debt to build throwaway proof-of-concept
versions of your product.
Obie Fernandez
Saturday, June 11, 2011
5. ere’s a subtle reason that programmers
always want to throw away the code and start
over. e reason is that they think the old code
is a mess. ... e reason that they think the old
code is a mess is because of a cardinal,
fundamental law of programming: It’s harder
to read code than to write it.
Joel Spolsky
Saturday, June 11, 2011
6. For the human makers of things,
the incompleteness and
inconsistencies of our ideas
become clear only during
implementation.
Fred Brooks
Saturday, June 11, 2011
7. A content management system for the rapid
creation of content-rich mobile applications.
A PhoneGap & Dojo system that consumes
the output of the CMS to generate the
application.
Saturday, June 11, 2011
12. If data is required for a
route, such as node data
or the user's favorites, the
route requests the data
prior to creating the page.
Data Page Controller
Component
Component
Page Controller Component Component
Component
Component
When the app is booted
from a "cold" state (that URL Change Router Page Factory
is, it's not fast-app- Page controllers are responsible for Components are responsible for Once components are placed on the
switched), it goes receiving data from the Page Factory. Once receiving and rendering data and page, the Page Controller brokers
through a bootstrapping The Router detects a The Route asks the page the page controller receives that data, it reacting to user interaction. communication between components.
Route determines which components to display in
process. This process change in the URL, looks factory to generate a page
for a matching route in controller. If the page its postMixInProperties method and sets up Components whose content can change Components announce events either by
ensures the application "placements," which define the components during a single page view should expose publishing a topic (for events that may
toura.app.Routes, and controller is for a node, the
is working with the that will be placed on the page and the data an API using setters (i.e. have app-wide significance) or by calling
parses any additional Page Factory figures out
most recent data, and parameters out of the URL which template (Audios, that needs to be passed to them. The _setContentAttr) that allows Page a method (such as onClick). Page
also sets up various (such as the node ID, Images, etc.) the node actual instantiation and placement of Controllers to update their content. Controllers can subscribe to these
application-wide Device Storage asset type, etc.). uses. The page factory components is handled in the postCreate topics or connect to these method calls
creates an instance of the method of toura.pageControllers._Page, Alternately, a component can define an (much like connecting to events). This
functionality, including
page controller and hands which is inherited by all Page Controllers. attributeMap object that specifies how happens in the Page Controller's
the Router, UI, Page the component should react when a postCreate method.
the created instance back
Factory, Data Store, to the Route. property is set.
and several others.
Once these pieces are
in place, the app Remote
triggers a URL change
to the home node, and
the process outlined
here begins.
Every time the user goes UI
to a new page, we check
the age of the local data; if
it is more than 8 hours old,
we see whether we need
to do an over-the-air
update.
Browser
Page Container
Old Page Controller New Page Controller
Component Component
Component Component
Component Component
The Route asks toura.app.UI to place the Page Controller in the UI; in turn, toura.app.UI sets the content
attribute of the Page Container. If there is already a page on screen, the Page Container handles the animation
between the pages, and calls the destroy method of the old page, which results in the proper teardown of the old
page and its components.
Saturday, June 11, 2011
13. e secret to building large apps is
never build large apps. Break up your
applications into small pieces. en,
assemble those testable, bite-sized pieces
into your big application.
Justin Meyer
Saturday, June 11, 2011
21. page controllers set up components and
broker communication between them
ui components receive and render data;
announce and react to user interaction
app components manage app data and state
Saturday, June 11, 2011
31. myComponent.set()
to change state
myComponent.on<Evt>()
to announce state changes
myComponent.connect()
to listen for events & methods
myComponent.subscribe()
to react to published topics
dojo.publish()
to announce occurrences of app-wide interest
Saturday, June 11, 2011
32. Facilitating
development
Saturday, June 11, 2011
37. /**
* This file generates built dojo and toura files for
* use in production.
*/
dependencies = {
/*
* tell dojo to strip out ie-specific hacks
*/
webkitMobile : true,
/*
* this is a production build -- non-production code should be stripped
*/
production : true,
/*
* the name of the release and where to put it,
* relative to dojo-release-X.X.X-src/util/buildscripts/.
*/
releaseName : 'production',
/*
* strip all calls to console.log automatically
*/
stripConsole : 'all',
/*
* clean the existing release directory, then create a new release
Saturday, June 11, 2011 */
38. dojo.provide('toura.app.Phonegap.network');
toura.app.Phonegap.network = function(pg, device) {
var n = navigator;
return {
isReachable : function(domain) {
console.log('toura.app.Phonegap.network::isReachable()');
var dfd = new dojo.Deferred();
if (n && n.network && n.network.isReachable) {
console.log('using phonegap network');
n.network.isReachable(
domain || 'aws.amazon.com',
function(r) {
dfd.resolve(r !== NetworkStatus.NOT_REACHABLE);
},
function() {
console.log('failure on network is reachable');
dfd.resolve(false);
}
);
} else {
// resolve false if PhoneGap is present;
// network is not indeed reachable
if (pg) {
dfd.resolve(false);
Saturday, June 11, 2011
} else {
52. Feature: A User can view a node with the Video1 template and play each video
Scenario: Videos1: Setup
When I am on the home node
And I click "Plain Node"
And I click "Video Player"
Then I should see a Video Player
And I should see an Asset List
And I should see a Child Nodes list
And I should see "movie_for_demo" in the asset list
Scenario: Videos1: Controlling the video player from the asset list
When I am on the home node
And I click "Plain Node"
And I click "Video Player"
And I click "movie_for_demo" in the asset list
Then "video-29" should be selected in the asset list
And I should see "videos-29" in the video player
Scenario: Navigating to a specific video
When I am on the home node
And I go to the URL "#/node/node-372/videos/video-29"
Then I should see "videos-29" in the video player
And "video-29" should be selected in the asset list
Saturday, June 11, 2011
53. expect(c.queryInput).toBeDefined();
expect(c.i18n_placeholderText).toBeTruthy();
});
});
it("should provide an API for setting the search term", function() {
c = C();
c.set('searchTerm', term);
expect(c.queryInput.value).toBe(term);
});
it("should announce searches when the form is submitted with a term", function() {
var submitHandler;
toura.app.UI.hasTouch = false;
c = C();
c.set('searchTerm', term);
spyOn(c, 'search');
submitHandler = getEventHandlers(c, 'submit', c.searchForm)[0];
submitHandler(fakeEventObj);
expect(c.search).toHaveBeenCalledWith(term);
});
it("should not announce searches if the form is submitted with no term", function() {
var submitHandler;
toura.app.UI.hasTouch = false;
c = C();
c.set('searchTerm', '');
spyOn(c, 'search');
Saturday, June 11, 2011 submitHandler = getEventHandlers(c, 'submit', c.searchForm)[0];
54. It takes con dence to throw work
away ... When people rst start drawing,
they’re often reluctant to redo parts that
aren’t right ... they convince
themselves that the drawing is not
that bad, really — in fact, maybe they
meant it to look that way.
Paul Graham
Saturday, June 11, 2011