JavascriptMVC is another client side web MVC framework based on jQuery. It has totally solution to build a web application. This slide will introduce basic features of JavascriptMVC3.2
You can see the video of this talk here: http://www.youtube.com/watch?v=PuNh2kp8Zt8
Our early attempts at doing client side rendering in tuenti.com brought us many performance problems, not only for the usual offenders (IE6 and IE7) but also for fast browsers like Chrome. We tried to solve most of those using a technology to render client side that ended up being faster on IE7 than Chrome, but still, things were not working. We had to scrape most of our homegrown framework and start from the beginning. We realized that the first thing we needed to do to use Javascript successfully in our thick client was to have a Javascript dependency management system. YUI came to our rescue. We also learned that in our case we would not be able to work only with client-side rendering, having server-side rendering was a must. That brings the problem of what template engine to use and whether to render server side with PHP or rather use Javascript and node so you can truly share templates between server and client. We will talk about the mistakes we made early on so you can learn from those, but also about technologies and methodologies that have (and have not) worked for us.
A talk on the React.js library, covering the two key principles of react: reusable components and statelessness in your UI. Also covers some internals of the virtual DOM.
Knockout is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model. Any time you have sections of UI that update dynamically (e.g., changing depending on the user’s actions or when an external data source changes), KO can help you implement it more simply and maintainably.
KO provides a complementary, high-level way to link a data model to a UI.
Slide deck presented during my session on "Mean Stack - An Overview" at JavaScript Meetup #6 on Saturday, September 24, 2016. The meetup was at Akamai Technologies, Bengaluru.
You can see the video of this talk here: http://www.youtube.com/watch?v=PuNh2kp8Zt8
Our early attempts at doing client side rendering in tuenti.com brought us many performance problems, not only for the usual offenders (IE6 and IE7) but also for fast browsers like Chrome. We tried to solve most of those using a technology to render client side that ended up being faster on IE7 than Chrome, but still, things were not working. We had to scrape most of our homegrown framework and start from the beginning. We realized that the first thing we needed to do to use Javascript successfully in our thick client was to have a Javascript dependency management system. YUI came to our rescue. We also learned that in our case we would not be able to work only with client-side rendering, having server-side rendering was a must. That brings the problem of what template engine to use and whether to render server side with PHP or rather use Javascript and node so you can truly share templates between server and client. We will talk about the mistakes we made early on so you can learn from those, but also about technologies and methodologies that have (and have not) worked for us.
A talk on the React.js library, covering the two key principles of react: reusable components and statelessness in your UI. Also covers some internals of the virtual DOM.
Knockout is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model. Any time you have sections of UI that update dynamically (e.g., changing depending on the user’s actions or when an external data source changes), KO can help you implement it more simply and maintainably.
KO provides a complementary, high-level way to link a data model to a UI.
Slide deck presented during my session on "Mean Stack - An Overview" at JavaScript Meetup #6 on Saturday, September 24, 2016. The meetup was at Akamai Technologies, Bengaluru.
Enterprise Java developers value reliability and stability, but what happens to your technology stack if you’re willing to take a risk? At jClarity we’re running production systems using HTML 5, AngularJS, Vert.x, Mongo, Groovy and deploying using Chef. Its been an interesting ride: some things worked really well and some things don’t.
Come along and find out what we’d recommend and what we’d avoid with hindsight. We’ll also talk about how we ended up with such a diverse stack and how to make technology choices in a fairer way. We’ve made the mistakes so you don’t have to!
Enterprise Java developers value reliability and stability, but what happens to your technology stack if you’re willing to take a risk? At jClarity we’re running production systems using HTML 5, AngularJS, Vert.x, Mongo, Groovy and deploying using Chef. Its been an interesting ride: some things worked really well and some things don’t.
Come along and find out what we’d recommend and what we’d avoid with hindsight. We’ll also talk about how we ended up with such a diverse stack and how to make technology choices in a fairer way. We’ve made the mistakes so you don’t have to!
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
We asked LinkedIn members worldwide about their levels of interest in the latest wave of technology: whether they’re using wearables, and whether they intend to buy self-driving cars and VR headsets as they become available. We asked them too about their attitudes to technology and to the growing role of Artificial Intelligence (AI) in the devices that they use. The answers were fascinating – and in many cases, surprising.
This SlideShare explores the full results of this study, including detailed market-by-market breakdowns of intention levels for each technology – and how attitudes change with age, location and seniority level. If you’re marketing a tech brand – or planning to use VR and wearables to reach a professional audience – then these are insights you won’t want to miss.
W prezentacji znajdziesz omówienie:
-organizację kodu i pracy w trochę większych projektach
-wykorzystanie narzędzi takich jak npm, gulp, sass, bower do automatyzacji zadań
-efektywną pracę w zespole z wykorzystaniem gita
-zasady tworzenia zwartego, łatwego w utrzymaniu kodu w oparciu o podejście SMACSS i BEM
-wzorce i podejście do tworzenia modularnego javascriptu
-przydatne narzędzia i biblioteki wraz z ich praktycznym zastosowaniem
-testowanie stron i aplikacji
-przyjrzymy się też nowej wersji Javascript: ES6/ES2015
You Can Work on the Web Patform! (GOSIM 2023)Igalia
Have you ever wanted to work on a web browser? Servo is an experimental web
engine written in Rust. Its small code base and friendly community mean that it
is an ideal project for those looking to dip their toes into the world of web
browser engineering.
In this, Martin Robinson covers the basics of building and running
Servo on your own computer. In addition, we'll take a tour of Servo's main
subsystems and see what kind of work goes into building them. Additionally,
we'll cover a variety of types of contributions to Servo, adapted to different
kinds of experience and specialization. By the end you should have the tools
you need to explore contributing yourself.
(c) GOSIM Workshop 2023
Sept 23-24
Grand Hyatt, Pudong, Shanghai
https://workshop2023.gosim.org/
https://www.bilibili.com/video/BV1Hw411r7Q6/
A guide designed to help you master the art of web development. The roadmap provides a comprehensive step-by-step guide to learn foundational web technologies like HTML, CSS, & JavaScript, advanced frameworks, and concepts required for modern web development. It aims to equip aspiring developers with the necessary resources and tools to excel in the ever-evolving world of web development. 💡
We'll go through the possible ways to bring technology agnostic microservice architecture to the frontend, review pros/cons of each of them. We also will check the "ultimate solution" that handles microservices with SSR in SPA manner.
This talk will be interesting for ones who have multiple teams working on the same frontend application.
JSFest 2019: Technology agnostic microservices at SPA frontendVlad Fedosov
We'll go through the possible ways to bring technology agnostic microservice architecture to the frontend, review pros/cons of each of them. We also will check the "ultimate solution" that handles microservices with SSR in SPA manner.
This talk will be interesting for ones who have multiple teams working on the same frontend application.
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
Whether you want to add some serious eye candy to your XPages Applications or just want to do more with less code, jQuery, the world’s most popular JavaScript framework can help you. Come to this webinar and find out how you can use some of the thousands of jQuery plugins, in harmony with Dojo, within your XPages applications to create a better experience not only for your users, but for you as a developer. In this webinar, we'll look at how jQuery works, how to add it to your XPages, and how a complete JavaScript beginner can take advantage of its power. We'll demonstrate many working examples -- and a sample database will be provided.
PyGrunn2013 High Performance Web Applications with TurboGearsAlessandro Molina
Users are getting more and more used to fast websites, a second or two is way too much before they leave the page. Since version 2.2 TurboGears has focused on providing more tools to create faster web applications and improving its speed constantly. The latest 2.3 version, the first to support Python3 is up to 4x faster than the previous and provides a great toolset to make fast pages. The talk will focus on showcasing the tools provided by the framework to increase speed of your web applications and provide some tips and tricks to get maximum speed from the framework itself.
Developing high performance and responsive web apps using web workerSuresh Patidar
A brief talk on web application performance and responsiveness. Why it is important and how web worker can help achieve it. It also covers a simple example implementing web workers.
Angular.JS is a modern Javascript MVC Framework that was built from the ground up by a team of Googlers, sponsored by Google itself. Angular.JS allows web developers a clear separation between logic and view, and greatly improves the ability to reuse the code by using things such as Directives, Services, Components.Angular.JS smart templating engine also allows to minimize the HTML code, During the presentation, you'll learn some medium-advanced usages of Angular.JS, how to use it, tips & tricks that will make your app amazing.
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.
Similar to JavascriptMVC: Another choice of web framework (20)
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
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.
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...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.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
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.
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.
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
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.
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.
2. About me
● 2010.01.04 ~ 2012.05.31
VIVOTEK Inc.,
software engineer
● 2012.06.01 ~ *
Mozilla Corp.,
Front end enigeer
● ~1.5year web application experience
● email: alegnadise@gmail.com
3. Life is a struggle
● Web application is hard to design and
implement
● Framework
○ Client side
■ YUI
■ extjs
■ backbone
■ knockout
■ ...
○ Server side
■ zk
■ RoR
■ shtml
■ ...
4. jQuery
● It is a library, not a framework.
● High performance to DOM scripting
● Easy to use with method chain
● http://jquery.com
● But, there's something we need it lacks..
5. What jQuery lack
● Cross plugin communication
● Ajax gateway
● Web application management
● js/css/html files/directories management
● jQuery,
will not teach you how to org your (huge)
web application.
6. Life is a struggle (CONT.)
● Just survey it.
○ Work hard every day.
7. ExtJS
● http://www.sencha.com/products/extjs/
● The initial version is forked from YUI2.
● PROS
○ Beautiful and uniform and windows-like UI styles
● CONS
○ Customization is hard to do.
○ NO MIT. It is a commercial product.
8. YUI
● http://developer.yahoo.com/yui/
● PROS
○ uniform UI styles
○ YQuery is suitable for cross-domain query.
○ Many F2E in Yahoo! will maintain it.
● CONS
○ Also customization.
9. backbone.js
● http://documentcloud.github.com/backbone/
● A MVC framework known to Mobile
● PROS
○ Resource more than javascripMVC!
● CONS
○ Just MVC layer. NO preset UI layer implementation
○ Documentation seems difficult to understand.
10. javascriptMVC
● http://javascriptmvc.com
● PROS
○ MIT license
○ Clear documentation
○ Nearly total solution to build a web application
● CONS
○ Less resource in Taiwan
○ No preset UI layer implementation
12. Why I choose javascriptMVC finally?
● clientside MVC - Meet my requirement on
embedded system.
● I just couldn't figure out backbone's
documentation and example.
13. Life is a struggle. (CONT.)
● But, I still spend serveral days to read whole
of its document and its forum.
● Try to understand why and how.
14. Nice features in javascriptMVC
● Clear models/views/controllers and class
inheritance
● CRUD Model layer
● Native event delegation
● View with Embedded js
● Fixture
● Library dependancy solution
● Build process
● Less CSS integration
● OpenAjax pubsub
● A basic application/project/product
18. CSS Super Language
● SASS/Compass
○ Mixin, Variable, Sprite helper, Functions, CSS3
Helpers
○ jsfiddle(http://jsfiddle.net) supports SASS!
● LESS
○ http://lesscss.org
○ Javascript evaluable
○ Less feature than SASS
○ Both server side(Rhino or Node.js) & client side
(Need compilation)
20. Data Struggle - I don't want to know
the details
● Backend service
○ CGI
○ fast cgi/wsgi
○ URL command
○ Dbus
○ Gconf
○ Web service
○ Tunnel message
○ JSON/XML
○ ...
21. CRUD
● Create/Read/Update/Delete is most common
for every kind of data access.
● Implement and wrapper your backend
service for CRUD.
○ DataModel.create()
○ DataModel.update()
○ DataModel.delete()
○ DataModel.read()
22. $.Model
● CRUD functions, overwrittable
● Event callback whenever data is
○ created
○ deleted
○ updated
○ and if you like, custom event on model is creatable.
● DOM embeddable
○ <div <%= model %></div>
● Validation in data model layer
23. Plugin/Widget/UI component
Struggle
● None loosely coupled.
● No cross function communication.
● DOM renew and event rebind
○ a long long string in your javascript like
■ $('#div').html('<div class="event"><span class="
name"></span><span class="icon"
></span></div>')
24. $.Controller features
● OpenAjax PubSub
○ Not jQuery.pubsub, but the similar thing they could
do.
● DOM manipulation is delegated to $.View()
● Native event delegation
○ jQuery.on()
○ 'button#save click': function(el, ev){
}
● FAST!
25. $.View features
● Seperate HTML from your javascript codes.
● Reusable, cachable
● Logic (javascript) in HTML
○ http://embeddedjs.com
○ <ul>
<% for(var i=0; i<supplies.length; i++) {%
>
<li><%= supplies[i] %></li>
<% } %>
</ul>
26. Library struggle - dependancy
● Case
○ jQuery.scrollbars(http://www.aplweb.co.uk/blog/js/scrollbars-v2/) depends on
the following libraries
■ jQuery
■ jQuery.event.drag
■ jQuery.resize
■ mousehold
■ mousewheel
○ So, hardcode in your <head>.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="http://threedubmedia.googlecode.com/files/jquery.event.drag-2.0.min.js"></script>
<script src="http://github.com/cowboy/jquery-resize/raw/v1.1/jquery.ba-resize.min.js"></script>
<script src="http://remysharp.com/demo/mousehold.js"></script>
<script src="https://raw.github.com/brandonaaron/jquery-mousewheel/master/jquery.mousewheel.js"></script>
27. Library struggle (CONT.)
● When your web application grows, more
and more external libraries is used.
● The result will be a non-maintainable
<head/>
28. StealJS
● Library dependancy solution
○ Part of stealJS is something like requireJS.
○ By concurrent ajax request.
○ steal('jquery').then
('jquery/ui','jquery/event/mousewheel').then('./lol.css',
function(){
//....
});
● Code generator
○ ./js jquery/templates/controller A.B.C
● Compile scripts
● (Customizable) build process
29. Ajax struggle
● You can do nothing without server. Do you?
● Multi ajax request solution
30. Deferred Model
● Since jQuery 1.5, ajax is implemented as a
deferred object.
● Models CRUD support deferred operation.
● $.fixture
○ Create a deferred instead of sending
XMLHttpRequest to the server, but to the function
you preferred.
31. Form operation
● Using formParams(), retrieve data from a
form is easier.
● You do not to collect value one by one input.
32. The end?
● No, you will face problems if you want to
start building a large web application using
javascriptMVC.
● So how could I organize my application?
33. Next Topic:
● Let's rock on JavascriptMVC
○ How to start coding with JavascriptMVC?
○ What JavascriptMVC document lacks
○ A framework based on JavascriptMVC
○ Some common rules.
○ An example