La presentazione di Marco Casario per il Codemotion del 5 marzo 2011 a Roma http://www.codemotion.it/
Si parla già molto di HTML5 e delle nuove specifiche che il linguaggio nella sua ultima versione introduce. Ma è davvero il momento giusto di investire su questo standard e migrare le proprie applicazioni? A che punto sono i browsers con il supporto ad HTML5?Il Flash Player scomparirà?Quale sarà il video codec definitivo supportato? Le domande sono molte. Lo scopo di questo speech è quello di cominciare a dare delle risposte analizzando con esempi concreti lo stato attuale del linguaggio HTML5.
The document provides guidance on getting started with Apex code in Salesforce, including:
- How to add an Apex class and write triggers to automate processes like increasing fees.
- Context variables available in triggers to access field values.
- Tips for using the developer console to write, save and test Apex code and triggers.
- Examples of creating a custom object and Apex code to increase fees on that object by 2%.
Java is a general-purpose, class-based, object-oriented computer programming language that was designed by James Gosling at Sun Microsystems in 1995.
Key Highlights of Java:
Platform Independent: This allows programmers to develop applications that can run on any operating system.
Usability of Java: Java is most widely used programming language. It is present everywhere. It really doesn't matter which domain you are working in, you will surely come across Java sooner or later!
Open Source: The good news is that Java is available for free! All the development tools and the environment (JRE & JDK) that is used to develop Java applications are absolutely free of cost.
Android: Irrespective of the fact that you are tech savvy or not, most of us are badly bitten by the Android bug! Android is in great demand today and fortunately you need Java for Android development. Hence, the importance of Java has increased even more.
Hadoop: Hadoop is one of the most trending framework for processing Big Data. It has been designed and developed in Java.
In spite of having a tough competition on the server side from Microsoft and other companies, Java is doing extremely well on mobile platforms, thanks to Android! It has also been the primary language for Hadoop Developers.
Why does .net maui deserve your attention if you’re planning to use xamarin Moon Technolabs Pvt. Ltd.
1) .NET MAUI is a new cross-platform framework from Microsoft that allows developers to build applications for mobile and desktop using one shared codebase.
2) It uses C# and XAML to create apps that can run on iOS, Android, Windows, and macOS from a single project. Developers can share code, tests, and UI between platforms.
3) .NET MAUI provides features like advanced layout engines, data binding, and cross-platform graphics APIs to simplify development. It also allows accessing native device capabilities while sharing business logic across platforms.
This document provides information about creating and running object-oriented programs in C# using Visual Studio. It discusses the .NET framework and different types of applications that can be created. It then provides step-by-step instructions on creating a simple Windows forms application with a button and message box, and a basic web application with a "Hello World" header. It also discusses opening and editing pages, building and running projects, and customizing project properties.
The document provides an overview of web development. It discusses what a website is and how it is hosted. It then defines web development as the process of developing websites for the internet or intranets, ranging from simple static pages to complex web applications. The document outlines the main tasks involved in web development like design, content development, scripting, and security configuration. It also discusses some key aspects to consider before developing a website such as content, hosting, interactivity, and cross-browser compatibility.
RIAs are web applications that have features and functionality similar to desktop applications. They typically have a separate client and server component. Flex is a framework for developing RIAs using MXML and ActionScript. It allows building rich user interfaces, accessing data via web services, and deploying applications to the web or desktop. Flex applications consist of UI code in MXML, dynamic behavior in ActionScript, and data services. They are compiled to SWF files to run across browsers.
The document provides information about a training course on front-end web development with Reactjs offered by NordicCoder. It details what the course will cover including React basics, advanced React topics like data handling and the React ecosystem, and tools like Webpack. It also introduces the instructor, outlines the course schedule over 10 weeks, and describes the final project of building an online shopping cart.
Salesforce Lightning is Salesforce's next-generation development framework for building applications. It uses a component-based approach where reusable UI components can be developed using JavaScript on the client-side and Apex on the server-side. Key advantages of the Lightning framework include its focus on components, improved performance through JSON data exchange, and an event-driven architecture. Developers can also leverage many pre-built Lightning components and tools for visual development to more quickly build apps.
IBM Digital Workplace Hub with IBM Connections & TIMETOACT's XCC - Web Conten...TIMETOACT GROUP
This presentation is an overview of the problems of traditional intranets that use different platforms for communication, collaboration and applications and shows what an deeply integrated Intranet on the basis of IBM Connections & XCC - Web Content & Custom Apps Extension could look like.
Windows Workflow Foundation (WF) is a programming model and tools for quickly building workflow-enabled applications to model and support business processes. WF allows defining a series of discrete steps known as a workflow that describes the activities of people and software involved in a process. It has components like an activity model, workflow designer, and runtime engine. The workflow designer in Visual Studio allows graphically composing workflows from activities. WF can be used to build applications that implement business processes through workflows to control logic and page flow. It provides a foundation for composite applications to invoke services and knit them together. By including WF in Windows, Microsoft aims to make workflow technology mainstream for both human and system workflows.
This document discusses Mbaye Camara and his work as an Adobe Developer. It provides information on Flex and how it differs from Flash, examples of using Flex to build rich internet applications that access web services, and how Flex applications can be deployed to desktops using Adobe AIR. Examples of applications built with Flex and AIR are also mentioned.
Migrating to Salesforce Lightning - A Personal Experience Presented to EA For...Sam Garforth
Sam Garforth presented this at the Salesforce Enterprise Architect Forum on April 27th 2017. It covers the steps involved in migrating a packaged app from Salesforce classic to the new Lightning Experience user interface.
Special thanks to Daniel Egan. This presentation provides a deeper dive into Windows Phone 7 for developers. Topics cover how you navigate in your applicaton, how to access Web Services, use JSON to move data, and how to push notifications.
Qalcwise collaboration workspace intro unit 010 v20160126qalcwise
Short intro into Qalcwise Workspace UI. Might be helpful when using Qalcwise for the first time. Description of Qalcwise UI element. For more information check other units.
The document discusses frameworks in web development and provides examples using ASP.NET MVC framework. It defines what a framework is, explains the benefits of using frameworks like organizing code and faster development. It also describes the MVC pattern with model, view and controller components. An example application is built using ASP.NET MVC and Entity Framework to demonstrate how to create, build and run an MVC application.
This document provides an introduction to Visual Basic 2008, including:
1. A brief description of Visual Basic 2008 and its evolution from earlier versions of BASIC. It is now a fully object-oriented programming language.
2. An overview of the Visual Basic 2008 Integrated Development Environment and how to create a new project.
3. Instructions for creating a simple first program to demonstrate adding two numbers and displaying the result in a message box.
Deciding Between apps for SharePoint and SharePoint SolutionsDavid J Rosenthal
The document discusses factors to consider when deciding between building an app for SharePoint or a SharePoint solution. It covers the differences between apps and solutions in terms of object models, deployment, design patterns, and skill sets required. Key scenarios are also described, such as branding, line-of-business apps, and handling events, to help determine which option is better suited for a given need. The document aims to help readers make the right choice between apps and solutions based on their requirements and environment.
This book is crafted for beginner coders seeking to delve into the realm of web app development using Python, specifically focusing on deploying applications with Replit.
Whether you aim to create a profitable venture or simply desire to enhance your skills in building and deploying web applications, this guide is tailored for you.
Our web application will be a straightforward yet powerful AI writer tool aimed at helping Users get special copy for their businesses based on a big Ad Men using OpenAI's API.
Buy full book here:
https://www.amazon.com/dp/B0CSPV74XK
nothing to share right now here. kindly lkeave this section right away thankuuNitinSingh378454
The document provides information about full stack development and the role of HTML in web design. It defines full stack development as involving both front-end and back-end development. It describes the main components of front-end development as HTML, CSS, JavaScript, and Bootstrap. It then discusses the role of HTML, providing details on its structure and tags used to define different elements like headings, paragraphs, lists, etc. It also summarizes the different versions of HTML from 1.0 to the current HTML5.
The document provides technical information on various tools and applications from Customer FX for integrating with and extending SalesLogix, including:
1) The Customer FX Transformation Toolkit is a set of tools that address challenges of importing data into SalesLogix using Microsoft DTS for speed and accuracy.
2) The CFX SalesLogix SDK allows developing SalesLogix addons in .NET instead of VBScript for improved standards and practices.
3) Additional applications and tools are described for tasks like quoting, surveys, consuming data via RSS, and leveraging .NET in customizations and integrations.
HTML5- The Boosting Era of Web DevelopmentMobilePundits
HTML5 development is a developing field nowadays as a result of the tremendous assortment of mixture and local applications that might be made utilizing it. Truth be told, it is popular in a substantial go of divisions from financial services to retail to social insurance. Developers can think of single applications that offer a ton of helpful characteristics, being greatly unpredictable in nature. A confirmation to its prevalence is that it has surpassed Flash in fame.
Web developers should learn 7 new techniques to stay current:
1. CSS3 media queries allow defining styles for specific display sizes to create responsive designs.
2. REM units set font sizes relative to the root html element font size, avoiding compounding issues of EM units.
3. HTML5 offline caching allows caching pages for offline viewing by adding directives to the .htaccess file and linking the manifest file.
An introduction to HTML5 and its API's for the extream beginners those who already know what is HTML. Presentation also includes few features the CSS3.
This document outlines the features and implementation of a Home Management Web Application project. The project aims to create a web tool to help with home management tasks such as creating to-do lists, grocery reminders, bill payments, and storing contacts. It was developed using Angular framework, HTML, CSS, JavaScript, and hosted on WAMP server. The project follows a waterfall development process and addresses the need for an easy to use and free home management solution.
oin this hands-on tutorial for an introduction to Stitch (MongoDB's serverless platform) and Atlas (MongoDB's database-as-a-service). Upon completing this session, you will have created an Atlas cluster and created your first stitch app. You will have a clear picture of how to rapidly develop and iterate on apps using MongoDB. In 90 minutes we will walk through three real-world prototypes and leave you with a number of learns you can apply to your own projects. Come learn about DBaaS, database triggers, and serverless applications with MongoDB!
Requirements
Laptop
Wifi Connection
Chrome or Firefox Browser
Text Editor
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxldominion
The document discusses the Domino Facelift Toolkit, which uses AJAX and DXL techniques to improve the user interface of IBM Lotus Domino applications on the web. It describes how the toolkit can be used to "facelift" forms and views by making them more interactive and visually appealing without requiring extensive re-engineering. The presentation demonstrates how forms and views can be facelifted using code from the open source toolkit and encourages further development and customization of the toolkit.
What exactly is HTML5 and why is it such a big deal? Will it make a big difference to your business, and is it worth the investment?
HTML5 gives your website new interactive capabilities that allow your visitors to engage with you like never before. Instead of constant page reloads, cumbersome, slow scripts and crash-causing plugins on your site, your website will flow with the technological efficiency of HTML5 and your brand will look much more professional because of it.
The current status of html5 technology and standardWonsuk Lee
The document discusses the current status of HTML5 technology and standards. It provides an overview of recent developments in the industry regarding HTML5, compares HTML5 to other technologies like Flash and Silverlight, and highlights examples of Google using HTML5 in products like Gmail and new features enabled by HTML5. It also covers the browser support and standardization status of HTML5, including details about the W3C working groups developing HTML5 and related standards.
Hnd201 Building Ibm Lotus Domino Applications With Ajax Pluginsdominion
The document discusses the Domino Facelift Toolkit (DFL), an AJAX and DXL framework that improves the user interface of Domino applications. It demonstrates facelifting a view and a form, which involves using wizards to generate templates that call agents and JavaScript libraries. The templates contain DIV elements and script tags that dynamically populate and style the applications. The document also covers debugging techniques and ideas for extending the framework.
This document describes an online bus pass registration and renewal system developed using ASP.NET and SQL Server. The system allows passengers to register and renew their bus passes online using a credit card instead of having to go in person on a specific date and time. It is meant to save users time by avoiding long lines. Users first register with their details, which are verified by an administrator before the user can login and renew their pass for the month by paying with a credit card. The system has modules for account creation, authentication, pass renewal, and generating reports. It runs on Windows 7 using Visual Studio 2010 and is built to be more convenient than the previous manual system.
This document provides an overview of a mini project to build a to-do list application. It discusses the importance of to-do lists for staying organized and prioritizing tasks. A team of four students built the application using HTML, CSS, JavaScript, and GitHub for version control and deployment. Key features included adding, deleting, and marking items as complete, as well as categorizing tasks and rendering them on a calendar. Local storage was implemented to persist data in the browser. The application helps users track how they spend time and improve efficiency by managing tasks and daily routines.
Full Stack Web Development Basics to Know.pdfLaura Miller
Full stack web development is a process of developing a feature-rich website from scratch. Read the blog to know more about its all aspects and features.
Chrome Developer Tools - Pro Tips & TricksMars Devs
Whether you are a developer or not, Chrome developer tools bring something for everyone. Today, we’ll review Chrome Developer Tools and how to maximize them uniquely. Chrome Developer Tools is a developer tool built into the Chrome browser. Here’s what you should know!
Click here to know more: https://www.marsdevs.com/blogs/chrome-developer-tools-pro-tips-tricks
The document discusses web development and provides information on various topics related to it. It begins by defining web development and its key tasks. It then covers aspects like web design, content development, scripting, and security. It categorizes web development into front-end and back-end. It also discusses languages and tools used for web development like HTML, CSS, SQL, PHP, Bootstrap, and opportunities available in this field. It concludes by emphasizing the importance of web development for businesses and career opportunities for students interested in this area.
This document summarizes a MongoDB "Hands On" Stitch tutorial presentation. The presentation provided an overview of MongoDB Atlas and Stitch, demonstrated a basic blog tutorial to show how quickly applications can be built, and had attendees complete a hands-on tutorial creating an Atlas cluster and Stitch application. It discusses how the tutorial enabled developers at various companies and events.
Best Web Development Courses In KhannaAarushidutta
Web development involves building websites and deploying them on the web using scripting languages at both the server and client sides. The web development process includes planning, designing, gathering content, building, testing, and maintaining the website. Web development tools help developers test and debug websites. These tools allow inspecting HTML, CSS, and JavaScript and viewing the DOM tree. They also provide resources, network information, and suggestions to optimize page load time and responsiveness through profiling and auditing. Skills like understanding scripting, template editing, testing, and programming interaction are required to be a successful web developer.
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
Increased complexity makes it very hard and time-consuming to keep your software bug-free and secure. We introduce fuzz-testing as a method for automatically and continuously discovering vulnerabilities hidden in your code. The talk will explain how fuzzing works and how to integrate fuzz-testing into your Software Development Life Cycle to increase your code’s security.
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
It was 1993 when we decided to venture in a beat'em up game for Amiga. The Catalypse's success story pushed me and my comrade to create something astonishing for this incredible game machine... but things went harder, assumptions were slightly different, and italian competitors appeared out of nowhere... the project died in 1996. Story ended? Probably not...
Il Commodore 65 è un prototipo di personal computer che Commodore avrebbe dovuto mettere in commercio quale successore del Commodore 64. Purtroppo la sua realizzazione si fermò appunto allo stadio prototipale. Racconterò l'affascinante storia del suo sviluppo ed il perchè della soppressione del progetto ormai ad un passo dalla immissione in commercio.
Rivivere l'ebbrezza di progettare un vecchio computer o una consolle da bar è oggi possibile sfruttando le FPGA, ovvero logiche programmabili che consentono a chiunque di progettare il proprio hardware o di ricrearne uno del passato. In questa sessione si racconta come dal reverse engineering dell'hardware di vecchie glorie come il Commodore 64 e lo ZX Spectrum sia stato possibile farle rivivere attraverso tecnologie oggi alla portata di tutti.
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
There's a lot of talk about blockchain, but how does the technology behind it actually work? For developers, getting some hands-on experience is the fastest way to get familiair with new technologies. So let's build a blockchain, then! In this session, we're going to build one in plain old Java, and have it working in 40 minutes. We'll cover key concepts of a blockchain: transactions, blocks, mining, proof-of-work, and reaching consensus in the blockchain network. After this session, you'll have a better understanding of core aspects of blockchain technology.
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
When was the last time you were truly lost? Thanks to the maps and location technology in our phones, a whole generation has now grown up in a world where getting lost is truly a thing of the past. Location technology goes far beyond maps in the palm of our hand, however. In this talk, we will explore how a ridesharing app works. How do we discover our destination?How do we find the closest driver? How do we display this information on a map? How do we find the best route?To answer these questions,we will be learning about a variety of location APIs, including Maps, Positioning, Geocoding etc.
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
Eward Driehuis, SecureLink's research chief, will guide you through the bumpy ride we call the cyber threat landscape. As the industry has over a decade of experience of dealing with increasingly sophisticated attacks, you might be surprised to hear more attacks slip through the cracks than ever. From analyzing 20.000 of them in 2018, backed by a quarter of a million security events and over ten trillion data points, Eward will outline why this happens, how attacks are changing, and why it doesn't matter how neatly or securely you code.
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
IoT revolution is ended. Thanks to hardware improvement, building an intelligent ecosystem is easier than never before for both startups and large-scale enterprises. The real challenge is now to connect, process, store and analyze data: in the cloud, but also, at the edge. We’ll give a quick look on frameworks that aggregate dispersed devices data into a single global optimized system allowing to improve operational efficiency, to predict maintenance, to track asset in real-time, to secure cloud-connected devices and much more.
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
What if Virtual Reality glasses could transform your environment into a three-dimensional work of art in realtime in the style of a painting from Van Gogh? One of the many interesting developments in the field of Deep Learning is the so called "Style Transfer". It describes a possibility to create a patchwork (or pastiche) from two images. While one of these images defines the the artistic style of the result picture, the other one is used for extracting the image content. A team from TNG Technology Consulting managed to build an AI showcase using OpenCV and Tensorflow to realize such goggles.
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
The document summarizes some of the security issues with blockchain technology. It discusses how blockchain is not a "silver bullet" and does not inherently solve problems like privacy and security of smart devices. It outlines various application security issues with complex code, protocols, and difficulty of updates on blockchains. Concerns over data immutability and security of smart contracts are also covered. The document questions whether blockchain truly provides the level of decentralization and anonymity claimed, and outlines some impossibility results and limitations of existing approaches to achieving security and privacy in blockchain systems.
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
The document provides an overview of the HTTP network protocol in its early stages of development. It summarizes the initial IMP (Interface Message Processor) software used to establish connections and transmit messages over the ARPANET. It outlines some early requirements for host-to-host software to enable simple and advanced use between computer systems. The document also describes the initial host software specifications, including establishing connections, transmitting data efficiently, and implementing error checking between connected systems. This was one of the first documents to define core aspects of the early HTTP network protocol to enable information exchange over the fledgling internet.
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
Performance tests are not only an important instrument for understanding a system and its runtime environment. It is also essential in order to check stability and scalability – non-functional requirements that might be decisive for success. But won't my cloud hosting service scale for me as long as I can afford it? Yes, but… It only operates and scales resources. It won't automatically make your system fast, stable and scalable. This talk shows how such and comparable questions can be clarified with performance tests and how DevOps teams benefit from regular test practise.
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
Sascha will demonstrate the opportunities and challenges of Conversational AI learned from the practice. Both Technology and User Experience will be covered introducing a process finding micro-moments, writing happy paths, gathering intents, designing the conversational flow, and finally publishing on almost all channels including Voice Services and Chatbots. Valuable for enterprises, developers, and designers. All live on stage in just minutes and with almost no code.
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
A key challenge we face at Pacmed is quickly calibrating and deploying our tools for clinical decision support in different hospitals, where data formats may vary greatly. Using Intensive Care Units as a case study, I’ll delve into our scalable Python pipeline, which leverages Pandas’ split-apply-combine approach to perform complex feature engineering and automatic quality checks on large time-varying data, e.g. vital signs. I’ll show how we use the resulting flexible and interpretable dataframes to quickly (re)train our models to predict mortality, discharge, and medical complications.
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
Coolblue is a proud Dutch company, with a large internal development department; one that truly takes CI/CD to heart. Empowerment through automation is at the heart of these development teams, and with more than 1000 deployments a day, we think it's working out quite well. In this session, Pat Hermens (a Development Managers) will step you through what enables us to move so quickly, which tools we use, and most importantly, the mindset that is required to enable development teams to deliver at such a rapid pace.
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
Quantum computers can use all of the possible pathways generated by quantum decisions to solve problems that will forever remain intractable to classical compute power. As the mega players vie for quantum supremacy and Rigetti announces its $1M "quantum advantage" prize, we live in exciting times. IBM-Q and Microsoft Q# are two ways you can learn to program quantum computers so that you're ready when the quantum revolution comes. I'll demonstrate some quantum solutions to problems that will forever be out of reach of classical, including organic chemistry and large number factorisation.
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
Chinese food exploded across America in the early 20th century, rapidly adapting to local tastes while also spreading like wildfire. How was it able to spread so fast? The GY6 is a family of scooter engines that has achieved near total ubiquity in Europe. It is reliable and cheap to manufacture, and it's made in factories across China. How are these factories able to remain afloat? Chinese-American food and the GY6 are both riveting studies in product-market fit, and both are the product of a distributed open source-like development model. What lessons can we learn for open source software?
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
The design space has exploded in size within the last few years and Sketch is one of the most important milestones to represent the phenomenon. But behind the scenes of this growing reality there is a remote team that revolutionizes the design space all without leaving the home office. This talk will present how Sketch has grown to become a modern, product designer's tool.
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
Would you fly in a plane designed by a craftsman or would you prefer your aircraft to be designed by engineers? We are learning that science and empiricism works in software development, maybe now is the time to redefine what “Software Engineering” really means. Software isn't bridge-building, it is not car or aircraft development either, but then neither is Chemical Engineering. Engineering is different in different disciplines. Maybe it is time for us to begin thinking about retrieving the term "Software Engineering" maybe it is time to define what our "Engineering" discipline should be.
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
What is the job of a CTO and how does it change as a startup grows in size and scale? As a CTO, where should you spend your focus? As an engineer aspiring to be a CTO, what skills should you pursue? In this inspiring and personal talk, I describe my journey from early Red Hat engineer to CTO at Bloomon. I will share my view on what it means to be a CTO, and ultimately answer the question: Should the CTO be coding?
Choose our Linux Web Hosting for a seamless and successful online presencerajancomputerfbd
Our Linux Web Hosting plans offer unbeatable performance, security, and scalability, ensuring your website runs smoothly and efficiently.
Visit- https://onliveserver.com/linux-web-hosting/
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxSynapseIndia
Your comprehensive guide to RPA in healthcare for 2024. Explore the benefits, use cases, and emerging trends of robotic process automation. Understand the challenges and prepare for the future of healthcare automation
How Social Media Hackers Help You to See Your Wife's Message.pdfHackersList
In the modern digital era, social media platforms have become integral to our daily lives. These platforms, including Facebook, Instagram, WhatsApp, and Snapchat, offer countless ways to connect, share, and communicate.
Details of description part II: Describing images in practice - Tech Forum 2024BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
Best Practices for Effectively Running dbt in Airflow.pdfTatiana Al-Chueyr
As a popular open-source library for analytics engineering, dbt is often used in combination with Airflow. Orchestrating and executing dbt models as DAGs ensures an additional layer of control over tasks, observability, and provides a reliable, scalable environment to run dbt models.
This webinar will cover a step-by-step guide to Cosmos, an open source package from Astronomer that helps you easily run your dbt Core projects as Airflow DAGs and Task Groups, all with just a few lines of code. We’ll walk through:
- Standard ways of running dbt (and when to utilize other methods)
- How Cosmos can be used to run and visualize your dbt projects in Airflow
- Common challenges and how to address them, including performance, dependency conflicts, and more
- How running dbt projects in Airflow helps with cost optimization
Webinar given on 9 July 2024
Coordinate Systems in FME 101 - Webinar SlidesSafe Software
If you’ve ever had to analyze a map or GPS data, chances are you’ve encountered and even worked with coordinate systems. As historical data continually updates through GPS, understanding coordinate systems is increasingly crucial. However, not everyone knows why they exist or how to effectively use them for data-driven insights.
During this webinar, you’ll learn exactly what coordinate systems are and how you can use FME to maintain and transform your data’s coordinate systems in an easy-to-digest way, accurately representing the geographical space that it exists within. During this webinar, you will have the chance to:
- Enhance Your Understanding: Gain a clear overview of what coordinate systems are and their value
- Learn Practical Applications: Why we need datams and projections, plus units between coordinate systems
- Maximize with FME: Understand how FME handles coordinate systems, including a brief summary of the 3 main reprojectors
- Custom Coordinate Systems: Learn how to work with FME and coordinate systems beyond what is natively supported
- Look Ahead: Gain insights into where FME is headed with coordinate systems in the future
Don’t miss the opportunity to improve the value you receive from your coordinate system data, ultimately allowing you to streamline your data analysis and maximize your time. See you there!
Transcript: Details of description part II: Describing images in practice - T...BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and slides: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
Kief Morris rethinks the infrastructure code delivery lifecycle, advocating for a shift towards composable infrastructure systems. We should shift to designing around deployable components rather than code modules, use more useful levels of abstraction, and drive design and deployment from applications rather than bottom-up, monolithic architecture and delivery.
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfNeo4j
Presented at Gartner Data & Analytics, London Maty 2024. BT Group has used the Neo4j Graph Database to enable impressive digital transformation programs over the last 6 years. By re-imagining their operational support systems to adopt self-serve and data lead principles they have substantially reduced the number of applications and complexity of their operations. The result has been a substantial reduction in risk and costs while improving time to value, innovation, and process automation. Join this session to hear their story, the lessons they learned along the way and how their future innovation plans include the exploration of uses of EKG + Generative AI.
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionBert Blevins
Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.
Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data.
The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs.
Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!
Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.
The DealBook is our annual overview of the Ukrainian tech investment industry. This edition comprehensively covers the full year 2023 and the first deals of 2024.
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Chris Swan
Have you noticed the OpenSSF Scorecard badges on the official Dart and Flutter repos? It's Google's way of showing that they care about security. Practices such as pinning dependencies, branch protection, required reviews, continuous integration tests etc. are measured to provide a score and accompanying badge.
You can do the same for your projects, and this presentation will show you how, with an emphasis on the unique challenges that come up when working with Dart and Flutter.
The session will provide a walkthrough of the steps involved in securing a first repository, and then what it takes to repeat that process across an organization with multiple repos. It will also look at the ongoing maintenance involved once scorecards have been implemented, and how aspects of that maintenance can be better automated to minimize toil.
3. “Bringing Sexy Back to the Enterprise applications”
by a clever use of Rich Internet Applications and
Multimedia content.
Because better information workplaces:
make customers happier
improve the quality of work life for employees
4. In other words:
RIAs in enterprise environments dramatically
increase staff productivity and responsive
capacity
Multimedia contents add enhanced effectiveness
5. The technologies we use:
J2EE (Java, JSP, Hibernate, EJB3, Struts, Spring)
Ajax
Flash
Flex
AIR
Flash Media Server
6. Who can make it possible
J2EE Developers Flex/Flash Developers Creative UI Designers
7. Showcase
Comtaste Open Source Projects
Pantaste (http://code.google.com/p/pantaste/)
A library to create ActionScript-based personalized
start page or personal web portal much like iGoogle,
My Yahoo!, Netvibes etc
DAO-EXT (http://code.google.com/p/dao-ext/)
an Adobe AIR tool that allows developers to
automatically generate ActionScript Data Access
Objects (DAO) and Value Objects starting from a local
SQLite database.
9. Showcase
Google UK
We are working with an international team situated mostly in Paris
and London aimed to deliver tools as part of a high-profile project
used by all of Google‘s AdWords customers.
10. Showcase
Maggioli S.p.A.
Maggioli SpA is one of the largest Italian companies that
provide products and services for LPA, with a particular
focus on production and assistance for governmental
management software.
Maggioli immediately perceived the need to build
distributed applications (both resident and web-based) that
were more usable, interactive and rapid, which were in line
and often anticipated the general evolution of the user
base and the market in terms of user experience.
What we’ve done for them:
• Training
• Mentoring
• User Interface Design
11. Showcase
INPDAP
What we’ve
done for them:
Development, user
interface design and
deploying of a RIA
application to archive,
distribute, and search
for documents.
15. Showcase
UBI Bank Group
UBI Banca is the fifth largest Italian banking Group in terms of
branches with a market share of approximately 6% and a
significant presence in the wealthiest areas of the country.
Comtaste supported UBI to create the larget RIA in Europe to
offer more interactive banking services, and enhance the
timeliness and quality of banking services.
What we’ve done for them:
Development, training, user interface design and deploying.
16. Showcase
UBI Bank Group
UBI calculated the ROI measuring execution time and
number of clicks made by a user to perform an operation
(depositing a check on a c/a):
30. HTML 5 and the Semantic Web
The Semantic Web is not a separate Web but an extension of
the current one, in which information is given well-defined
meaning, better enabling computers and people to work in
cooperation.
Tim Berners-Lee
37. HTML5 Goals
HTML 5 is in the last call but it started in 2004
Define error handling (finally)
Move the language forward
Learn by others: integrate what has been done with the specs
If a browser-vendor is unwilling to participate in a feature, it's
dropped !
39. Modernizr: HTML5 Hero
Modernizr uses feature detection mechanic to establish to
determine what you can and cannot do in the current browser, and
Modernizr makes it convenient for you in a variety of ways:
It tests for over 20 next-generation features, all in a matter of
milliseconds;
It creates a JavaScript object (named Modernizr) that contains the
results of these tests as boolean properties;
It adds classes to the html element that explain precisely what
features are and are not natively supported
40. Modernizr: HTML5 Hero
To install Modernizr, download the file from this page. Then, on
your site‘s head tag, add a link to the file. For example:
<script src="js/modernizr-1.0.min.js"></script>
The second step is to include on your html tag a class of ―no-js‖:
<html class="no-js">
Why add this tag?
Because that will be the default state of the page. If JavaScript (js)
isn‘t on, then Modernizr won‘t work at all (and probably other features
of your site won‘t work either…), so it‘s good that we have a fallback
for that case.
41. Modernizr: HTML5 Hero
You can detect features using Modernizr in your JavaScript, using this
syntax:
if (Modernizr.geolocation) {
// whatever
}
42. Using the new <DOCTYPE>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Getting Started</title>
</head>
<body></body>
</html>
43. Char Encoding
HTML 4 approach:
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8">
HTML 5 simplifies this construct to the following:
<meta charset="utf-8">
44. No more DIVs
Many of the improvements to HTML center around replacing
common uses of the <div> tag with more semantically precise
commands such as the following:
<section>
<article>
<aside>
<hgroup>
<header>
<time>
<footer>
<nav>
<figure>
<figcaption>
<output>
<meter>
<wbr>
45. No more DIVs
The goal of implementing these commands is to minimize the
use of <div> so that it becomes a "tag of last resort" - used only
if no other tags are semantically appropriate
48. No more DIVs
<body>
<header>...</header>
<nav>...</nav>
<article>
<section>
...
</section>
</article>
<aside>...</aside>
<footer>...</footer>
</body>
49. Some JS for IE
<script type="text/javascript">
document.createElement('header');
document.createElement('nav');
document.createElement('article');
document.createElement('section');
document.createElement('footer');
</script>
But styling in Internet Explorer isn’t possible because IE handle
those tags as inline elements—they can’t have children.
50. Image container
<body>
<section>
<h1>About Star Trek</h1>
<p>Star Trek is an American science-fiction t.. bla bla bla</p>
<figure>
<img src="EstimatedTrekkerPopulation.jpg"
alt="5000% annual growth of trekker population">
<figcaption>
Growth in Star Trek Viewership, 1966 - 2009
</figcaption>
</figure>
</section>
52. Forms 2.0
HTML 5 forms introduce a new set of tools to make
form development easier and richer.
Here are some of the new form elements introduced
by HTML 5:
The keygen element
the output element
the progress element
the meter element
the email input type
53. Forms 2.0
the url input type
the date picker element
the time, datetime, month and week elements
the number input type
the search input type
the range input type
the tel input type
the color input type
several attributes: list, autofocus, placeholder, required,
multiple, pattern, autocomplete, min and max, and step
54. Forms 2.0
Even the grammar for the declaration of elements of
form changes with HTML 5. In fact, now you can
declare a form element on any point of the page, and
associate it to a form object by using the form
attribute of the element:
<form id=”myForm” />
<input type=”text” form=”myForm” />
55. Forms 2.0: the email type
The <input type=‖email‖> tag creates a form element
that expects to receive a valid email address from the
user. The form control obviously doesn‘t verify
whether or not the email address actually exists, but
only if the text the user inserts into the field has a
valid syntax.
<label for=email>Email</label>
<input id=email name=email type=email><br/>
57. Forms 2.0: The email type
For some of these devices, the browser is able to recognize the
new HTML 5 input types and changes the on-screen keyboard
to help users for that kind of input.
In fact, these devices show the virtual keyboard with the @ and
period symbols included on the primary screen when focusing
on the text input
58. Forms 2.0: The Spinner
HTML 5 helps developers by adding a spinner control to the tool
arsenal.
The spinner control is a text input control with up-down arrows.
The result is a single line text input that can be spun to display
each number in the text field
59. Forms 2.0: The Spinner
Some attributes allow you to customize the control. These
properties allow you to set a maximum and minimum value, and
the unit to use for the increase and decrease functions.
<label>Choose your magic number: </label>
<input type="number" min="0" max="100" step="1" value="1">
60. Forms 2.0: The Spinner
There are a couple of interesting methods that can be used by
developers with Javascript for the number input type.
stepUp(n): it increases the field‘s value by n.
stepDown(n): it decreases the field‘s value by n.
valueAsNumber: it returns the value of the element,
interpreted as a number
61. Forms 2.0: The Spinner
The browsers in some tablets however
behave differently.
The Figure shows how the browser
used by the 7-inch Samsung Galaxy Tab,
based on Android 2.2, renders the input
control as a simple text input.
However it dynamically displays the
numeric on-screen keyboard
62. Forms 2.0: Sending multiple files
HTML 5, and with the addition of an attribute, makes possible to
select and send more than one file:
<input type="file" multiple>
This attribute is supported by Safari, Chrome, Firefox, Internet
Explorer and Opera.
64. Forms 2.0: Sending multiple files
Some programming languages, such as PHP for example,
require you to add brackets to the name attribute of the tag to
send multiple files:
<input name='filesUploaded[ ]' type=file multiple>
By doing so, PHP will construct an array data type, which will contain
the uploaded files on the server. If you don‘t specify the brackets, the
programming language would process the files in order and only
provide the last file in your script.
65. Microdata
Microdata enables you to further structure your
content by defining nested groups of name-value
pairs. This can be useful in facilitating the automated
parsing of a document.
66. Microdata
Potential uses for microdata include the following:
• Mark up the date of an event, so a browser can automatically
offer to add it to a visitor’s calendar.
• Mark up your product information so that a consumer can easily
perform a side-by-side comparison
• Mark up your contact information, so a browser can automatically
offer to add it to a visitor’s address book.
• Mark up your resume, so that when you use a site like LinkedIn,
you can just point it at your resume page and it can automatically
extract all the information that it needs.
68. Microdata
It is relatively straightforward to define microdata as it utilizes
only two tag attributes:
• Use the itemscope attribute to define a data record
• Use the itemprop attribute to define each data field
70. Microdata
Using microdata usually requires that you build a specification for how
your data objects will be represented. This process is analogous to building
a document type definition (DTD) for XML or defining a data table in an
SQL database. The vocabulary that you define consists of specific property
Names.
See the Google's project about microdata:
http://www.data-vocabulary.org/
71. Microdata
Implementing microdata may make your site more "Google Friendly" in
the future. Google has publically stated that they will recognize specific
data types for the following:
• Your business listing
• Events
• People
• Review Ratings
• Products
• Recipes
• Reviews
• Breadcrumb Links
72. Microdata: custom data
HTML 5 introduces custom data attributes. These are name-value pair
combinations that can be added to any HTML tag and then subsequently
referenced through JavaScript. They have no effect on the visual output of
an element.
The W3C specification states that:
• Custom data attributes are intended to store custom data private to the
page or application, for which there are no more appropriate attributes
or elements.
• These attributes are not intended for use by software that is
independent of the site that uses the attributes.
• Every HTML element may have any number of custom data attributes
specified, with any value
73. Microdata:custom data
Custom data attributes are prefixed with "data-" which ensures they will be
ignored by user agents for rendering purposes.
<h1>Contact List</h1>
<div class="contact"
data-firstname="Marco"
data-lastname="Casario"
data-email="m.casario@comtaste.com"
data-position="CTO">
Marco Casario<br />
CTO Comtaste
</div>
74. Video
HTML 5, publishing a video in a web page has become a truly simple
operation.
All we have to do is declare this markup in the web page, specify the
video to load, and the browser will do the rest (obviously if it supports
the video element):
<video src="your_video.ogg" />
75. Video
Other properties that are supported by the video tag are:
preload: tells the browser to preload the video content while the page is being
loading. This way the user won‘t have to wait for the video to load when playing the
video.
autoplay: tells the browser to play the video automatically as soon as it's available.
You need to be careful with this attribute because you aren‘t always sure that the user
will want to use the video. This is especially true if the user is connected via a mobile
device, which happens more and more frequently, and the use of bandwidth is more
expensive.
loop: re-executes the video as soon as it ends.
controls: if it is specified it tells the browser to display a built-in set of controls such
as play, stop, pause and volume.
poster: specifies an image file that the user agent can show when no video data is
available.
78. Video and mobile devices
If you use the poster attribute, iOS will ignore the video element. Apple
has declared that this bug has been fixed in iOS 4.0
iOS only supports the H.264 format. If you use the <source> tag it will
only recognize the first video format.
Android devices, on the other hand, don‘t support the native controls
of the browser, and will therefore ignore them. Also, the operating
system will get a bit confused on the type attribute, which is used to
specify the video container.
79. Video
Since different browsers support different video formats it is now
incumbent upon you to supply three different video files in order to support
the broadest range of user agents.
Typically this involves making the following files available:
• An .ogg file to support Firefox and Chrome
• An MP4 file to support Safari
• An FLV file to support non-HTML 5 compatible user agents
80. Video Sources
To enable the browser to understand which video format it
needs to load, you can use the source element as follows:
<video controls autoplay>
<source src="comtaste_showreel.ogv">
<source src="comtaste_showreel .mp4">
Sorry, your browser does not support the Video element
</video>
81. Video: HTML5 Media
HTML5media project http://code.google.com/p/html5media.
This project detects the dual support of the video tag and of the video
formats by using a an HTML5 multimedia player.
It supports both H.264 (mp4) and Theora (ogy) formats.
If the browser doesn‘t support the HTML5 video tag, it uses Adobe
Flash Player to provide the same functions of the original video.
This is why we use the Flowplayer Javascript library
(http://flowplayer.org).
82. Video
To enable the HTML5 video tag in all main browsers, all you have to
do is recall the jQuery library and the script in the HEAD of the
document:
<script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></
script>
<script
src="http://html5media.googlecode.com/svn/trunk/src/jquery.html5med
ia.min.js"></script>
Then you can insert the video in an HTML page with the following
code:
<video src="video.mp4" autoplay autobuffer></video>
83. Video controls
It‘s simple to insert a video control in a video content. In fact there is a
controls attribute of the <video> tag that takes advantage of the
browser‘s built-in controls.
All you need to de is specify the attribute in the tag to show the
controllers on the video:
<video width="640" height="360" src="comtaste_showreel.mp4"
controls />
Obviously, every browser will use its own graphic to design the video
controls.
85. Full screen video
You will not be able to launch a video full-screen as the HTML 5 specification
clearly states:
User agents should not provide a public API to cause videos to be shown
full-screen. A script, combined with a carefully crafted video file, could
trick the user into thinking a system-modal dialog had been shown, and
prompt the user for a password. There is also the danger of "mere"
annoyance, with pages launching full-screen videos when links are clicked
or pages navigated. Instead, user-agent-specific interface features may be
provided to easily allow the user to obtain a full-screen playback mode.
86. Full screen video
Safari supports it through webkitEnterFullscreen:
video.webkitEnterFullscreen();
Chrome should support it since it's WebKit also, but errors out.
Firefox said they're coming out with their own version of fullscreen which will
allow any element to go to fullscreen. e.g. Canvas
Opera says they'll support it in a later release.
Since users want it, and every browser is going to support it, the spec will
change
87. Audio
As with the <video> tag, and as evidenced by the following table, you will
need to use the <source> tag and supply multiple versions of the same
media in order to be compatible with all HTML 5 browsers.
88. Canvas
The canvas element is a rectangular area that you can add in your
HTML5 page, and it offers a wide range of graphic possibilities as
you can control every pixel of it through its drawing 2D API.
In itslef the canvas has no drawing abilities of its own and
everything you will draw in it will be drawn programmatically by
using the javascript language.
89. Canvas
Setting the basis and background to be able to draw in htlm5 is
pretty straightforward. You just have to define a canvas element,
The canvas tag is really simple and has only 3 attributes :
width ,height,in pixels, and ‗id‘ to identifiy in which canvas we ll
draw in.
<canvas id=‖canvasID‖ width=‖300‖ height=‖200‖></canvas>
90. Canvas
Your <canvas> is initially empty, a plain area so ,except if you put a
border or background color on it through css , it won‘t appear on
the page before you draw anything inside it. In fact a canvas is a
plain rectangle which will constitute the environment where you will
be able to draw graphics, make animations etc.
<canvas id=‖myCanvas‖ width=‖300‖ height=‖200‖
stye=”border:solid 1px #ccc;‖></canvas>
91. Canvas
Once the canvas is created the first thing you need is to have
access to it. And you‘ll do that like with any other element of the
Document Object Model :
var myCanvas=document.getElementById(―canvasID‖ );
You can then access the canvas rendering context which really
provides the access to the drawing api and its methods.
92. Canvas Type of Context
You can then access the canvas rendering context which really
provides the access to the drawing api and its methods. To retrieve
the context object, the canvas element has the DOM method
getContext(), which has only one parameter: the type of context.
var context=myCanvas.getContext(‗2d‘);
At the time of writing the 2d context , standing for 2 dimensional, is the only one
available .A 3d context starts to be available but only on few browsers and in their beta
version, but we can fairly expect that this will evolve over the coming years. However
we will see only the 2d’s for now.
93. Canvas
If the canvas isn‘t supported the canvas object won‘t be able to call
the getContext() method and it will just a return an undefined value.
Then you‘ll just use the JavaScript double negative trick to coerce
the returned value into a Boolean (true or false) :
return !!document.createElement("canvas").getContext;
if it‘s true it means that the context is defined and that the canvas
is supported, otherwise it isn‘t.
94. Canvas Contexts
You can have several <canvas> elements on the same page but you
can have only one context per canvas
<script type="text/javascript" language="javascript">
var canvas=document.getElementById(‗myCanvas‘);
var context = canvas.getContext("2d");
another_context= canvas.getContext("2d");
</script>
The first context variable will now return null and you have access to
the canvas context through the another_context variable.
95. Canvas Mode Renderer
One important point to understand is that the Canvas uses an
immediate mode renderer. This means that when you call a method to
draw in the Canvas the browser will immediately render that change
before moving on to the next line of code.
This implies that whenever you want to change anything in your
canvas, you‘ll have to re-issue all the drawing commands used on that
canvas as well even if the change affected only one element.
96. Canvas Mode Renderer
This being said the Canvas provides two methods to let you store and
reset the state of your canvas at any point (the canvas drawing state
being a snapshot of all the styles, clipping and transformations values
that have been applied)
save() : will save the current style, clipping and transformation
values.
restore() : will reset the style and transformation values to what they
were was when you called the save() method for the last time on your
context. If you haven't saved anything, then this method will just do
nothing.
97. Canvas
Once you have a pointer to your canvas element you can invoke a
number of methods and properties that fall into the following
categories:
• Line Drawing
• Text Drawing
• Image placement
• Transformation
• Undo / Redo Drawing States
• Converting the canvas to an image (rasterization)
98. Canvas
To have a complete list and overview of the 2D context API
methods available you might want to refer to this useful canvas 2d
context cheat sheet available here:
http://www.nihilogic.dk/labs/canvas_sheet/HTML5_Canvas_Cheat_
Sheet.pdf
100. Communicating using Web Socket
Unlike HTTP connections which are severed after a file has
completed downloading, web sockets establish a persistent
connection to the server thereby enabling near-instantaneous
browser-server communications.
One of the key advantages to using web sockets is that a browser
can respond to data that was initiated by the server (―push‖)
whereas AJAX protocols all rely on such communications
originating from the client (usually at a predefined polling interval).
101. Communicating using Web Socket
Websocket communications are full-duplex – the browser and
server can send and receive data simultaneously.
Note, however, that only plain text may be transmitted. Since
binary data is not yet supported in the API you will need to encode
abstract data types in JSON format prior to transmission.
102. Communicating using Web Socket
The web socket protocol defines two new URI schemes:
ws: and wss:
For unencrypted and encrypted transmission.
You may communicate via websockets via any valid TCP port –
including sharing ports 80/443 with your HTTP server.
On the client, the WebSocket object is supported by Firefox 4,
Google Chrome 4, Opera 10.70 and Safari 5.
103. Communicating using Web Socket
You can open a web socket connection by using the WebSocket
constructor as indicated below:
objSocket = new WebSocket("ws://127.0.0.1:1225");
In this example, 127.0.0.1 is the ip address of your server and
1225 is the TCP port that is listening for web socket traffic.
104. Communicating using Web Socket
Since web socket connections are asynchronous you should also define the
following methods:
objSocket.onopen = function(event) {
alert("Connected to Server");
{
objSocket.onclose = function(event) {
alert("connection terminated");
{
objSocket.onerror = function(event) {
alert("An error occurred");
{
objSocket.onmessage = function(event) {
/* decode data in JSON format from server */
var stData = eval('(' + event.data + ')'); }
105. Communicating using Web Socket
You can send data to the server using the send() method as
indicated by the following code snippet:
objSocket = new WebSocket("ws://127.0.0.1:1225");
objSocket.onopen = function(event) {
objSocket.send("We have liftoff"); }
Note that the send() method may only transmit a text string. In
order to transmit a complex data structure in JavaScript you will
need to stringify it.
Note that a JSON parser and JSON stringifier are available at the following
URL: http://www.json.org/json2.js
106. Drag & Drop
Drag and drop is supported by Firefox 3.6, Google Chrome 7, IE 8,
and Safari 5.
107. Drag & Drop
Making an element draggable is a two step process. First, you
must give the element a draggable attribute.
You must also develop an event listener for ondragstart that
typically verifies that a text selection is not being dragged and
stores data in the dataTransfer object.
108. Drag & Drop
Look at thefollowing code example:
<script>
function drag(target, e) {
e.dataTransfer.setData('text', target.id);
{
</script>
<img
src="../images/steak.jpg"
width="400"
height="339"
id="steak"
draggable="true"
ondragstart="drag(this, event)">
109. Drag & Drop
The following example defines a <div> element as a DROP TARGET for
the draggable images defined in the prior code sample:
<script>
function drop(target, e) {
var id = e.dataTransfer.getData('Text');
target.appendChild(document.getElementById(id));
e.preventDefault();
return false; }
</script>
<div id="droparea"
ondrop="drop(this, event)"
ondragenter="return false"
ondragover="return false"></div>
110. Storing Data
HTML 4 provided very limited resources (cookies) for storing data on the
user's local machine. HTML 5 completely changes the game by adding
support for the following mechanisms:
• Web Storage for storing simple strings
http://dev.w3.org/html5/webstorage/
• Web SQL Database for storing structured data
http://dev.w3.org/html5/webdatabase/
• Application Caching for storing an HTML page locally, ensuring that
content can be accessed even if http service is interrupted.
http://www.w3.org/TR/offline-webapps/