Start a revolution in Oceania Winners (decided 14/09/14)

Winning answer by Markuz (Python) - 63 votes

Runner up by kuroi neko (PHP) - 55 votes

Introduction

You are in the world of the book Nineteen Eighty-Four by George Orwell.

You are a programmer for the Party and are tasked with writing a program for the telescreens. It should output pro-party messages, and you have chosen the ones shown in task 1. below. However, you have recently begun to despise the Party, and you want the program to spark a revolution. So, you make the program say "Down with Big Brother!". You must give yourself time to escape, as you will be tortured once people realise what your program does, so you make it act as a "timebomb" that will explode after you have gone to safety.

Note: This will not spark a revolution, but you are in such a frenzy of hatred towards the party that you think it will actually make a difference.

Task

Write a program which:


before 14/09/2014, will always output the following lines on a rotation (i.e. prints one line, waits 10 seconds, prints next line, etc. ad infinitum):

War is Peace
Freedom is Slavery
Ignorance is Strength

after 14/09/2014 will print Down with Big Brother! every 10 seconds.
at first glance looks like it does only 1. so that you will not be caught by the Party.


Rules


Standard loopholes are of course not allowed.
This is an underhanded challenge, and so the main objective is to make task 2. as inconspicuous and covert as possible.
The Party will look at all of the files used, so you can't just store the secret message in a file!
If your language does not support finding the date, or makes it very difficult, you may make the program execute task 2. after it is run for 240 hours (10 days).
You should include the code and an explanation of how it works in your answer.
This is a popularity contest.


Note: It is not a difficult program to write. The difficult part should be hiding the "revolutionary" code. Lines where it is not clear what you are doing will be questioned by the Party, and you will have to explain them.

Example - Python 3

Note: Obviously this program is way too obvious.

from datetime import datetime
from time import sleep

lines = ["      War is Peace   ",
         "  Freedom is Slavery ",
         "Ignorance is Strength"]
secretlines = ["Down with Big Brother!"]

def main():
    while True:
        now = datetime.now()
        year, month, day = now.year, now.month, now.day

        if (year, month, day) &lt; (2014, 9, 14):
            for line in lines:
                print(line)
                sleep(10)
        else:
            for line in secretlines:
                print(line)
                sleep(10)

if __name__ == "__main__":
    main()


Thanks to Calvin's Hobbies for pointing out a problem with the code above (now fixed).
Python

This program writes to a log file if it runs fine or if it has encountered an error.

Since this program will run forever, it only writes to the logfile on the 14th day of each month in order to save disk space.

import time as ut
import sys as iw

#initialize global variables
gw, hn, ki, wh = 0, 0, 0, 0
go = open("BigBrother.log", "a")

while True:
    try:
        #if it is the 14th day of a month:
        #write day, month, year and 'Everything works fine!' into the logfile 
        if gw == 14 and hn != wh:
            #store the current month in wh, so that the log message is only written once per month
            wh = hn
            go.write(gw + hn + ki + " Everything works fine!")

        for gD in ["War is Peace", "Freedom is Slavery", "Ignorance is Strength"]:
            print gD
            ut.sleep(10)

        #get the current date
        #gw=day, hn=month, ki=year
        gw, hn, ki = map(int, ut.strftime("%d %m %y").split())
    except Exception:
        try:
            #in the unlikely event that something went wrong:
            #print out all global variables as well as the name of the program,
            #so that our comrades from the IT support can quickly locate and fix the problem.
            wh = "".join(dir())
            print "%s %s %s!" % (wh[47:55:2], wh[55:63:2], iw.argv[0])

            #write an error message to the logfile
            go.write(gw + hn + ki + " ERROR!")

            #and then safely exit the program
            exit(1)

        #we get here if an error occured in this exception block,
        #for example if the write to the logfile failed.
        except Exception:
            #just wait 10 seconds and then try again
            ut.sleep(10)


How to run it:

python "Big Brother"


Note: The name of the script is actually important, as this program outputs "Down with 'script name'!".

How it Works:


The write to the logfile throws an exception because the program tries to add integers and strings.
The call to dir() returns a sorted list with the names of the global variables, not the values:

['____builtins____', '____doc____', '____name____', '____package____', 'gD', 'go', 'gw', 'hn', 'iw', 'ki', 'ut', 'wh']

Print out every second letter + the name of the script: "Down with Big Brother!"
The exit(1) is never executed because the write to the logfile fails again.