SlideShare a Scribd company logo
Advanced Web Development Software Strategies for Online Applications Rob Stein, Charlie Moad, Ed Bachta The Indianapolis Museum of Art
Purpose of Today’s Workshop ,[object Object],[object Object]
Outline ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Web Page or Web Application… What’s the Difference?
Web Pages are Built by Producers ,[object Object],[object Object],[object Object]
Web Apps are Driven by the User ,[object Object],[object Object],[object Object]
Web Page
Web Application
Web Page
Web Application
The More Things Change The More They Stay the Same…
 
 
 
 
 
 
 
 
 
 
 
 
 
Attributes of a Web Application ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Tim O’Reilly –  What is Web2.0
So what are the keys to building great web applications?
We’re in Luck! ,[object Object],[object Object],[object Object]
Differences from Last Year ,[object Object],[object Object],[object Object]
Differences from Last Year ,[object Object],[object Object],[object Object],[object Object]
WebDev 2008 ,[object Object]
WebDev 2008 ,[object Object]
WebDev 2008 ,[object Object]
X
 
 
That Being Said… ,[object Object]
Reasons to build your own API’s ,[object Object],[object Object],[object Object],[object Object]
Where’s the API for my data? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Object Relational Mappers ,[object Object],[object Object],[object Object],[object Object]
Object Relational Mappers ,[object Object],[object Object],[object Object],http://wiki.rubyonrails.org/rails/pages/ActiveRecord http://www.hibernate.org/ http://www.sqlalchemy.org/ http://propel.phpdb.org/trac/
steve.museum ,[object Object],[object Object],[object Object],**Auto-generated Code** Do Not Edit! /** * Entity representing the table: term  *  @package  steve.core.data_objects  *  *  @author  tech-dudes <steve.tech@steve.museum> *  @version  0.001alpha  */ class  Term  extends  Entity { function  getTableName() { return  &quot;steve_term&quot;;} function  getKey() { return  &quot;term_id&quot;;} var  $termId; function  getTermId() {  return  $this->termId; } function  setTermId($term_id) { $this->termId = $term_id;}  var  $sessionId; function  getSessionId() {  return  $this->sessionId; } function  setSessionId($session_id) { $this->sessionId = $session_id;} … PHP
steve.museum ,[object Object],[object Object],[object Object],/** *  @package  steve.core.api *  @author  tech-dudes <steve.tech@steve.museum> *  @version  0.001alpha */ interface  iTermDAO  { /** *  Create a new term object *  @param  string $token the auth token *  @param  int $mimeId the image id to associate the term with *  @param  string $termText the text for the term *  @return  Term result *  @throws  termException *  @secure authToken $token */ function  createTerm($token, $mimeId, $termText); /** *  Save an existing term into the database *  @param  string $token the auth token *  @param  Term $term the term to be saved *  @throws  termException *  @secure authToken $token */ function  saveTerm($token, $term); ...
steve.museum ,[object Object],[object Object],[object Object],class  TermDAO  extends  ADOHelper  implements  iTermDAO   { /** *  Create a new term object *  @param  string $token the auth token *  @param  int $mimeId the image id to associate the term with *  @param  string $termText the text for the term *  @return  Term result *  @throws  termException *  @secure authToken $token */ function  createTerm($token, $mimeId, $termText) {  $termObject =  new  Term(); $termObject->setTerm($termText); $this->create($termObject);  // makes new DB row return  $termObject; } /** *  Save an existing term into the database *  @param  string $token the auth token *  @param  Term $term the term to be saved *  @throws  termException *  @secure authUserCheckId $token */ function  saveTerm($token, $term) { $this->save($term);  // issues a DB update return ; }  ...
Introducing Mercury ,[object Object],Collections Management Digital Asset Management User Generated Content Mercury www.imamuseum.org Exhibition Micro-sites In-Gallery Applications
PHP Adapter Layer
Adding a custom method Using the custom method
[object Object],[object Object],[object Object],[object Object],[object Object],No! It’s not just for Java.
Demo
Search ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],http://gears.google.com/ http://lucene.apache.org/ http://drupal.org/
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bite Sized Web Components ,[object Object],[object Object]
WebApp Toolbox
Storage ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Video ,[object Object],[object Object],[object Object],[object Object],[object Object]
Images ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Compute ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Web Hosting Setup ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Amazon Web Services ,[object Object],[object Object],[object Object],[object Object],[object Object]
Authentication Services ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Social Computing ,[object Object],[object Object],[object Object],[object Object],[object Object]
Facebook API ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interface API ,[object Object],[object Object],[object Object],friends.get(api_key, session_key, call_id, secret_key_md5,  version, [format], [callback], [flid]);
Interface API ,[object Object],[object Object],friends.get([format], [callback], [flid]);
friends.get()  Response <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>  <friends_get_response xmlns= http://api.facebook.com/1.0/   xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;  xsi:schemaLocation=&quot;http://api.facebook.com/1.0/      http://api.facebook.com/1.0/facebook.xsd&quot; list=&quot;true&quot;>  <uid>222333</uid>  <uid>1240079</uid>  </friends_get_response>  [222333,1240079] XML JSON
Query Language ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],SELECT uid2 FROM friend WHERE uid1=loggedInUid  friends.get() in FQL
FBML (Facebook Markup Lang) ,[object Object],[object Object],[object Object],[object Object],[object Object]
FBML Examples <fb:pronoun uid=123 useyou=‘true’ possessive=‘false’ reflexive=‘false’ objective=‘false’  usethey=‘true’capitalize=‘false’> Rob updated  his  profile.  -possessive Charlie poked  himself -reflexive You added Pat as a friend  -useyou, usethey, capitalize and wrote on their wall <fb:friend-selector uid=&quot;123445&quot; name=&quot;uid&quot; idname=&quot;friend_sel&quot; />
FBML Examples <fb:board xid=&quot;titans_board&quot; canpost=&quot;true&quot; candelete=&quot;false&quot;  canmark=&quot;false&quot; cancreatetopic=&quot;true&quot; numtopics=&quot;5&quot;  returnurl=&quot;http://apps.facebook.com/myapp/titans/&quot;>  <fb:title>Discuss the Titans</fb:title> </fb:board>
Facebook Application Model FB Data Store API Application Host
Widget Frameworks ,[object Object],[object Object],[object Object],[object Object]
Widget Frameworks ,[object Object],[object Object],[object Object],[object Object]
Is AIR a Widget Killer? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Content Management –  Back to Legos ,[object Object],[object Object],[object Object],[object Object],[object Object]
A CMS Tour ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Team Troubles $total = 0; $entrance_data =  array (); for  ($i = 0; $i < $entRawRS->RecordCount(); $i++) { $entRawRS->Move($i); $entAdjRS->Move($i); $cnt = getDayCount($entRawRS->fields[ 'dateData' ], $entRawRS->fields[ 'raw' ], $entAdjRS->fields[ 'adj' ], 300); $entrance_data[] = $cnt; $total += $cnt; } $chart->addRow( 'Entrances' , $entrance_data); div#header h1#site-name { background-image: url(../gfx/ima_logo.gif); background-repeat: no-repeat; display: block; height: 67px; width: 174px; float: left; top: 46px; position: absolute; left: 18px; z-index: 0; } <div class=&quot;copyleft&quot;> <h3>Available Tours</h3> </div> <div class=&quot;copyright&quot;> <div id=&quot;anchors&quot;> <ul> <li>Spotlight a Collection </li> <li>Special Exhibition </li> <li>Lilly House Gardens of the IMA </li> </ul> </div> “ SELECT t.nid as task_nid FROM athena_project_task pt &quot; . &quot;INNER JOIN athena_task t ON t.nid = pt.task_nid &quot; . &quot;INNER JOIN node n ON n.nid = t.nid &quot; . &quot;WHERE pt.project_nid = %d AND t.state = %d &quot; . &quot;ORDER BY n.changed DESC, n.title&quot; var i = 0; var found_date = false; $('select').each(function(){ i ++; var words = this.id.split('-'); var last_word = words.pop(); switch(last_word) { case 'year' : $(this).addClass('split-date'); $($(this).parent()[0]).addClass('cal-form-item'); this.id = words.join('-');  found_date = true; break;
Divide and Conquer ,[object Object],[object Object],[object Object],div#header h1#site-name { background-image: url(/gfx/ima_logo.gif); background-repeat: no-repeat; “ SELECT t.nid as task_nid FROM athena_project_task pt &quot; . &quot;INNER JOIN …
MVC – An architectural basis ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],user actions view selection model updates data requests change notification
MVC – Applied to the web ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],user actions, navigation page & theme selection content updates and requests content requests (AJAX) Web Designer Web Programmer Web Programmer Content Creators Content
How do we make use of MVC? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Subversion (SVN) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bringing in non-technical members ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Hey Ed, What if you leave a project you really wish you would have deleted?  Is there any way to return to abandoned projects and delete them for the sake of tidying up?  Or is it easier to create an automated process to delete projects with no files and active members? It would be interesting to put in a kind of drop down list by department where we could then just check off members, rather than typing them in. I don't know if this is possible, but for all that I know it's all magic and anything is possible.
Drupal Boot Camp Drop and give me 20!
Let’s get started… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Set up the database
That was quick!
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Listen up! Here’s the game plan…
Create some content
Choose a new theme
Content type creation with CCK ,[object Object],[object Object],[object Object]
Create a new Content Type
Add a custom field
Configure the field widget
Create your content
Take a peek at the result
Organizing content with Views ,[object Object],[object Object],[object Object]
Add a view
Configure the view
A quick look at menu items
Add a link to the new view Change your front page in site information
Behold, the new front page…
and the Works of Art page
For the ambitious ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Recommended modules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Client Side Development The Customer is Always Right
Client Interfaces ,[object Object],[object Object],[object Object]
What about the DOM? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Javascript ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Javascript Toolkits ,[object Object],[object Object],[object Object],[object Object]
Javascript Toolkits ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
jQuery Example
Interface Components ,[object Object]
Back to the Toolbox ,[object Object]
Back to the Toolbox ,[object Object]
Back to the Toolbox ,[object Object],ImageFlow  0.9 http://www.prototype-ui.com
Back to the Toolbox ,[object Object]
In Support of CSS Boilerplates ,[object Object],[object Object],[object Object]
http://www.intensivstation.ch   http://www.thenoodleincident.com/
Standardize Your CSS Usage ,[object Object]
 
 
 
Seek CSS Enlightenment Grasshopper ,[object Object],[object Object],[object Object],[object Object],[object Object]
XML in the Real World You mean people actually use this stuff?
G.O. – Global Origins ,[object Object],[object Object],[object Object],[object Object]
G.O. – Global Origins One Ring XML Data Description to Rule Them All
G.O. – Global Origins ,[object Object],XmlSerializer artobjSer = new XmlSerializer(typeof( GlobalExplorer )); goData  = (GlobalExplorer)artobjSer.Deserialize(File.OpenRead(this.xmlFile));
Useful Eclipse Plugins ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Questions? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

What's hot (20)

Front end web development
Front end web developmentFront end web development
Front end web development
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
Introduction of Html/css/js
Introduction of Html/css/jsIntroduction of Html/css/js
Introduction of Html/css/js
 
Html5 and-css3-overview
Html5 and-css3-overviewHtml5 and-css3-overview
Html5 and-css3-overview
 
Web development | Derin Dolen
Web development | Derin Dolen Web development | Derin Dolen
Web development | Derin Dolen
 
WEB I - 01 - Introduction to Web Development
WEB I - 01 - Introduction to Web DevelopmentWEB I - 01 - Introduction to Web Development
WEB I - 01 - Introduction to Web Development
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
Introduction to php
Introduction to phpIntroduction to php
Introduction to php
 
Java script
Java scriptJava script
Java script
 
Asp.net.
Asp.net.Asp.net.
Asp.net.
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
Responsive web designing ppt(1)
Responsive web designing ppt(1)Responsive web designing ppt(1)
Responsive web designing ppt(1)
 
CSS Basics
CSS BasicsCSS Basics
CSS Basics
 
Webservices
WebservicesWebservices
Webservices
 
Html / CSS Presentation
Html / CSS PresentationHtml / CSS Presentation
Html / CSS Presentation
 
Js ppt
Js pptJs ppt
Js ppt
 
Web Application Introduction
Web Application  IntroductionWeb Application  Introduction
Web Application Introduction
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
 
Web Development using HTML & CSS
Web Development using HTML & CSSWeb Development using HTML & CSS
Web Development using HTML & CSS
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development Presentation
 

Viewers also liked

Ppt of web development
Ppt of web developmentPpt of web development
Ppt of web development
bethanygfair
 

Viewers also liked (13)

Fundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-DevelopersFundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-Developers
 
Basic Introduction to Web Development
Basic Introduction to Web DevelopmentBasic Introduction to Web Development
Basic Introduction to Web Development
 
Modern Web Development
Modern Web DevelopmentModern Web Development
Modern Web Development
 
Top 10 eHealth trends and best practices
Top 10 eHealth trends and best practicesTop 10 eHealth trends and best practices
Top 10 eHealth trends and best practices
 
Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)
 
The road to professional web development
The road to professional web developmentThe road to professional web development
The road to professional web development
 
Ppt of web development
Ppt of web developmentPpt of web development
Ppt of web development
 
Green Storage 1: Economics, Environment, Energy and Engineering
Green Storage 1: Economics, Environment, Energy and EngineeringGreen Storage 1: Economics, Environment, Energy and Engineering
Green Storage 1: Economics, Environment, Energy and Engineering
 
Infographic 60 Top Auto Insurance Keywords by Monthly Average Search Volume o...
Infographic 60 Top Auto Insurance Keywords by Monthly Average Search Volume o...Infographic 60 Top Auto Insurance Keywords by Monthly Average Search Volume o...
Infographic 60 Top Auto Insurance Keywords by Monthly Average Search Volume o...
 
Teen Driving Insurance?
Teen Driving Insurance?Teen Driving Insurance?
Teen Driving Insurance?
 
Life Insurance Facts
Life Insurance FactsLife Insurance Facts
Life Insurance Facts
 
What You Should Know About Buying A Lake House
What You Should Know About Buying A Lake HouseWhat You Should Know About Buying A Lake House
What You Should Know About Buying A Lake House
 
Believe In Story - The Power of Content Creation Management
Believe In Story - The Power of Content Creation ManagementBelieve In Story - The Power of Content Creation Management
Believe In Story - The Power of Content Creation Management
 

Similar to Advanced Web Development

PowerPoint
PowerPointPowerPoint
PowerPoint
Videoguy
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
Tony Frame
 
Java Technology
Java TechnologyJava Technology
Java Technology
ifnu bima
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathon
marvin337
 

Similar to Advanced Web Development (20)

Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web apps
 
PowerPoint
PowerPointPowerPoint
PowerPoint
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePoint
 
Html5
Html5Html5
Html5
 
Building Social Enterprise with Ruby and Salesforce
Building Social Enterprise with Ruby and SalesforceBuilding Social Enterprise with Ruby and Salesforce
Building Social Enterprise with Ruby and Salesforce
 
Approaches to mobile site development
Approaches to mobile site developmentApproaches to mobile site development
Approaches to mobile site development
 
Daniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days OcDaniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days Oc
 
Overview of entity framework by software outsourcing company india
Overview of entity framework by software outsourcing company indiaOverview of entity framework by software outsourcing company india
Overview of entity framework by software outsourcing company india
 
Mike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and PatternsMike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and Patterns
 
Best practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata APIBest practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata API
 
Real-Time Web Applications with ASP.NET WebAPI and SignalR
Real-Time Web Applications with ASP.NET WebAPI and SignalRReal-Time Web Applications with ASP.NET WebAPI and SignalR
Real-Time Web Applications with ASP.NET WebAPI and SignalR
 
Java Technology
Java TechnologyJava Technology
Java Technology
 
IRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHPIRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHP
 
Best practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata APIBest practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata API
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The Cloud
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathon
 
Having Fun Building Web Applications (Day 1 Slides)
Having Fun Building Web Applications (Day 1 Slides)Having Fun Building Web Applications (Day 1 Slides)
Having Fun Building Web Applications (Day 1 Slides)
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 

More from Robert J. Stein

Connecting the Dots: How Digital Methods Become the Glue that Binds Cultural ...
Connecting the Dots: How Digital Methods Become the Glue that Binds Cultural ...Connecting the Dots: How Digital Methods Become the Glue that Binds Cultural ...
Connecting the Dots: How Digital Methods Become the Glue that Binds Cultural ...
Robert J. Stein
 
What is a museum technologist
What is a museum technologistWhat is a museum technologist
What is a museum technologist
Robert J. Stein
 
DMA Friends - Promoting Participation and Engagement with Art
DMA Friends - Promoting Participation and Engagement with ArtDMA Friends - Promoting Participation and Engagement with Art
DMA Friends - Promoting Participation and Engagement with Art
Robert J. Stein
 
Preparing for a multi platform world
Preparing for a multi platform worldPreparing for a multi platform world
Preparing for a multi platform world
Robert J. Stein
 

More from Robert J. Stein (20)

GOALS: Putting Data at the Heart of your Museum
GOALS: Putting Data at the Heart of your MuseumGOALS: Putting Data at the Heart of your Museum
GOALS: Putting Data at the Heart of your Museum
 
A Body in Balance - Imagining and Ecology of Museums
A Body in Balance - Imagining and Ecology of MuseumsA Body in Balance - Imagining and Ecology of Museums
A Body in Balance - Imagining and Ecology of Museums
 
Museums and Big Data — Supporting Exploration, Innovation, and Audience Engag...
Museums and Big Data — Supporting Exploration, Innovation, and Audience Engag...Museums and Big Data — Supporting Exploration, Innovation, and Audience Engag...
Museums and Big Data — Supporting Exploration, Innovation, and Audience Engag...
 
Storytelling: Just Tall Tales or the Future of Museums?
Storytelling: Just Tall Tales or the Future of Museums?Storytelling: Just Tall Tales or the Future of Museums?
Storytelling: Just Tall Tales or the Future of Museums?
 
Musuems... So What?
Musuems... So What?Musuems... So What?
Musuems... So What?
 
Charting the Course: Using Data in the Museum to Explore, Innovate, and Reach...
Charting the Course: Using Data in the Museum to Explore, Innovate, and Reach...Charting the Course: Using Data in the Museum to Explore, Innovate, and Reach...
Charting the Course: Using Data in the Museum to Explore, Innovate, and Reach...
 
Desperately Seeking Innovation: Making Connections Between Art and Science
Desperately Seeking Innovation: Making Connections Between Art and ScienceDesperately Seeking Innovation: Making Connections Between Art and Science
Desperately Seeking Innovation: Making Connections Between Art and Science
 
Connecting the Dots: How Digital Methods Become the Glue that Binds Cultural ...
Connecting the Dots: How Digital Methods Become the Glue that Binds Cultural ...Connecting the Dots: How Digital Methods Become the Glue that Binds Cultural ...
Connecting the Dots: How Digital Methods Become the Glue that Binds Cultural ...
 
Reading the Tea Leaves: Global Trends and Opportunities for Tomorrow's Museums
Reading the Tea Leaves: Global Trends and Opportunities for Tomorrow's MuseumsReading the Tea Leaves: Global Trends and Opportunities for Tomorrow's Museums
Reading the Tea Leaves: Global Trends and Opportunities for Tomorrow's Museums
 
Experience Mining: Understanding Cultural Participation in Museums
Experience Mining: Understanding Cultural Participation in MuseumsExperience Mining: Understanding Cultural Participation in Museums
Experience Mining: Understanding Cultural Participation in Museums
 
Smart Cities Need Smart Museums
Smart Cities Need Smart MuseumsSmart Cities Need Smart Museums
Smart Cities Need Smart Museums
 
Friends with Benefits
Friends with BenefitsFriends with Benefits
Friends with Benefits
 
Museums and the Future of wearables
Museums and the Future of wearablesMuseums and the Future of wearables
Museums and the Future of wearables
 
Mw2014 friends analytics
Mw2014 friends analyticsMw2014 friends analytics
Mw2014 friends analytics
 
Participation at Scale: Leveraging incentive and gamification to promote muse...
Participation at Scale: Leveraging incentive and gamification to promote muse...Participation at Scale: Leveraging incentive and gamification to promote muse...
Participation at Scale: Leveraging incentive and gamification to promote muse...
 
Museums and Civic Responsibility
Museums and Civic ResponsibilityMuseums and Civic Responsibility
Museums and Civic Responsibility
 
What is a museum technologist
What is a museum technologistWhat is a museum technologist
What is a museum technologist
 
DMA Friends - Promoting Participation and Engagement with Art
DMA Friends - Promoting Participation and Engagement with ArtDMA Friends - Promoting Participation and Engagement with Art
DMA Friends - Promoting Participation and Engagement with Art
 
Preparing for a multi platform world
Preparing for a multi platform worldPreparing for a multi platform world
Preparing for a multi platform world
 
Nurturing Engagement
Nurturing EngagementNurturing Engagement
Nurturing Engagement
 

Recently uploaded

Future of Trade 2024 - Decoupled and Reconfigured - Snapshot Report
Future of Trade 2024 - Decoupled and Reconfigured - Snapshot ReportFuture of Trade 2024 - Decoupled and Reconfigured - Snapshot Report
Future of Trade 2024 - Decoupled and Reconfigured - Snapshot Report
Dubai Multi Commodity Centre
 
Constitution of Company Article of Association
Constitution of Company Article of AssociationConstitution of Company Article of Association
Constitution of Company Article of Association
seri bangash
 
zidauu _business communication.pptx /pdf
zidauu _business  communication.pptx /pdfzidauu _business  communication.pptx /pdf
zidauu _business communication.pptx /pdf
zukhrafshabbir
 

Recently uploaded (20)

Raising Seed Capital by Steve Schlafman at RRE Ventures
Raising Seed Capital by Steve Schlafman at RRE VenturesRaising Seed Capital by Steve Schlafman at RRE Ventures
Raising Seed Capital by Steve Schlafman at RRE Ventures
 
Revolutionizing Industries: The Power of Carbon Components
Revolutionizing Industries: The Power of Carbon ComponentsRevolutionizing Industries: The Power of Carbon Components
Revolutionizing Industries: The Power of Carbon Components
 
Copyright: What Creators and Users of Art Need to Know
Copyright: What Creators and Users of Art Need to KnowCopyright: What Creators and Users of Art Need to Know
Copyright: What Creators and Users of Art Need to Know
 
Using Generative AI for Content Marketing
Using Generative AI for Content MarketingUsing Generative AI for Content Marketing
Using Generative AI for Content Marketing
 
Future of Trade 2024 - Decoupled and Reconfigured - Snapshot Report
Future of Trade 2024 - Decoupled and Reconfigured - Snapshot ReportFuture of Trade 2024 - Decoupled and Reconfigured - Snapshot Report
Future of Trade 2024 - Decoupled and Reconfigured - Snapshot Report
 
Stages of Startup Funding - An Explainer
Stages of Startup Funding - An ExplainerStages of Startup Funding - An Explainer
Stages of Startup Funding - An Explainer
 
Constitution of Company Article of Association
Constitution of Company Article of AssociationConstitution of Company Article of Association
Constitution of Company Article of Association
 
Equinox Gold Corporate Deck May 24th 2024
Equinox Gold Corporate Deck May 24th 2024Equinox Gold Corporate Deck May 24th 2024
Equinox Gold Corporate Deck May 24th 2024
 
Salesforce in Life Sciences - Best Ways to Leverage The CRM for Clinical Trials
Salesforce in Life Sciences - Best Ways to Leverage The CRM for Clinical TrialsSalesforce in Life Sciences - Best Ways to Leverage The CRM for Clinical Trials
Salesforce in Life Sciences - Best Ways to Leverage The CRM for Clinical Trials
 
Unlock Your TikTok Potential: Free TikTok Likes with InstBlast
Unlock Your TikTok Potential: Free TikTok Likes with InstBlastUnlock Your TikTok Potential: Free TikTok Likes with InstBlast
Unlock Your TikTok Potential: Free TikTok Likes with InstBlast
 
Innomantra Viewpoint - Building Moonshots : May-Jun 2024.pdf
Innomantra Viewpoint - Building Moonshots : May-Jun 2024.pdfInnomantra Viewpoint - Building Moonshots : May-Jun 2024.pdf
Innomantra Viewpoint - Building Moonshots : May-Jun 2024.pdf
 
Potato Flakes Manufacturing Plant Project Report.pdf
Potato Flakes Manufacturing Plant Project Report.pdfPotato Flakes Manufacturing Plant Project Report.pdf
Potato Flakes Manufacturing Plant Project Report.pdf
 
Matt Conway - Attorney - A Knowledgeable Professional - Kentucky.pdf
Matt Conway - Attorney - A Knowledgeable Professional - Kentucky.pdfMatt Conway - Attorney - A Knowledgeable Professional - Kentucky.pdf
Matt Conway - Attorney - A Knowledgeable Professional - Kentucky.pdf
 
Vendors of country report usefull datass
Vendors of country report usefull datassVendors of country report usefull datass
Vendors of country report usefull datass
 
Byrd & Chen’s Canadian Tax Principles 2023-2024 Edition 1st edition Volumes I...
Byrd & Chen’s Canadian Tax Principles 2023-2024 Edition 1st edition Volumes I...Byrd & Chen’s Canadian Tax Principles 2023-2024 Edition 1st edition Volumes I...
Byrd & Chen’s Canadian Tax Principles 2023-2024 Edition 1st edition Volumes I...
 
Inside the Black Box of Venture Capital (VC)
Inside the Black Box of Venture Capital (VC)Inside the Black Box of Venture Capital (VC)
Inside the Black Box of Venture Capital (VC)
 
zidauu _business communication.pptx /pdf
zidauu _business  communication.pptx /pdfzidauu _business  communication.pptx /pdf
zidauu _business communication.pptx /pdf
 
8 Questions B2B Commercial Teams Can Ask To Help Product Discovery
8 Questions B2B Commercial Teams Can Ask To Help Product Discovery8 Questions B2B Commercial Teams Can Ask To Help Product Discovery
8 Questions B2B Commercial Teams Can Ask To Help Product Discovery
 
Understanding UAE Labour Law: Key Points for Employers and Employees
Understanding UAE Labour Law: Key Points for Employers and EmployeesUnderstanding UAE Labour Law: Key Points for Employers and Employees
Understanding UAE Labour Law: Key Points for Employers and Employees
 
IPTV Subscription UK: Your Guide to Choosing the Best Service
IPTV Subscription UK: Your Guide to Choosing the Best ServiceIPTV Subscription UK: Your Guide to Choosing the Best Service
IPTV Subscription UK: Your Guide to Choosing the Best Service
 

Advanced Web Development

  • 1. Advanced Web Development Software Strategies for Online Applications Rob Stein, Charlie Moad, Ed Bachta The Indianapolis Museum of Art
  • 2.
  • 3.
  • 4. Web Page or Web Application… What’s the Difference?
  • 5.
  • 6.
  • 11. The More Things Change The More They Stay the Same…
  • 12.  
  • 13.  
  • 14.  
  • 15.  
  • 16.  
  • 17.  
  • 18.  
  • 19.  
  • 20.  
  • 21.  
  • 22.  
  • 23.  
  • 24.  
  • 25.
  • 26. So what are the keys to building great web applications?
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. X
  • 34.  
  • 35.  
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 46. Adding a custom method Using the custom method
  • 47.
  • 48. Demo
  • 49.
  • 50.
  • 51.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64. friends.get() Response <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <friends_get_response xmlns= http://api.facebook.com/1.0/ xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd&quot; list=&quot;true&quot;> <uid>222333</uid> <uid>1240079</uid> </friends_get_response> [222333,1240079] XML JSON
  • 65.
  • 66.
  • 67. FBML Examples <fb:pronoun uid=123 useyou=‘true’ possessive=‘false’ reflexive=‘false’ objective=‘false’ usethey=‘true’capitalize=‘false’> Rob updated his profile. -possessive Charlie poked himself -reflexive You added Pat as a friend -useyou, usethey, capitalize and wrote on their wall <fb:friend-selector uid=&quot;123445&quot; name=&quot;uid&quot; idname=&quot;friend_sel&quot; />
  • 68. FBML Examples <fb:board xid=&quot;titans_board&quot; canpost=&quot;true&quot; candelete=&quot;false&quot; canmark=&quot;false&quot; cancreatetopic=&quot;true&quot; numtopics=&quot;5&quot; returnurl=&quot;http://apps.facebook.com/myapp/titans/&quot;> <fb:title>Discuss the Titans</fb:title> </fb:board>
  • 69. Facebook Application Model FB Data Store API Application Host
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75. Team Troubles $total = 0; $entrance_data = array (); for ($i = 0; $i < $entRawRS->RecordCount(); $i++) { $entRawRS->Move($i); $entAdjRS->Move($i); $cnt = getDayCount($entRawRS->fields[ 'dateData' ], $entRawRS->fields[ 'raw' ], $entAdjRS->fields[ 'adj' ], 300); $entrance_data[] = $cnt; $total += $cnt; } $chart->addRow( 'Entrances' , $entrance_data); div#header h1#site-name { background-image: url(../gfx/ima_logo.gif); background-repeat: no-repeat; display: block; height: 67px; width: 174px; float: left; top: 46px; position: absolute; left: 18px; z-index: 0; } <div class=&quot;copyleft&quot;> <h3>Available Tours</h3> </div> <div class=&quot;copyright&quot;> <div id=&quot;anchors&quot;> <ul> <li>Spotlight a Collection </li> <li>Special Exhibition </li> <li>Lilly House Gardens of the IMA </li> </ul> </div> “ SELECT t.nid as task_nid FROM athena_project_task pt &quot; . &quot;INNER JOIN athena_task t ON t.nid = pt.task_nid &quot; . &quot;INNER JOIN node n ON n.nid = t.nid &quot; . &quot;WHERE pt.project_nid = %d AND t.state = %d &quot; . &quot;ORDER BY n.changed DESC, n.title&quot; var i = 0; var found_date = false; $('select').each(function(){ i ++; var words = this.id.split('-'); var last_word = words.pop(); switch(last_word) { case 'year' : $(this).addClass('split-date'); $($(this).parent()[0]).addClass('cal-form-item'); this.id = words.join('-'); found_date = true; break;
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82. Drupal Boot Camp Drop and give me 20!
  • 83.
  • 84. Set up the database
  • 86.
  • 88. Choose a new theme
  • 89.
  • 90. Create a new Content Type
  • 91. Add a custom field
  • 94. Take a peek at the result
  • 95.
  • 98. A quick look at menu items
  • 99. Add a link to the new view Change your front page in site information
  • 100. Behold, the new front page…
  • 101. and the Works of Art page
  • 102.
  • 103.
  • 104. Client Side Development The Customer is Always Right
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117. http://www.intensivstation.ch http://www.thenoodleincident.com/
  • 118.
  • 119.  
  • 120.  
  • 121.  
  • 122.
  • 123. XML in the Real World You mean people actually use this stuff?
  • 124.
  • 125. G.O. – Global Origins One Ring XML Data Description to Rule Them All
  • 126.
  • 127.
  • 128.