Yahoo! Blueprint is an open mobile platform for building rich mobile applications and sites. It uses a lightweight XML language called Blueprint that allows declarative programming without scripting. Developers can create Blueprint widgets, apps, and sites that work across many mobile devices and platforms. The document provides an overview of Blueprint and walks through the steps to develop, test, package and publish a mobile widget using the Blueprint platform.
The RPG Dude on Open Display File Technology for your IBM i - Drag & Drop Ref...looksoftware
RPG is a time tested development language. Open Access for RPG is supported by IBM and IBM i as an integral component to expanding business value and success. looksoftware and RPG Pioneer Pascal Polverini amongst other platform experts have developed Open Display File Technology to power your mobile and application modernization efforts on IBM i. Navigate through the DB
and Drag & Drop fields to directly design fields with their definition and also label onto the display in this episode.
A simple way to get rid of common mental afflictions using brainwave entrainment technology to beat stress, depression, insomnia and to enhance intelligence, creativity, concentration among others.
The RPG Dude on Open Display File Technology for your IBM i - Drag & Drop Ref...looksoftware
RPG is a time tested development language. Open Access for RPG is supported by IBM and IBM i as an integral component to expanding business value and success. looksoftware and RPG Pioneer Pascal Polverini amongst other platform experts have developed Open Display File Technology to power your mobile and application modernization efforts on IBM i. Navigate through the DB
and Drag & Drop fields to directly design fields with their definition and also label onto the display in this episode.
A simple way to get rid of common mental afflictions using brainwave entrainment technology to beat stress, depression, insomnia and to enhance intelligence, creativity, concentration among others.
Flutter App Development- Why Should You Choose It .Techugo
Flutter is a portable UI platform that lets you create native-like apps for mobile, desktop and web.
It can be used from a single codebase. It’s based on the Dart programming language and includes Cupertino and Material Design widgets. As a result, flutter developers can create stunning UI that feels and looks native. It works on all platforms regardless of whether you only use one codebase.
Flutter is the only framework to offer a mobile SDK, without the need for a Javascript bridge.
Presentation about Yahoo! Blueprint, the mobile platform, for developers to understand the development process. The presentation was given at Mobile Monday Silicon Valley @ Yahoo!, Sunnyvale, CA on December 1st, 2008.
Introduction talk on Phonegap. Tells you why you should care about mobile, and how to start off using Phonegap. After seeing this presentation you should be able to start a Phonegap project pretty rapidly and feel comfortable with the file structure you're working in and structures of the platforms you're building your app for.
Flutter is a single codebase of Google’s open-source UI toolkit to develop cross-platform applications. Let's have a discussion on the benefits of Flutter technology; it is a cross-platform technology, which helps us in creating native Android and iOS apps.
Developing mobile applications or widgets requires a completely different approach than traditional platforms. Mobile applications should be personal and to-the-point. Glowe provides the technology to build platform-independent mobile widgets in a simple and fast way. This presentation positions Glowe as technology and was meant as introduction to a hands-on lab. Visit http://www.glowe.org for more info.
Kotlin/Native, and the difference between cross mobile languages, Flutter, Jetpack Compose, and SwiftUI, which to select and what is the benefits of each approach and why to consider using Kotlin/Native, plus references, resources, and code-labs.
Code, ci, infrastructure - the gophers wayAlex Baitov
The presence of golang. Golang becomes pretty powerful. There are plenty of everyday golang tools. I will show you that we built infrastructure mostly consists of tools written on one language - golang. What benefits did we gain from writing an application on the language of its infrastructure. And I will describe how we use golang in production.
Slides from a presentation I gave at these conferences:
— Big Design
— Front Porch
— Thunder Plains
— Web Afternoon
I co-presented at Big Design with Matt Baxter.
http://twitter.com/mbxtr
Flutter App Development- Why Should You Choose It .Techugo
Flutter is a portable UI platform that lets you create native-like apps for mobile, desktop and web.
It can be used from a single codebase. It’s based on the Dart programming language and includes Cupertino and Material Design widgets. As a result, flutter developers can create stunning UI that feels and looks native. It works on all platforms regardless of whether you only use one codebase.
Flutter is the only framework to offer a mobile SDK, without the need for a Javascript bridge.
Presentation about Yahoo! Blueprint, the mobile platform, for developers to understand the development process. The presentation was given at Mobile Monday Silicon Valley @ Yahoo!, Sunnyvale, CA on December 1st, 2008.
Introduction talk on Phonegap. Tells you why you should care about mobile, and how to start off using Phonegap. After seeing this presentation you should be able to start a Phonegap project pretty rapidly and feel comfortable with the file structure you're working in and structures of the platforms you're building your app for.
Flutter is a single codebase of Google’s open-source UI toolkit to develop cross-platform applications. Let's have a discussion on the benefits of Flutter technology; it is a cross-platform technology, which helps us in creating native Android and iOS apps.
Developing mobile applications or widgets requires a completely different approach than traditional platforms. Mobile applications should be personal and to-the-point. Glowe provides the technology to build platform-independent mobile widgets in a simple and fast way. This presentation positions Glowe as technology and was meant as introduction to a hands-on lab. Visit http://www.glowe.org for more info.
Kotlin/Native, and the difference between cross mobile languages, Flutter, Jetpack Compose, and SwiftUI, which to select and what is the benefits of each approach and why to consider using Kotlin/Native, plus references, resources, and code-labs.
Code, ci, infrastructure - the gophers wayAlex Baitov
The presence of golang. Golang becomes pretty powerful. There are plenty of everyday golang tools. I will show you that we built infrastructure mostly consists of tools written on one language - golang. What benefits did we gain from writing an application on the language of its infrastructure. And I will describe how we use golang in production.
Slides from a presentation I gave at these conferences:
— Big Design
— Front Porch
— Thunder Plains
— Web Afternoon
I co-presented at Big Design with Matt Baxter.
http://twitter.com/mbxtr
A language for the Internet: Why JavaScript and Node.js is right for Internet...Tom Croucher
Increasingly we want to do more with the web and Internet applications we build. We have more features, more data, more users, more devices and all of it needs to be in real-time. With all of these demands how can we keep up? The answer is choosing a language and a platform that are optimized for the kind of architecture Internet and web applications really have. The traditional approach prioritises computation, assigning server resources before they are actually needed. JavaScript and Node.js both take an event driven approach only assigning resources to events as they happen. This allows us to make dramatic gains in performance and resource utilization while still having an environment which is fun and easy to program.
Doing Horrible Things with DNS - Web Directions SouthTom Croucher
How can we make use of DNS to improve the performance of web sites? A simple introduction to DNS and a neat trick to improve web site performance using DNS.
Node.js and How JavaScript is Changing Server Programming Tom Croucher
Node.js is a highly concurrent JavaScript server written on top of the V8 JavaScript runtime. This is awesome for a number of reasons. Firstly Node.js has re-architected some of the core module of V8 to create a server implementation that is non-blocking (similar to other event driven frameworks like Ruby’s Event Machine or Python’s Twisted). Event driven architectures are a natural fit for JavaScript developers because it’s already how the browser works. By using an event driven framework Node is not only intuitive to use but also highly scalable. Tests have shown Node instances running tens of thousands of simultaneous users.
This session will explore the architectural basics of Node.js and how it’s different from blocking server implementations such as PHP, Rail or Java Servlets. We’ll explore some basic examples of creating a simple server, dealing with HTTP requests, etc.
The bigger question is once we have this awesome programming environment, what do we do with it? Node already has a really vibrant collection of modules which provide a range of functionality. Demystifying what’s available is pretty important to actually getting stuff done with Node. Since Node itself is very low level, lot’s of things people expect in web servers aren’t automatically there (for example, request routing). In order to help ease people into using Node this session will look at a range of the best modules for Node.js.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
41. BLUEPRINT the mobile platform
Yahoo! Blueprint Apps 3rd Party Blueprint Apps
Blueprint language specification
Infrastructure Runtimes SDK
Gallery Yahoo! Go Developer Tools
Monetization Mobile Apps Reference
Analytics Mobile Sites Tutorials
43. BP is the platform
• XML
• XForms
• UED Patterns
• Device Services
Blueprint Language
44. BP is the platform
• XML
• XForms
• UED Patterns
• Device Services
Blueprint Language
HTML J2ME S60 WinMob iPhone (Android)
Blueprint Renderers
45. BP is the platform
• XML
• XForms
• UED Patterns
• Device Services
Blueprint Language
Native
HTML J2ME S60 WinMob iPhone (Android)
Blueprint Renderers
46. Blueprint widgets
GO
integrated into the client
included in the Gallery
can be added to Carousel
reach millions of users
47. Blueprint widgets
GO
integrated into the client
included in the Gallery
can be added to Carousel
reach millions of users
available today
48. Blueprint apps new
Java, Windows Mobile
& Symbian devices
standalone application
freely distribute
runs on 100s of devices
49. Blueprint apps new
Java, Windows Mobile
& Symbian devices
standalone application
freely distribute
runs on 100s of devices
developer preview now
commercial release later
50. Blueprint sites new
xHTML & HTML browsers
your site
your domain
on your infrastructure
supports 1000s of devices
51. Blueprint sites new
xHTML & HTML browsers
your site
your domain
on your infrastructure
supports 1000s of devices
developer preview now
commercial release soon
52. Blueprint sites new
xHTML & HTML browsers
your site
your domain
on your infrastructure
supports 1000s of devices
developer preview now
commercial release soon
53. Blueprint sites new
xHTML & HTML browsers
your site
your domain
on your infrastructure
supports 1000s of devices
developer preview now
commercial release soon
62. I want to build stuff. Today.
• Platform Overview
• Blueprint Language Concept
• Steps to (Widget-) Success
BLUEPRINT
63. BLUEPRINT the mobile platform
Yahoo! Blueprint Apps 3rd Party Blueprint Apps
Blueprint language specification
Infrastructure Runtimes SDK
Gallery Yahoo! Go Developer Tools
Monetization Mobile Apps Reference
Analytics Mobile Sites Tutorials
66. Blueprint Language: What’s that exactly?
XML mark-up language, based on X-Forms
No scripting or procedural code
BLUEPRINT
67. Blueprint Language: What’s that exactly?
XML mark-up language, based on X-Forms
No scripting or procedural code
Provides rich mobile core features and services
BLUEPRINT
68. Blueprint Language: What’s that exactly?
XML mark-up language, based on X-Forms
No scripting or procedural code
Provides rich mobile core features and services
EASY!
BLUEPRINT
70. Blueprint XML: Create a Map!
<map>
<center>
<latitude>37.3919</latitude>
<longitude>-122.0302</longitude>
</center>
<map-zoom>6</map-zoom>
<map-mode>map</map-mode>
<map-showtraffic>false</map-showtraffic>
<map-point>
<location>
<latitude>37.392916</latitude>
<longitude>-122.033934</longitude>
<street>810 Del Rey Ave</street>
<city>Sunnyvale</city>
<state>CA</state>
<zip></zip>
</location>
</map-point>
</map>
BLUEPRINT
71. Blueprint Control: Location
<location-chooser ref=quot;originquot;>
<label>From:</label>
</location-chooser>
<location-chooser ref=quot;destinationquot;>
<label>To:</label>
</location-chooser>
Supports GPS
or Cell ID:
Find Me
Does not have GPS or
Cell ID Information
BLUEPRINT
75. Creating Blueprint Services: What do I need?
Any web-server
Use any scripting language
Use any existing publishing tools
BLUEPRINT
76. Creating Blueprint Services: What do I need?
Any web-server
Use any scripting language
Use any existing publishing tools
Return Blueprint!
BLUEPRINT
78. Building Mobile Widget
Download the Blueprint SDK
1
Blueprint SDK includes
• Blueprint Documentation
• XML Schema definitions
• Templates to get started
• Mobile Widget Sample Code
• PHP helper class (blueprint.php)
BLUEPRINT
79. Building Mobile Widget
Develop your Widget
2
Widget Request HTTP Request
Yahoo! Server
Widget Content Blueprint (XML)
Your
Web Server
Widget
Submission
Application
Package
BLUEPRINT
80. Building Mobile Widget
Develop your Widget
2
Widget Request HTTP Request
Yahoo! Server
Widget Content Blueprint (XML)
Your
Web Server
2. Create static/
dynamic pages
Widget
to return
Submission 2
Blueprint
Application
Package
BLUEPRINT
81. Building Mobile Widget
Develop your Widget
2
Widget Request HTTP Request
Yahoo! Server
Widget Content Blueprint (XML)
Your
Web Server
2. Create static/
dynamic pages
Widget
to return
Submission 2
Blueprint
3. Create your
Application
application
Package
package and
submit
3
BLUEPRINT
82. Building Mobile Widget
Data flow
Mobile Phone Yahoo! Server Your Server
Request entry point
User opens HTTP request to Widget publisher
Widget URI specified in config.xml
Includes language and location headers
Blueprint page returned
Includes Content-Type header; may include
cache-control headers; may include cookies
for Widget publisher
(Cookies stored on Yahoo!
Widget content returned server)
User requests
new data Request new content
HTTP request …
BLUEPRINT
83. Building Mobile Widget
Interfacing with Yahoo! Servers
Content Type for Blueprint Services:
Content-Type: application/x-ywidget+xml
Use only the UTF-8 character set.
Using Cookies:
Your server can set/retrieve cookies exactly as if you are serving HTML instead of Blueprint
markup.
The cookies are stored on Yahoo! servers
Cache Control:
Wherever possible, Blueprint pages are cached on the user’s device. To control caching, use
the following standard HTTP headers when serving pages: Cache-Control, ETag, and If-
None-Match. Only these headers affect caching
BLUEPRINT
84. Building Mobile Widget
Interfacing with Yahoo! Servers
Internationalization and Localization:
When Yahoo! Mobile application server sends a page request, the request may contain
several HTTP headers, including:
Accept-Language
RFC 4646/4647 language code
(Example: Accept-Language: en-US)
Geo-Country
ISO 3166 country or UN M.49 region code
(Example: Geo-Country: CA)
You can use the information in the headers to decide what content to return.
BLUEPRINT
85. Building Mobile Widget
Package your Widget
3
Application Package is a zip file
containing
• config.xml
• Application metadata, including the URL for
your web server
• gallery.xml
• Information for the widget gallery
• Image Files
• Includes icons and screen shots (for the
gallery)
BLUEPRINT
86. Building Mobile Widget
Upload your mobile Widget
4
• http://mobile.yahoo.com/developers/test/upload
• Package the widget files into a zip archive
• Upload the .zip file
BLUEPRINT
87. Building Mobile Widget
Test your mobile Widget
5
1. Yahoo! Go Emulator: http://mobile.yahoo.com/go/tryit
(Note: External links won’t work)
2. Browser http://devtest.m.yahoo.com
(Note: GPS and cell-ID won’t work on desktop browser)
BLUEPRINT
88. Building Mobile Widget
Publish your mobile Widget
6
• http://mobile.yahoo.com/developers/submit/upload
• Please test your widget before publishing
• It may take 1 week for the approval process
BLUEPRINT
89. Widgets Development Process Summary
Download the Blueprint SDK
1
Develop your Widget
2
Package your Widget
3
Upload your mobile Widget
4
Test your mobile Widget
5
Publish your mobile Widget
6
BLUEPRINT
91. Links & Support
Get the SDK
• Download the SDK
http://mobile.yahoo.com/developers/download
Get Help!
• Yahoo! Tech Group
http://tech.groups.yahoo.com/group/yhoomobiledevelopers
• Read the Blueprint Blog
http://mobile.yahoo.net/developer/blog
BLUEPRINT
94. Web Sites Applications
Document Centric Task Centric
Content Syndication Native Look & Feel
Biased to Layout Richer Experience
Content
Connectivity Optional
Link Navigation
Browser Native Functionality
BLUEPRINT
95. Internet as a Platform
Structured Experiences
High Level Controls
Stateless
MVC Patterns
Streamed Pages Asynchronous Requests
XForms and XPath
oh my!
Maps Embedded Web Content
Blueprint Renderer
Native Applications
Location Service Image Transcoding
Yahoo! Services
Slideshows Seamless Search Results
Video Transcoding Voice Recognition
Authentication Advanced Input Controls
Core Control
Photo Acquisition Scaled Hosting
Language
BLUEPRINT
96. On Demand Service Updates
Let’s retain the
benefits of streamed
experiences
Organically add features
Roll out new services
Serve up seasonal content
BLUEPRINT
97. Aggregated Services
Let’s reuse services already
implemented and tested
by Yahoo!
...or anyone serving up
Blueprint pages.
BLUEPRINT
128. How to get data to
SearchMonkey? Humans see:
• name
• picture of a person
• current job
• industry, …
Computers see:
an undifferentiated
blob of HTML
Can we make
computers
smarter?
132. How does it Work?
Acme.com’s Site
Acme.com’s DB
133. How does it Work?
site owners/publishers share structured data with Yahoo!
1
Acme.com’s Site
Acme.com’s DB
134. How does it Work?
site owners/publishers share structured data with Yahoo!
1
RDF/Microformat Markup
Acme.com’s Site
Index
Acme.com’s DB
135. How does it Work?
site owners/publishers share structured data with Yahoo!
1
RDF/Microformat Markup
Acme.com’s Site
Index
DataRSS feed
Acme.com’s DB
136. How does it Work?
site owners/publishers share structured data with Yahoo!
1
RDF/Microformat Markup
Acme.com’s Site
Index
DataRSS feed
Acme.com’s DB
137. How does it Work?
site owners/publishers share structured data with Yahoo!
1
Page Extraction
RDF/Microformat Markup
Acme.com’s Site
Index
DataRSS feed
Acme.com’s DB
138. How does it Work?
site owners/publishers share structured data with Yahoo!
1
Page Extraction
RDF/Microformat Markup
Acme.com’s Site
Index
DataRSS feed
Web Services
Acme.com’s DB
139. How does it Work?
site owners/publishers share structured data with Yahoo!
1
site owners & third-party developers build SearchMonkey apps
2
Page Extraction
RDF/Microformat Markup
Acme.com’s Site
Index
DataRSS feed
Web Services
Acme.com’s DB
140. How does it Work?
site owners/publishers share structured data with Yahoo!
1
site owners & third-party developers build SearchMonkey apps
2
consumers customize their search experience with Enhanced Results or Infobars
3
Page Extraction
RDF/Microformat Markup
Acme.com’s Site
Index
DataRSS feed
Web Services
Acme.com’s DB
141. Data Sources: RDF and Microformats
Name Cached Open Mode Notes
Yahoo! Index yes yes Passive Old-School Y! Index data
RDFa, eRDF yes yes Passive Vocab + markup decoupled
Microformats yes yes Passive Vocab + markup coupled
DataRSS feed yes no Active Atom + metadata
XSLT no no Active Good for prototyping
Web Service no no Active Brings in remote data
142. Approach #1: Embedded RDF
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML+RDFa 1.0//EN”
quot;http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtdquot;>
<html xmlns=http://www.w3.org/1999/xhtml
xmlns:dc=http://purl.org/dc/elements/1.1/
xmlns:foaf=http://xmlns.com/foaf/0.1/
•Cached data
lang=quot;enquot; xml:lang=quot;enquot;>
<head>
•allows Enhanced Results
<title>The Amazing Home Page of Joe Smith</title>
</head>
•but not for dynamic data
<body>
<h1 property=quot;dc:titlequot;>Joe's Home Page</h1>
• Reuse existing markup
<div rel=quot;foaf:makerquot;>
<h2 property=quot;foaf:namequot;>Joe Smith</h2>
<div rel=quot;foaf:depictionquot;
• but requires site redesign
resource=quot;http://joesmith.org/images/jsmith.pngquot;>
<img src=quot;/images/jsmith.pngquot;
• Open approach
alt=quot;Smiling headshot of Joequot; />
<p property=quot;dc:rightsquot;>Creative Commons
• everyone can use
Attribution 3.0 Unported</p>
</div>
• Passive, crawled by Y!
</div>
…
• less bureaucracy to set up
143. Approach #2: Embedded
Microformats
<div id=quot;hcard-Joe-Smithquot; class=quot;vcardquot;>
<span class=quot;fnquot;>Joe Smith</span>
<div class=quot;adrquot;>
<div class=quot;street-addressquot;>123 Murphy Avenue</div>
<span class=quot;localityquot;>Sunnyvale</span>,
• Cached data
<span class=quot;regionquot;>California</span>
<span class=quot;postal-codequot;>94086</span>
• allows Enhanced Results
</div>
• but not for dynamic data
<div class=quot;telquot;>(408) 555-1234</div>
</div>…
• Reuse existing markup
• but requires site redesign
• Open approach
• everyone can use
• Passive, crawled by Y!
• less bureaucracy to set up
144. Data Sources: DataRSS Feed
Name Cached Open Mode Notes
Yahoo! Index yes yes Passive Old-School Y! Index data
RDFa, eRDF yes yes Passive Vocab + markup decoupled
Microformats yes yes Passive Vocab + markup coupled
DataRSS feed yes no Active Atom + metadata
XSLT no no Active Good for prototyping
Web Service no no Active Brings in remote data
145. Approach #3: DataRSS Feed
<?profile http://search.yahoo.com/searchmonkey-profile ?>
<feed xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot;
xsi:schemaLocation=quot;http://www.w3.org/2005/Atom ../xsd/datarss.xsdquot;
xmlns:dc=quot;http://purl.org/dc/terms/” xmlns=quot;http://www.w3.org/2005/Atomquot;
• Cached data
xmlns:commerce=quot;http://search.yahoo.com/searchmonkey/commerce/quot;
xmlns:y=quot;http://search.yahoo.com/datarss/quot;>
• allows Enhanced Results
<id>http://local.yahoo.com/datarss/</id>
<author><name>Peter Mika (pmika@yahoo-inc.com)</name></author>
• but not for dynamic data
<title>Example data feed for Local</title>
<updated>2008-07-16T04:05:06+07:00</updated>
• Generate feed from DB
<entry>
• and maintain afterwards
<title>Parcel 104</title>
<id>http://local.yahoo.com/info-21583016-parcel-104-santa-clara</id>
• Closed approach
<updated>2008-07-16T04:05:06+07:00</updated>
<content type=quot;application/xmlquot;>
• only Yahoo! gets data
<y:adjunct version=quot;1.0quot; name=quot;com.yahoo.local”>
<y:item rel=quot;dc:subjectquot;>
• Actively provide a feed
<y:type typeof=quot;vcard:VCard commerce:Restaurant”>
<y:meta property=quot;commerce:hoursOfOperationquot;>
• coord w/Yahoo! to set up
Breakfast daily, Lunch Mon.-Fri., Dinner Mon.-Sat.
146. Building with Structured Data
• Structured data -> easy app building
–Relies on RDF, microformats, DataRSS
•That was the hard part
• PHP in a typical app
–Mostly simple assignments, Data::get()
–Possibly strings, XML, math
147. Data Sources: XSLT
Name Cached Open Mode Notes
Yahoo! Index yes yes Passive Old-School Y! Index data
RDFa, eRDF yes yes Passive Vocab + markup decoupled
Microformats yes yes Passive Vocab + markup coupled
DataRSS feed yes no Active Atom + metadata
XSLT no no Active Good for prototyping
Web Service no no Active Brings in remote data
148. Approach #4: Extract with
XSLT
<?xml version=quot;1.0quot;?>
<xsl:stylesheet xmlns:xsl=quot;http://www.w3.org/1999/XSL/Transformquot; version=quot;1.0quot;>
<xsl:template match=quot;/quot;>
<adjunctcontainer>
<adjunct id=quot;smid:{$smid}quot; version=quot;1.0quot;>
• Generally not cached
<item rel=quot;rel:Photo”
resource=quot;{//div[@class='hresume']//div[@class='image']/img/@src}quot;/>
• too slow, infobar only
<item rel=quot;rel:Cardquot;>
<meta property=quot;vcard:fnquot;>
• but good for dynamic data
<xsl:value-of select=quot;//div[@class='hresume']//span[contains(@class,'fn')]quot;/>
</meta>
• Scrape page with XSLT
<meta property=quot;vcard:titlequot;>
<xsl:value-of select=quot;//div[@class='hresume']//ul[@class='current']/liquot;/>
• operates on cleaned up
</meta>
</item>
version of the DOM
</adjunct>
</adjunctcontainer>
• watch out for template
</xsl:template>
changes
</xsl:stylesheet>
• Easy to prototype
149. Prototyping with XSLT
• What if I don’t have structured data?
–I don’t own the site
–I do own the site, but I want to prototype first
• Build an XSLT custom data service first
–Write some XSLT to extract the data and
transform it into DataRSS
150. Creating an Infobar
• Infobar advantages
–Annotate someone else’s site
–Use links and images from other domains
•Mash up info from multiple sites
•Affiliate / coupon links? Hmmm…
–Can act on *, all websites
151. Data Sources: Web Services
Name Cached Open Mode Notes
Yahoo! Index yes yes Passive Old-School Y! Index data
RDFa, eRDF yes yes Passive Vocab + markup decoupled
Microformats yes yes Passive Vocab + markup coupled
DataRSS feed yes no Active Atom + metadata
XSLT no no Active Good for prototyping
Web Service no no Active Brings in remote data
152. Approach #5: Call a Web
Service
<?xml version=quot;1.0quot;?>
<xsl:stylesheet xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xmlns:xsl=quot;http://www.w3.org/1999/XSL/Transformquot; version=quot;1.0”
xmlns:h=http://www.w3.org/1999/xhtml
• Generally not cached
xmlns:y=quot;urn:yahoo:srch”
xsi:schemaLocation=quot;urn:yahoo:srch
• too slow, infobar only
http://api.search.yahoo.com/SiteExplorerService/V1/PageDataResponse.xsdquot;>
<xsl:template match=quot;/quot;>
• but good for dynamic data
<adjunctcontainer xmlns:my=quot;http://example.com/ns/1.0quot;>
<adjunct id=quot;smid:{$smid}quot; version=quot;1.0quot;>
• Call a Remote Web
<meta property=quot;my:link1quot;>
<xsl:value-of select=quot;//y:Result[1]/y:Urlquot;/>
Service
</meta>
<meta property=quot;my:result1quot;>
• allows SearchMonkey apps
<xsl:value-of select=quot;//y:Result[1]/y:Titlequot;/>
</meta>
to glue together
</adjunct>
</adjunctcontainer>
• can handle OpenSearch
</xsl:template>
</xsl:stylesheet>
XML natively
156. Ever-present Monkeys
http://ysearchblog.com/2009/03/12/embed-
videos-games-and-docs-with-searchmonkey/
• Videos
• Games
• Documents
• More soon
157. Resources
• Main:
–http://developer.yahoo.com/searchmonkey
• Lists and Forums:
–searchmonkey-developers@yahoogroups.com
–http://suggestions.yahoo.com/searchmonkey
• RDF and Microformats:
158. Next Steps
1. Identify content to use in SearchMonkey
2. Weigh the strengths and drawbacks of each
method for providing data:
– RDF
– Microformats
– DataRSS feed
lots of interest in the markets, people doing widgets.. what’s a widget?
is blueprint for widgets?
at the beginning, j2me tools from nokia or sun and you could make a text app
WML / WAP browsers didn’t really spark imagination but worked
lowest common denominator or lots of work
it’s getting hard - developer mindshare
at the beginning, j2me tools from nokia or sun and you could make a text app
WML / WAP browsers didn’t really spark imagination but worked
lowest common denominator or lots of work
it’s getting hard - developer mindshare
at the beginning, j2me tools from nokia or sun and you could make a text app
WML / WAP browsers didn’t really spark imagination but worked
lowest common denominator or lots of work
it’s getting hard - developer mindshare
at the beginning, j2me tools from nokia or sun and you could make a text app
WML / WAP browsers didn’t really spark imagination but worked
lowest common denominator or lots of work
it’s getting hard - developer mindshare
at the beginning, j2me tools from nokia or sun and you could make a text app
WML / WAP browsers didn’t really spark imagination but worked
lowest common denominator or lots of work
it’s getting hard - developer mindshare
at the beginning, j2me tools from nokia or sun and you could make a text app
WML / WAP browsers didn’t really spark imagination but worked
lowest common denominator or lots of work
it’s getting hard - developer mindshare
so which platform do you pick?
iphone?
android?
site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
500m visitors per month
aiming for 1bn mobile users
so which platform do you pick?
iphone?
android?
site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
500m visitors per month
aiming for 1bn mobile users
so which platform do you pick?
iphone?
android?
site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
500m visitors per month
aiming for 1bn mobile users
so which platform do you pick?
iphone?
android?
site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
500m visitors per month
aiming for 1bn mobile users
so which platform do you pick?
iphone?
android?
site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
500m visitors per month
aiming for 1bn mobile users
so which platform do you pick?
iphone?
android?
site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
500m visitors per month
aiming for 1bn mobile users
i.e. can a consumer use them? which consumer? where?
can they tell their friends? their dad?
i.e. can a consumer use them? which consumer? where?
can they tell their friends? their dad?
i.e. can a consumer use them? which consumer? where?
can they tell their friends? their dad?
not one country, region, segment. framing the market as billions means it can’t be one phone, one OS or even one technology.
Web as the Platform
Rich UI
Lightweight Programming Model
Software above a single device
End of Release Cycle
Data is the next Intel Inside
Collective Intelligence
Browsers, lots of them.
Clients. For different UIs, Java, Windows, Symbian, and more.. sat nav anyone?
and the iPhone.. the touch-screen daddy.
Browsers, lots of them.
Clients. For different UIs, Java, Windows, Symbian, and more.. sat nav anyone?
and the iPhone.. the touch-screen daddy.
Browsers, lots of them.
Clients. For different UIs, Java, Windows, Symbian, and more.. sat nav anyone?
and the iPhone.. the touch-screen daddy.
XForms does AJAX without the J. It helps structure an app by separating data and presentation. MVC.
XForms has the model in the head and references it from the page. Look at W3C site for more info.
DON’T HAVE TO LEARN OBJECTIVE-C
XForms does AJAX without the J. It helps structure an app by separating data and presentation. MVC.
XForms has the model in the head and references it from the page. Look at W3C site for more info.
DON’T HAVE TO LEARN OBJECTIVE-C
XForms does AJAX without the J. It helps structure an app by separating data and presentation. MVC.
XForms has the model in the head and references it from the page. Look at W3C site for more info.
DON’T HAVE TO LEARN OBJECTIVE-C
Blueprint is the platform - software above a single device
We have a placard for that.
We have a placard for that.
We have a placard for that.
video transcoding
cell tower database - growing rapidly
maps inc. satellite, driving directions, points of interest and soon KML.
video transcoding
cell tower database - growing rapidly
maps inc. satellite, driving directions, points of interest and soon KML.
video transcoding
cell tower database - growing rapidly
maps inc. satellite, driving directions, points of interest and soon KML.
Right now basic usage and device stats. We are integrating with IndexTools which is probably the best web analytics platform there is.
Right now basic usage and device stats. We are integrating with IndexTools which is probably the best web analytics platform there is.
Go is for Windows Mobile, Java, Blackberry & Symbian. Stated aim to support all platforms we can.
All platforms we support for Go. Basically single widget version of Go.
We transcode across may devices. In the future we will support branding.
We transcode across may devices. In the future we will support branding.
We transcode across may devices. In the future we will support branding.
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
targeted at the mass market. mostly you want reach, distribution and users!
carriers, oneSearch, frontpage
A SearchMonkey Enhanced result contains a great deal of structured data. It could have a picture, key/value pairs, deep links…
This kind of information goes far beyond what normal search results give you – a title and an autoextracted summary. Where does this information come from?
Likewise, an Infobar has a summary (what the user sees before the pane is expanded) and a “blob”, an area of free-form HTML.
Here’s a profile page for a colleague of mine on LinkedIn. When you and I glance at the page, we see all sorts of structured information. We see pictures, contact info, names, … all sorts of items that have actual meaning.
But spiders just see a blob of markup. The spider can extract some basic info, like a title (probably correct), a summary (could be good or not), and some other metadata. But for pulling structured information out of web pages, human beings beat computers hands down. So how to harvest structured data?
One approach would be to make computers SMARTER, by improving their ability to do pattern recognition and natural language processing. DRAWBACKS:
these sorts of AI-type features have proven to be pretty expensive and difficult to develop. I’m not smart enough to do this, so I want you to do it for me. YOU know a lot more about YOUR site than we do.
even with a “dumb” approach, indexing all these billions of webpages already takes many thousands of CPU cores, crunching away. Again, very expensive.
finally, we all know what happens here. The computer begins scouring information from the entire world wide web, starts learning at a geometric rate, becomes self-aware, …
Computers become intelligent, begin to learn at a geometric rate, form SkyNet, and scour the Earth with nuclear fire. Shareholder value decreases.
So we decided to go with the approach of -- keep our spider fairly dumb, and figure out different ways for people to provide us with structured data.
In this scenario, we see all the different ways that you can feed SearchMonkey with data. A real SearchMonkey app probably wouldn’t use ALL these methods.
From your database / CMS, you generate web pages with HTML markup. Those web pages can contain microformats or RDF, special markup that provides semantic meaning about the data on your pages. Our crawler can extract this information, just as it does the title, the page content, the mime-type, and so on.
Alternatively, from your database you can also provide us with a DataRSS feed (more on that later) that we consume and place into our index.
SearchMonkey also has two ways to actively retrieve information. You can create a Page Extractor, which scrapes information from a web page. You can also call a web service to retrieve more information about a page.
We’ll talk more about all these methods in the subsequent slides.
In this scenario, we see all the different ways that you can feed SearchMonkey with data. A real SearchMonkey app probably wouldn’t use ALL these methods.
From your database / CMS, you generate web pages with HTML markup. Those web pages can contain microformats or RDF, special markup that provides semantic meaning about the data on your pages. Our crawler can extract this information, just as it does the title, the page content, the mime-type, and so on.
Alternatively, from your database you can also provide us with a DataRSS feed (more on that later) that we consume and place into our index.
SearchMonkey also has two ways to actively retrieve information. You can create a Page Extractor, which scrapes information from a web page. You can also call a web service to retrieve more information about a page.
We’ll talk more about all these methods in the subsequent slides.
In this scenario, we see all the different ways that you can feed SearchMonkey with data. A real SearchMonkey app probably wouldn’t use ALL these methods.
From your database / CMS, you generate web pages with HTML markup. Those web pages can contain microformats or RDF, special markup that provides semantic meaning about the data on your pages. Our crawler can extract this information, just as it does the title, the page content, the mime-type, and so on.
Alternatively, from your database you can also provide us with a DataRSS feed (more on that later) that we consume and place into our index.
SearchMonkey also has two ways to actively retrieve information. You can create a Page Extractor, which scrapes information from a web page. You can also call a web service to retrieve more information about a page.
We’ll talk more about all these methods in the subsequent slides.
In this scenario, we see all the different ways that you can feed SearchMonkey with data. A real SearchMonkey app probably wouldn’t use ALL these methods.
From your database / CMS, you generate web pages with HTML markup. Those web pages can contain microformats or RDF, special markup that provides semantic meaning about the data on your pages. Our crawler can extract this information, just as it does the title, the page content, the mime-type, and so on.
Alternatively, from your database you can also provide us with a DataRSS feed (more on that later) that we consume and place into our index.
SearchMonkey also has two ways to actively retrieve information. You can create a Page Extractor, which scrapes information from a web page. You can also call a web service to retrieve more information about a page.
We’ll talk more about all these methods in the subsequent slides.