The "Renaissance" is rightly hailed as one of the watershed eras of Western civilization, the people found the impetus and the inspiration to throw off the shackles of medievalism. It was a time of great cultural resurgence, exploration, and scientific advancement…for better or for worse, as some might say! Nevertheless, the Renaissance happened and there's no going back. But there can be progress forward.

When my family and I visited England for a few weeks in August, 2018, we came across a series of books published by Oxford University Press under the theme of "A Very Short Introduction." The first such volume, Shakespeare: A Very Short Introduction, is one we picked up in the bard's hometown of Stratford-upon-Avon, and we enjoyed not only the concise presentation but also the physical comfort of the book's compact size. Thereafter, as we visited other sites like Bridgenorth, Ironbridge, the Derwent Valley, various English Heritage sites, York, and finally the London museums, we found a number of other volumes in the series that added greatly to our understanding of the world without adding greatly to the weight of our luggage!

One of the other titles I picked out in the British Museum, after looking over the collections from ancient Greece, was Classical Literature: A Very Short Introduction. I was particular interested in the subject as I'm looking to transition my own career from technical and instructive writing to more literary work.

Classical literature, as Western civilization defines it, is composed of primarily Greek and Roman works that originate in the twelve-hundred years between around 700BCE and 500CE. It actually goes back a little farther, as Homer's Iliad and Odyssey are considered to be the beginning of the classical era and, ironically, its best works!

It was the "rediscovery" of these classical works of Greece and Rome that helped inspire the Renaissance in the 15th and 16th centuries of the common era. As it says in the Encyclopedia Britannica:

Renaissance, (French: “Rebirth”) period in European civilization immediately following the Middle Ages and conventionally held to have been characterized by a surge of interest in Classical scholarship and values. The Renaissance also witnessed the discovery and exploration of new continents, the substitution of the Copernican for the Ptolemaic system of astronomy, the decline of the feudal system and the growth of commerce, and the invention or application of such potentially powerful innovations as paper, printing, the mariner’s compass, and gunpowder. To the scholars and thinkers of the day, however, it was primarily a time of the revival of Classical learning and wisdom after a long period of cultural decline and stagnation.

The Renaissance, certainly, forged the foundations from which present-day Western civilization has grown. And yet, that civilization–including much of the world that emulates or wishes to emulate the West–is certainly not lacking challenges, perhaps even existential ones, and would, with equal certainty, benefit from another round of rebirth and renewal: a second Renaissance.

I say this not necessarily from a standpoint of criticism, but from a standpoint of wondering whether we've become too complacent with the cultural achievements of the 15th century Renaissance. After all, the Renaissance happened more than half a millennium ago! Isn't it odd the degree to which we still identify ourselves with values from what is not far from becoming ancient history itself? And for as much as we still like to draw from classical history and literature, are we missing an opportunity to perhaps look even farther back to a time when ancient cultures were even more like our own?

The context for this last question, especially, is the profound cyclical view of historical evolution known as the yuga cycles, an ancient tradition of India (and other cultures) that's been brought to modern awareness through works like Paramhansa Yogananda's Autobiography of a Yogi (Chapter 16 in particular), and the exploration of the subject by Joseph Selbie and David Steinmetz in The Yugas: Keys to Understanding Our Hidden Past, Emerging Energy Age, and Enlightened Future.

The basic idea is that humankind's general level of spiritual awareness goes through a series of ascending and descending ages, known from the Greek historians as the golden, silver, bronze, and iron ages. As you might expect, general spiritual awareness is highest in the golden age (Satya Yuga), then gradually diminishes through the descending arc of the silver and bronze ages (Treta Yuga and Dwapara Yuga, respectively), eventually to be almost entirely lost in the iron or material age (Kali Yuga). From that nadir, then, awareness gradually increases back upwards through iron, bronze, silver, and golden ages once again.

Yogananda's explanation of the yugas presented the foundational work done by his guru, Swami Sri Yukteswar, in The Holy Science, published in 1894. Sri Yukteswar sought to clarify and correct certain miscalculations in the traditional Indian reckoning of the yuga cycles. That tradition maintains that we're only a few thousand years into the descending arc of the lowest and darkest age of Kali Yuga, which supposedly started in 3100BCE and is said to last 432,000 years! The implication is that all the toil and suffering we see in the world today will only get increasingly worse, which paints an extremely dim prospect for humanity's future. And even if we somehow manage to scape a few survivors through what would surely be eons of untold anguish, it would take another 432,000 years to crawl back upwards through the ascending arc to get to the next bronze age. If you ask me, I'd opt to find another planet altogether!

Sri Yukteswar, however, said that during the transition between the last descending Dwapara Yuga and Kali Yuga, various misinterpretations multiplied the timespan by a factor of 360 (the number of human years in one "divine year"). Thus instead of an utterly depressing 432,000 years, both descending and ascending arcs of Kali Yuga are only 1200 years long. Furthermore, we've already long passed the nadir, which occurred in 500 CE; in fact, we've also passed through the entire upward Kali Yuga arc, which began to transition to the 2400-year Dwapara Yuga in 1700CE. With the transition ending in 1900CE, Yukteswar said, we entered the Dwapara Yuga proper in 1900CE.

Illustration from The Yugas, (c) Joseph Selbie and David Steinmetz

Where Kali Yuga is called the iron or material age, Dwapara Yuga is the bronze age or the age of energy. Can anyone doubt that energy is the hallmark of the modern era? Nearly everything we know where science and technology are concerned, and especially with energy, has been discovered or greatly refined since 1900CE. That fact alone is enough to corroborate Yukteswar's reckoning. And it's certainly cause for much greater hope than the utterly depressing alternative.

With this background, we find that the age of classical literature, from 700BCE to 500CE, precisely overlaps the descending arc of Kali Yuga. And that's the period upon which the Renaissance of the 1400s and 1500s, in the ascending arc Kali Yuga, is founded. Indeed, if we arrange the descending and ascending arcs of the ages as parallel lines, as Selbie and Steinmetz do in The Yugas, we see that the Renaissance in the ascending arc lines up with the "Golden Age of Greece" in the descending arc. (Because the whole cycle of time is conventionally shown in a clockwise direction, the ascending ages are on the left side.) Thus it was entirely appropriate that the Renaissance drew from classical literature for its inspiration.


(Apologies for the roughness of the scan on the left side. This is also from The Yugas.)

But what of us today, 500-plus years later? Looking back to classical literature is, in effect, somewhat "backwards" in that it looks to an age that is increasingly unlike ours, and that it doesn't look back far enough.

Typical Western scholarship, of course, generally believes that there isn't anything worth looking to farther back than the classical era. It believes that just about everything that came beforehand was primitive or savage. Yet archaeology has been repeatedly demonstrating that there is a very rich cultural heritage from the descending arc of Dwapara Yuga. Ancient Hebrew texts, for example, including much of the Old Testament, are from that time. There is also an incredibly rich cultural and literary heritage from India, such as the Rig Veda, which was already old at the time, and the Sanskrit language itself, which was already fully developed.

Indeed, drawing a line across the yugas from our modern era places us not in the classical period, but in the era of 1000BCE and a few centuries earlier. Again, we're finding more and more archeological evidence that the world back then was not all that dissimilar from our world today, technology notwithstanding. For example, the book, 1177: The Year Civilization Collapsed (the title of which, while catchy, is an inaccurate representation of events that occurred over several centuries), describes a state of civilization with extensive international trade, international relations, and the powerful influence of the oligarchy. The theme of that book, I might add, asks whether our current state of civilization, being so similar to 1177, is also on the verge of collapse—the idea of a massive collapse is somewhat vogue today! Because we're in an ascending arc, however, I would think the opposite is true: although we may need to yet purge many lingering medieval vestiges,  there is a growing sense of unity rather than dissolution. Many young people, for example, are seeing themselves as citizens of the world, rather than of one nation and one nation only. That's why increasingly open international trade, rather than protectionism, is the pattern for the future; we're gradually learning to be as concerned for the welfare of our brothers and sisters in every other part of the world in the same way that we think of our fellow countrymen today. Nationalism, in other words, is becoming obsolete.

Having read Classical Literature: A Very Short Introduction, then, I've begin to look beyond the classical era to seek out the cultural legacy of the period between 1500-1000BCE. Instead of studying Latin, for example, I look now to Sanskrit (Hebrew would also be an option). Instead of drawing from Greece and Rome, I look to India, Egypt, and other cultures of the ancient near east. I wonder what I'll discover along the way.

It's worth pointing out that some classical literature is based upon or follows the tradition of older material, and thus may more rightly belong to this earlier period. Homer's Iliad and Odyssey, for example, though they were written around 800BCE, were understood to be an oral tradition that went back somewhat further. Similarly, there are works in other cultures such as Patanjali's Yoga Surtras in India, that are reckoned to come from the second century BCE (or even to the fourth century CE), but are yet based on much older traditions. Thus I'm not necessarily discounting the typical classics, just casting the net further out.

I look especially to India for what seems most needful in Western civilization today: a spiritual renaissance, which means a renewal of our innermost values from which our outer values arise. As Swami Kriyananda wrote in The Promise of Immortality:

There is an urgent need today for a spiritual renaissance. The spirit of Christianity, not merely the form, needs revitalizing. This rebirth could not emerge from a tradition that for two thousand years has committed itself to defining Truth intellectually. Patterns of belief are the hardest of all habits to change. Rebirth had to come from outside established tradition, and free of the hypnosis of Church influence. The natural source for this renaissance was India, where religious freedom has always been cherished—even as political freedoms have come to be cherished in the West. It is not that Truth ever changes: People simply need to learn to perceive it more broadly, now that they are faced with new self-awareness and increasing knowledge of the universe.

And also in Out of the Labyrinth:

One advantage to living in the modern age is the contact that easy transport and communication have given us with peoples all over the world. Somewhere, in all this diversity, there may exist systems of thought that are different from our own, yet sufficiently like our own to be compatible with it. For what we want, essentially, is not to abandon that which is good in our own system, but only to infuse our system with new insights. This is what happened, for example, with the reawakened interest in Greek civilization that brought about the Renaissance in Italy. What we need today, in other words, is a New Renaissance.

Yogananda's own work, in bringing the ancient teachings of India to the west, is, Kriyananda often said, the beginning of that new renaissance.

I offer the prediction, then, that as our present age continues to develop, we'll gradually discover many previously unnoticed cultural treasures of the pre-classical era of ancient times. We may discover new layers of meaning within texts such as Egyptian hieroglyphics, which to date we've primarily tried to read as literal history or superstitious myth. We may find, as various authors and researchers demonstrate, that ancient myth is actually a form of encoded science, simply put into the form of stories because to store them in the cultural database of an oral (that is, "non-literate") culture. We might also find practical insights in the Vedas of ancient India, which are generally considered to deal strictly with spiritual or metaphysical subjects, but have been shown to contain knowledge of mathematics and the sciences.

That our culture today could use deep renewal is almost beyond question, but I don't think we'll find it by continuing to look backwards to the medieval Renaissance. It's time we begin a second Renaissance of our own.

What do you think?

It's been quite a while since I wrote a longer article for my collection here, as my energies have been so focused on Microsoft-related work the past few years. (Which reminds me that I should post some of that work, too!).

Be that as it may, I just posted this one:

A Morning's Mnemonic Exercise – During a morning walk, I had a long stream of distinct thoughts and ideas that I wanted to remember when I got back home. Because I don't like to exercise while carrying a phone, voice recorder, or notepad, I utilized mnemonic techniques to create very short mnemonic, H3M2 SPIES, with which I was able to remember a series of distinct keywords: history, hieroglyphs, house, mnemonics, meditation, seclusion, projection, identity expansion, and scheduling. Those keywords, in turn, helped me remember the distinct thoughts that I wanted to remember. I found this process of creating a heavily-encoded term that contained a series of keywords that were themselves an encoding of my thoughts. In this article I share the whole thinking process that occurred that morning.

I wrote this today on Facebook as a way to help a number of friends who are freaking out over the 2016 US presidential election. Maybe you are one of them. Either way, enjoy. —

Regarding the reports of bigorty, racism, misogyny, and so on…it's important to remember that the perpetrators already held such views well before this election, and have likely held them through their entire lives. They now, of course, feel emboldened to outwardly express those views, which is no excuse whatsoever for hurting others.

At the same time, their expressions are revealing the stark truth about many people in our country, a truth that essentially been suppressed to the point of coming out explosively. Continued suppression was never going to help them change their views. But now that they're out in the open, it's possible to shine some light on them. Without that, there's really no hope of transformation; by having these things exposed it becomes clear what kind of work remains to be done, and the level of positive energy that must be expressed to counter the negatives.

It reminds of me of Gandhi saying that the purpose of civil resistance and non-violence is to *provoke* a response until your adversaries essentially wake up to what they're really doing. He also said that "it will hurt, as all fighting hurts." There will be pain. There will be trials and suffering. What he–and MLK–demonstrated, though, is fighting for the light and fighting for truth, rather than fighting to punish, which is what happens when you fight violence with violence or otherwise allow yourself to descend into bitterness and anger. It's vitally important, therefore, to choose always to contribute to the light, rather than the darkness.

If you're struggling with anger, get some help. Find a way to turn that anger into motivation. If nothing else, get the Gandhi movie watch it about five times. Or you can watch documentaries about Nelson Mandela. These things will give you courage.

As it's been well said, "there are no problems, only opportunities." This is your opportunity to choose whether you'll rise to a higher consciousness, or descend into the lower along with those you depise.

On that note, I'll share two pieces I wrote about an email battle that erupted at Microsoft over twenty years ago. The first is an article called "The Power of Thoughts and Words" ,…/. The second, which tells the story more fully, is Chaper 13 of my memoir, *Mystic Microsoft: A Journey of Transformation in the Halls of High Technology." The chapter is entitled, "A Flick of the Switch."

May you also be transformed by what you choose to flow through you.

I just finished publishing a body of content on unit testing for JavaScript in the context of Apache Cordova, including both command-line and Visual Studio interfaces. I had a lot of fun learning about the subject and finding ways to communicate a number of concepts. I also found a direct example of a slight difference between JS runtimes that can bite you, but I'll leave that for the articles themselves.

You can find it all on, the docs site for the Visual Studio Tools for Apache Cordova, under the "Test" node. Here are the individual topics:

There are two other topics in that node that I'll be revising and/or integrating into the stuff above: Test Apache Cordova apps with Karma and Jasmine and Test Apache Cordova apps with Chutzpah.

I'd love to know what you think, as this material is easily the basis for a video course with Microsoft Virtual Academy as well.

In January I'll start diving into UI testing for mobile–should be fun!

It's been a few years since I've taken the time to write a fuller essay for my site, but I'm delighted to offer a new one. Comments are welcome with this post as I don't have comments enabled for the articles themselves.

The California Drought: A Problem of Consciousness? – A defense of my claim that "all problems in the world are ultimately problems of consciousness." It's easy to see this truth in matters of human interactions, but is it also true with impersonal factors like the weather and other natural events? And it ths claim defensible without resorting to metaphysical explanations? It is, because what makes such things a problem in the first place is that humans happen to be in the way of such events, and that placement is subject to human choice and thus a matter of consciousness. The very act of classifying a natural event as a problem in the first place is also itself an act of consciousness, because we could just as well classify such things as opportunities. September 2015

One of the things we do in the Windows Ecosystem Scenario Adoption Team is work with top-tier software vendors to help them get key apps ready for things like launch events. Leading up to the General Availability (GA) of Windows 8 in late October, 2012, you can imagine that we were suitably busy (not to mention getting //Build 2012 together and, for myself, finishing up Programming Windows 8 Apps in HTML, CSS, and JavaScript!). Among those companies I worked with, one of them holds the record for the shortest time from first conceptualization to actually being available in the Store: two weeks! (I'm electing to not identify the app, simply because doing so in the context of this post can be interpreted a number of ways.) To be more specific, the first meeting I and a few of my teammates had with this company, its developers, and members of the agency that would be helping them with the app, was October 3rd, 2012. A working app was the available to the public from the Windows Store on October 17th, and we had time to make a few updates and improvements before the Windows 8 launch events a week later. How did we manage to pull this app together so quickly? In addition to the direct support provided by myself and my team, there are a number of factors that contributed to the speedy turnaround as I've written below. This list is also my answer to a question posed by one of my managers: "Why do some partners struggle when we have some who turn out an app very quickly?" What I've written here are then the guidelines of how to avoid struggling and get your productivity in high gear.

  • Complete commitment. These guys weren’t sitting on the fence or making passive agreements. They made a decision and then didn't let anything get in their way. Another way of saying this is that they just completely accepted the job and the platform as it is, and wanted to make the best experience within that reality. Another company I worked with early in 2012 for the first Windows 8 Consumer Preview, a travel app, took the same approach and got their first app done in 6 weeks, even with early tools and platform bugs. Conversely, some partners we've worked with seem to resist this level of commitment, making a big deal out of some small branding issue or turning other molehills into mountains, meaning that we seemed to slog through the process for month after month.
  • Prior experience: The company and their partner agency were also doing their Windows Phone 8 app at the same time. They knew their C# and XAML and didn’t need to struggle with the tools, language, and presentation layer. Other partners I worked with in Consumer Preview also ramped up quickly on the JavaScript side as their devs really knew their HTML/CSS/JS and just needed to learn the Windows platform specifics.
  • Knowing the Resources for a Quick Start: with the two-week project, the first thing I did, given that I'm deeply familiar with the Win8 platform, was to bang out an 8-page summary of what controls, APIs, and samples to use to implement what features in the design. I think this significantly shortened the amount of time they needed to do the job. Indeed, I highly recommend that developers really know the scope of the resources available in the samples, because you can then just grab code from a certain sample to solve a certain need–the Windows 8 samples in fact cover about 95% of the platform, so for most needs you're find code that you can quickly borrow and adapt. You can use my book as a reference for this, because I made note of every JS sample in the appropriate feature context, and by extension this also hits a significant number of C#/C++/XAML samples as well.
  • Properly scoped design: In short, don't try to do too much the first time out the door. Locking down the scope of an app early on and limiting design and development work to just that scope is super helpful. The app we did in two weeks was like this: we had a design in two days to which we only made minor modifications after thorough review. This meant that we could focus on developing just that, and not get sidetracked into other ideas. I’ve seen other partners, in contrast, go back and forth many times with many different ideas, which meant that the developers were having to rewrite stuff. Given that it's so easy to update apps in the Windows Store, you don't have to worry about getting it perfect the first time. Be sure to make it good enough to be useful and get good initial reviews, of course, but understand too that providing updates with more features later on will help to reengage customers.Another way of saying this is that because the development cycle for apps can be short (a matter of weeks instead of months or a year), then it seems to work better to have the designers and planners lock down a rev of the app and let the developers go at it, rather than have too much back-and-forth while the app is being developed, trying to add features, etc., as that just bogs down the dev team.
  • Clear, efficient, and appropriate methodologies: when a dev shop has clarity about who is doing what in their own teams, the process seems much smoother. The team on the two week app, for instance, had multiple teams or individuals working in parallel on app features that were easy to integrate together (my initial document also outlined what could be done in parallel). I've worked with other partners and agencies who had clear processes, as well; some partners, on the other hand, felt like they did everything by committee (too much methodology), as decisions were very slow in coming. Some partners, on the flip side, also end up being too chaotic (lack of methodologies).By the way, if you don't have a testing methodology, get one. Because the turnaround time for an app is not immediate like it is for the web, and because the customer reviews and ratings for your app stick across updates, you need to invest in up-front testing and not leave it to your customers to do that work for you!
  • Experience with tools: Having a solid familiarity with the tool stack ahead of time makes a big difference. With Visual Studio, I think newcomers are put off by the complexity of the whole thing, not knowing where to begin, exactly. For my book I made a 10-minute introduction to Visual Studio to address this, in which I show the core features you need to know about for writing and debugging code. This is Video 2-1 in the book's companion content; I've also posted to Channel 9 and YouTube.I also highly recommend learning to use Blend for Visual Studio Express, especially for CSS styling and probably for XAML, because the tool can make you highly productive. Blend very much helped the travel app developer last year—saved many hours, if not some says, when tracking down style issues. I show some of this tool in Video 2-2 of my book's companion content (I haven't posted it elsewhere).I can also recommend A deep dive into Expression Blend for designing Metro style apps using HTML (//Build 2011), Building Awesome HTML apps in Blend for Windows 8 (//Build 2012), and Designing awesome XAML apps in Visual Studio and Blend for Windows 8 and Windows Phone 8 (//Build 2012).And again, knowing where to find answers (docs, samples, forums–see is a kind of tool. Some devs just don’t know what’s available to them. Third party libraries, if you know how to use them (e.g. jQuery), can also help productivity.
  • Courage to ask questions: This has surprised me sometimes. Some devs are quick to reach out when they get stuck, whereas others seems to struggle along for a day or two before asking. I’ve made it a point to tell my partners that if they find themselves spending more than 30 minutes trying to find an answer, to just ask me. Otherwise you lose momentum and can get a little emotionally depressed (devs are not machines!) when you look too long for something, especially if you’re unsuccessful.Similarly, some devs are too fine-grained in their questions—asking how to solve something that doesn’t need solving if you step back and look at the larger issue at hand. I think the best results have come from devs who seek advice first on the general development approach, then ask good mid-level questions, then ask on specific details. This is again why the 8-pager I banged out for the two-week app was so effective.More generally, having good ongoing communication is helpful for a variety of reasons. I worry most about partners that don’t say anything for a while; having a regular sync call helps to keep the doors open. This is very necessary if you're working with an agency or have developers in different locales.
  • Making the right assumptions: Beyond core architecture decisions, I’ve seen devs make a design choice based on mistaken assumptions about how the platform works, and didn’t consult with us until they were a ways down that road and started to run into trouble (e.g. assuming that they could do more with an iframe or webview than is actually allowed). Of course, devs don’t always know that they’re making wrong assumptions, and if they didn't communicating well with us then we weren't able to provide timely feedback (hence again the utility of having regular sync calls).Checking one's assumptions is especially important for developers coming from other platforms like iOS and Android, because what works on those platforms might not work like you think on Windows.