Presentation is loading. Please wait.

Presentation is loading. Please wait.

Using Little Rails Apps to Solve a Hefty Problem pairing durable content with lightweight apps Matt Zumwalt HydraCamp 05 October 2010.

Similar presentations


Presentation on theme: "Using Little Rails Apps to Solve a Hefty Problem pairing durable content with lightweight apps Matt Zumwalt HydraCamp 05 October 2010."— Presentation transcript:

1 Using Little Rails Apps to Solve a Hefty Problem pairing durable content with lightweight apps Matt Zumwalt HydraCamp 05 October 2010

2 the web vs. deep web Think about all of the digital stuff that humanity is creating right now...

3 the web vs. deep web

4 How deep does it run? How deep could it run?

5 the web vs. deep web

6

7 what are we doing? Imagine capturing all of humanitys digital output from a single day. How long would it take to go through it all? How much could we learn about 2010 from that corpus? Is any of it worthless? Whats worth preserving?

8 what could we do? What deep information would be useful if it was online in a searchable, machine-parseable structure? census data? crime data? climate data? genomics? government documents? medical research?

9 curation creating, using and preserving embrace connections embrace re-use many perspectives

10 curate what? how much deep information is currently online in useful formats? how much of the knowledge we produce is being preserved? what will your answer be in 10 years?

11 golden age of digital information wide open fields of possibilities ownership, copyright & channels of distribution have not been frozen yet

12 long lived, complex content the data we create extend beyond and outlast the software used to create them the open data movement is more important than the open source movement - Ian Davis Code4Lib 2009

13 the funny problem Our vision is to create complex, evolving, long- lived content. Meanwhile, each set of users wants to see & interact with that content in different ways relative to temporal and intellectual context. content in open, complex, long-lived context users in task-specific, time-specific context

14 content in open context, users in specific context

15

16 lets take a look at some of the apps weve written

17 key points allow applications to be small and specialized build iteratively, allowing app to evolve as you learn & have ideas reuse your good code, find patterns use your model as skeleton then customize views make testing & prototyping easy think carefully about generators & pre- fab plugins

18 standing astride two different worlds SOA Content Modeling

19 conflicting sensibilities & requirements flash-in-the-pan applications vs. long lived content agile development vs. big design up front the importance of developer happiness convention over configuration vs. standards & interoperability "XML is a quagmire" vs. XML assumed as preservation format, validation point, a basis of interoperability, and (sometimes) an integral part of users' vernacular "Enterprise is a dirty word" vs. "Enterprise is our reality"

20 flash-in-the-pan applications vs. long lived content allow apps to be short lived while content is long lived agile development vs. big design up front keep your eyes on the horizon (big goals) and your feet on the ground (iterative development) the importance of developer happiness start talking about developer happiness & get developers talking to each other convention over configuration vs. standards & interoperability put standards in their place. when they serve you, make them the assumed (thus hidden) convention "XML is a quagmire" vs. XML assumed as preservation format, validation point, a basis of interoperability, and (sometimes) an integral part of users' vernacular XML is a serialization, NOT a programming language "Enterprise is a dirty word" vs. "Enterprise is our reality" use the strengths of enterprise to neutralize its pitfalls

21 many lightweight views onto complex content

22 flash-in-the-pan applications vs. long lived content allow apps to be short lived while content is long lived agile development vs. big design up front keep your eyes on the horizon (big goals) and your feet on the ground (iterative development) the importance of developer happiness start talking about developer happiness & get developers talking to each other convention over configuration vs. standards & interoperability put standards in their place. when they serve you, make them the assumed (thus hidden) convention "XML is a quagmire" vs. XML assumed as preservation format, validation point, a basis of interoperability, and (sometimes) an integral part of users' vernacular XML is a serialization, NOT a programming language "Enterprise is a dirty word" vs. "Enterprise is our reality" use the strengths of enterprise to neutralize its pitfalls

23 eyes on the horizon, feet on the ground The iterative approach of agile development, combined with RAD, transforms the dynamic between an applications developers, its users, and the users tasks. Detachment from reality is the real danger. Big designs, lofty goals, and detailed descriptions of needs are all great. (Dont build the death star.)

24 flash-in-the-pan applications vs. long lived content allow apps to be short lived while content is long lived agile development vs. big design up front keep your eyes on the horizon (big goals) and your feet on the ground (iterative development) the importance of developer happiness start talking about developer happiness & get developers talking to each other convention over configuration vs. standards & interoperability put standards in their place. when they serve you, make them the assumed (thus hidden) convention "XML is a quagmire" vs. XML assumed as preservation format, validation point, a basis of interoperability, and (sometimes) an integral part of users' vernacular XML is a serialization, NOT a programming language "Enterprise is a dirty word" vs. "Enterprise is our reality" use the strengths of enterprise to neutralize its pitfalls

25 developer happiness Happy developers write better, more innovative software.

26 flash-in-the-pan applications vs. long lived content allow apps to be short lived while content is long lived agile development vs. big design up front keep your eyes on the horizon (big goals) and your feet on the ground (iterative development) the importance of developer happiness start talking about developer happiness & get developers talking to each other convention over configuration vs. standards & interoperability put standards in their place. when they serve you, make them the assumed (thus hidden) convention "XML is a quagmire" vs. XML assumed as preservation format, validation point, a basis of interoperability, and (sometimes) an integral part of users' vernacular XML is a serialization, NOT a programming language "Enterprise is a dirty word" vs. "Enterprise is our reality" use the strengths of enterprise to neutralize its pitfalls

27 put standards in their place When they serve you, make standards the assumed, thus hidden convention. When theyre harmful, say so. Convention over configuration is not at odds with standards, it merely gets to the heart of the matter.

28 flash-in-the-pan applications vs. long lived content allow apps to be short lived while content is long lived agile development vs. big design up front keep your eyes on the horizon (big goals) and your feet on the ground (iterative development) the importance of developer happiness start talking about developer happiness & get developers talking to each other convention over configuration vs. standards & interoperability put standards in their place. when they serve you, make them the assumed (thus hidden) convention "XML is a quagmire" vs. XML assumed as preservation format, validation point, a basis of interoperability, and (sometimes) an integral part of users' vernacular XML is a serialization, NOT a programming language "Enterprise is a dirty word" vs. "Enterprise is our reality" use the strengths of enterprise to neutralize its pitfalls

29 XML is a serialization %table#search_results %th Title %th Narrator %th Location %th Subject Headings %tr.result %td My Title %td Nancy Narrator %td Boston, Ma %td Subject Heading -- Detail, Subject Heading -- Detail II

30 XML is a serialization Title Narrator Location Subject Headings My Title Nancy Narrator Boston, Ma Subject Heading -- Detail, Subject Heading -- Detail II

31 XML is a serialization HTML model has become more important than the serialization JSON is very useful XSLT is declarative (good for speed, bad for dynamic code) and XML-centric (ivory tower) Example: ORE & RDF are both models first while serializations are interchangeable

32 flash-in-the-pan applications vs. long lived content allow apps to be short lived while content is long lived agile development vs. big design up front keep your eyes on the horizon (big goals) and your feet on the ground (iterative development) the importance of developer happiness start talking about developer happiness & get developers talking to each other convention over configuration vs. standards & interoperability put standards in their place. when they serve you, make them the assumed (thus hidden) convention "XML is a quagmire" vs. XML assumed as preservation format, validation point, a basis of interoperability, and (sometimes) an integral part of users' vernacular XML is a serialization, NOT a programming language "Enterprise is a dirty word" vs. "Enterprise is our reality" use the strengths of enterprise to neutralize its pitfalls

33 teach the beast to dance Use the strengths of enterprise to your benefit while side-stepping its pitfalls.

34 flash-in-the-pan applications vs. long lived content allow apps to be short lived while content is long lived agile development vs. big design up front keep your eyes on the horizon (big goals) and your feet on the ground (iterative development) the importance of developer happiness start talking about developer happiness & get developers talking to each other convention over configuration vs. standards & interoperability put standards in their place. when they serve you, make them the assumed (thus hidden) convention "XML is a quagmire" vs. XML assumed as preservation format, validation point, a basis of interoperability, and (sometimes) an integral part of users' vernacular XML is a serialization, NOT a programming language "Enterprise is a dirty word" vs. "Enterprise is our reality" use the strengths of enterprise to neutralize its pitfalls

35 storing files & metadata Database-DrivenFedora Repository ie. Paperclip demo:5 xyz.mp3 DC meta tech meta relationships... /uploads/xyz.mp3 /uploads/tuv.doc /uploads/blf.jpg.../xyz.mp3.../demo-5.foxml tuv.doc.../tuv.doc

36 CRUD Create Retrieve Update Delete

37 CRUD Create/Submit Modify Delete Index

38 CRUD Search Browse View Details Render Edit View

39 CRUD in Rails Rails MVC RDBMS

40 CRUD in repositories Create/Submit(CUD)Search/View(R) Indexing

41 the Hydra framework Hydra Rails Engine (CUD)Blacklight(R) Solrizer FedoraSolr http://github.com/projecthydra/hydrangea https://wiki.duraspace.org/display/hydra/

42 rich, faceted search Blacklight (Read only) Solr faceted search & discovery metadata agnostic content-aware supports specialized users Rails plugin solr-driven strong dev community http://projectblacklight.org

43 models that work ActiveFedora Fedora models inspired by datamapper xml tools -- OM convenience methods update_attributes OM http://github.com/mediashelf/active_fedora http://github.com/mediashelf/om

44 rails engine Fedora ActiveFedora Custom Controller s Custom Views & Helpers OM ActiveFedora & OM controllers integrate everything views & helpers to simplify dev custom JQuery plugin

45 the final piece: indexing Hydra Rails Engine (CUD)Blacklight(R) ??? FedoraSolr

46 the Hydra framework Hydra Rails Engine (CUD)Blacklight(R) Solrizer FedoraSolr http://github.com/projecthydra/solrizer

47 now the fun begins...


Download ppt "Using Little Rails Apps to Solve a Hefty Problem pairing durable content with lightweight apps Matt Zumwalt HydraCamp 05 October 2010."

Similar presentations


Ads by Google