Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sustainability and Bit-rot

Sustainability and Bit-rot

Presentation at the JStor Workshop in Bangalore, December 2010.

Avatar for Kiran Jonnalagadda

Kiran Jonnalagadda

September 26, 2011
Tweet

More Decks by Kiran Jonnalagadda

Other Decks in Technology

Transcript

  1. Maintenance Problems 1. Team has changed Original developers not available

    New developers don’t understand the code Rewriting easier than documenting and fixing old code 2. Software has to be upgraded Software is not compatible; bit-rot has set in
  2. What is bit-rot? Software rot, also known as code rot

    or software erosion or software decay or software entropy, is a type of bit rot. It describes the perceived slow deterioration of software over time that will eventually lead to it becoming faulty, unusable, or otherwise in need of maintenance. This is not a physical phenomenon: the software does not actually decay, but rather suffers from a lack of being updated with respect to the changing environment in which it resides. —Wikipedia
  3. “Functionality is an asset, but code is a liability. I

    will say this until you like it.” —Ted Dziuba
  4. Pattern: Custom Fork You want a website You found a

    CMS that has most of the wanted features Developer says he can add the additional features you want, so you commission it Developer hands you code and moves on Your custom feature is a popular request, so the CMS also adds it and releases an update Your custom version implemented it differently, so you can’t upgrade: you will lose data if you do
  5. What you should do Never implement a custom feature for

    yourself; the maintenance is also yours When you get some software written, give the developer an incentive to maintain it without you having to pay for it Let the developer own it Make it open source and encourage adoption by others; open source is useless without adoption Open source is a mechanism for distributing the cost of maintenance to a large number of others This is hard
  6. It’s not just you Software developers reinvent the wheel all

    the time, only to regret it later; the itch to reinvent never goes away “The shock of recognition came to me when I was sitting on the bus and reading the RFC for NFS, intending to write an NFS server on top of the ZODB so we could use grep and CVS. Suddenly I sat up and thought ‘I have an object database on top of a filesystem, and now I want to emulate a filesystem on top of it. What am I doing? Why not just use a filesystem in the first place?’” —A. M. Kuchling, April 2001
  7. Software Upgrades All major software systems evolve coping mechanisms Windows

    DLL hell in the 3.x and Windows 95 era Ubuntu 6-month upgrades Preferences for any software application Web app customization: themes, plugins, standard config
  8. File Formats PDF and HTML are stable; files from 10

    years ago still open PDF is not re-flowable; suitable only for archiving paper layouts Archivability is still a concern
  9. Raw HTML is tedious <h3> What is HTML5? </h3> <p>

    The term HTML5 has come to represent not just the new version of hypertext markup language, but a suite of related technologies and proposed standards. These include: </p> <ul> <li>CSS3, Geo-location, Web Sockets, Canvas, Client Storage, Audio and Video.</li> <li>Rich Internet Apps enabled by Advanced JavaScript Engines and Mobile Browsers.</li> </ul>
  10. Plain text markup ### What is HTML5 The term HTML5

    has come to represent not just the new version of hypertext markup language, but a suite of related technologies and proposed standards. These include: * CSS3, Geo-location, Web Sockets, Canvas, Client Storage, Audio and Video. * Rich Internet Apps enabled by Advanced JavaScript Engines and Mobilewsers. Markdown
  11. Plain text markup === What is HTML5 === The term

    HTML5 has come to represent not just the new version of hypertext markup language, but a suite of related technologies and proposed standards. These include: * CSS3, Geo-location, Web Sockets, Canvas, Client Storage, Audio and Video. * Rich Internet Apps enabled by Advanced JavaScript Engines and Mobilewsers. MediaWiki
  12. Plain text markup BBCode Markdown MediaWiki Textile WikiCreole ReStructuredText And

    many more... Each of these converts easily readable plain text into HTML The original plain text should be archivable, but each convertor is also subject to bit-rot There’s safety in numbers; how many use them?
  13. Published text: ePub Reflowable content; no fixed paper size Single

    archive file contains everything The most promising archive format Two incompatible sub-formats: XHTML and DTBook
  14. Image credits Haulin’ rust, macro rust on a micro bus,

    thumbs up, thumbs down, fork in the road