The document outlines 14 types of backlinks that can provide an SEO boost, including editorial backlinks, guest blogging backlinks, backlinks in business profiles, backlinks from webinars, and free-tool backlinks. It notes that search engines assess a site's value based on genuine, earned popularity rather than paid links or spammy practices like low-quality directory links. Certain backlinks like those from press releases not related to newsworthy announcements or irrelevant forums can harm SEO efforts.
HiddenBrains is an offshore web development company in india. We provide hiring services for php web development, asp.net web development, java programming, open source development, ecommerce solution, internet marketing and web design. Hire highly experienced web programmer and get customized web application development services in UK, Europe, USA.
The document provides 12 tips on Django best practices for development, deployment, and external tools. The tips include using virtualenv for isolated environments, managing dependencies with pip and requirements.txt, following a model-template-view framework, keeping views thin and logic in models/forms, and leveraging tools like Fabric, South, Celery, Redis, Sentry, and the Django debug toolbar. The document emphasizes following the Django philosophy and reusing existing apps when possible.
The document provides an overview of PHP (Hypertext Preprocessor), which is a widely used open-source scripting language used for web development. PHP code is executed on the server and generates HTML that is sent to the browser. PHP can connect to databases, collect form data, send/receive cookies, and more. It runs on many platforms and servers and is easy to learn. The document also covers basic PHP syntax, comments, variables, variable scope, and how to use global and static variables.
This document provides an overview and introduction to responsive design using Bootstrap. It defines responsive design as designs that work on any resolution and are user friendly. It explains Bootstrap's grid system and standard device resolutions for extra small, small, medium, and large devices. Key Bootstrap components are summarized like the grid system, Glyphicons, and JavaScript plugins. The basic differences between HTML, CSS, and Bootstrap are outlined. Finally, the main purposes of using Bootstrap are listed as decreasing costs and code while providing an excellent and understandable user experience.
This presentation is an introduction to the new features of
HTML5. The main elements of this document are:
* Brief history of HTML5
*The improvements
* Browser support
* Semantic elements
* Content Editable on pages
* Video Tag
* Canvas tag
* Local storage
* Geolocation API
* Offline applications
* Microdata
* Use cases
The document provides an overview of web development. It discusses how the web was created in 1989 by Tim Berners-Lee and the initial technologies of HTTP, HTML, and URLs. It then explains how a basic web application works with a browser connecting to a web server to request and receive HTML files and other resources. The document also summarizes key concepts in web development including front-end versus back-end code, common programming languages and frameworks, database usage, and standards that allow interoperability across systems.
jQuery is a popular JavaScript library that makes HTML document traversal and manipulation, event handling, animation, and Ajax interactions more simple. It works across browsers and allows developers to write less code using its easy-to-use API. The document discusses how jQuery works, including how to launch code on document ready, add and remove HTML classes, and use callbacks and functions when passing arguments to other functions.
This document discusses animation and multimedia on the web. It covers HTML tags for embedding images, audio, video and animation. Specific file formats are described, such as GIF, PNG and JPEG images, and animated GIFs. Methods for adding animation using JavaScript, Flash and HTML5 <video> are also summarized. The document provides guidance on optimizing images, audio and video for web delivery and playback across different browsers.
This document provides an introduction and overview of Joomla, an open-source content management system (CMS). It defines what open-source software and a CMS are, and explains some basic and additional features commonly found in CMS platforms. These include content repositories, dynamic page generation, workflow procedures, editing tools, syndication, personalization, caching, and more. The document also discusses different types of CMS like document management systems, digital asset management, and web content management. It compares static and dynamic websites, and static websites versus CMS websites. Finally, it provides guidelines for planning a website, choosing domain names, web hosting, and designing and developing effective websites.
This document provides an introduction to web development with the Django framework. It outlines Django's project structure, how it handles data with models, and its built-in admin interface. It also covers views, templates, forms, and generic views. Django allows defining models as Python classes to represent the database structure. It provides a production-ready admin interface to manage data. URLs are mapped to views, which can render templates to generate responses. Forms validate and display data. Generic views handle common tasks like displaying object lists.
Express is a web framework for Node.js that allows routing, middleware, templating and more. It is inspired by Sinatra and uses Connect as its middleware framework. Key features include routing, middleware support, template rendering with engines like Jade, and session handling with storage options. Errors can be handled via the app.error() method. Express provides a full-featured and easy to use web development framework for Node.js.
This document introduces Flask, a Python framework for building web applications. It explains that Flask uses Python decorators to define routes for the web server. Before writing a Flask application, the reader is instructed to install Python, pip, virtualenv, and Flask within a new project directory. The basics of writing a Flask application are then covered, including running the application and defining routes to return responses. The document ends with quiz questions and resources for learning more about Flask.
Django is a Python web framework that encourages rapid development and clean design. It includes an ORM, URL routing, templates, internationalization support, caching, authentication, and an admin interface. Django uses the MVT architecture, with Models handling data, Views returning responses, and Templates rendering output. Requests go through the URL dispatcher to Views, which can retrieve Model data and pass it to Templates to generate responses. The framework provides tools to define Models, URLs, Views and Templates to build applications.
Bootstrap is a popular front-end framework that provides responsive grid system, prebuilt components, and plugins for developing responsive mobile-first websites and web applications. It includes HTML and CSS templates for typography, forms, buttons, navigation and other interface components as well as optional JavaScript plugins. The document discusses Bootstrap's grid system which uses rows and columns to build layouts responsive across devices, and provides examples of basic grid structures for stacking columns horizontally and creating different layouts for mobile, tablet and desktop screens.
This document provides an overview of the Django web framework. It discusses Django's mission of encouraging rapid development and clean design. It demonstrates how to create a blog application with Django, including generating models, activating the admin interface, defining URLs and views, and using templates to display data. It also briefly compares Django to other frameworks like Ruby on Rails.
This document provides an overview of JavaScript and the DOM (Document Object Model) for a web programming course. It introduces JavaScript as a scripting language used to add interactivity to HTML pages. It describes what JavaScript can do, such as dynamically updating text and reacting to events. It also covers JavaScript syntax, variables, operators, functions, and objects. A significant portion of the document is devoted to explaining the DOM and how it allows JavaScript to access and modify HTML elements and structure programmatically.
This document provides information about the Google Chrome browser. It defines a web browser and lists some of the most popular browsers, including Internet Explorer, Firefox, Safari, Opera, and Google Chrome. It then focuses on Google Chrome, describing its features such as being portable, secure, allowing work offline, integrating with mobile devices and other Google programs. It provides usage statistics showing Chrome's increasing popularity. It also discusses related Google products and apps that can be used within Chrome, such as Google Drive, Google Hangouts, Google+, Google Voice, and Chromebooks.
This document discusses HTML5 capabilities and their implementation in Google Chrome. It describes new HTML5 features like <canvas>, <video>, local storage, and workers. It notes that these features allow web applications to have capabilities that previously required native apps. The document demonstrates several new HTML5 features and discusses ongoing work to further expand web application capabilities in areas like geolocation, 3D graphics, and additional APIs. It positions Google Chrome as a browser that provides native support for emerging HTML5 capabilities.
This document presents information about Google Chrome OS, including its introduction, specifications, features, security overview, software architecture, and comparison to Windows. Google Chrome OS is a Linux-based operating system developed by Google to be simple, fast, and secure. It is optimized for web applications and includes automatic updates. The key aspects are speed, simplicity, security, and its web-centric design. Pros include free of cost, virus protection, and fast boot time, while cons are reliance on internet and lack of support for some devices and file management.
The document summarizes a seminar about the Chrome OS. It discusses how Chrome OS is based on cloud computing and its architecture. Chrome OS is a fast, web-based operating system developed by Google. It has a minimal local data storage and is designed to run applications and data from the cloud. The seminar covered topics such as the introduction of Chrome OS, how it differs from traditional operating systems, and demonstrated how to install it in Windows 7.
Chrome extensions allow users to modify and customize their browser behavior through additional programs that can be installed from the Chrome Web Store. Extensions are built with web technologies like HTML, CSS, and JavaScript and have access to the Chrome API which allows them to interact with browser features and windows. The document provides examples of common extensions and outlines the basic skills and resources needed to develop browser extensions for Chrome.
Diapositivas descriptivas en que se destacan su comportamiento al medio expuesto, su tracción ante un peso especifico su en algunos casos su variedad de maderas tanto nativas como foráneas, su composición desde su médula hasta la corteza. los materiales en el cual se encuentra hoy en día en cada Home Center o Easy del país, dimensiones en el cual se comercializa, su distinta gama de materiales en el cual se utiliza con gran porcentaje la madera mas de 40 diapositivas describiendo todo esto.
Google announced an open source operating system called Chrome OS in November 2009. Based on the Linux family and Ubuntu, Chrome OS is designed to be used primarily for web applications with an emphasis on being always connected, instantly booting up, having security built in, and automatically receiving updates. Chrome notebooks boot up in about 10 seconds and resume from sleep instantly while providing access to web apps, the cloud, and integrated Wi-Fi and 3G connectivity.
La madera ha sido utilizada por miles de años para la construcción de herramientas, viviendas y arcos. Fue un material fundamental a medida que las selvas se extendieron al final de la era glacial, lo que permitió la construcción de balsas, trineos y las primeras ruedas. La madera también se usó para fabricar molinos de agua y en la escritura de códices. A pesar de su escasez, la madera se usó ampliamente en Egipto para templos, tumbas, barcos y construcciones.
El documento describe las diferentes partes de un tronco de árbol y la estructura de la madera. Identifica seis partes principales de un tronco cortado transversalmente: corteza, líber, albura, duramen, cambium y médula. También describe las propiedades físicas, mecánicas y térmicas de la madera, incluyendo su densidad, deformabilidad, dureza y resistencia.
El documento describe las propiedades y clasificaciones de la madera. La madera se obtiene del tronco de los árboles y se ha utilizado históricamente como combustible y material de construcción. Existen diferentes tipos de madera clasificados por su dureza, como maderas blandas, duras y maderas artificiales prefabricadas.
La madera proviene principalmente de dos grupos de árboles: angiospermas y gimnospermas. Se usa comúnmente en la construcción como material estructural, de cerramiento y en carpintería. Los tabiques de madera son paredes divisorias o revestimientos que usan tablas, tableros o paneles de madera. Se construyen usando piezas como las soleras, pies derechos, jambas y dinteles, unidas con conectores.
Develop a Chrome Extension in 2018 with the examples by vanilla JS and ReactJS.
- Why build a Chrome extension?
- Structure and Architecture
- Test and deploy your Chrome extension
- Chrome extension boilerplate by React
- Examples of Chrome extensions
This document discusses Chrome extensions and apps. It defines extensions as packages that extend browser functionality with minimal or no user interface, while apps run inside the browser with a dedicated user interface for rich user interaction. The key components of an extension include the manifest file, background pages, content scripts, and UI pages. Extensions are stored in user folders, while apps use a similar architecture to extensions but are standalone programs. The document provides links for further information and demonstrates creating a basic Chrome app.
This document discusses different web browser extensions. It covers Google Chrome extensions which use manifest.json files to define permissions and components. It also covers Opera extensions which use config.xml files and have index.html and background files. Mozilla extensions add functionality using XUL files and components. Safari extensions use JavaScript APIs and inject scripts/stylesheets. Overall the document provides an overview of how extensions work across various browsers.
Chrome Extension Step by step Guide .pptxgeekhouse.io
This presentation offers a comprehensive step-by-step guide to creating Chrome extensions, specifically tailored for middle school students. By emphasizing the importance of teaching HTML, CSS, and JavaScript in middle schools, we aim to inspire and empower young minds to explore the world of web development and create their own personalized browsing experiences. The presentation covers the basics of Chrome extension development, from planning the extension to publishing it on the Chrome Web Store, providing a clear roadmap for educators and students alike. Join us in fostering creativity, critical thinking, and problem-solving skills in middle school students as they embark on their journey to develop innovative Chrome extensions.
jQuery is a lightweight JavaScript library that makes it easier to use JavaScript on websites. It can be downloaded from jQuery.com or used from a content delivery network like Google or Microsoft to improve page loading speeds. The document provides code examples to dynamically add different form controls like textboxes, checkboxes, radio buttons, and buttons to a div on click events using jQuery.
This document defines basic terms related to web applications and HTTP protocols. It explains that a web application is delivered over the internet via a browser and HTML, dynamic pages can display different content than static pages. It also defines that HTTP is the set of rules for file transfers on the web and uses the TCP/IP protocol. The document discusses GET and POST methods for form data submission and that GET appends data to the URL while POST appends to the HTTP request body. It defines CGI as a standard for server-program interaction where requested files are executed as programs.
The document provides an overview of HTML5, including its history, new features compared to previous versions of HTML, and some of its key elements. It discusses the evolution of HTML over time from HTML 4.01 to HTML5. It also describes several new areas introduced in HTML5, such as video, audio, canvas, web storage, geolocation, new form elements and attributes. Finally, it briefly outlines some of the new semantic elements in HTML5 like header, nav, article, aside and footer.
An Introduction to Django Web FrameworkDavid Gibbons
Django is a Python web framework created in 2003 that encourages rapid development and clean, pragmatic design. It uses a Model-View-Controller architectural pattern with models representing database tables, views containing logic, and templates for user-facing content. Some key features include automatically generated admin interfaces, URL routing, forms handling, internationalization support, and various utilities like static file management. Django is highly customizable and promotes code reuse and modularity through applications that can be combined for a project. It is one of the most popular web frameworks and powers many major sites today.
This document provides instructions for a hands-on lab to build a basic BlackBerry application using the WebWorks platform. The lab walks through steps to set up the development environment, create a new project, add HTML, CSS, images and JavaScript, and enable navigation. It also discusses next steps like code signing, submitting to BlackBerry App World, and porting the application to PlayBook. The goal is to build a fully functional BlackBerry application using only web technologies without any Java code.
Firefox OS Workshop @ Serbia & Montenegro - TrainingJan Jongboom
This document summarizes the key points from a workshop on building Firefox OS applications. It discusses using AngularJS for data binding, making HTTP requests to consume third party APIs, taking advantage of phone sensors like the accelerometer, and strategies for making apps work offline through app caching and caching data requests. The workshop covers building a news reader app as an example to demonstrate these techniques.
This document provides an overview of Chrome extensions including what they are, why they are useful, who should use them, how to build one, and how to package and deploy an extension. Chrome extensions allow additional functionality and customization to the Chrome browser. They are easy to use, automatically update, and can sync across devices. The document demonstrates how to create a basic "Hello World" extension and covers extension structure, communication methods, common APIs, and the packaging/deployment process through the Chrome Web Store.
A talk about Chrome Extensions, why they’re so great for web hackers and how to build them.
Given at the Scandinavian Web Developer Conference on June 2nd, 2010 in Stockholm, Sweden.
Examples at http://files.11born.net/swdc/
A talk about browser extensions in Chrome & Safari, why they’re so great for web hackers and how to build them.
Given at JSConf EU on September 26th, 2010 in Berlin, Germany.
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
This document discusses modern techniques for developing for SharePoint in a cloud-friendly way by moving code off SharePoint servers. It covers remote event receivers, PowerShell with CSOM, and Microsoft's App Model Samples. Remote event receivers allow executing code in response to events. PowerShell and CSOM is a powerful combination. The App Model Samples provide helper libraries and examples for common tasks like uploading files, provisioning sites and managing terms. While Microsoft's optimal approach is debated, these techniques allow customizations to be deployed to Office 365.
The document discusses Google Analytics and the Chrome web browser. It provides an overview of Google Analytics, including what it is, why it's important for web developers, and how to get started. It also covers important things for developers to know when developing for Chrome, such as the user agent, V8 JavaScript engine, and developer tools. The document concludes by providing contact information and resources for learning more about Google Analytics and Chrome.
This document discusses the JavaScript library Prototype and how it can be used to build dynamic user interfaces with Ajax techniques. It provides an overview of Prototype's features for simplifying Ajax calls, enhancing DOM manipulation, adding visual effects, and debugging JavaScript across browsers. The document promotes Prototype as a way to focus on applications rather than browser bugs and contains links to documentation, extensions, and debugging tools to support Prototype development.
This document discusses the JavaScript library Prototype and how it can be used to build dynamic user interfaces with Ajax techniques. It provides an overview of Prototype's features for simplifying Ajax calls, enhancing DOM manipulation, adding visual effects, and debugging JavaScript across browsers. The document promotes Prototype as a way to focus on applications rather than browser bugs and contains links to documentation, extensions, and debugging tools to support Prototype development.
Build an AI/ML-driven image archive processing workflow: Image archive, analy...wesley chun
Google provides a diverse array of services to realize the ambition of solving real business problems, like constrained resources. An image archive & analysis plus report generation use-case can be realized with just GWS (Google Workspace) & GCP (Google Cloud) APIs. The principle of mixing-and-matching Google technologies is applicable to many other challenges faced by you, your organization, or your customers. These slides are from the half-hour presentation about this case study.
Choosing PHP for website development is also integrates with a number of open source applications like Joomla, Drupal, WordPress etc..PHP along with MY SQL is being used to construct some of the most powerful database
Orange is the new blue: How to port Chrome Extension to Firefox Extensionchaykaborya
These are slides from 4front meetup #8.
Video (rus): https://youtu.be/-i9nNmCCFpA
This presentation is the roadmap how to port Chrome Extension to Firefox Extension or ho to build cross-browser extension from scratch.
Similar to Google Chrome Extensions - DevFest09 (20)
Types of Weaving loom machine & it's technologyldtexsolbl
Welcome to the presentation on the types of weaving loom machines, brought to you by LD Texsol, a leading manufacturer of electronic Jacquard machines. Weaving looms are pivotal in textile production, enabling the interlacing of warp and weft threads to create diverse fabrics. Our exploration begins with traditional handlooms, which have been in use since ancient times, preserving artisanal craftsmanship. We then move to frame and pit looms, simple yet effective tools for small-scale and traditional weaving.
Advancing to modern industrial applications, we discuss power looms, the backbone of high-speed textile manufacturing. These looms, integral to LD Texsol's product range, offer unmatched productivity and consistent quality, essential for large-scale apparel, home textiles, and technical fabrics. Rapier looms, another modern marvel, use rapier rods for versatile and rapid weaving of complex patterns.
Next, we explore air and water jet looms, known for their efficiency in lightweight fabric production. LD Texsol's state-of-the-art electronic Jacquard machines exemplify technological advancements, enabling intricate designs and patterns with precision control. Lastly, we examine dobby looms, ideal for medium-complexity patterns and versatile fabric production.
This presentation will deepen your understanding of weaving looms, their applications, and the innovations LD Texsol brings to the textile industry. Join us as we weave through the history, technology, and future of textile production. Visit our website www.ldtexsol.com for more information.
Step-By-Step Process to Develop a Mobile App From Scratchsoftsuave
Learn the step-by-step process to develop a mobile app from scratch with our detailed guide. Discover essential steps, tools, and tips on how to build an app from scratch. Read more blogs at Soft Suave.
more: https://www.softsuave.com/blog/develop-a-mobile-app-from-scratch/
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...alexjohnson7307
In recent years, the integration of artificial intelligence (AI) in various sectors has revolutionized traditional practices, and healthcare is no exception. AI agents for healthcare have emerged as powerful tools, enhancing the efficiency, accuracy, and accessibility of medical services. This article explores the multifaceted role of AI agents in healthcare, shedding light on their applications, benefits, and the future they herald.
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseJimmy Lai
Maintaining code quality through effective testing becomes increasingly challenging as codebases expand and developer teams grow. In our rapidly expanding codebase, we encountered common obstacles such as increasing test suite execution time, slow test coverage reporting and delayed test startup. By leveraging innovative strategies using open-source tools, we achieved remarkable enhancements in testing efficiency and code quality.
As a result, in the past year, our test case volume increased by 8000, test coverage was elevated to 85%, and Continuous Integration (CI) test duration was maintained under 15 minute
How UiPath Discovery Suite supports identification of Agentic Process Automat...DianaGray10
📚 Understand the basics of the newly persona-based LLM-powered Agentic Process Automation and discover how existing UiPath Discovery Suite products like Communication Mining, Process Mining, and Task Mining can be leveraged to identify APA candidates.
Topics Covered:
💡 Idea Behind APA: Explore the innovative concept of Agentic Process Automation and its significance in modern workflows.
🔄 How APA is Different from RPA: Learn the key differences between Agentic Process Automation and Robotic Process Automation.
🚀 Discover the Advantages of APA: Uncover the unique benefits of implementing APA in your organization.
🔍 Identifying APA Candidates with UiPath Discovery Products: See how UiPath's Communication Mining, Process Mining, and Task Mining tools can help pinpoint potential APA candidates.
🔮 Discussion on Expected Future Impacts: Engage in a discussion on the potential future impacts of APA on various industries and business processes.
Enhance your knowledge on the forefront of automation technology and stay ahead with Agentic Process Automation. 🧠💼✨
Speakers:
Arun Kumar Asokan, Delivery Director (US) @ qBotica and UiPath MVP
Naveen Chatlapalli, Solution Architect @ Ashling Partners and UiPath MVP
Finetuning GenAI For Hacking and DefendingPriyanka Aash
Generative AI, particularly through the lens of large language models (LLMs), represents a transformative leap in artificial intelligence. With advancements that have fundamentally altered our approach to AI, understanding and leveraging these technologies is crucial for innovators and practitioners alike. This comprehensive exploration delves into the intricacies of GenAI, from its foundational principles and historical evolution to its practical applications in security and beyond.
LeadMagnet IQ Review: Unlock the Secret to Effortless Traffic and Leads.pdfSelfMade bd
Imagine being able to generate high-quality traffic and leads effortlessly. Sounds like a dream, right? Well, it’s not. It’s called LeadMagnet IQ, and it’s here to revolutionize your marketing efforts.
(Note: Download the paper about this software. After that, click on [Click for Instant Access] inside the paper, and it will take you to the sales page of the product.)
Mastering OnlyFans Clone App Development: Key Strategies for SuccessDavid Wilson
Dive into the critical elements of OnlyFans clone app development, from understanding user needs and designing engaging platforms to implementing robust monetization strategies and ensuring scalability. Discover how RichestSoft can guide you through the development process, offering expert insights and proven strategies to help you succeed in the competitive market of content monetization.
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...Zilliz
Enterprises have traditionally prioritized data quantity, assuming more is better for AI performance. However, a new reality is setting in: high-quality data, not just volume, is the key. This shift exposes a critical gap – many organizations struggle to understand their existing data and lack effective curation strategies and tools. This talk dives into these data challenges and explores the methods of automating data curation.
Communications Mining Series - Zero to Hero - Session 3DianaGray10
This is a continuation to previous session focused on Model usage and adapting for Analytics and Automation usecases. We will understand how to use the Model for automation usecase with a demo.
• Model Usage and Maintenance
• Analytics Vs Automation Usecases
• Demo of Model usage
• Q/A
kk vathada _digital transformation frameworks_2024.pdfKIRAN KV
I'm excited to share my latest presentation on digital transformation frameworks from industry leaders like PwC, Cognizant, Gartner, McKinsey, Capgemini, MIT, and DXO. These frameworks are crucial for driving innovation and success in today's digital age. Whether you're a consultant, director, or head of digital transformation, these insights are tailored to help you lead your organization to new heights.
🔍 Featured Frameworks:
PwC's Framework: Grounded in Industry 4.0 with a focus on data and analytics, and digitizing product and service offerings.
Cognizant's Framework: Enhancing customer experience, incorporating new pricing models, and leveraging customer insights.
Gartner's Framework: Emphasizing shared understanding, leadership, and support teams for digital excellence.
McKinsey's 4D Framework: Discover, Design, Deliver, and De-risk to navigate digital change effectively.
Capgemini's Framework: Focus on customer experience, operational excellence, and business model innovation.
MIT’s Framework: Customer experience, operational processes, business models, digital capabilities, and leadership culture.
DXO's Framework: Business model innovation, digital customer experience, and digital organization & process transformation.
It's your unstructured data: How to get your GenAI app to production (and spe...Zilliz
So you've successfully built a GenAI app POC for your company -- now comes the hard part: bringing it to production. Aparavi addresses the challenges of AI projects while addressing data privacy and PII. Our Service for RAG helps AI developers and data scientists to scale their app to 1000s to millions of users using corporate unstructured data. Aparavi’s AI Data Loader cleans, prepares and then loads only the relevant unstructured data for each AI project/app, enabling you to operationalize the creation of GenAI apps easily and accurately while giving you the time to focus on what you really want to do - building a great AI application with useful and relevant context. All within your environment and never having to share private corporate data with anyone - not even Aparavi.
4. Agenda
• Introduction to Extensions
o What Extensions Are
o Why You Should Work on Extensions
o When the Extension System Ships
• How to Build Extensions
o Technical Overview
o Step-by-Step Example
• Key Takeaways
• Q&A
6. What Extensions Are
• Programs that enhance Google Chrome's functionality
• Written in HTML, CSS, and JavaScript
• Integrated using a simple API
• Developed iteratively
7. What Extensions Are
• Installed instantly
• Update automatically
• Transparent about their capabilities
• Run in separate processes
9. Demo: Subscribe to a Feed
Displays a subscription button
when a page has an available feed.
10. Demo: Generate QR Codes
Turns URLs and other text into QR codes to
make them easy to transfer to mobile devices.
11. Why You Should Work on Extensions
• Part of an Important Platform
• Persistent Presence
• Source of Web Traffic
• Easy and Fun
12. When the Extension System Ships
• Chrome Dev Channel – available now
• Chrome Beta Channel – later this quarter, with a gallery
• Chrome Stable Channel – soon after
14. Structure of an Extension
Compressed directory containing:
– manifest file (manifest.json)
And one or more of these components:
– Browser Action or Page Action
– Content Script
– Background Page
– Other files (HTML, JS, etc.)
16. Overview of the Extension API
chrome is the top level object and exposes:
• chrome.extension.*
• chrome.browserAction.*
• chrome.pageAction.*
• chrome.bookmarks.*
• chrome.tabs.*
• chrome.windows.*
17. Other APIs
Extensions can also use:
• Standard JavaScript and DOM APIs
• XMLHttpRequest
• HTML 5 APIs
• Webkit APIs
• V8 APIs
• Bundled JS APIs libraries
20. Step Two
Display public tweets timeline in a tab
manifest.json:
"browser_action" : {
"popup": popup.html
},
"permissions": [
"tabs",
"http://twitter.com/*"
]
popup.html:
<a href="javascript:chrome.tabs.create(
{url:'http://twitter.com/public_timeline'});")>
Twitter</a>
21. Step Three
Retrieve public tweets with XHR and display in popup
popup.html:
// fetch public timeline from the server.
xhrRequest(
"http://twitter.com/statuses/public_timeline.json",
gotTweets);
....
tweets = JSON.parse(req.responseText);
....
for(i in tweets) {
user = tweets[i].user;
name = user.screen_name;
image_url = user.profile_image_url;
}
22. Step Four
Refactor code to use background processing
manifest.json:
"background_page": "background.html"
background.html:
// fetch tweets and update badge.
incoming = JSON.parse(req.responseText);
unread = unread + incoming.length;
chrome.browserAction.setBadgeText({text:""+unread});
chrome.browserAction.setBadgeBackgroundColor(
{color:[255,0,0,255]});
popup.html:
// get data from background page.
bg = chrome.extension.getBackgroundPage();
for (i in bg.tweets) {
user = bg.tweets[i].user;
23. Step Five
Authorize with Twitter and fetch private timeline
manifest.json:
"content_scripts": [{
"js": ["authDone.js"],
"matches": ["http://twitter.com/oauth/authorize"]
}]
authDone.js:
// injected content script looks for oauth_pin
pin = document.getElementById("oauth_pin");
// send the pin to the extension
port = chrome.extension.connect();
port.postMessage({"success": true, "pin": pin});
background.html:
// extension receives auth pin and logs into Twitter
chrome.self.onConnect.addListener(function(port) {
port.onMessage.addListener(function(data) {
oauthRequest("http://twitter.com/oauth/access_token",
{"oauth_verifier": data.pin}, gotAccessToken);
24. Key Takeaways
• Part of fast growing platform with global reach
• Permanent presence in the browser
• Small learning curve
• Low maintenance needs
• Easy to distribute
25. Developer Resources
• Documentation
http://code.google.com/chrome/extensions
• Blog
http://blog.chromium.org
• Discussion group
http://groups.google.com/group/chromium-extensions