Ig1 Mashups

21
Mashups for Everyone Allan Spale IgniteChi.org

description

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 :)

Transcript of Ig1 Mashups

Page 1: Ig1   Mashups

Mashups for EveryoneAllan Spale

IgniteChi.org

Page 2: Ig1   Mashups

Is Programming That Hard?๏ Abstractions

๏ Flow control

๏ Lots of numbers and symbols

๏ Weird errors

๏ Etc.

IgniteChi.org

Page 3: Ig1   Mashups

It Depends…๏ Harder languages

- Java- C++- Lisp

๏ Easier Languages- Basic- Python

def debugPrint(x): if debug:print x

debug = 5hackysackers = 5turns = 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__ == "__main__": runit()

IgniteChi.org

Page 4: Ig1   Mashups

Programming for Everyone: BASIC๏ 10 FOR X=1 TO 3

๏ 20 PRINT “IT’S FUN TO STAY AT THE…”

๏ 30 PRINT “Y”

๏ 40 PRINT “M”

๏ 50 PRINT “C”

๏ 60 PRINT “A”

๏ 70 NEXT X

๏ 80 INPUT “ARE YOU HAVING FUN? ”; I$

๏ 90 PRINT I$

IgniteChi.org

Page 5: Ig1   Mashups

Programming for Everyone: HyperCard๏ Early hypermedia authoring system

๏ Website design program minus the internet

IgniteChi.org

Page 6: Ig1   Mashups

HyperCard was Useful

IgniteChi.org

Page 7: Ig1   Mashups

Porgramming for Some: Visual Basic๏ Easy to make a user interface

๏ Somewhat cumbersome to write code

IgniteChi.org

Page 8: Ig1   Mashups

Programming for Motivated People: Python๏ Has a feel of “old” BASIC; easy to learn

๏ Modern functionality

๏ Open source, lots of 3rd party libraries

Want to learn more?

Come to the Chicago Python Users Group:

2nd Thursday each month

http://www.chipy.org/

IgniteChi.org

Page 9: Ig1   Mashups

Now What?๏ People figured desktop programming

- It is well-understood- People that want to do it can do it well- Mature tools

๏ How to program for the web?- People (social networks)- User interface design- Distributed data- Distributed media- Distributed functions

IgniteChi.org

Page 10: Ig1   Mashups

Mashups Defined๏ Wikipedia definition:

- “[C]ombines data or functionality from two or more sources into a single integrated application.”

๏ A web program

IgniteChi.org

Page 11: Ig1   Mashups

Why Is Web Programming Hard?๏ There is no one single

environment/technology that puts it all together

๏ Look at all the parts…- Social networks- Databases- Remote functionality- Web design- Traditional programming languages with web

functionality

IgniteChi.org

Page 12: Ig1   Mashups

Parts for a Successful Mashup Maker๏ Easy-to-use database

- Freestyle entity model

๏ Simple programming language- Process data- Connect resources and people together- Multi-modal communication

๏ HTML widget builder- Display data- Interface actions process data

IgniteChi.org

Page 13: Ig1   Mashups

Traditional Database Model

IgniteChi.org

Page 14: Ig1   Mashups

Freestyle / Free-form Model๏ Entity / “Barcode” / Unique ID

- Assign to a category- Container of stuff

- Assign to a property- Relation between two entities

๏ Semantic web- Microformats- Dublin Core

IgniteChi.org

Page 15: Ig1   Mashups

Programming Language๏ Very concise

๏ Mostly symbolic, but not cryptic- Use conventions from other languages

๏ Magic words- Certain variables trigger system functions

๏ Very parallel- Lots of stuff happening at once…safely

IgniteChi.org

Page 16: Ig1   Mashups

Programming Language๏ Entity creation + usage

- usa.illinois.cities << chicago- favorite.cities#1 = usa.illinois.cities.chicago

๏ Property assignment- usa.illinois.cities.chicago:name = ‘Chicago’

๏ Query + Send: List cities in the USA starting with the letter C send results to Twitter user allan031

- usa.{*}.cities.{[cC]*} >> @twitter.allan031.direct

IgniteChi.org

Page 17: Ig1   Mashups

Widget Builder๏ Similar style, but make it work in a web

browser

IgniteChi.org

Page 18: Ig1   Mashups

Why Is This Good?๏ Customized search

๏ Your very own widgets

๏ Interact with data over the web

๏ Have your local data mix with web data- E-mails, photos, text messages, etc.

๏ Break through the walled gardens of Web 2.0

IgniteChi.org

Page 19: Ig1   Mashups

Programming is About Empowerment๏ Don’t be intimidated by technologies

๏ Programming is about process, not math

๏ Lots of ideas are waiting for implementation

๏ Think small first

IgniteChi.org

Page 20: Ig1   Mashups

Thanks for Listening!

Learn more at:

http://my-kaleidoscope.org/platform.html

IgniteChi.org

Page 21: Ig1   Mashups

Referenceshttp://members.verizon.net/olsongt/stackless/why_stackless.html#stackless

http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/trek-flowchart.jpg

http://www.lyricsondemand.com/onehitwonders/ymcalyrics.html

http://en.wikipedia.org/wiki/Hypercard

http://en.wikipedia.org/wiki/File:Hypercard.png

http://en.wikipedia.org/wiki/File:Hypercard_stack_on_Beethoven%27s_Ninth_1.png

http://msdn.microsoft.com/en-us/library/Aa260644.vb6tovbdotnetfig2a(en-us,VS.60).gif

http://www.symbian-freeware.com/img2/python_logo.jpg

http://www.instantdjango.com/images/cc.jpg

http://pipes.yahoo.com/pipes/pipe.edit?_id=bMhn4X_72xGHJf_1zKky6g

http://l.yimg.com/a/i/us/pps/logo_sm_1.gif

http://www.adeptscience.co.uk/products/mathsim/mathcad/images/excel.gif

IgniteChi.org