SlideShare a Scribd company logo
Sustainability and Bit-rot
          Kiran Jonnalagadda, HasGeek
    JStor Workshop, Bangalore, December 2010
Building Websites

Write a spec

Define a budget

Raise money

Hire a team

Build!
Maintaining Websites
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
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
Old: Working on the metal
New: Software ecosystem
Beware of Forks:
You are alone on the path
“Functionality is an asset, but
code is a liability. I will say this
until you like it.” —Ted Dziuba
Pattern: Custom Fork
You want a website            Your custom feature is a
                              popular request, so the
You found a CMS that has
                              CMS also adds it and
most of the wanted features
                              releases an update
Developer says he can add
                              Your custom version
the additional features you
                              implemented it differently,
want, so you commission it
                              so you can’t upgrade: you
Developer hands you code      will lose data if you do
and moves on
What you should do
Never implement a custom     Make it open source and
feature for yourself; the    encourage adoption by
maintenance is also yours    others; open source is
                             useless without adoption
When you get some
software written, give the   Open source is a
developer an incentive to    mechanism for distributing
maintain it without you      the cost of maintenance to a
having to pay for it         large number of others

Let the developer own it     This is hard
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
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
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
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>
Plain text markup
                                               Markdown
### 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.
Plain text markup
                                               MediaWiki
=== 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.
Plain text markup
BBCode             Each of these converts
                   easily readable plain text
Markdown
                   into HTML
MediaWiki
                   The original plain text
Textile            should be archivable, but
                   each convertor is also
WikiCreole
                   subject to bit-rot
ReStructuredText
                   There’s safety in numbers;
And many more...   how many use them?
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
Image credits



Haulin’ rust, macro rust on a micro bus, thumbs up, thumbs
down, fork in the road

More Related Content

PPTX
Windows 8
Robert MacLean
 
PPTX
Visual Studio Productivity Tools
Robert MacLean
 
PPTX
Creating and Maintaining an Open Source Library
Nicholas Schweitzer
 
PDF
Use React tools for better Angular apps
Martin Hochel
 
PDF
Rapid Application Development in the Cloud and On-Premises with Docker
Niklas Heidloff
 
PDF
Monorepo: React + React Native. React Alicante
Eugene Zharkov
 
PPTX
Javascript Frameworks (and How to Learn Them)
All Things Open
 
PPTX
Native App + Wep App = ? (Hybrid Applications)
GameWisp
 
Windows 8
Robert MacLean
 
Visual Studio Productivity Tools
Robert MacLean
 
Creating and Maintaining an Open Source Library
Nicholas Schweitzer
 
Use React tools for better Angular apps
Martin Hochel
 
Rapid Application Development in the Cloud and On-Premises with Docker
Niklas Heidloff
 
Monorepo: React + React Native. React Alicante
Eugene Zharkov
 
Javascript Frameworks (and How to Learn Them)
All Things Open
 
Native App + Wep App = ? (Hybrid Applications)
GameWisp
 

What's hot (20)

PPTX
Cross Platform Mobile Technologies
Talentica Software
 
PPTX
Cleaner Code Through Test-Driven Development
All Things Open
 
PDF
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
Serdar Basegmez
 
PDF
Introduction to webpack and babel
AmanRaj378
 
PDF
Best PHP Frameworks
Clixlogix Technologies
 
PPTX
What is dotnet (.NET) ?
Talha Shahzad
 
PPTX
Engage 2019 - De04. Java with Domino After XPages
Jesse Gallagher
 
PPTX
Developing multi-platform microservices using .NET core
Dror Helper
 
PDF
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
GreeceJS
 
PPTX
"Project Tye to Tie .NET Microservices", Oleg Karasik
Fwdays
 
PDF
iOS development best practices
Michal Juhas
 
PPT
Setting up your development environment
Nicole Ryan
 
PPTX
Harnessing the power of aws using dot net
Dror Helper
 
PDF
Continuous Integration from server to cloud
Paolo D'Incau
 
PPTX
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web components
BingWang77
 
PPTX
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
James Strong
 
PDF
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
Todd Anglin
 
PPTX
DEVOPS LIVE 2018 JaC
Brian Mericle
 
PPTX
No backend
Nathan Gloyn
 
PPTX
Academy PRO: .NET Core intro
Binary Studio
 
Cross Platform Mobile Technologies
Talentica Software
 
Cleaner Code Through Test-Driven Development
All Things Open
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
Serdar Basegmez
 
Introduction to webpack and babel
AmanRaj378
 
Best PHP Frameworks
Clixlogix Technologies
 
What is dotnet (.NET) ?
Talha Shahzad
 
Engage 2019 - De04. Java with Domino After XPages
Jesse Gallagher
 
Developing multi-platform microservices using .NET core
Dror Helper
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
GreeceJS
 
"Project Tye to Tie .NET Microservices", Oleg Karasik
Fwdays
 
iOS development best practices
Michal Juhas
 
Setting up your development environment
Nicole Ryan
 
Harnessing the power of aws using dot net
Dror Helper
 
Continuous Integration from server to cloud
Paolo D'Incau
 
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web components
BingWang77
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
James Strong
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
Todd Anglin
 
DEVOPS LIVE 2018 JaC
Brian Mericle
 
No backend
Nathan Gloyn
 
Academy PRO: .NET Core intro
Binary Studio
 
Ad

Similar to Sustainability and bit-rot (20)

PDF
Html5 workshop part 1
NAILBITER
 
PPT
An Introduction To Linux Development Environment
S. M. Hossein Hamidi
 
DOCX
Over view of Technologies
Chris Mitchell
 
PDF
Top 10 IDEs for React.js Developers in 2021
WrapPixel
 
PDF
Web Application Development Tools for Creating Perfect User Experience
ChromeInfo Technologies
 
PDF
Top 11 Front-End Web Development Tools To Consider in 2020
Katy Slemon
 
PDF
Qnx html5 hmi
길수 김
 
PDF
30 Skills to Master to Become a Senior Software Engineer
Sean Coates
 
PPTX
Crosswalk and the Intel XDK
Intel® Software
 
PPTX
HTML 5 - A developers perspective
Santhosh Kumar Srinivasan
 
PPTX
Mobile Web Apps
Athhar Ahamed
 
PDF
Build a chatroom!
SheilaJimenezMorejon
 
DOCX
Online advertising management system
Yesu Raj
 
DOCX
Online advertising management system
Yesu Raj
 
PPT
Workshop Trends In Open Source Tech 1 20 10
NuRelm
 
PPTX
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
Kushan Lahiru Perera
 
PDF
Tech Stack - Angular
Srineel Mazumdar
 
PDF
Fundamental of-web design-trends-20142
Ly Nguyen Bui
 
PDF
HTML5, How to rethink your web strategy
Fabernovel
 
PPT
Open Source in the Enterprise
Social Media Performance Group
 
Html5 workshop part 1
NAILBITER
 
An Introduction To Linux Development Environment
S. M. Hossein Hamidi
 
Over view of Technologies
Chris Mitchell
 
Top 10 IDEs for React.js Developers in 2021
WrapPixel
 
Web Application Development Tools for Creating Perfect User Experience
ChromeInfo Technologies
 
Top 11 Front-End Web Development Tools To Consider in 2020
Katy Slemon
 
Qnx html5 hmi
길수 김
 
30 Skills to Master to Become a Senior Software Engineer
Sean Coates
 
Crosswalk and the Intel XDK
Intel® Software
 
HTML 5 - A developers perspective
Santhosh Kumar Srinivasan
 
Mobile Web Apps
Athhar Ahamed
 
Build a chatroom!
SheilaJimenezMorejon
 
Online advertising management system
Yesu Raj
 
Online advertising management system
Yesu Raj
 
Workshop Trends In Open Source Tech 1 20 10
NuRelm
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
Kushan Lahiru Perera
 
Tech Stack - Angular
Srineel Mazumdar
 
Fundamental of-web design-trends-20142
Ly Nguyen Bui
 
HTML5, How to rethink your web strategy
Fabernovel
 
Open Source in the Enterprise
Social Media Performance Group
 
Ad

More from Kiran Jonnalagadda (17)

PDF
AirJaldi photo rout (April 2008)
Kiran Jonnalagadda
 
PDF
The medium without the message (April 2008)
Kiran Jonnalagadda
 
PDF
Understanding technology in e-governance (December 2007)
Kiran Jonnalagadda
 
PDF
Namma service cash tracking system (January 2007)
Kiran Jonnalagadda
 
PDF
What ails the Sarai Reader List? (August 2005)
Kiran Jonnalagadda
 
PDF
On blogging as a career (June 2005)
Kiran Jonnalagadda
 
PDF
Python's dynamic nature (rough slides, November 2004)
Kiran Jonnalagadda
 
PDF
Python and Zope: An introduction (May 2004)
Kiran Jonnalagadda
 
PDF
Human database relations (March 2004)
Kiran Jonnalagadda
 
PPT
The technology of the Human Protein Reference Database (draft, 2003)
Kiran Jonnalagadda
 
PDF
Introduction to Plone (November 2003)
Kiran Jonnalagadda
 
PDF
ZODB, the Zope Object Database (May 2003)
Kiran Jonnalagadda
 
PDF
XML-RPC and SOAP (April 2003)
Kiran Jonnalagadda
 
ODP
Some dope on Zope (Jan 2002, Bangalore LUG)
Kiran Jonnalagadda
 
PDF
User Management with LastUser
Kiran Jonnalagadda
 
PDF
e-Governance in Karnataka: An introduction
Kiran Jonnalagadda
 
PDF
Cyberpunk Sci-Fi
Kiran Jonnalagadda
 
AirJaldi photo rout (April 2008)
Kiran Jonnalagadda
 
The medium without the message (April 2008)
Kiran Jonnalagadda
 
Understanding technology in e-governance (December 2007)
Kiran Jonnalagadda
 
Namma service cash tracking system (January 2007)
Kiran Jonnalagadda
 
What ails the Sarai Reader List? (August 2005)
Kiran Jonnalagadda
 
On blogging as a career (June 2005)
Kiran Jonnalagadda
 
Python's dynamic nature (rough slides, November 2004)
Kiran Jonnalagadda
 
Python and Zope: An introduction (May 2004)
Kiran Jonnalagadda
 
Human database relations (March 2004)
Kiran Jonnalagadda
 
The technology of the Human Protein Reference Database (draft, 2003)
Kiran Jonnalagadda
 
Introduction to Plone (November 2003)
Kiran Jonnalagadda
 
ZODB, the Zope Object Database (May 2003)
Kiran Jonnalagadda
 
XML-RPC and SOAP (April 2003)
Kiran Jonnalagadda
 
Some dope on Zope (Jan 2002, Bangalore LUG)
Kiran Jonnalagadda
 
User Management with LastUser
Kiran Jonnalagadda
 
e-Governance in Karnataka: An introduction
Kiran Jonnalagadda
 
Cyberpunk Sci-Fi
Kiran Jonnalagadda
 

Recently uploaded (20)

PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
Doc9.....................................
SofiaCollazos
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Software Development Methodologies in 2025
KodekX
 
Doc9.....................................
SofiaCollazos
 

Sustainability and bit-rot

  • 1. Sustainability and Bit-rot Kiran Jonnalagadda, HasGeek JStor Workshop, Bangalore, December 2010
  • 2. Building Websites Write a spec Define a budget Raise money Hire a team Build!
  • 4. 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
  • 5. 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
  • 6. Old: Working on the metal New: Software ecosystem
  • 7. Beware of Forks: You are alone on the path
  • 8. “Functionality is an asset, but code is a liability. I will say this until you like it.” —Ted Dziuba
  • 9. Pattern: Custom Fork You want a website Your custom feature is a popular request, so the You found a CMS that has CMS also adds it and most of the wanted features releases an update Developer says he can add Your custom version the additional features you implemented it differently, want, so you commission it so you can’t upgrade: you Developer hands you code will lose data if you do and moves on
  • 10. What you should do Never implement a custom Make it open source and feature for yourself; the encourage adoption by maintenance is also yours others; open source is useless without adoption When you get some software written, give the Open source is a developer an incentive to mechanism for distributing maintain it without you the cost of maintenance to a having to pay for it large number of others Let the developer own it This is hard
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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>
  • 15. Plain text markup Markdown ### 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.
  • 16. Plain text markup MediaWiki === 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.
  • 17. Plain text markup BBCode Each of these converts easily readable plain text Markdown into HTML MediaWiki The original plain text Textile should be archivable, but each convertor is also WikiCreole subject to bit-rot ReStructuredText There’s safety in numbers; And many more... how many use them?
  • 18. 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
  • 19. Image credits Haulin’ rust, macro rust on a micro bus, thumbs up, thumbs down, fork in the road

Editor's Notes

  • #2: \n
  • #3: \n
  • #4: \n
  • #5: \n
  • #6: Developers don&amp;#x2019;t care about sustainability. It shows all the time.\nWe&amp;#x2019;re going to focus on the second.\n
  • #7: \n
  • #8: Nobody works solo anymore. All software depends on some other software, maintained by someone else.\n
  • #9: The cost of forking is high: maintenance is yours alone\n
  • #10: \n
  • #11: \n
  • #12: \n
  • #13: ZODB is the database of Plone. AMK highlighted the problem in 2001, but as late as 2010 we use Plone and then suffer database upgrade problems.\n
  • #14: \n
  • #15: HTML has too much gunk in it: text, markup, presentation, scripts, external resources, external links. Not all of it will survive forever. Some of it will (a) disappear or (b) become incompatible (mostly JS).\n
  • #16: WYSIWYG editors produce garbage, so plain text markup formats are preferred.\n
  • #17: \n
  • #18: \n
  • #19: ReST is incredibly powerful, but the only parser implementation is in Python, unlike Markdown which has an implementation in every major language.\n
  • #20: The reflowable feature is a problem for fixed-layout content such as comics\n
  • #21: \n