Programming in Rural and Small Libraries: An Overview and Discussion