Proactive computing

David Tennenhouse
2000 Communications of the ACM  
doi:10.1145/332833.332837 fatcat:g5lokot3hbdrpm4f4qxukc7d74