Interfaces for Scripting: Making Greasemonkey Scripts Resilient to Website Upgrades

  • Oscar Díaz
  • Cristóbal Arellano
  • Jon Iturrioz
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6189)

Abstract

Thousands of users are streamlining their Web interactions through user scripts using special weavers such as Greasemonkey. Thousands of programmers are releasing their scripts in public repositories. Millions of downloads prove the success of this approach. So far, most scripts are just a few lines long. Although the amateurism of this community can partially explain this fact, it can also stem from the doubt about whether larger efforts will pay off. The fact that scripts directly access page structure makes scripts fragile to page upgrades. This brings the nightmare of maintenance, even more daunting considering the leisure-driven characteristic of this community. On these grounds, this work introduces interfaces for scripting. Akin to the JavaScript programming model, Scripting Interfaces are event-based, but rather than being defined in terms of low-level, user-interface events, Scripting Interfaces abstract these DOM events into conceptual events. Scripts can now subscribe to or notify of conceptual events in a similar way to what they did before. So-developed scripts improve their change resilience, portability, readability and easiness to collaborative development of scripts. This is achieved with no paradigm shift: programmers keep using native JavaScript mechanisms to handle conceptual events.

Keywords

Greasemonkey JavaScript Maintenance Web2.0 

References

  1. 1.
    Greasemonkey Homepage, http://www.greasespot.net/
  2. 2.
    Greasemonkey in Wikipedia, http://en.wikipedia.org/wiki/Greasemonkey
  3. 3.
    JSON (JavaScript Object Notation),http://json.org/
  4. 4.
  5. 5.
  6. 6.
  7. 7.
    Ennals, R., Brewer, E.A., Garofalakis, M.N., Shadle, M., Gandhi, P.: Intel Mash Maker: join the web. SIGMOD Record (2007)Google Scholar
  8. 8.
    Huynh, D., Mazzocchi, S., Karger, D.R.: Piggy Bank: Experience the Semantic Web Inside Your Web Browser. In: Gil, Y., Motta, E., Benjamins, V.R., Musen, M.A. (eds.) ISWC 2005. LNCS, vol. 3729, pp. 413–430. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  9. 9.
    Java Community Process (JCP). JSR 168: Portlet Specification Version 1.0 (2003), http://www.jcp.org/en/jsr/detail?id=168
  10. 10.
    Khare, R., Çelik, T.: Microformats: a pragmatic path to the semantic web. In: The 15th International Conference on World Wide Web (2007)Google Scholar
  11. 11.
    Kushmerick, N.: Languages for Web Data Extraction. In: Encyclopedia of Database Systems, p. 1595. Springer, Heidelberg (2009)Google Scholar
  12. 12.
    Parnas, D.L.: On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM 15, 1053–1058 (1972)CrossRefGoogle Scholar
  13. 13.
    Magoulas, G.D., Chen, S.Y.(eds.): Adaptable and Adaptive Hypermedia Systems. IRM Press (2005)Google Scholar
  14. 14.
    Yu, J., Benatallah, B., Casati, F., Daniel, F.: Understanding Mashup Development. IEEE Internet Computing 12, 44–52 (2008)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Oscar Díaz
    • 1
  • Cristóbal Arellano
    • 1
  • Jon Iturrioz
    • 1
  1. 1.ONEKIN Research GroupUniversity of the Basque CountrySan SebastiánSpain

Personalised recommendations