The Constitution of the Republic of India

Slightly over two decades before Indian independence, Winston Churchill had famously declared “India is merely a geographical expression. It is no more a single country than the Equator.”

His point of view is indeed understandable. Anyone travelling even a fourth of this country by road or rail cannot but notice the striking differences in geography, language, culture, and even race and ‘genetic stock’. Anywhere else, smaller differences would have been reason enough to split such a landmass into more homologous parts. (Here’s looking at you, Europe!)

However, in the past half-century India has disproved Mr. Churchill’s contention stoically, transitioning (albeit painfully) in that period from a collection of independent states to a united republic. We have had our secessionary movements, notably Khalistanis and Naxalites, but the concept of India seems to be in no sense in any grave danger.

The Constitution of India is the foundation stone of the idea of modern India. It is, in verity, the document that defines India, introduces the idea of being Indian, and safeguards India against Indians at the same time.

The Constitution defines the fundamental reasons and objectives for the existence of the Indian Republic. It breathes life into the systems that make the functioning of this country possible. The Constitution draws its power from the people, in that it outlines the rights we give to our ‘Government’ over us.

It is this document that makes us an island of stability in a subcontinent rife with disorder. It is this document that allows you and me to go to work today while our neighbours are burnt alive because they are Tamil or Rohingya.

“It is only one document,” they cry. “Exactly,” I say. Have you read it?

You can download a PDF copy of the Constitution of India here.

Astute readers might notice that the sub-title of this website refers to this document.

Preamble to the Constitution of India.
Preamble to the Constitution of India.

Having iCal speak out scheduled calendar events

I’ve been looking at having iCal (the calendar app on Mac OS X) to help me inject some order into my schedule.  In life, at the very least, you need to have a basic “to do” list, a schedule, and a budget. iCal takes care of two out of those three. Not bad for a start.

While it’s a simple matter of entering in items into my schedule, what’s a realistic way to enforce adherence to that schedule? On the face of it, it seems simple – just keep on referring to your calendar every now and then. But I believe a ‘push’ model would work better than a ‘pull’ model here; it would be awesome to have your calendar tell you what to do when it needs to get done!

iCal has e-mail options which enables it to e-mail you about upcoming events and scheduled items, but it does not take advantage of text-to-speech for some reason. So here’s a little Applescript to add that functionality. Calling this script on the event will read out (in the default MacOS ‘Alex’ voice) your event, in this format:

Attention! It’s 10 o’clock. Time to Sell Nesco shares.

This is assuming my event was ‘Sell Nesco shares‘, and scheduled at ten.
(Statutory disclaimer: This is not stock advice, and the author has interest in Nesco shares)

Without further ado, here’s the code:

set Now to current date
set Earlier to (current date) - (0.1 * hours)
set Later to (current date) + (0.1 * hours)

tell application "iCal"
 set AllCalendars to every calendar
 repeat with EachCalendar in AllCalendars
 set CalendarName to name of EachCalendar
 tell calendar CalendarName
 -- just change the above line if you want to 'say' events from one calendar only
 repeat with thisEvent in (every event whose start date is greater than Earlier and start date is less than Later)
 -- or (start date is MidnightToday and allday event is true))             

 --say ""
 -- say CalendarName
 if contents of thisEvent is not missing value then
 set TheEvent to contents of thisEvent
 set EventProperties to properties of thisEvent
 set EventName to summary of EventProperties
 set EventLocation to location of EventProperties
 set EventDescription to description of EventProperties
 set EventStartDate to start date of EventProperties
 --say (time string of (current date))
 set {hours:hr, minutes:mn, seconds:sc} to current date
 set SpokenTime to "Attention! It's "
 set SpokenTime to SpokenTime & hr & ":" & mn
 say SpokenTime
 -- say mn
 set SpokenEvent to "Time to "
 set SpokenEvent to SpokenEvent & EventName
 say SpokenEvent
 end if
 end repeat
 end tell
 end repeat
end tell

To use this script, open up Script Editor from  Applications/Applescript. Paste the script in and save it to a good location. Apple recommends /home/library/scripts, I believe.

While adding or editing the event you want to be spoken out, you can now choose Run Script as your alarm, and point to the script you just saved. here you can see my own screenshot, where I’ve saved the script as iCal_SpeakEvents.

Editing iCal Events and using a custom script
Editing iCal Events and using a custom script

Suggest modifications in the comments below!