Let's keep this balanced. The article, as I see it in its current revision, *does* list a bunch of misgivings with singletons.
There might be a misunderstanding here. Design patterns are a means of communication. Sure, Singleton should be avoided, but when you come across one, it is good if you can give it a name and know its shortcomings and perceived benefits, right? So don't bash this article just for being about singletons.
Also, Singletons are still better than globals (because you have encapsulated the access by getInstance(), which allows at least for a defined construction timing, and might be synchronizable in the presence of multiple threads).