The document outlines the four stages of working with widgets in JavaScript: doubt, hate, begrudging appreciation, and love. It discusses common issues like accidental static fields, avoiding them with constructors, and using attribute maps to bind properties to DOM nodes. The document also covers more advanced topics like custom setters, memory leaks when widgets contain other widgets, and using the registry to detect leaks. Overall it provides an introduction to working with widgets in JavaScript and Dojo.
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.
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.
FxContainer is the ONLY IoC Container written in JavaFX and specifically developed to be used in JavaFX applications. It is powerful, lightweight and 75K in footprint and open source.
Project website: https://fxobjects.dev.java.net
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.
Practical and conceptual overview of Javascript prototype paradigm, how to use prototypes, how do they work, and how do they differ from classes, and why there are no real classes in Javascript.
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.
This presentation will give you a brief background to JavaScript, what it is and where it comes from. Then it will walk you through general pitfalls, best practices and more advanced topics such as object-orientation, scope and closures.
FxContainer is the ONLY IoC Container written in JavaFX and specifically developed to be used in JavaFX applications. It is powerful, lightweight and 75K in footprint and open source.
Project website: https://fxobjects.dev.java.net
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.
Practical and conceptual overview of Javascript prototype paradigm, how to use prototypes, how do they work, and how do they differ from classes, and why there are no real classes in Javascript.
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.
This presentation will give you a brief background to JavaScript, what it is and where it comes from. Then it will walk you through general pitfalls, best practices and more advanced topics such as object-orientation, scope and closures.
2014 REVISTA MEXICANA DE CIENCIAS GEOLÓGICAS - Study of Cedral Horses and the...Ruben LLumihucci
Se realizó un estudio detallado de un depósito único de huesos de caballo en Cedral, San Luis Potosí, centro de México. Se usaron caracteres morfológicos y morfométricos, así como análisis estadísticos bivariantes y multivariantes de los restos del cráneo y del esqueleto postcraneal y se compararon con restos de otras localidades del Pleistoceno mexicano. Se suministran las medidas del material estudiado así como la estimación de la masa corporal de cada una de las especies. Tres especies de caba- llo están representadas en varios depósitos del Pleistoceno superior de México, correspondientes a la edad de mamíferos Rancholabreana, los cuales pueden haber sido contemporáneos: un caballo de gran tamaño Equus mexicanus Hibbard, 1955 conocido desde la porción occidental de Estados Unidos de América hasta México y América Central; un caballo de tamaño mediano ampliamente distribuido Equus conversidens Owen, 1869 que se encuentra en la mayor parte de América del Norte y Central; y un nuevo caballo de pequeño tamaño Equus cedralensis sp. nov., conocido hasta ahora sólo en localidades mexicanas. El conocimiento de la presencia conjunta de estas tres especies en el Pleistoceno tardío de México (género Equus sp.) es importante para entender los modelos de diversidad y extinción en los primeros tiempos de la presencia humana en el continente. Adicionalmente, se proponen algunas inferencias ambientales, pero se requerirá de más estudios para ponerlas a prueba.
Palabras clave: taxonomía; Equus; especie nueva; Pleistoceno Tardío; México; Cedral.
Clarion Technologies is a leading technology solutions provider specializing in web, mobile and technology services. For more than a decade, Clarion has been innovation partner for world’s small and medium enterprises and pioneering start-ups. With a team of 400+ employees, Clarion has more than 1000 clients across North America and Europe. Our unique engagement model vEmployee helps our clients to leverage the best of outsourcing world backed up with High-quality resources and world-class technical supervision and infrastructure. Clarion Technologies focuses on next generation web technologies for Manufacturing, BFSI, Education, Construction, Healthcare, Telecom, Media and Retail industries.
An under development Guided Art Inquiry on Kathe Kollwitz's woodcut Die Freiwillige from her portfolio Krieg (@MoMA) to serve as an entry point for both a sources-based Contemporary History class and an Art Activity.
Please offer your comments!
La presentazione raccoglie il lavoro realizzato per il Centro estero delle Camere di Commercio abruzzesi, che ha misurato il peso dell'export nella produzione del Pil regionale.
[Ultracode Munich #4] Short introduction to the new Android build system incl...BeMyApp
By Thomas Endres & Andres Würl both Senior Consultant from TNG Technology Consulting https://www.tngtech.com
Join the Ultracode Munich meetup: http://www.meetup.com/Ultracode-Munich/
Moving to Dojo 1.7 and the path to 2.0James Thomas
With the upcoming 1.7 release, The Dojo Toolkit is beginning to introduce major structural and architectural changes in the toolkit, setting the path for their new major 2.0 release due in 2012.
These fundamental changes to the architecture and technologies underpinning the toolkit will dramatically change how we write Dojo applications in the future, bringing with it huge benefits in performance, cross-library compatibility and support for mobile platforms.
In this presentation, I'll be walking through these changes, explaining the benefits and how it'll impact developers. I'll also be providing migration tips to help you start taking advantage of these benefits in your application today, based upon my experience using Dojo 1.7 on the Watson project.
This talk will be technical in nature, aiming at developers and team leads who are using the toolkit in their products or on client engagements.
UK Symfony Meetup, November 2012
Original presentation: https://docs.google.com/presentation/pub?id=1PLcqTby6yqSbfWlMIDHknH852DU6DO6OAgQJOtSEdsg&start=false&loop=false&delayms=3000
The Bundle system is one of the greatest and most powerful features of Symfony2. Bundles contain all the files related to a single feature of your application: controllers, entities, event listeners, form types, Twig templates, etc. But how much of that actually needs to be inside a bundle?
In this talk we’ll take a bundle, containing all those different types of classes, configuration files and templates, and strip it down to the bare necessities. And I promise that after moving many files out of the bundle, everything still works.
While looking for ways to move things out of the bundle, I will discuss some of the more advanced features of bundle design, like prepending configuration, compiler passes and Doctrine mapping drivers. We will end with a very lean bundle, surrounded by a few highly reusable, maximally decoupled libraries.
Singletons in PHP - Why they are bad and how you can eliminate them from your...go_oh
While Singletons have become a Pattern-Non-Grata over the years, you still find it surprisingly often in PHP applications and frameworks. This talk will explain what the Singleton pattern is, how it works in PHP and why you should avoid it in your application.
Adding a modern twist to legacy web applicationsJeff Durta
Avoid misery of working with legacy code
We will see how you can add independent and isolated components to existing pages; pages that may be difficult to change
React and Flux allow you to make self-contained additions that handle their own data access/persistence
React-Native components are awesome. But you can also extend the library yourself by creating a native component, using a bridge between the platform API (iOS, Android) and Javascript.
Demo code is here: https://github.com/jgrancher/talk-rncc
jQuery with javascript training by Technnovation LabsPrasad Shende
At TLabs, we respect the demand of time & love to go along with it. Acknowledging the trends we serve neatly designed syllabus that explores jQuery covering the thorough fundamentals of JavaScript. Having a basic knowledge of JavaScript will go a long way in understanding, structuring, and debugging your code. After the completion of this course, you will be able to create plug-ins on top of the JavaScript library to create abstractions for low-level interaction and animation, advanced effects and high-level, theme-able widgets. The modular approach to the jQuery library allows the creation of powerful dynamic web pages and web applications as well.
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.
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.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
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.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
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
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.
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.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
14. Another Common Stumbling Point
• Resources and Modules
• The magic of dojo.require
• Register Module Path
• Custom modules when using Dojo from a CDN
Friday, September 16, 2011
15. You guys already knew this stuff, but....
• Don’t forget, you are JavaScript Astronauts
• You were loading modules when these
kids were in diapers
• Anticipating where newcomers will struggle
is the most powerful tool of the educator
Friday, September 16, 2011
16. Stage Three: Gem Mining
The Staples® of JavaScript toolkits.
“Dojo: Yeah, we’ve got that.”
Friday, September 16, 2011
17. My favorite gem: Attribute Maps
Bind widget properties to widget DOM Nodes.
Update property, DOM node gets updated automatically.
Friday, September 16, 2011
18. Widget Attribute Maps
<!-- In Widget Template HTML -->
<span data-dojo-attach-point="heroNode"></span>
// Specified as a property on your widget definition
attributeMap: {
hero: {
node: "heroNode",
type: "innerHTML"
}
}
// Calling 'set' on hero updates the innerHTML of 'heroNode'
myWidget.set("hero", "Larry Bird");
Friday, September 16, 2011
19. Widget Attribute Maps
// Also possible to bind to a CSS class or HTML attribute
attributeMap: {
// Bind to a CSS class
prop: {
node: "someNode",
type: "class"
},
// Bind to an HTML attribute
prop2: {
node: "imageNode",
type: "attribute",
attribute: "src"
}
}
Friday, September 16, 2011
20. More Complex Bindings: Custom Setters
Add function to your widget with naming convention:
_setPropertynameAttr
// Whenever widget.set(‘funkiness’, value) is called,
// this function is called
_setFunkinessAttr : function(brandNewFunk) {
// Do what needs to be done to update the widget
// to the new level of funkiness
}
Friday, September 16, 2011
21. One Gotcha...
_Widget has an attributeMap, don’t clobber it.
attributeMap:
dojo.delegate(dijit._Widget.prototype.attributeMap, {
// Attribute Map definition
})
Friday, September 16, 2011
22. Gotcha resolved in Dojo 1.7...
• attributeMap is deprecated, to be removed in Dojo 2.0.
• All property/DOM bindings can be specified via _set
convention. To specify an attributeMap relationship, return
an object instead of a function. Nice.
_setHeroAttr: { node: "heroNode", type: "innerHTML" }
Friday, September 16, 2011
23. Demo Time
Let’s see those Attribute Maps in action.
It’s me. Of course we’ll use a silly widget.
Friday, September 16, 2011
29. Memory Leaks
Historically, not a big deal for web apps.
That time is over.
Friday, September 16, 2011
30. Tony Gentilcore
Web Performance Expert at Google:
Awesome blog post about using
Chrome’s DevTools Heap Profiler:
http://gent.ilcore.com/2011/08/finding-memory-leaks.html
Friday, September 16, 2011
31. Widget Specific Leak
• Widgets within Widgets can leak
• Calling destroyRecursive() on a widget generally
cleans up child widgets
• Child widgets defined declaratively in HTML
template get cleaned up
• Widgets new’d programmatically do not get cleaned up
Friday, September 16, 2011
32. Example Leaky code
dojo.declare("poopin.PhijitTriumvirate")
<!-- Widget Template -->
<div>
<div data-dojo-attach-point="phijits"></div>
</div>
postCreate : function() {
for(var i = 0; i < 3; i++) {
var p = new poopin.Phijit(); // Leaky Phijit
dojo.place(p.domNode, this.phijits, "last");
}
}
Friday, September 16, 2011
33. Should I avoid doing this?
No! This is perfectly natural,
just make sure you clean up after yourself.
Friday, September 16, 2011
34. Clean up - Two techniques
Quick and Dirty:
• Append your programmatically created widgets to
this._supportingWidgets
• Internal, subject to change.
Better:
• Keep track of these widgets yourself, destroy them when
the parent is destroyed.
• http://higginsforpresident.net/2010/01/widgets-within-widgets/
Friday, September 16, 2011
35. Lightweight Leak Detection
dijit.registry to the rescue!
To detect leaks:
• Query the registry
• Perform interactions that should result in net zero widgets
•Query the registry again to produce a diff
Friday, September 16, 2011
36. dijit.registry Query code
// Query the registry
my_widgets = [];
dijit.registry.forEach(function(widget){
my_widgets.push(widget.id);
});
console.log("Widgets Captured (" + dijit.registry.length + ") in total)");
// Query it again, produce a Diff
var leakyWidgets = [];
dijit.registry.forEach(function(widget){
if(dojo.indexOf(my_widgets, widget.id) === -1) {
leakyWidgets.push(widget.declaredClass);
}
});
console.log(leakyWidgets.length + " potential leaks found");
console.log("Potential Leaks: " + leakyWidgets.join(", "));
Friday, September 16, 2011
38. Most Important Stage
• Stage Two: Kicking the Tires
• This is where we lose people
• If you care about Dojo, you should not be OK with this
Friday, September 16, 2011