John Chamberlain, Software Developer and Author
 Developer Dairy – You Heard It Here First – Sunday, 28 January 2018
Tabs Versus Spaces
I gave up on Emacs fifteen years ago and there is a story behind that. Originally, when I was a student, I used Emacs exclusively when doing programming assignments on Unix systems. When I started programming professionally, it was very rare for me to use a Unix system, so Emacs faded into the background. In recent years, I have increasingly used Linux systems because I do a lot of algorithmic and server-side programming. When this trend began, I first tried to use Emacs, but there was a problem: Emacs indents using spaces, not tabs. I put up with this for a little while, but eventually got annoyed and I made an effort to configure Emacs to use tabs. This is actually extremely complicated to do, believe it or not. I ended up spending an entire afternoon writing a 30-line program in Lisp to try to get Emacs to use tabs. Ultimately, I failed and came to the conclusion that there is no combination of settings that can force Emacs to use tabs and behave in a normal and consistent way. This is not an accident. This is because the creator of Emacs, Richard Stallman, has deliberately borked his editor to prevent anyone from doing what I tried to do: make Emacs use tabs. Superficially, Emacs gives the appearance of supporting tabs because there are several settings with innocent names like indent-tabs-mode that give the impresssion that you can indent using tabs, but, in fact, the program is carefully and subtlely crafted to make sure anyone attempting to do this has a frustrating experience.

Now, why would Stallman do such a sinister and evil thing? There begins the tale...

Read more...      Archive
News and Portals...
Developer Resources...
Books, Journals and Magazines...
Java Classes Source
Java Toolchest
Visual Basic
Sliva, Amy, Scott Neal Reilly, Randy Casstevens, and John Chamberlain. "Tools for validating causal and predictive claims in social science models." Procedia Manufacturing 3 (2015): 3925-3932.
Abstract: We describe a suite of causal/predictive analysis techniques adapted from a variety of social, natural, and computational science applications, specifically chosen for their unique applicability to the problems of analyzing temporally offset causes and effects. In particular, we describe four methods for analyzing predictive/causal claims: (1) Granger causality is a well-established method from econometrics that can identify relationships between temporally offset causes and effects when the offsets are fixed; (2) forward-only dynamic time-warping (DTW) addresses uneven temporal offsets; (3) convergent cross mapping (CCM) can be used to analyze bi-directional causality produced by the feedback relationships present in many social systems; (4) finally, we describe a novel feature-based qualitative pattern-recognition approach to identify and explain qualitative causal/predictive relationships that don't fit more traditional correlation-based analysis techniques.
List of all my publications
Northeastern ACM Speaker Series

Date: 28 April 2003
Topic: The Importance of Robotics Development to Our Future

Abstract: It is no secret that future productivity depends on automation. What is less recognized is the importance of physical automation--robotics--to our future. As programmers we focus on informational automation and tend to see robotics as a sideline, one of many specialities, and one that is even a little distant because it appears hardware dependent. This may be an error in perception. Robotics is increasingly at the focal point of human development and software development is the single most important component of robotics. This talk will detail the pivotal role robotics has in our future and why it is crucial for computer scientists to take the lead in physical automation as well as informational automation.
All my speaking engagements

Developer Diary · about · · bio · Revised 28 January 2018 · Pure Content