Mashups for Everyone <ul><li>Allan Spale </li></ul>IgniteChi.org
Is Programming That Hard? <ul><li>Abstractions </li></ul><ul><li>Flow control </li></ul><ul><li>Lots of numbers and symbol...
It Depends… <ul><li>Harder languages </li></ul><ul><ul><li>Java </li></ul></ul><ul><ul><li>C++ </li></ul></ul><ul><ul><li>...
Programming for Everyone: BASIC <ul><li>10 FOR X=1 TO 3 </li></ul><ul><li>20 PRINT “IT’S FUN TO STAY AT THE…” </li></ul><u...
Programming for Everyone: HyperCard <ul><li>Early hypermedia authoring system </li></ul><ul><li>Website design program min...
HyperCard was Useful IgniteChi.org
Porgramming for Some: Visual Basic <ul><li>Easy to make a user interface </li></ul><ul><li>Somewhat cumbersome to write co...
Programming for Motivated People: Python <ul><li>Has a feel of “old” BASIC; easy to learn </li></ul><ul><li>Modern functio...
Now What? <ul><li>People figured desktop programming </li></ul><ul><ul><li>It is well-understood </li></ul></ul><ul><ul><l...
Mashups Defined <ul><li>Wikipedia definition: </li></ul><ul><ul><li>“ [C]ombines data or functionality from two or more so...
Why Is Web Programming Hard? <ul><li>There is no one single environment/technology that puts it all together </li></ul><ul...
Parts for a Successful Mashup Maker <ul><li>Easy-to-use database </li></ul><ul><ul><li>Freestyle entity model </li></ul></...
Traditional Database Model IgniteChi.org
Freestyle / Free-form Model <ul><li>Entity / “Barcode” / Unique ID </li></ul><ul><ul><li>Assign to a category </li></ul></...
Programming Language <ul><li>Very concise </li></ul><ul><li>Mostly symbolic, but not cryptic </li></ul><ul><ul><li>Use con...
Programming Language <ul><li>Entity creation + usage </li></ul><ul><ul><li>usa.illinois.cities << chicago </li></ul></ul><...
Widget Builder <ul><li>Similar style, but make it work in a web browser </li></ul>IgniteChi.org
Why Is This Good? <ul><li>Customized search </li></ul><ul><li>Your very own widgets </li></ul><ul><li>Interact with data o...
Programming is About Empowerment <ul><li>Don’t be intimidated by technologies </li></ul><ul><li>Programming is about proce...
Thanks for Listening! <ul><li>Learn more at:  </li></ul><ul><li>http://my-kaleidoscope.org/platform.html </li></ul>IgniteC...
References <ul><li>http://members. verizon .net/ olsongt / stackless /why_ stackless .html# stackless </li></ul><ul><li>ht...
Upcoming SlideShare
Loading in …5
×

Ig1 Mashups

700 views

Published on

Way back in the day, BASIC was a hobby programming language of choice. Anyone would program in BASIC because it was fairly easy to do. After Apple succeeded with Hypercard and AppleScript, Microsoft countered with Visual Basic. Once again, UI design and programming was within reach of ordinary people and programmers alike. Fast forward to now...do regular people ever think about making a web mashup? Why is it a hodgepodge of technologies that are generally difficult to piece together? Microsoft Popfly and Yahoo Pipes are valiant attempts to make it work, but they still seem limiting and awkward. If Twitter is getting more press than these mashup makers, well, they have not succeed in their mission.

My presentation will address what needs to be done to make this a reality: (1) a simple programming language that connects feeds, web services and databases together; (2) a user friendly HTML widget builder; (3) a user-friendly schema-free/freeform database...ding...fresh from the oven in 5 minutes :)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
700
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ig1 Mashups

  1. 1. Mashups for Everyone <ul><li>Allan Spale </li></ul>IgniteChi.org
  2. 2. Is Programming That Hard? <ul><li>Abstractions </li></ul><ul><li>Flow control </li></ul><ul><li>Lots of numbers and symbols </li></ul><ul><li>Weird errors </li></ul><ul><li>Etc. </li></ul>IgniteChi.org
  3. 3. It Depends… <ul><li>Harder languages </li></ul><ul><ul><li>Java </li></ul></ul><ul><ul><li>C++ </li></ul></ul><ul><ul><li>Lisp </li></ul></ul><ul><li>Easier Languages </li></ul><ul><ul><li>Basic </li></ul></ul><ul><ul><li>Python </li></ul></ul>def debugPrint(x): if debug:print x debug = 5 hackysackers = 5 turns = 1 def runit(hs=5,ts=5,dbg=1): global hackysackers,turns,debug hackysackers = hs turns = ts debug = dbg hackysacker.counter = 0 circle = [] one = hackysacker('1',circle) for i in range(hackysackers): hackysacker(`i`,circle) one.channel. send (one) try: stackless.run() except TaskletExit: pass if __name__ == &quot;__main__&quot;: runit() IgniteChi.org
  4. 4. Programming for Everyone: BASIC <ul><li>10 FOR X=1 TO 3 </li></ul><ul><li>20 PRINT “IT’S FUN TO STAY AT THE…” </li></ul><ul><li>30 PRINT “Y” </li></ul><ul><li>40 PRINT “M” </li></ul><ul><li>50 PRINT “C” </li></ul><ul><li>60 PRINT “A” </li></ul><ul><li>70 NEXT X </li></ul><ul><li>80 INPUT “ARE YOU HAVING FUN? ”; I$ </li></ul><ul><li>90 PRINT I$ </li></ul>IgniteChi.org
  5. 5. Programming for Everyone: HyperCard <ul><li>Early hypermedia authoring system </li></ul><ul><li>Website design program minus the internet </li></ul>IgniteChi.org
  6. 6. HyperCard was Useful IgniteChi.org
  7. 7. Porgramming for Some: Visual Basic <ul><li>Easy to make a user interface </li></ul><ul><li>Somewhat cumbersome to write code </li></ul>IgniteChi.org
  8. 8. Programming for Motivated People: Python <ul><li>Has a feel of “old” BASIC; easy to learn </li></ul><ul><li>Modern functionality </li></ul><ul><li>Open source, lots of 3 rd party libraries </li></ul>Want to learn more? Come to the Chicago Python Users Group: 2 nd Thursday each month http://www.chipy.org/ IgniteChi.org
  9. 9. Now What? <ul><li>People figured desktop programming </li></ul><ul><ul><li>It is well-understood </li></ul></ul><ul><ul><li>People that want to do it can do it well </li></ul></ul><ul><ul><li>Mature tools </li></ul></ul><ul><li>How to program for the web? </li></ul><ul><ul><li>People (social networks) </li></ul></ul><ul><ul><li>User interface design </li></ul></ul><ul><ul><li>Distributed data </li></ul></ul><ul><ul><li>Distributed media </li></ul></ul><ul><ul><li>Distributed functions </li></ul></ul>IgniteChi.org
  10. 10. Mashups Defined <ul><li>Wikipedia definition: </li></ul><ul><ul><li>“ [C]ombines data or functionality from two or more sources into a single integrated application.” </li></ul></ul><ul><li>A web program </li></ul>IgniteChi.org
  11. 11. Why Is Web Programming Hard? <ul><li>There is no one single environment/technology that puts it all together </li></ul><ul><li>Look at all the parts… </li></ul><ul><ul><li>Social networks </li></ul></ul><ul><ul><li>Databases </li></ul></ul><ul><ul><li>Remote functionality </li></ul></ul><ul><ul><li>Web design </li></ul></ul><ul><ul><li>Traditional programming languages with web functionality </li></ul></ul>IgniteChi.org
  12. 12. Parts for a Successful Mashup Maker <ul><li>Easy-to-use database </li></ul><ul><ul><li>Freestyle entity model </li></ul></ul><ul><li>Simple programming language </li></ul><ul><ul><li>Process data </li></ul></ul><ul><ul><li>Connect resources and people together </li></ul></ul><ul><ul><li>Multi-modal communication </li></ul></ul><ul><li>HTML widget builder </li></ul><ul><ul><li>Display data </li></ul></ul><ul><ul><li>Interface actions process data </li></ul></ul>IgniteChi.org
  13. 13. Traditional Database Model IgniteChi.org
  14. 14. Freestyle / Free-form Model <ul><li>Entity / “Barcode” / Unique ID </li></ul><ul><ul><li>Assign to a category </li></ul></ul><ul><ul><ul><li>Container of stuff </li></ul></ul></ul><ul><ul><li>Assign to a property </li></ul></ul><ul><ul><ul><li>Relation between two entities </li></ul></ul></ul><ul><li>Semantic web </li></ul><ul><ul><li>Microformats </li></ul></ul><ul><ul><li>Dublin Core </li></ul></ul>IgniteChi.org
  15. 15. Programming Language <ul><li>Very concise </li></ul><ul><li>Mostly symbolic, but not cryptic </li></ul><ul><ul><li>Use conventions from other languages </li></ul></ul><ul><li>Magic words </li></ul><ul><ul><li>Certain variables trigger system functions </li></ul></ul><ul><li>Very parallel </li></ul><ul><ul><li>Lots of stuff happening at once…safely </li></ul></ul>IgniteChi.org
  16. 16. Programming Language <ul><li>Entity creation + usage </li></ul><ul><ul><li>usa.illinois.cities << chicago </li></ul></ul><ul><ul><li>favorite.cities#1 = usa.illinois.cities.chicago </li></ul></ul><ul><li>Property assignment </li></ul><ul><ul><li>usa.illinois.cities.chicago:name = ‘Chicago’ </li></ul></ul><ul><li>Query + Send: List cities in the USA starting with the letter C send results to Twitter user allan031 </li></ul><ul><ul><li>usa.{*}.cities.{[cC]*} >> @twitter.allan031.direct </li></ul></ul>IgniteChi.org
  17. 17. Widget Builder <ul><li>Similar style, but make it work in a web browser </li></ul>IgniteChi.org
  18. 18. Why Is This Good? <ul><li>Customized search </li></ul><ul><li>Your very own widgets </li></ul><ul><li>Interact with data over the web </li></ul><ul><li>Have your local data mix with web data </li></ul><ul><ul><li>E-mails, photos, text messages, etc. </li></ul></ul><ul><li>Break through the walled gardens of Web 2.0 </li></ul>IgniteChi.org
  19. 19. Programming is About Empowerment <ul><li>Don’t be intimidated by technologies </li></ul><ul><li>Programming is about process, not math </li></ul><ul><li>Lots of ideas are waiting for implementation </li></ul><ul><li>Think small first </li></ul>IgniteChi.org
  20. 20. Thanks for Listening! <ul><li>Learn more at: </li></ul><ul><li>http://my-kaleidoscope.org/platform.html </li></ul>IgniteChi.org
  21. 21. References <ul><li>http://members. verizon .net/ olsongt / stackless /why_ stackless .html# stackless </li></ul><ul><li>http://www. globalnerdy .com/ wordpress / wp -content/uploads/2009/01/trek-flowchart. jpg </li></ul><ul><li>http://www. lyricsondemand .com/ onehitwonders / ymcalyrics .html </li></ul><ul><li>http://en. wikipedia .org/ wiki / Hypercard </li></ul><ul><li>http://en. wikipedia .org/ wiki /File: Hypercard . png </li></ul><ul><li>http://en. wikipedia .org/ wiki /File: Hypercard _stack_on_Beethoven%27s_Ninth_1. png </li></ul><ul><li>http:// msdn . microsoft .com/en-us/library/Aa260644.vb6tovbdotnetfig2a(en-us,VS.60).gif </li></ul><ul><li>http://www. symbian -freeware.com/img2/python_logo. jpg </li></ul><ul><li>http://www. instantdjango .com/images/cc. jpg </li></ul><ul><li>http://pipes.yahoo.com/pipes/pipe.edit?_id=bMhn4X_72xGHJf_1zKky6g </li></ul><ul><li>http://l. yimg .com/a/i/us/ pps /logo_ sm _1.gif </li></ul><ul><li>http://www. adeptscience .co. uk /products/ mathsim / mathcad /images/excel.gif </li></ul>IgniteChi.org

×