SlideShare a Scribd company logo
Translated Strings and
Foreign Language
Support in JavaScript
Web Apps
Ken Tabor
Twitter: @KenTabor
Shared
bit.ly/KenOscon13
Translating What?
Any and all blocks of text
Translating What?
Date/time formatters
Translating Where?
Single page app
Translating Myth #1
We don’t need translated text, we’re only
shipping to North America
Translating Myth #2
No need - it’s just an internal tool
Translating Myth #3
We’re a start-up ... let’s just submit
Translating OMG #1
Just before code freeze marketing asks:
Translating OMG #1
Just before code freeze marketing asks:
Hey, will you send over all the text
please? We want to do a polish pass for
voice and message before ship.
Translating OMG #1
Just before code freeze marketing asks:
Hey, will you send over all the text
please? We want to do a polish pass for
voice and message before ship.
Don’t worry we’ll return it by end of day.
Translating OMG #2
CoderSean and PM build create() feature
“Connection error, notifying the admin.”
Translating OMG #2
CoderBurin and BA build add() feature
“Network problem. Notifying the admin.”
Why Work Smarter?
Programmers: Don’t RepeatYourself
Business: Include More Customers
Marketing: Craft Consistent Message
Solution?
String Tables
Typical String Table
TS.tstring = {
appTitle: 'TString.JS',
programListing: 'Program Listing',
english: 'English',
spanish: 'Spanish',
german: 'German',
title: 'Title',
date: 'Date',
synopsis: 'Synopsis',
programDate: 'MMM Do YYYY, h:mm a'
};
Architectural Rule #1
Never hard-code text strings
Architectural Rule #2
String-tables must be easily accessed
throughout the application
Architectural Rule #3
Language string-tables must be demand-
loadable resources
Is this Difficult?
Couldn’t Google my way out of this task
JavaScript is popular lacks formal support
We’re all rushed after all
Who Am I to Do This?
I’m a front-end product engineer
Working at Sabre Holdings
Building TripCase
Our Dev Strategy
Mobile web browser (webkit)
Our Dev Strategy
iOS and Android native apps (PhoneGap)
Our Dev Strategy
Coders get smart and stay smart
Core Languages
App Structure
Presentation Layer
Utility Libs
Code Analysis/Build
Native Wrapper
JavaScript + CSS + HTML
Backbone + Underscore + RequireJS
jQuery + SASS + Compass
Handlebars + Moment + Modernizr
Jasmine + jsHint + Plato + Grunt
PhoneGap
Demo
Show the people some running code
String Table
TS.tstring = {
appTitle: 'TString.JS',
programListing: 'Program Listing',
english: 'English',
spanish: 'Spanish',
german: 'German',
title: 'Title',
date: 'Date',
synopsis: 'Synopsis',
programDate: 'MMM Do YYYY, h:mm a'
};
Global Resource
// encapsulate all code modules into a global namespace
var TS = TS || {};
TS.model = TS.model || {};
TS.view = TS.view || {};
TS.collection = TS.collection || {};
TS.app = null;
TS.tstring = null;
Template User
TS.view.Application = Backbone.View.extend({
template:
'<h1>TStringJS</h1>' +
'<h2>Example of translated strings and foreign language</h2>' +
'<select id="lang-list">' +
'<option value="english">English</option>' +
'<option value="spanish">Spanish</option>' +
'<option value="french">French</option>' +
'<option value="italian">Italian</option>' +
'</select>' +
'<button id="lang-load">Select'
Template User
TS.view.Application = Backbone.View.extend({
template:
'<h1><%= TS.tstring.appTitle %></h1>' +
'<h2><%= TS.tstring.appSubTitle %></h2>' +
'<select id="lang-list">' +
'<option value="english"><%= TS.tstring.english %></option>' +
'<option value="spanish"><%= TS.tstring.spanish %></option>' +
'<option value="french"><%= TS.tstring.french %></option>' +
'<option value="italian"><%= TS.tstring.italian %></option>' +
'</select>' +
'<button id="lang-load"><%= TS.tstring.select %>'
JavaScript User
function onSelectChoice(id) {
var userModel;
userModel = this.collection.get(id);
alert(TS.tstring.selectedProgram + ': ' +
userModel.getDisplayTitle());
}
Resource Loader
function LanguageLoad(lang) {
var langFn;
if (lang === 'english') langFn = 'en-US.js';
else if (lang === 'spanish') langFn = 'es.js';
else if (lang === 'klingon') langFn = 'tlh.js';
$.ajax({
url: 'code/strings/' + langFn,
dataType: 'script',
success: function(data, textStatus) {
TS.app.onRender();
}
});
}
Making the Case
Combine duplicating strings
Stop nearly duplicated strings
Easier word-smithing
Setup for translation services
Abstract away date/time formatting
Handlebars User
Write a “helper” function
Wraps the global resource
Param indexes into the string table
Handlebars Helper
Handlebars.registerHelper('tstring', function(key) {
var tstring = TS.tstring[key];
if (tstring === undefined)
console.log('Missing string[' + key + ']');
return tstring;
});
<h1>{{tstring “appTitle”}}</h1>
<h2>{{tstring “appSubTitle”}}</h2>
RequireJS
RequireJS has “i18n” plugin
Auto-loads based on navigator.language
At the cost of user control
Native App
All string files are packaged together
TS.tstring.en = {...};
TS.tstring.fr = {...};
TS.tstring.es = {...};
TS.tstring.tlh = {...};
TS.tstrings = TS.tstring.es;
Testing
Test entire app in English
Native speaker confirms translations
Wait on bug reports
Testing
Automated testing: Jasmine and Selenium
Manual debug: English with “SP-” prefix
The “Ken Bug”
Don’t accidentally ship your debug files
Think About It
Start from the start
Retrofitting costed a 50hr week
Plus 20hr regression testing
Think About It
Server-side error conditions happen
Map return codes rather than text
Keep Thinking
Pluralization functions
Keep Thinking
Coordinate with plugins & libraries
Keep Thinking
Designers must brain-sweat composition
Questions?
Thank-You
bit.ly/KenOscon13
Ken Tabor (@KenTabor)

More Related Content

Viewers also liked

My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3David Sommer
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
Mike Long
 
Natural language processing
Natural language processingNatural language processing
Natural language processing
Iván Compañy Avi
 
The ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj KumarThe ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj Kumar
ThoughtWorks
 
Strategies for Friendly English and Successful Localization
Strategies for Friendly English and Successful LocalizationStrategies for Friendly English and Successful Localization
Strategies for Friendly English and Successful Localization
John Collins
 
Designing for Multiple Mobile Platforms
Designing for Multiple Mobile PlatformsDesigning for Multiple Mobile Platforms
Designing for Multiple Mobile Platforms
Robert Douglas
 
Conspiracy Profile
Conspiracy ProfileConspiracy Profile
Conspiracy Profilecharlyheus
 
Putting Out Fires with Content Strategy (STC Academic SIG)
Putting Out Fires with Content Strategy (STC Academic SIG)Putting Out Fires with Content Strategy (STC Academic SIG)
Putting Out Fires with Content Strategy (STC Academic SIG)
John Collins
 
Automatic Language Identification
Automatic Language IdentificationAutomatic Language Identification
Automatic Language Identification
bigshum
 
Building Quality Experiences for Users in Any Language
Building Quality Experiences for Users in Any LanguageBuilding Quality Experiences for Users in Any Language
Building Quality Experiences for Users in Any Language
John Collins
 
Django & Drupal: A Tale of Two Cities
Django & Drupal: A Tale of Two CitiesDjango & Drupal: A Tale of Two Cities
Django & Drupal: A Tale of Two Cities
Donna Benjamin
 
Open Software Platforms for Mobile Digital Broadcasting
Open Software Platforms for Mobile Digital BroadcastingOpen Software Platforms for Mobile Digital Broadcasting
Open Software Platforms for Mobile Digital Broadcasting
Francois Lefebvre
 
แรงดันในของเหลว
แรงดันในของเหลวแรงดันในของเหลว
แรงดันในของเหลวtewin2553
 
Neue aufregende Web Technologien, HTML5 + CSS3 anhand von Praxisbeispielen le...
Neue aufregende Web Technologien, HTML5 + CSS3 anhand von Praxisbeispielen le...Neue aufregende Web Technologien, HTML5 + CSS3 anhand von Praxisbeispielen le...
Neue aufregende Web Technologien, HTML5 + CSS3 anhand von Praxisbeispielen le...Eric Eggert
 
Stc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kitsStc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kitsDavid Sommer
 
UTF-8: The Secret of Character Encoding
UTF-8: The Secret of Character EncodingUTF-8: The Secret of Character Encoding
UTF-8: The Secret of Character EncodingBert Pattyn
 

Viewers also liked (20)

My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3
 
Glossary
GlossaryGlossary
Glossary
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
Natural language processing
Natural language processingNatural language processing
Natural language processing
 
The ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj KumarThe ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj Kumar
 
Strategies for Friendly English and Successful Localization
Strategies for Friendly English and Successful LocalizationStrategies for Friendly English and Successful Localization
Strategies for Friendly English and Successful Localization
 
Designing for Multiple Mobile Platforms
Designing for Multiple Mobile PlatformsDesigning for Multiple Mobile Platforms
Designing for Multiple Mobile Platforms
 
Conspiracy Profile
Conspiracy ProfileConspiracy Profile
Conspiracy Profile
 
Putting Out Fires with Content Strategy (STC Academic SIG)
Putting Out Fires with Content Strategy (STC Academic SIG)Putting Out Fires with Content Strategy (STC Academic SIG)
Putting Out Fires with Content Strategy (STC Academic SIG)
 
Verb to be
Verb to beVerb to be
Verb to be
 
Automatic Language Identification
Automatic Language IdentificationAutomatic Language Identification
Automatic Language Identification
 
Silmeyiniz
SilmeyinizSilmeyiniz
Silmeyiniz
 
Building Quality Experiences for Users in Any Language
Building Quality Experiences for Users in Any LanguageBuilding Quality Experiences for Users in Any Language
Building Quality Experiences for Users in Any Language
 
Trabajo grupal
Trabajo grupalTrabajo grupal
Trabajo grupal
 
Django & Drupal: A Tale of Two Cities
Django & Drupal: A Tale of Two CitiesDjango & Drupal: A Tale of Two Cities
Django & Drupal: A Tale of Two Cities
 
Open Software Platforms for Mobile Digital Broadcasting
Open Software Platforms for Mobile Digital BroadcastingOpen Software Platforms for Mobile Digital Broadcasting
Open Software Platforms for Mobile Digital Broadcasting
 
แรงดันในของเหลว
แรงดันในของเหลวแรงดันในของเหลว
แรงดันในของเหลว
 
Neue aufregende Web Technologien, HTML5 + CSS3 anhand von Praxisbeispielen le...
Neue aufregende Web Technologien, HTML5 + CSS3 anhand von Praxisbeispielen le...Neue aufregende Web Technologien, HTML5 + CSS3 anhand von Praxisbeispielen le...
Neue aufregende Web Technologien, HTML5 + CSS3 anhand von Praxisbeispielen le...
 
Stc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kitsStc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kits
 
UTF-8: The Secret of Character Encoding
UTF-8: The Secret of Character EncodingUTF-8: The Secret of Character Encoding
UTF-8: The Secret of Character Encoding
 

Similar to Translated Strings and Foreign Language Support in JavaScript Web Apps - OSCON 2013

Huge web apps web expo 2013
Huge web apps web expo 2013Huge web apps web expo 2013
Huge web apps web expo 2013
Daniel Steigerwald
 
JavaScript & Dom Manipulation
JavaScript & Dom ManipulationJavaScript & Dom Manipulation
JavaScript & Dom Manipulation
Mohammed Arif
 
I18n
I18nI18n
I18nsoon
 
Jscript Fundamentals
Jscript FundamentalsJscript Fundamentals
Jscript Fundamentalsrspaike
 
Dart, Darrt, Darrrt
Dart, Darrt, DarrrtDart, Darrt, Darrrt
Dart, Darrt, DarrrtJana Moudrá
 
Can your App parle Francais?
Can your App parle Francais?Can your App parle Francais?
Can your App parle Francais?
Gregory Menvielle
 
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGap
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGapFAESA CONENCO 2013: Sencha Touch 2 + PhoneGap
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGap
Loiane Groner
 
Introduction of javascript
Introduction of javascriptIntroduction of javascript
Introduction of javascript
syeda zoya mehdi
 
From Ruby to Node.js
From Ruby to Node.jsFrom Ruby to Node.js
From Ruby to Node.js
jubilem
 
IBM Lotus Notes Domino XPages and XPages for Mobile
IBM Lotus Notes Domino XPages and XPages for MobileIBM Lotus Notes Domino XPages and XPages for Mobile
IBM Lotus Notes Domino XPages and XPages for Mobile
Chris Toohey
 
Html javascript
Html javascriptHtml javascript
Html javascript
Soham Sengupta
 
JS class slides (2016)
JS class slides (2016)JS class slides (2016)
JS class slides (2016)
Yves-Emmanuel Jutard
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Matteo Collina
 
Intro to Android Programming
Intro to Android ProgrammingIntro to Android Programming
Intro to Android Programming
Peter van der Linden
 
JS Class 2016
JS Class 2016JS Class 2016
JS Class 2016
Yves-Emmanuel Jutard
 
Domain Specific Languages
Domain Specific LanguagesDomain Specific Languages
Domain Specific Languages
Wee Witthawaskul
 
Client-side JavaScript Vulnerabilities
Client-side JavaScript VulnerabilitiesClient-side JavaScript Vulnerabilities
Client-side JavaScript Vulnerabilities
Ory Segal
 
JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4
alexsaves
 
An Introduction to TypeScript
An Introduction to TypeScriptAn Introduction to TypeScript
An Introduction to TypeScript
WrapPixel
 
Eugene Andruszczenko: jQuery
Eugene Andruszczenko: jQueryEugene Andruszczenko: jQuery
Eugene Andruszczenko: jQuery
Refresh Events
 

Similar to Translated Strings and Foreign Language Support in JavaScript Web Apps - OSCON 2013 (20)

Huge web apps web expo 2013
Huge web apps web expo 2013Huge web apps web expo 2013
Huge web apps web expo 2013
 
JavaScript & Dom Manipulation
JavaScript & Dom ManipulationJavaScript & Dom Manipulation
JavaScript & Dom Manipulation
 
I18n
I18nI18n
I18n
 
Jscript Fundamentals
Jscript FundamentalsJscript Fundamentals
Jscript Fundamentals
 
Dart, Darrt, Darrrt
Dart, Darrt, DarrrtDart, Darrt, Darrrt
Dart, Darrt, Darrrt
 
Can your App parle Francais?
Can your App parle Francais?Can your App parle Francais?
Can your App parle Francais?
 
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGap
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGapFAESA CONENCO 2013: Sencha Touch 2 + PhoneGap
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGap
 
Introduction of javascript
Introduction of javascriptIntroduction of javascript
Introduction of javascript
 
From Ruby to Node.js
From Ruby to Node.jsFrom Ruby to Node.js
From Ruby to Node.js
 
IBM Lotus Notes Domino XPages and XPages for Mobile
IBM Lotus Notes Domino XPages and XPages for MobileIBM Lotus Notes Domino XPages and XPages for Mobile
IBM Lotus Notes Domino XPages and XPages for Mobile
 
Html javascript
Html javascriptHtml javascript
Html javascript
 
JS class slides (2016)
JS class slides (2016)JS class slides (2016)
JS class slides (2016)
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
 
Intro to Android Programming
Intro to Android ProgrammingIntro to Android Programming
Intro to Android Programming
 
JS Class 2016
JS Class 2016JS Class 2016
JS Class 2016
 
Domain Specific Languages
Domain Specific LanguagesDomain Specific Languages
Domain Specific Languages
 
Client-side JavaScript Vulnerabilities
Client-side JavaScript VulnerabilitiesClient-side JavaScript Vulnerabilities
Client-side JavaScript Vulnerabilities
 
JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4
 
An Introduction to TypeScript
An Introduction to TypeScriptAn Introduction to TypeScript
An Introduction to TypeScript
 
Eugene Andruszczenko: jQuery
Eugene Andruszczenko: jQueryEugene Andruszczenko: jQuery
Eugene Andruszczenko: jQuery
 

More from Ken Tabor

Introduction to Coding a Webpage
Introduction to Coding a WebpageIntroduction to Coding a Webpage
Introduction to Coding a Webpage
Ken Tabor
 
Making the Difficult, Simple(r)
Making the Difficult, Simple(r)Making the Difficult, Simple(r)
Making the Difficult, Simple(r)
Ken Tabor
 
On Writing: What Best Selling Author David Baldacci Taught Me About Writing a...
On Writing: What Best Selling Author David Baldacci Taught Me About Writing a...On Writing: What Best Selling Author David Baldacci Taught Me About Writing a...
On Writing: What Best Selling Author David Baldacci Taught Me About Writing a...
Ken Tabor
 
Demo Hard: Things Nobody Told an Introvert About Public Speaking
Demo Hard: Things Nobody Told an Introvert About Public SpeakingDemo Hard: Things Nobody Told an Introvert About Public Speaking
Demo Hard: Things Nobody Told an Introvert About Public Speaking
Ken Tabor
 
Machine Learning: Understanding the Invisible Force Changing Our World
Machine Learning: Understanding the Invisible Force Changing Our WorldMachine Learning: Understanding the Invisible Force Changing Our World
Machine Learning: Understanding the Invisible Force Changing Our World
Ken Tabor
 
10 Things About Human UI that Will Change Forever in Self-Driving Cars
10 Things About Human UI that Will Change Forever in Self-Driving Cars10 Things About Human UI that Will Change Forever in Self-Driving Cars
10 Things About Human UI that Will Change Forever in Self-Driving Cars
Ken Tabor
 
Ten Easy Ways to Improve Your Conference Talk
Ten Easy Ways to Improve Your Conference TalkTen Easy Ways to Improve Your Conference Talk
Ten Easy Ways to Improve Your Conference Talk
Ken Tabor
 
Measuring the Mobile Experience at SXSW 2016
Measuring the Mobile Experience at SXSW 2016Measuring the Mobile Experience at SXSW 2016
Measuring the Mobile Experience at SXSW 2016
Ken Tabor
 
Measuring the Mobile Experience: The Analytics of Handheld UX
Measuring the Mobile Experience: The Analytics of Handheld UXMeasuring the Mobile Experience: The Analytics of Handheld UX
Measuring the Mobile Experience: The Analytics of Handheld UX
Ken Tabor
 
Your Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsYour Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web Components
Ken Tabor
 
10 Tips for a Winning Hackathon Pitch
10 Tips for a Winning Hackathon Pitch10 Tips for a Winning Hackathon Pitch
10 Tips for a Winning Hackathon Pitch
Ken Tabor
 
10 Leadership Lessons from the Tao Te Ching
10 Leadership Lessons from the Tao Te Ching10 Leadership Lessons from the Tao Te Ching
10 Leadership Lessons from the Tao Te Ching
Ken Tabor
 
BigDesign 2014 - What's Before Mobile First?
BigDesign 2014 - What's Before Mobile First?BigDesign 2014 - What's Before Mobile First?
BigDesign 2014 - What's Before Mobile First?
Ken Tabor
 
UXPA Dallas - Google Analytics and What's Before Mobile First
UXPA Dallas - Google Analytics and What's Before Mobile FirstUXPA Dallas - Google Analytics and What's Before Mobile First
UXPA Dallas - Google Analytics and What's Before Mobile First
Ken Tabor
 
WVPDX 2014 - Hammering Responsive Web Design Into Shape
WVPDX 2014 - Hammering Responsive Web Design Into ShapeWVPDX 2014 - Hammering Responsive Web Design Into Shape
WVPDX 2014 - Hammering Responsive Web Design Into Shape
Ken Tabor
 
Hammering Responsive Web Design Into Shape
Hammering Responsive Web Design Into ShapeHammering Responsive Web Design Into Shape
Hammering Responsive Web Design Into Shape
Ken Tabor
 

More from Ken Tabor (16)

Introduction to Coding a Webpage
Introduction to Coding a WebpageIntroduction to Coding a Webpage
Introduction to Coding a Webpage
 
Making the Difficult, Simple(r)
Making the Difficult, Simple(r)Making the Difficult, Simple(r)
Making the Difficult, Simple(r)
 
On Writing: What Best Selling Author David Baldacci Taught Me About Writing a...
On Writing: What Best Selling Author David Baldacci Taught Me About Writing a...On Writing: What Best Selling Author David Baldacci Taught Me About Writing a...
On Writing: What Best Selling Author David Baldacci Taught Me About Writing a...
 
Demo Hard: Things Nobody Told an Introvert About Public Speaking
Demo Hard: Things Nobody Told an Introvert About Public SpeakingDemo Hard: Things Nobody Told an Introvert About Public Speaking
Demo Hard: Things Nobody Told an Introvert About Public Speaking
 
Machine Learning: Understanding the Invisible Force Changing Our World
Machine Learning: Understanding the Invisible Force Changing Our WorldMachine Learning: Understanding the Invisible Force Changing Our World
Machine Learning: Understanding the Invisible Force Changing Our World
 
10 Things About Human UI that Will Change Forever in Self-Driving Cars
10 Things About Human UI that Will Change Forever in Self-Driving Cars10 Things About Human UI that Will Change Forever in Self-Driving Cars
10 Things About Human UI that Will Change Forever in Self-Driving Cars
 
Ten Easy Ways to Improve Your Conference Talk
Ten Easy Ways to Improve Your Conference TalkTen Easy Ways to Improve Your Conference Talk
Ten Easy Ways to Improve Your Conference Talk
 
Measuring the Mobile Experience at SXSW 2016
Measuring the Mobile Experience at SXSW 2016Measuring the Mobile Experience at SXSW 2016
Measuring the Mobile Experience at SXSW 2016
 
Measuring the Mobile Experience: The Analytics of Handheld UX
Measuring the Mobile Experience: The Analytics of Handheld UXMeasuring the Mobile Experience: The Analytics of Handheld UX
Measuring the Mobile Experience: The Analytics of Handheld UX
 
Your Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsYour Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web Components
 
10 Tips for a Winning Hackathon Pitch
10 Tips for a Winning Hackathon Pitch10 Tips for a Winning Hackathon Pitch
10 Tips for a Winning Hackathon Pitch
 
10 Leadership Lessons from the Tao Te Ching
10 Leadership Lessons from the Tao Te Ching10 Leadership Lessons from the Tao Te Ching
10 Leadership Lessons from the Tao Te Ching
 
BigDesign 2014 - What's Before Mobile First?
BigDesign 2014 - What's Before Mobile First?BigDesign 2014 - What's Before Mobile First?
BigDesign 2014 - What's Before Mobile First?
 
UXPA Dallas - Google Analytics and What's Before Mobile First
UXPA Dallas - Google Analytics and What's Before Mobile FirstUXPA Dallas - Google Analytics and What's Before Mobile First
UXPA Dallas - Google Analytics and What's Before Mobile First
 
WVPDX 2014 - Hammering Responsive Web Design Into Shape
WVPDX 2014 - Hammering Responsive Web Design Into ShapeWVPDX 2014 - Hammering Responsive Web Design Into Shape
WVPDX 2014 - Hammering Responsive Web Design Into Shape
 
Hammering Responsive Web Design Into Shape
Hammering Responsive Web Design Into ShapeHammering Responsive Web Design Into Shape
Hammering Responsive Web Design Into Shape
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 

Translated Strings and Foreign Language Support in JavaScript Web Apps - OSCON 2013