ig1 mashups
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
Mashups for EveryoneAllan Spale
IgniteChi.org
Is Programming That Hard?๏ Abstractions
๏ Flow control
๏ Lots of numbers and symbols
๏ Weird errors
๏ Etc.
IgniteChi.org
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
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
Programming for Everyone: HyperCard๏ Early hypermedia authoring system
๏ Website design program minus the internet
IgniteChi.org
HyperCard was Useful
IgniteChi.org
Porgramming for Some: Visual Basic๏ Easy to make a user interface
๏ Somewhat cumbersome to write code
IgniteChi.org
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
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
Mashups Defined๏ Wikipedia definition:
- “[C]ombines data or functionality from two or more sources into a single integrated application.”
๏ A web program
IgniteChi.org
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
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
Traditional Database Model
IgniteChi.org
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
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
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
Widget Builder๏ Similar style, but make it work in a web
browser
IgniteChi.org
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
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
Thanks for Listening!
Learn more at:
http://my-kaleidoscope.org/platform.html
IgniteChi.org
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