SlideShare a Scribd company logo
1 of 57
Download to read offline
Getting in the
  mood for
  Hackday.
  Chris&an
Heilmann,
Dundee
University
Hack
Day
17/02/2010
We’re here today to
tell you quickly about
the university hack
program and what the
heck Hack is.
Hack in Yahoo is our
way to play and
invent.
By allowing people to
build whatever they
want we keep them
happy.
We also find out flaws
about our own
products and learn
about technologies
that are not in the
normal stack.
By taking part in this
program you get a
chance to show what
you can do.
To your professors, to
us but most of all to
yourself.
We will give you some
cool building blocks.




             http://www.flickr.com/photos/naelyn/112630649/
The simple plan:

Use blocks - solve
problem.
We want to see things
that are practical and
make a difference to
you and/or to other
people.
!University
Good hacks have a
few ingredients.
1. A problem solved
2. Data
3. Interface
4.Platform
Hack ingredient #1:
A problem that needs
solving.
       (And an audience that needs it solved.)
Find something that is
nagging you and use
technology to fix it.
Or try to tackle some
larger issues.
Politics / Voting
Green / Environment
Accessibility
Hack ingredient #2:
Data.
The world is full of
data sources.
Some of them get
offered to you in very
easy to use formats.
Others need to get
converted to more
useful formats.
  (which is a hack in itself that can make a difference)
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 case
 You 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="fr"
Using YQL has a lot of
benefits:
 No time wasted reading API docs
 Using 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)
Hack ingredient #3:
Interface.
Interfaces for the web
that really work are
hard to build.
Therefore the
cleverest thing you
can do is using
libraries.
Libraries.




             (...)
Personally, I use YUI
and jQuery -
depending on what
needs to be done.
http://developer.yahoo.com/yui/
Using YQL and YUI:




http://www.yuiblog.com/blog/2010/02/11/video-
                 heilmann-yql/
Hack ingredient #4:
Platform.
You can build a hack
for any platform you
like.
Personally, I like to
build web apps.
Using web
technologies you can
support other
platforms, too.
Appcelerator Titanium




    http://www.appcelerator.com/
However, everything
goes. Surprise us.
Some demos:
GooHooBi




http://icant.co.uk/goohoobi/index.php?research
http://github.com/codepo8/GooHooBi
http://vimeo.com/8075850
Keywordfinder




     http://keywordfinder.org
GeoMaker




  http://icant.co.uk/geomaker/
  http://github.com/codepo8/GeoMaker
Flickrcollector




 http://isithackday.com/hacks/flickrcollector/
 http://github.com/codepo8/flickrcollector
Mapumental




   http://mapumental.channel4.com/
Lack of talent or
experience is not a
show-stopper.
Collaborate and find
some good ideas and
then go for it.

Chris&an
Heilmann

h@p://wait‐&ll‐i.com

                                  Thanks!

h@p://developer‐evangelism.com

h@p://twi@er.com/codepo8




More Related Content

More from Christian Heilmann

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Christian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloChristian Heilmann
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteChristian Heilmann
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteChristian Heilmann
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandChristian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerChristian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?Christian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachChristian Heilmann
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsChristian Heilmann
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansChristian Heilmann
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Christian Heilmann
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlChristian Heilmann
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Christian Heilmann
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)Christian Heilmann
 

More from Christian Heilmann (20)

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynote
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays Finland
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer
 
Taking the P out of PWA
Taking the P out of PWATaking the P out of PWA
Taking the P out of PWA
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReach
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worlds
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humans
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
 

Getting Ready For Hackday