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
![Page 1: Ig1 Mashups](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/1.jpg)
Mashups for EveryoneAllan Spale
IgniteChi.org
![Page 2: Ig1 Mashups](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/2.jpg)
Is Programming That Hard?๏ Abstractions
๏ Flow control
๏ Lots of numbers and symbols
๏ Weird errors
๏ Etc.
IgniteChi.org
![Page 3: Ig1 Mashups](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/3.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/4.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/5.jpg)
Programming for Everyone: HyperCard๏ Early hypermedia authoring system
๏ Website design program minus the internet
IgniteChi.org
![Page 6: Ig1 Mashups](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/6.jpg)
HyperCard was Useful
IgniteChi.org
![Page 7: Ig1 Mashups](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/7.jpg)
Porgramming for Some: Visual Basic๏ Easy to make a user interface
๏ Somewhat cumbersome to write code
IgniteChi.org
![Page 8: Ig1 Mashups](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/8.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/9.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/10.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/11.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/12.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/13.jpg)
Traditional Database Model
IgniteChi.org
![Page 14: Ig1 Mashups](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/14.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/15.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/16.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/17.jpg)
Widget Builder๏ Similar style, but make it work in a web
browser
IgniteChi.org
![Page 18: Ig1 Mashups](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/18.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/19.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/20.jpg)
Thanks for Listening!
Learn more at:
http://my-kaleidoscope.org/platform.html
IgniteChi.org
![Page 21: Ig1 Mashups](https://reader035.vdocument.in/reader035/viewer/2022081412/5457ea9daf795953128b48a0/html5/thumbnails/21.jpg)
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