Upload
christian-heilmann
View
2.883
Download
4
Embed Size (px)
DESCRIPTION
Introduction on how to build web applications quickly by using the web and YQL. Delivered at Open Hack Day Brazil 2010
Citation preview
Building web applications
using the web.Christian Heilmann, Brazil Open Hack Day, March 2010, Sao Paulo, Brazil
Web development is becoming more and more easy.
The reason is that the web itself became a platform to build with.
Another reason is that we have pre-built blocks that can be put together quickly to create something.
Something that works, is easy to maintain and can deal with change.
The main trick to building great web products is shifting your point of view.
The interface is not the start.
The interface comes at the end - as it needs the most work.
What you start with is information and a goal.
In other words:
What does your app deal with and how do you make it useful for the end user?
Let’s see some examples of that:
GooHooBi
http://icant.co.uk/goohoobi/index.php?researchhttp://github.com/codepo8/GooHooBihttp://vimeo.com/8075850
GeoMaker
http://icant.co.uk/geomaker/http://github.com/codepo8/GeoMaker
Flickrcollector
http://isithackday.com/hacks/flickrcollector/http://github.com/codepo8/flickrcollector
http://uk-house-prices.com/
Some very good data sources:
http://developer.yahoo.com/everything.html
http://data.gov.uk
http://www.guardian.co.uk/world-government-data
http://programmableweb.com/
http://www.guardian.co.uk/news/datablog
The trouble with data:You need to get access to the data sources (API keys, authentication)You need to get data in formats that are easy to use for your use caseYou need to filter the data down to what you really want to have in the end. All of the above multiplies in annoyance with the amount APIs you use.
A great workaround:
http://developer.yahoo.com/yql/console/
YQL turns the web into your database.
select * from {datasource} where {conditions}
select * from flickr.photos.search where text="donkey"
select * from google.news where q="healthcare"
select * from query.multi where queries in ('select * from nyt.article.search where query="healthcare"','select * from microsoft.bing.news where query="healthcare"','select * from google.news where q="healthcare"'
)
select content from html where url="http://www.foxnews.com/" and xpath="//h2/a"
select * from google.translate where q in (select content from html where url="http://www.foxnews.com/" and xpath="//h2/a"
) and target="pt"
insert into wordpress.post (title, description, blogurl, username, password) values ("Test Title", "This is a test body", "http://yqltest.wordpress.com", "yqltest", "password")
Using YQL has a lot of benefits:
No time wasted reading API docsUsing the console makes creating complex queries dead easy.Data filtering down to the least amount necessary.Fast pipes.Caching + converting Server-side JavaScript
Using YQL is easy! (PHP)
Using YQL is easy! (JavaScript)
http://github.com/yql/yql-tables
Starting with the data made me independent of the final platform.
http://github.com/codepo8/QuickTrans
The next trick is to use libraries to make the problem of browsers vanish.
Libraries.
(...)
h%p://developer.yahoo.com/yui/grids/builder/
h%p://developer.yahoo.com/yui/grids/builder/
And tools that work around cross-platform issues.
Appcelerator Titanium
http://www.appcelerator.com/
If you build your app, start with interfaces that work everywhere.
http://icant.co.uk/csscharts/
http://uk-house-prices.com/graphs.php?bloc=230&bstart=50&bend=54&start=50&end=54&loc=230
When you have that - enhance it to make the experience smoother.
http://developer.yahoo.com/yui/articles/hosting/#configure
http://developer.yahoo.com/yui/examples/autocomplete/ac_basic_array.html
http://developer.yahoo.com/yui/examples/slider/slider_dual_with_highlight.html
Data to be used can be in “offline” formats - the web will take care of that.
http://www.guardian.co.uk/news/datablog/2010/feb/11/winter-olympics-medals-by-country
select * from csv where url="http://spreadsheets.google.com/pub?key=tpWDkIZMZleQaREf493v1Jw&output=csv" and columns="Year,City,Sport,Discipline,Country,Event, Gender,Type" and Year="1924"
http://isithackday.com/csv-to-webservice/
So, think of a problem to solve and then start gathering your data.
Then use the blocks I talked about to put the solutions together.
Chris:an Heilmann h%p://wait‐:ll‐i.com h%p://developer‐evangelism.com h%p://twi%er.com/codepo8
Thanks!