Tuesday, November 27, 2012

Various TypeScript Weirdnesses

I’ve been playing around quite a bit with TypeScript lately. I’m no fan of JavaScript – Douglas Crockford is crocked, IMO – so the idea that it might be possible to fix its enormous problems while retaining its real strengths has a whole lot of innate appeal to me. In addition, the fact that Anders Hejlsberg (the genius behind C#) is also behind TypeScript gives the project some immediately credibility.

I also saw an immediate use for it. I’m currently in the process of rewriting Alanta’s API, and during the first two iterations of the API, I struggled no end with getting JavaScript to act like a reasonable, modern language. It’s sort of possible, but given JavaScript’s extremely extensible nature, the potential for the tools to help you the way that they help you in C# or Java (or even C++) is pretty limited. You can force JavaScript into supporting things like inheritance and polymorphism, but it’s not pretty, and it’s easy to make mistakes.

So when it came time to start work on V3 of Alanta’s API, I decided to take the dive, and rewrite it all in TypeScript. I’m a couple thousand lines into it so far, and my initial conclusions have four parts:

(1) TypeScript and the tools around it are still pretty buggy.

Here’s an example. With VS2012 and version 0.8.1 of the TS compiler and tools, try typing this into a TS file:

class A {}
class A extends A {}

It’s nonsense code of course, but it’ll also hang VS2012+TS 0.8.1 hard.

(2) TypeScript still doesn’t have many of the things you’d expect from a modern language.

Generics are the big one here. You can get strongly typed arrays, which is kinda helpful:

class Animal { }
class Dog extends Animal { }
class Plant { }
var animals: Animal[] = [];

// These work
animals.push(new Animal());
animals.push(new Dog());

// This won’t compile
animals.push(new Plant());

But you can’t (yet) do something like this:

class ViewModelBase<TModel> {

    private model: TModel;
    private callbacks: { (model: TModel): void; }[] = [];

    constructor (model: TModel) {
        this.setModel(model);
    }

    setModel(model: TModel): void {
        this.model = model;
        this.raiseNewModel();
    }

    onNewModel(callback: (model: TModel) => void ) {
        this.callbacks.push(callback);
    }

    private raiseNewModel() {
        for (var i = 0; i < this.callbacks.length; i++) {
            this.callbacks[i](this.model);
        }
    }
}

Nor is there support for “async/await”, like the latest release of C#, nor any support for XML Doc or jsDoc comments, or extension methods, or protected methods, or even conditional compilation. And lots and lots of others. But I suspect that most of those will come in time; and of course, with a few caveats, JavaScript doesn’t have support for any of these either, right?

(3) TypeScript has some really weird, unexpected behaviors

This is probably my biggest issue with the language so far. Some of these behaviors are presumably “as-designed”, some might be actual bugs, and it’s not unreasonable to expect that many of them will change before the language is officially released. But they still represent some significant “gotchas” when you’re first getting used to the language as it stands right now.

One example is the weird behavior of the “this” keyword. If you’ve done any web coding at all, you know that “this” in JavaScript refers not to the class in which the method is defined, but to the object to which the method in question has been assigned. Given that JavaScript doesn’t have native support for classes, this sort of vaguely makes sense, but TypeScript is just different enough that you’re likely to get confused all over again.

For instance, take a look at this bit of code below.

class Foo {
    constructor () {
        document.onmousemove = this.showMessage;
    }
    message: string = "Hello";
    showMessage(e?: MouseEvent) {
        console.log(this.message);
    }
}

var foo = new Foo();
foo.showMessage();

Calling “foo.showMessage()” works as you’d expect. But when exactly the same method is called from the “document.onmousemove” handler, “this” gets assigned to the global “document” variable, and as a result “this.message” is undefined. That’s pretty close to how JavaScript acts, but not how “this” behaves in any other class-based language I know of. You wouldn’t normally expect a class method to exhibit entirely different behavior, depending on how it’s called. The workaround for it, by the way, is a tad odd, if handy: just assign the event handler like this:

document.onmousemove = e => this.showMessage(e);

Here’s another example. It turns out that TypeScript has a strange way of initializing methods and fields. Basically, by the time you get around to calling object constructors, you can depend on methods to have been overridden correctly, but you can’t depend on fields. For instance, take a look at this code:

class User {
    constructor () {
        console.log("Field from: " + this.field);
        console.log("Method from: " + this.method());
    }
    field: string = "User class";
    method(): string { return "User class"; }
}

class RegisteredUser extends User {
    field: string = "RegisteredUser class";
    method(): string { return "RegisteredUser class"; }
}

var registeredUser = new RegisteredUser();

In my opinion, it would make most sense to have this output:

Field from: RegisteredUser class
Method from: RegisteredUser class

Failing that, this would at least be consistent:

Field from: User class
Method from: User class

But instead, this is what we get:

Field from: User class
Method from: RegisteredUser class

And of course, that’s not at all intuitive. In looking at the emitted JS, it’s clear why this happens: methods are initialized (i.e., assigned to the class prototype) when the class is constructed, but fields aren’t initialized until the object constructors are called, and those get called in the order superclass->subclass.

var __extends = this.__extends || function (d, b) {
    function __() { this.constructor = d; }
    __.prototype = b.prototype;
    d.prototype = new __();
};
var User = (function () {
    function User() {
        this.field = "User class";
        console.log("Field from: " + this.field);
        console.log("Method from: " + this.method());
    }
    User.prototype.method = function () {
        return "User class";
    };
    return User;
})();
var RegisteredUser = (function (_super) {
    __extends(RegisteredUser, _super);
    function RegisteredUser() {
        _super.call(this);
        this.field = "RegisteredUser class";
    }
    RegisteredUser.prototype.method = function () {
        return "RegisteredUser class";
    };
    return RegisteredUser;
})(User);
var registeredUser = new RegisteredUser();

So when you call the RegisteredUser() constructor, the correct methods have already been wired up correctly to its prototype, but the fields haven’t been: so the User() constructor calls the right methods, but doesn’t call the expected fields. That’s understandable when you look at the emitted JavaScript, but not at all intuitive. Basically it means that the same exact field reference in the same method can sometimes be referring to a field from the local class, and sometimes to a field from the subclass, depending on where you’re calling it from. That’s a pretty serious violation of the “law of least astonishment”.

Even more confusing, however, are some weirdnesses having to do with module loading. There are several different ways to handle dependencies between modules. One way is to just specify them at design-time in a ///<reference /> tag. So if you had a User.js file that looked like this:

class User {
    name: string;
    createdOn: Date;
}

You could then have a RegisteredUser.ts file that looked like this:

///<reference path="User.ts" />
class RegisteredUser extends User {
    registeredOn: Date;
}

But then you have to include both “User.js” and “RegisteredUser.js” in different <script> tags on your web page – which isn’t what you want to do if, say, you’ve got dozens of files and you’re trying to provide an API for lots of external users to use and you’re almost certainly going to be refactoring and changing the module names regularly.

The other way is to use named modules. The way you do this is a little odd if you haven’t worked with JavaScript loaders like tiki (which uses the CommonJS format) or curl and RequireJS (which use the somewhat more complicated and flexible AMD format). You’d modify your “User.ts” file by adding an “export”:

export class User {
    name: string;
    createdOn: Date;
}

And then you’d modify your RegisteredUser to import that module, which then acts as a sort of namespace prepending the exported “User” class:

import mUser = module("User");
export class RegisteredUser extends mUser.User {
    registeredOn: Date;
}

Assuming you’re using the AMD format, the compiled code for User.js looks like so:

define(["require", "exports"], function(require, exports) {
    var User = (function () {
        function User() { }
        return User;
    })();
    exports.User = User;    
})

And the compiled code for RegisteredUser.js:

var __extends = this.__extends || function (d, b) {
    function __() { this.constructor = d; }
    __.prototype = b.prototype;
    d.prototype = new __();
};
define(["require", "exports", "User"], function(require, exports, __mUser__) {
    var mUser = __mUser__;

    var RegisteredUser = (function (_super) {
        __extends(RegisteredUser, _super);
        function RegisteredUser() {
            _super.apply(this, arguments);

        }
        return RegisteredUser;
    })(mUser.User);
    exports.RegisteredUser = RegisteredUser;    
})

All of those “define” calls look weird, but it basically means that the module loading gets offloaded to (say) RequireJS. But if you want to use any of these classes on a web page, there’s another step you have to go through, which is to require() them on the web page itself, like so:

<script type="text/javascript" src="../Scripts/require.js"></script>
<script type="text/javascript">
    require(['User', 'RegisteredUser'], function (mUser, mRegisteredUser) {
        var user = new mUser.User();
        var registeredUser = new mRegisteredUser.RegisteredUser();
    });
</script>

If you’re used to a nice, clean build and dependency system like C# gives you, all that’s a bit much to wrap your head around. And you have to jump through a few more hoops if you want to give users of your library a decent experience. But it’s not the weird part. The weird bit comes when you start trying to mix all this module loading stuff with interfaces. Specifically, this is  a problem I ran into when I was working with trying to get SignalR working with TypeScript. I had a “Service.ts” file that looked something like this:

///<reference path="../Scripts/jquery-1.8.d.ts" />
///<reference path="../Scripts/signalr-1.0.d.ts" />

interface SignalR {
    roomHub: Service.RoomHub;
}

module Service {
        export var roomHub = $.connection.roomHub;
        export interface RoomHub { }
}

And that worked fine. But then I needed to “modularize” it, so that I could access it from other files, so I added an “export” on the module bit, like so:

///<reference path="../Scripts/jquery-1.8.d.ts" />
///<reference path="../Scripts/signalr-1.0.d.ts" />

interface SignalR {
    roomHub: Service.RoomHub;
}

export module Service {
        export var roomHub = $.connection.roomHub;
        export interface RoomHub { }
}
And suddenly the compiler informed me that “roomHub” wasn’t a member of “$.connection.roomHub”. I’m honestly not sure if this is a compiler bug, or some expected but entirely unintuitive side-effect of modularization. And it took me quite a while to figure out the workaround: to move my interface definitions into a separate file (“ISignalR.ts”):
interface SignalR {
    roomHub: RoomHub;
}

interface RoomHub {
}

And then reference that file from the file that contains the exported Service module:

///<reference path="../Scripts/jquery-1.8.d.ts" />
///<reference path="../Scripts/signalr-1.0.d.ts" />
///<reference path="ISignalR.ts" />

export module Service {
    export var roomHub = $.connection.roomHub;
}

Apparently the rule is something like: if your file exports anything, you can’t have any interfaces in it that extend interfaces that don’t originate in the file with the exports. I’m not sure if that’s precisely it, or if it makes sense to have that requirement – but I can’t seem to make it work any other way. (And trust me, I spent hours trying.)

(4) TypeScript is still way, way better than JavaScript

So TypeScript is very new and fairly raw, with some significant rough edges. But there’s still no doubt in my mind that it’s a much, much, much better language than JavaScript. I haven’t experimented enough with CoffeeScript or Dart to be able to speak intelligently about how it stacks up to those alternatives. But at this point, I really can’t imagine going back to normal JavaScript for web development. Why would anyone? And when it finally catches up to languages like C# (or maybe even brings in some functional features from F#) – man, web development might actually start being fun.

Sunday, November 4, 2012

The Dying Rat

Each Fall the maples in our yard prepare
themselves to meet the coming frost and rain
by pulling off their leaves, until their bare
stark branches line the sky, their plain

black limbs all awkward while the bright red
clothes they wore last week with almost an
unseemly pride lie fallow and discarded.
My wife dislikes such garments on the lawn

as much as on the floor. So she had found
a rake last Sunday morn, with church some time
away, and soon the scratching, earthy sound
had called us out of doors as well, to climb

the bank and join her on the muddy grass.
I watched as Caedmon fought his brother for
the rake, and felt a cold that could not pass
the woolen lining of the coat I wore.

Galena was the first to see the rat.
I need to note that her maternal heart
has little room for rodents. A mouse a cat
has caught, the rats that scatter in the dark

into the woods, arouse in her a spring
of primal angst. It quite surprised her there
in all its warm brown loveliness. The thing
was tremulous and soft and strangely fair.

And it was dying. We could see this clear.
Its feet could move, its eyes could see, its head
and ears would shift around when we drew near.
But it was dying. It would soon be dead.

With instincts that were true to all they knew,
my children gathered close to see it breathe.
Its chest would rise and fall; the almost blue
gray fur would ruffle in the wind that wreathed

a mist of falling leaves about us. God
is here, I thought. The God that sees the fall
of each brown bird must know this rat. In awed
and silent concentration, lit by all

the much they knew of love and less of death,
my children watched the slowly dying rat.
And as it struggled for each silent breath,
I sensed the God whose death killed death at last.

Wednesday, October 17, 2012

What Did David Jang Know?

As most readers of my blog know, over the last several months, I’ve been working with Ted Olsen from Christianity Today on a couple of articles about David Jang’s community, and more specifically, about the allegation that at least some members of that community have believed and taught that David Jang was a unique eschatological figure whom they called the “Second Coming Christ”.  (The Tennessean reported today that precisely these concerns have led the Southern Baptists to decline to sell their Glorieta Conference Center to Olivet University.)

As I and others have investigated this claim, I’ve come to the conclusion that the allegation that many of Jang’s followers taught this, in and of itself, is really beyond any serious dispute. To summarize the evidence for this: I’ve personally been in communication now with eight people who have told me that they themselves at one point believed that David Jang was a second Christ and confessed it to others; I’ve talked to one more who told me that she had been taught it, though she never believed it; and I’m in possession of one quite astonishing written statement of confession, from someone who seems to be a current member, which repeatedly and unambiguously identifies David Jang as “Christ”. And that’s not counting the numerous other accounts available on the Internet from other folks, nor the various notes from teaching sessions which don’t specifically identify David Jang as a second Christ, but do in fact say that such a figure was expected, and describe him in such a way that, really, it’s hard to imagine them intending to refer to anybody else besides David Jang.

As I’ve said elsewhere, the group does seem to have stopped teaching this to new members around 2006. At least, there are no public accounts of this from after 2006; nobody I’ve talked to who joined after 2006 was directly exposed to this teaching; and many of the folks who used to believe this themselves have told me that David Jang personally put a stop to its being taught around that time. Two sources have even told me that David Jang once told a group of committed members, “Those who say that I am Christ are insane.”

But there’s one big question which remains to be answered. Granted that David Jang put a stop to this, did he know about it in the first place? Was this something he knew or should have known was happening? Or was it just the result of a small number of well-intentioned but unauthorized followers, half a world away, whose youthful enthusiasm and theological naivete combined to create a heresy that David Jang put a stop to as soon as he became aware of it? (If it’s the latter, I think it would still be an issue that they haven’t been straightforward about what happened, but wanting to sweep old problems under the rug is not as worrisome as claiming to be the Second Coming Christ.)

Until recently, there hasn’t been a lot of evidence one way or the other. The strongest evidence that David Jang knew about it is that three sources have told me that it was common to send a written confession to him. But it’s possible that he never received these confessions (perhaps his inner circle intercepted them), or perhaps they were written in such a way that they didn’t necessarily make clear what it was that the writer was confessing. And I honestly don’t know how common this practice of sending your confession to David Jang actually was: my sources might be a very unrepresentative sample set.

But some new evidence has recently been made available. I’ve recently received a large set of documents from a source that I can’t identify but whose general reliability I have no reason to doubt. These documents contain the transcripts or notes from many hundreds of sermons and lessons delivered by David Jang and senior members of his community from 2002-2005. Because there are thousands of pages of material (and maybe a third of it seems to be in Chinese), I’ll confess that I haven’t read through all of it, and furthermore, that I’m unlikely to do so. It’s just too much. But by searching on specific keywords, I’ve been able to locate a subset of documents which seem interesting. I’ve placed that subset of documents here, if anybody wants to review them independently. And these are my initial observations.

First, I need to say that most of what’s in the sermons or lessons is pretty orthodox. It’s clear that they were delivered to a community of intensely dedicated members, dedicated enough that it would probably put them a couple standard deviations out on any reasonable scale of intensity. But most of them talk about soteriology in a reasonably orthodox way, and none of them so far as I’ve been able to find talk about the cross as a “failure” (one of the accusations from China). On the contrary, you repeatedly find David Jang making statements like this (from a sermon on Romans on April 23, 2003):

In this love of the cross, the holy love of God was revealed. By that grace, we were justified. Even in the era of Abraham is was like that and even for David. Look at this exchange, there is no exchange like this. This is so foolish. This is something that cannot be imagined about this kind of exchange. The Lord took all our sins and clothed us with the clothes of righteousness. The Lord took the debt. He took the debt and he overcame the death.

Or this sermon, from February 22, 2004:

What is it that apostle Paul tried to testify? What is it that he tried to witness? It is that the cross of Christ was not a failure. It was the sacrifice for us. This is what he tried to emphasize. He is trying to emphasize that the cross was true love for us.

Second, these documents don’t have what I would call a “smoking gun”. So far as I’ve been able to find, these documents never say anywhere, “David Jang is the Christ”. (I have seen one document from this same time period which does make exactly that claim, and repeatedly, but I’m not at liberty to quote from it directly.) Nor does David Jang ever make an unambiguous claim along those lines. But these new documents do establish a theological context in which such a claim would be plausible - more on that later.

Third, these documents provide substantial confirmation of the notes and accounts that CT had received from other sources. Ma Li, for instance, made public three sets of notes that she had written down while she was being given the eschatology lessons. The content of the first lesson, entitled “New Israel”, bears strong similarities to the content of a sermon delivered by Borah Lin on July 20, 2002 at Sophia Church in Berkeley also entitled “New Israel”. The content of the second lesson from Ma Li, “Time and Era”, bears strong similarities to another sermon delivered by Borah Lin on July 14, 2002 at Pilgrim Church in LA, and again a week later at Sophia Church in Berkeley, entitled “Time and Date”. The content of the third lesson, entitled simply “Eschatology”, is quite similar to another lesson ascribed to Borah Lin, entitled “Theory of the End”, also delivered on July 14, 2002.

For instance, this is a quote from the “Time and Era” notes from Ma Li:

For example: if we want to make the cap of pen, the first thing we will do is to make a mold and a template.Later, we can pour the plastic into the mold to produce the cap of the pen. Once the mold is made, The time consumed for the production will be very short. The key point is that making the mold need a long time.These are the most valuable time. We could make this mold and lives by loving each other, to establish initial society that belong to the Kingdom of the heaven. Once we succeed, other society follow it will be easy. Satan wants to prevent us to make this Mold.Once it succeed we could say The kingdom of the Heaven achieved. Restore his kingdom of heaven on earth, we don’t need a lot of people to establish the mold of the Kingdom, only need 144000 people.

And this is a quote from the “Time and Date” sermon by Borah Lin:

It is like this. There is this mold that we must make. Making that makes the longest time. It is the most expensive. After the mold has been made, then you just pour the plastic in. It doesn’t even take a second and it comes out cheap. Making the first one comes out and is the most difficult.

That is why making the first sample of heaven takes the longest time and is the most difficult. When this is made, others just see and follow. Other communities just see and follow. Then it is just a matter of time. That is why making this is the most important thing.

What happens to the ones who make this? It is not wrong to say that these people created heaven on earth. When you say this, it is correct. That is how important it is to make something so important. This is paving the first path. This is possible only by faith...
Sometimes you ask, “Pastor, how can you change the whole world? When will the Kingdom of Heaven come? There are 6 billion, when can you change everyone?” What you need to do is make the 144,000. Don’t worry about the whole thing, but just the sample. When we make this, the history has gained victory. When we make this, then God can truly judge Satan.

(And for what it’s worth, another source, in attempting to explain to me how the community understood itself, fell back on the same image: “The 144,000 recorded in Revelations are the firstfruits (Rev 14:4). They form the mold of the body of Christ - meaning that they are the first ones to really come together as his body... Now, where is David Jang supposed to fit in? According to what's implied in the teachings, he is - in short - the head of this body.”)

There’s obviously a dependence of some sort between the passages - but at the same time, neither one is simply a translation of the other.

Without going into the same detail, suffice to say that there are similar detailed correspondences between various sermons from Borah Lin and the so-called “K-Notes” taken down by Munenori Kitamura between 2002 and 2004.

The most plausible explanation of these correspondences is that they represent a common teaching in the group. Numerous sources have said that they were expected to listen to sermons by Borah Lin and David Jang, and then use that same content in their own Bible studies with newer members. It seems highly likely to me that the notes from both Ma Li and Munenori Kitamura come from those regurgitated lessons: these are probably the originals from which the other notes were derived.

Fourth, these new lessons provide significant confirmation that Borah Lin, one of the key leaders in Jang’s community, taught a doctrine of a second Christ, a new and distinct eschatological figure who is expected to emerge from their community. For instance, the “New Israel” lesson has this header:

July 20, 2002 - Word of God Delivered at Sophia Church in Berkeley
* Delivered by: Pastor Borah
* Translated by: Ji Sun Chang
* Mini-Retreat Lecture

In this lesson, Borah says,

The stone tablets symbolize Christ. The first Christ, God sent. How about the second Christ? We must make him. On earth, he has to be made. Then God will write on him. God will then acknowledge him. Make one and make the Kingdom of God. The one who makes this is the second coming of Christ. The ones who makes the Kingdom of God has to make it and go to God. The great body of Christ needs to be made.

Another lesson from the same day, entitled “Time and Date”, has the following header:

July 20, 2002 - Word of God Delivered at Sophia Church in Berkeley
* Delivered by: Pastor Borah
* Translated by: Ji Sun Chang
* Mini Retreat Lecture

In this lesson, Borah makes a repeated distinction between the “Gospel of Parables” brought by Jesus and an “Eternal Gospel” to be brought by some other figure identified only as the “Second Coming”.

That is why the gospel of the New Testament is the gospel of parables. The Eternal Gospel is where the gospel is interpreted (解析). There is no longer any need to use parables …

If you look here, who brings the gospel? It is Jesus right? Jesus came and gave us the gospel. He opened the era of the gospel. That era opened up and it has been 2000 years since then. For 2000 years, the gospel was proclaimed. He opened this.

Who brings the Eternal Gospel? The one who proclaims the Eternal Gospel is the second coming. He comes and opens up the Word. The Lord comes and what does he have? He has the Word. The Word is needed for the new world to open up. The Word of the fruit is needed for the era of fruit to open up.

The important time that we are waiting for is this time. It is not that the Lord comes way at the end. However, he comes at that turning point and opens up a new era. When he proclaims the Word that Word expands.

Similarly, another document entitled “Two Stone Tablets”, with a file date of June 22, 2004, has the following header:

Two Stone Tablets
*Delivered by: Pastor Borah
*Translated by: Ji Sun Chang
*Tape

In this message, Borah repeatedly distinguishes between the first set of stone tablets in Exodus, which God carved, and the second set, which was carved by Moses. She then goes on to apply this same pattern to the Christ:

The history of the second coming goes with the same pattern. The first Messiah God sends. God sent him. That is Jesus. He has come. But his own people did not receive him. They rejected him.

He will come again. Messiah will come again. This is prophesized. How will the second Messiah come? We need to carve it out like the first one. The second Messiah needs to be made on this earth.

What does this mean? Make what? We need to make the Kingdom of God and go. The Kingdom of God has to be made and then He will accept and say he is Messiah. Messiah doesn’t come first. First, the Kingdom of God has to be made. The one who establishes this is Messiah …

The Kingdom of God and the great body of Christ needs to be established and from their Christ will come out.

Let us say that the body of Christ was established and made like this. What is this? This is the second coming of Christ. How does the second coming happen? As the Kingdom of God is established like this, the second coming will be established.

But then you could ask that Jesus said he would come. Who is that one Christ? The one who started this body of Christ, the one who becomes the center of that body of Christ, becomes the Christ...

Do you understand? We are making the Kingdom of God. We are going on dreaming for that day. We are going on dreaming for the day for Christ to be revealed on this earth. This is the second coming. This is the history of the second coming. We are able to see here that with these two stone tablets, with this secret, how the second coming will be revealed. The one who establishes and makes the Kingdom of God becomes Christ.

Another lesson has the following header:

July 20, 2002 - Between Already and Not Yet
* Delivered by: Pastor Borah
* Translated by: Ji Sun Chang
* Mini Retreat Lecture

In this message, Borah repeats her assertion that it is up to the community to establish the Kingdom of God:

We need to establish the kingdom of God. That is the hope of God. Who is going to make that? Can Messiah make it alone? That is not how it goes. If he could make it all by Himself, then He would have already made if by Himself. He would have made it long ago. But isn’t the problem us? Aren’t we the problem?

In an interpretation of Rev. 12:5, Borah says,

The woman has a son. They go together. If our church is the church of the son, then our church will give birth to the son. If our church is the church of Christ, then we will give birth to Christ.

She then goes on to describe in an ambiguous manner what the appearance of this Christ might be like. An individual community might recognize that Christ, she says, even though the nations have not yet recognized him.

Peter has already met him, but it is not like the whole community recognizes Jesus as Christ. For some people, he is a prophet. For others, they think he is like Elijah. However, for the individual, Christ has already come. Christ for the whole community has not come yet. The Christ of the community is not revealed yet.

Let us say that this whole, great community recognizes that he is Christ. They realize it. That means the Christ of the community has come. Already, they recognize that he has come.

But the Christ of the nation has not come yet. For the whole nation of the Jews, Christ has not come yet. They are waiting for that Christ. He has not come yet. We are supposed to sing the praise of hope and waiting. Nothing has come for the nation and the Christ of the world has not come yet. We are supposed to praise for this together.

To the extent that this second passage refers only to Jesus of Nazareth, if it’s actually and only using the “historical present”, and if “the community” refers to all Christians, then this could be nothing more than basic orthodoxy. It could merely be saying that Christians recognize Jesus of Nazareth as the Christ, though others do not. But in context, especially given everything else Borah Lin has said on the topic, it seems quite plausible that it is also intended to refer to a different Christ as well, one who has so far been recognized only by “the community”, but who will eventually be recognized by the whole world.

Fifth, there’s some evidence in the documents that David Jang knew and approved of these teachings, though it’s not unambiguous.

For instance, one message bears this header:

Title: Love covers over a multitude of sins
Scripture: 1 Peter 4:7-8
Date: August 20, 2003
Location: Antioch Church, Seoul
Occasion: Wednesday Service
Preacher: Rev. David
Translator: Ji Sun Chang gsn
Typist: Walker Tzeng

(I should note that I have been told that Walker Tzeng denies having been the author or source of this document, or any other document I refer to that bears his name – more on that below.)

In this document, David Jang says that he specifically prepared messages on eschatology for the community:

When we teach eschatology, we have to teach time and date. We must know what kind of history we are in and what process the history goes through.

Actually, I am going to tell you this. I prepared eschatology one by one so that I could teach you during the summer vacation. During the winter vacation, I was going to study the last prophecies of the Bible as well.

It seems likely that the messages David Jang prepared in 2003 weren’t the same messages that Borah Lin delivered (since Borah had delivered her the previous summer, in 2002), but the fact that he references the specific phrase “time and date” (one of the titles of Borah’s lessons) would suggest some sort of connection.

Another message bears this header:

Title: At the present time, there is a remnant chosen by grace
Scripture: Romans 9:6, 11:4
Date: August 24, 2003
Location: Antioch Church, Seoul
Occasion: Sunday Service
Preacher: Rev. David Jang
Translator: Ji Sun Chang gsn
Typist: Walker Tzeng

In this sermon, David Jang appears to refer to the titles of two of the eschatology lessons delivered by Borah Lin:

What is the letter and the spirit? It is you who will open up the new world of history. Don’t be confined in the letters. It is like the words of Socrates. Don’t focus on water and fire. Focus on what is going on in the spirit of mankind. We have studied these things - Time and Date, New Israel. It is the conclusion of New Israel.

In other words, he seems to indicate that he was aware not just of the existence of the lessons “Time and Date” and “New Israel”, but of their actual content.

At another point in this same sermon, David Jang says,

What is essence of the theory of representatives? It is that there is fear. First of all, I am the one representing the history of mankind. I am the one representing this era. The others are all sleeping because they don’t know the time. But there is someone who wakes up.

Taken by itself, this sounds rather like a very strong claim: “I am the one representing the history of mankind.” It’s possible, though, that he’s speaking generically, using something like the “sports subjunctive”. If this is the case, then he would mean something like, “To be a representative, like all of you are, means to know that you are representing the history of mankind.” And given the various weirdnesses that can creep in during translation, we need to allow for that possibility, even though, to my ear, it doesn’t seem like the most natural reading of the text.

It’s possible that a similar construction may be at work in another sermon, with this heading:

Title: Lift up your eyes and look about you all assemble and come to you
Scripture: Isaiah 60:1-5
Date: October 26, 2003
Location: Sophia Church, Tokyo
Occasion: Sunday Service
Preacher: Rev. David Jang
Translator: Ji Sun Chang gsn
Typist: Walker Tzeng

In this sermon, David Jang proposes to switch subjects from “existence” to “history”:

Today, rather than the issue of our existence, we will meditate deeply on the history. Where are we heading towards? We must know this. I am the one in the history. We always learn about this. That is how we are different.

Again, it’s possible that what he means is not literally, “I am the one in history,” but rather something like, “Each of us realizes individually, ‘I am currently making history.’” Still, that doesn’t seem the most natural way to read it. (I would very much like to find and have someone explain the original Korean for me.)

[Edit 11/22/2012 – A source in a position to know tells me that in both of these instances, he feels that David Jang almost certainly was not making claims about himself, but in saying things like “I am the one in history” was simply putting himself in the position of his hearers. In this case, I’m willing to give David Jang the benefit of the doubt, so I’ve crossed out the two paragraphs above.]

That said, this sermon from David Jang echoes many of the themes of Borah’s sermons, especially the idea that Jang’s community was to play a key role in eschatology. At one point, he describes a gathering that happened in the year 2000, referencing 1992, the year his community was founded, and the year David Jang completed his 42nd year on earth:

At that gathering, we gathered 120 people. The ring of Apostolos I gave them out one by one. This is the story of 3 years ago. I said, “You are the workers that will establish the Kingdom of God.”

We are alive. Isn’t that amazing? In 1992, the time of history had come. The time had come. When everyone was asleep, the time of history came. It was a year the same as other years.

What is so great about it? It was very serious. The matter was very serious. Why? The new millennium is coming. The change and turning point of the 2000 is here. Is this meaningless? What kind of meaning does it have? For the people being buried in the common daily life, what kind of meaning does it have for them? They were just repeating.

But to the ones knowing history, we have come to this point of history where we are at the last of the 7 years of disorder. We were finishing up the 1000 years. We are going on the new 7th year.

A lesson called the “Genealogy of Christ”, which is found both in Munenori Kitamura’s notes and in these newly available documents, contains an idiosyncratic interpretation of Daniel 12. In brief, this interpretation says that 1260 days of Daniel’s prophecy had been fulfilled before Jesus’ life on earth. His 33 years on earth brought the prophecy up to 1293 days, leaving 42 years to be completed before the full 1335 years could be fulfilled. The “Genealogy of Christ” lesson as contained in these documents says specifically:

What was JS supposed to accomplished? He was supposed to accomplish 1260, 1290 and 1335. all this prophesies in numbers were supposed to be accomplished.

We must know about the second coming Jesus. The 2nd coming son in the continuation of Christ. it is like running a relay.

We first need to know how far the first runner went up to. The second one continues from the point and finishes the race. We need to know how far Jesus went.

If Jesus finished his running, the second son does not need to come. However, he will come to finish what Jesus did not accomplish...

Jesus completed 1293 days; the history of the second Christ is from 1293.

1335 – 1293 = 42 accomplishing 42 days.

History of Advent will not stand from beginning.

David Jang appears to allude to this lesson and interpretation in his sermon from October 26, 2003. He doesn’t specifically reference the bit about the “second Christ”, but it’s clear he knows the general schema into which that figure fits when he says,

In Daniel 12, it talks about the one who leads many to righteousness will shine like the stars. Then there is the time times and half a times. After that is the 1260 and 1290 days. Beyond the public life that the Lord fulfilled, we are continuing on with the rest of history. It is the 1335. This is very important in the history of God. History must go and be opened.

In addition, another set of notes bears this heading:

MATTHEW 21:33-43 "PARABLE OF THE TENANTS" - "THEORY OF ELECTION"

(Bible study - 28.12.2002 - Pastor David - Korea)

The sermon takes the 144,000 of Revelation as its departure, and it contains this text-based schematic breakdown of the community’s history, presumably taken from something that David Jang wrote down on a whiteboard:

lll

30.10.92-------93-------94-------95-------96-------97-------98-------99-------lll2000-------01-------02-------03-------04-------05-------<06>

Beginning l-----------l---------l----------l---------l----------l----------l lll l-----------l----------l----------l----------l----------l-----------l

l 7 years 7 years

l

July-mission to China

(after 3 1/2 year)

It’s a little difficult to make out some of the details in this ASCII-art style diagram, but it’s quite clear that he’s breaking down the community’s history so far into 7-year segments, beginning with his 43rd birthday, October 30, 1992. This sermon also makes it clear that David Jang is familiar with the highly idiosyncratic eschatological schemes that also make their appearances in Borah Lin’s sermons, including a strongly implied identification of the 144,000 with his community, and the same odd interpretation of the “full grain, the head and the stalk” from Mark 4:28 as referring to the 42 year history of his community. Indeed, since this sermon predates the sermons by Borah Lin that I quoted above, it’s not unrealistic to assume that David Jang was the source from which she derived her ideas.

Another set of notes from the same folder bears this heading:

MATTHEW 24 THEORY OF THE END (Wednesday service - 1.1.2003 - Pastor David - Korea)

It contains many similarities to other sermons ascribed to Borah Lin, including the reiterated teaching that the “Second Coming” is largely or perhaps even entirely symbolic:

People thought that the Earth is flat.

heaven

----------------earth---------------

hell

According this people thought that Jesus can come from the sky riding on the clouds and everyone can see him because the earth is flat. So from anywhere can see him. But now we know that the earth is not flat, but round. So it is not possible for all people to see Jesus, if he is coming from the sky. Riding on the clouds has again symbolical meaning. Whole gospel is parables.

Clouds- symbolical meaning. If we are not sensitive to this, it is difficult to understand. So it is not riding on the clouds? So how? Even Elijah was riding on the chariot of the fire. Lord is among us, withing us.

"Why do you look at the sky?"

Lord is within you. He was resurrected and there is comission for us. As he was taken to heaven, he will come back in the same way. He was not confined, but resurrected by the love of God.

He is coming on the same way like going to heaven. Elijah - riding on the chariot of fire, but it doesn't happen really physically....

Why churches don't want to talk about the end times? We have to talk about it, because it is hope for the future. Jesus covered up this great prophecy. One who knows the history, this one wil lead. Someone can say, we are cult, because our interpretation is different from theirs. Than we have to ask them. I Jesus going to come again? Second coming - this word is not used in the Bible, we should not use this term.

In Matthew there is no word like second coming.

The doctrine of the community having a destiny which will last for “42 years” has been asserted by multiple sources. It also shows up repeatedly throughout sermons from both David Jang and Borah Lin - far too many to repeat here. But a couple examples will suffice. One message has the following heading:

Title: The holy temple
Scripture: Ephesians 2:20-22
Date: October 31, 2003
Location: Tokyo, Japan
Occasion: Morning Service
Preacher: Pastor Borah
Translator: Ji Sun Chang gsn
Typist: Walker Tzeng

In the message, Borah says:

When we look at history in the big picture, it is time, times, and half a times. It is 42. We are going 14, 14, and 14. In that way, we are grateful he has called us in our youth. No matter how great the person is, if he can’t match the time and place, it is useless.

At this time we have been born and we have been called. Because He has called us, we are here at this place. He called us at this precious time and we are grateful for this. We are going the 42 years. If you break it apart it is 14, 14, 14 years. We have come 11 years.

Another message has the following header:

Title: The hour has come for you to wake up from your slumber because our salvation is nearer now than when we first believed
Scripture: Romans 13:11-14
Date: October 8, 2003
Location: Sophia Church, Japan
Occasion: Wednesday Service
Preacher: Rev. David Jang
Translator: Ji Sun Chang gsn
Typist: Walker Tzeng

In this message, David Jang says,

Why is it 1992? On October 30, we are going to have a gathering here. We decided to gather in Japan. Why 1992? Just as I said before, the world keeps talking about it first. This is the tragic history where the surroundings wake up the center. The world talks about it first. The world talks about the sleeping souls first.

In 1992, Korea was like that. The world tried to wake up the people. They told everyone to wake up because they will rapture. People who didn’t live in that era don’t know. Really, this happened and that happened.

It is the historical fact of 42. Why is it 42? Pastor lived 21 and 21. When I went past 42, it was very serious. Now is a time for change and conversion. I lived being drunk. When I was 30, it was very serious. When I turned 42 and 43, the great newness has come to me. That is the time when it started. That was the time to start so we started.

Taken by itself, the idea that the community has a special commission which began when David Jang had finished 42 years on the earth, and which will last for another 42 years, is odd, but it’s not necessarily heterodox. The Church has traditionally and wisely refrained from defining specific eschatological schemes as either orthodox or heretical. However, if you read these constant references in light of the Daniel 12 interpretation - namely, that the 42 years are a specific fulfillment of Jesus’ unfulfilled mission - they appear to be making not just eschatological assertions, but also specific claims about Christology. And in that light, they become a little more worrisome.

Sixth, these documents provide additional evidence that Jang’s community responded affirmatively to the invitation to see themselves and their leader as key players in salvation history. One document, entitled “Darker than Wine and Whiter than Milk,” with a file date of February 3, 2004, was apparently intended as an internal news report for the community, perhaps to be published on the community’s internal website. It provides a summary of a sermon given by David Jang, and opens with these words:

God gave a very beautiful and precious present to Reverend David and our community today: Olivet, the central organization of all our ministries where Reverend David prays and guides the whole world just as Jesus did in his time.

I can’t quite imagine the BGEA describing Billy Graham this way.

Another document contains a transcript of a conversation that David Jang had with some members after he arrived at the LA airport on July 7, 2004. The transcript is given this introduction:

As exhausted as e must have been due to jet lag and the fierce spiritual battle he had faced in Korea, He still greeted all the members warmly with a bright smile on his face. We were able to see clearly the image of absolute devotion and commitment to the dream of God with absolute love. During His short stay, He poured His heart our without hindrance and gave the members of LA and SD much comfort, joy, and wisdom. We hope to bring him much comfort and joy during his stay in America also. Here in these notes, such precious moments may be re-lived in our hearts.

Read that paragraph again, and pay attention to the capitalized pronouns. Throughout the document, about 2/3 of the pronouns which refer to David Jang receive the honor of capitalization that is normally reserved for God; none of the pronouns which refer to anybody else are treated that way.

Seventh, and finally, I can’t come up with any reasonable explanation for these documents than that they are genuine. Although they were delivered to me from one former member, they came from several different archives, and were given to my source at different times and by different individuals. The file dates roughly correspond to the dates on the headers, but not in any mechanical way. There’s a lot of duplication of documents between the different archives. Sometimes there are different notes, clearly from two different sources, of the same sermon on the same date. Sometimes there are rough notes and edited notes of the same lesson. They are in different formats: some are straight .txt files, others are are in .rtf, most are in .doc. The document properties for the .doc files show a variety of different authors. And perhaps most tellingly, there are lots of them. I’ve counted up nearly 2000 separate files, and some over 1100 distinct file names; and the documents are typically between 3-10 pages each. If somebody faked this whole dump, they were not only very, very good - they spent years doing so. I could imagine a government engaging in this sort of disinformation campaign; I can’t imagine even a very motivated set of individuals would have the necessary resources and patience.

I should note that I forwarded an earlier draft of this blog post, along with the supporting documents, to representatives of Olivet University for comment. The most important part of their response was a claim that the key sermons, supposedly originating from Borah Lin, were probably fraudulent (though they acknowledged that the rest of the documents were quite possibly genuine). They brought forward three pieces of evidence for this:

  1. Borah Lin was in NYC rather than Berkeley when the sermons were given.
  2. Walker Tzeng (the supposed transcriber) was in Seattle when Borah Lin’s sermons were given, not in Berkeley or LA.
  3. Walker Tzeng denied being the documents’ author.

My thoughts: (1) If it could be shown that Borah Lin was in NYC on the very dates of those sermons (not just “living in NYC around that time”), that would indeed be significant (though perhaps not conclusive) evidence against at least that particular version of those sermons. So far, other than a simple assertion, I haven’t seen that evidence; beyond that, quite similar sermons, also ascribed to Borah Lin, exist in other documents as well. (2) My understanding is that the documents were actually transcribed from recorded audio. So the simple fact of Walker Tzeng being in Seattle rather than Berkeley doesn’t prove much. (3) The fact that Walker Tzeng denies having anything to do with those documents should in fact count as evidence against their authenticity.

But we also need to weigh that evidence against other evidence – very strong, in my opinion – in favor of those documents’ authenticity. For starters, the documents were not delivered to me in a vacuum: they were part of much larger set of archives, and the documents in question were not differentiated in those archives in any interesting fashion from the hundreds of others. For instance, the document that is probably the most interesting, the "New Israel" sermon ascribed to Borah Lin, shows up in two different archives, with different file names and directory locations in both archives; and it shares this characteristic with many other documents, some interesting, most not. The “New Israel” sermon also repeats (with just the sort of differences that you would expect) much of what shows up elsewhere in the “New Israel” notes from both Ma Li and Munenori Kitamura. It also contains many similarities to another sermon ascribed to Borah Lin, also entitled “New Israel”, which I found in a different archive. Many of the controversial eschatology sermons ascribed to Borah Lin (such as the “Time and Date” and “Eschatology” lessons) also show up in Chinese versions. On top of this, several former members - not the source of these documents - had previously told me that Borah Lin gave lessons by those names, and their explanation of her sermons matches well with the content of the documents.

And finally, if some unknown conspirator was going to falsify these documents, to provide false evidence against Jang or his community, I can’t figure out why they would make the documents so allusive and slippery. If you’re going to fake documents, wouldn’t you make them far more pointed, and skip all the studied ambiguity? For instance, instead of having Borah Lin make these statements, just go ahead and put them in David Jang’s own mouth; instead of using specific phrases like “the second Christ” just two or three times, use them all over the place; and make it quite plain who “the second Christ” was supposed to be. But the documents don’t do that. In other words, their general ambiguity actually provides a strong argument for their genuineness.

Conclusion

In sum, I think the documents provide pretty convincing evidence that teachings which would make most mainstream Christians uncomfortable - for instance, that Jang’s community was intended to play a unique role in the establishment of the Kingdom of God - were taught at the highest levels. In addition, two documents directly tie Borah Lin to the teaching of a “second Christ” or “second Messiah”, and several more bearing her name point strongly to that doctrine. Beyond that, there’s some evidence that David Jang knew about these teachings, as he refers to the controversial lessons by name and talks about their content.

In other words, at this point, we have multiple documentary sources and multiple first-person testimonies for the assertion that highly questionable doctrines were taught in China, in Japan, in Singapore, in LA, in San Francisco, in Houston, in New York, and in Africa, and by multiple leaders of David Jang’s community. It appears beyond much question that these doctrines can be traced back to Borah Lin; and I think it’s getting more difficult to defend the thesis that David Jang knew nothing about them.

As David Jang said in another sermon, on October 8, 2003:

You understand the present time. This touched my heart. Reading Romans, this really touched my heart. You understand the present time.

In the back is someone saying, “Huh? I don’t understand. When did you tell us the time and date?” We don’t have that kind of atmosphere. We have the atmosphere where everybody knows. It is that kind of atmosphere.

When we speak of time and date, we all know. If there is anyone that says, “What?” then that is not a member.

[Edit 2012-11-07: I’ve added another couple paragraphs above that briefly analyze the notes from two sermons from David Jang, one from December 28, 2002, and another from January 1, 2003. These documents were included in the original dump, but I had not previously noticed them. They’re important, because they confirm David Jang’s detailed acquaintance with the rather unorthodox eschatological schemes contained in Borah Lin’s sermons, and indeed, strongly imply that he was their source. I’ve also added the documents to the “Interesting” folder I linked to above.]

[Edit 2012-11-22: I crossed out a couple of paragraphs after a source in a position to know told me that the quotes from David Jang that they analyzed were almost certainly innocent.]

Monday, September 17, 2012

Loading module-specific connection strings in Orchard

At Alanta, we’ve been using Orchard as the platform for our corporate website, with mixed results. I like Orchard’s deep integration with ASP.NET MVC, and with the almost insane flexibility that it provides you as a developer. (Let’s here it for IOC!) But it’s also quite complex, with a pretty steep learning curve, and it still has some real maturing to do in terms of community support, such as themes and third-party modules and what-not. On top of that, it’s designed more as a self-contained CMS, rather than as a general-purpose framework. It assumes, in other words, that pretty much the only database you’ll ever want to talk to is its own; and the only way you’ll ever want to talk to that database is through its own (fairly well-designed) database access layer.

But that approach doesn’t work so well if you’re using Orchard to provide the content, navigation and theming scaffolding around an application that fundamentally needs to talk to a separate database – which of course is what we’re trying to get it to do. In doing this, we’re probably trying to insert a fairly square peg into a reasonably round hole, but it’s where we’re at, so we’ve had to come up with some creative solutions.

One of the first problems we ran into is how to get our custom Orchard module, which of course needs to talk to a separate database, to retrieve the connection string for that database. You can of course put the connection string into the web.config of the module in question and then try to load them the normal way:

_connectionString = ConfigurationManager.ConnectionStrings["AlantaEntities"].ConnectionString;

But that doesn’t work, because ConfigurationManager only reads the global web.config, not the web.config sitting in your module’s directory.

So we initially settled on a compromise, namely, adding the connection string to the global web.config. And that worked, but I wasn’t quite happy. Since we were using a source-code subscription of Orchard for our rollouts, it complicated the build process: we needed to maintain a web.config that was different from the Orchard default, and somehow merge that into our source code rollout. It wasn’t a huge compromise, but it had, if not code smell, at least build smell.

Finally, when we started our switch to Azure, it became imperative to address the problem. I really wanted to be able to run the standard Orchard website install, without having to build it ourselves, with all the dependencies and complexities that introduced. (Among other things, well, we couldn’t get Orchard to run the normal way, as a “Hosted Service”. It kept giving us some weird message, completely unknown on the forums, about an Autofac DependencyResolutionException.) But if we wanted it to run as a website (one of Azure’s new features, still in beta), we didn’t have an easy way to control what goes into the global web.config.

So we did what we probably should have done in the first place: moved our connection strings back into the module’s web.config file. It’s a few extra lines of code to read the connection string, but not difficult once you know the trick:

// Read the connection string from the *local* web.config (not the root).
var fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = HttpContext.Current.Server.MapPath("~/Modules/Alanta.Web.Corp/web.config");
var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
_connectionString = configuration.ConnectionStrings.ConnectionStrings["AlantaEntities"].ConnectionString;

Sunday, August 19, 2012

Slings and Arrows

“CT alleges that anonymity was granted because the publication ‘found evidence’ that its ‘sources could face retaliation’ for speaking to the magazine about the issue. The magazine did not substantiate ‘evidence’ of possible retaliation, and there has not been evidence of retaliation towards those speaking against Jang and groups allegedly tied to him in cases from East Asia.” - The Christian Post

When I started investigating David Jang’s movement, and when it became clear that the larger Christian community needed to be made aware of the things former members were telling me, I knew I was going to be exposed to some slings and arrows. There’s plenty of evidence that David Jang’s community has not been subtle in its attempts to undermine the credibility of those to whom they take a dislike.

Consequently, when I became aware several weeks ago that the Christian Post, a newspaper closely connected to David Jang, was preparing an article on me, I wasn’t exactly surprised. I did raise my eyebrows a little when one of their emails to Christianity Today said that the “story is going to be about Ken's involvement with an international network of pro-North Korean ,anti-Christian and leftist groups that are attacking Christian organizations.” But I had a pretty good idea that any story would focus less on my (non-existent) ties to North Korea, and more on my (actual) connections with Zango, an adware company where I was the CTO and co-founder.

There’s no denying that Zango was a controversial company, and even I can’t defend everything about it. I had plenty of my own disagreements with the other executives about aspects of its business, and and as a tech guy, limited influence over corporate strategy. But there was also a great deal about Zango that I admired, and that’s what kept me there for the better part of a decade. It had a great culture. It treated its employees well. And we worked hard to fix problems and to create an honest business. If you want more of my perspective on what was good about Zango, what wasn’t, and some of the internal battles I fought, you can just search for “Zango” on my blog. You can decide for yourself to what extent my involvement with Zango affects my credibility – or perhaps more importantly, the credibility of Ted Olsen, Christianity Today’s managing editor of news and online journalism, the lead author and fact-checker for the story.

But even though I had been expecting an attack, and was for the most part prepared to submit to it gracefully, I was still a little surprised to read in this morning’s Christian Post that I was all but a purveyor of child pornography.

I suppose I need to say a few obvious things: that Zango never sponsored or allowed child pornography on its network, that it dealt resolutely and immediately with any violations of its terms of service, and that had this not been true, there’s no way I would have allowed myself to be associated with it. Any allegation or implication otherwise is simply and entirely false.

It’s regrettable that I have to say these things – but I guess I do, at this point. I’m basically in the no-win situation described by Proverbs 26:4-5: “Do not answer a fool according to his folly, or you yourself will be just like him. Answer a fool according to his folly, or he will be wise in his own eyes.”

Yes, on two occasions, Zango did have to deal with folks using its software in connection with child pornography. It was exactly the same problem that any large network of user-generated content faces, whether that be Google, Facebook, or Twitter. Zango’s response on both occasions was immediate, direct and resolute, and I have absolutely no reason to wish their response was anything other than what it was.

I hope it’s clear to neutral observers that this doesn’t really have much to do with whether David Jang’s community encouraged the belief that he was the Second Coming Christ. As with the accusations the Christian Post raised in their first article, even if everything they allege or imply is true (and it’s not), would it change a word of Christianity Today’s story?

Friday, August 17, 2012

My response to the Christian Post’s response to Christianity Today

I suppose most folks visiting my blog at this point are coming here because they’ve seen the article that Ted Olsen and I wrote for Christianity Today about David Jang.

It was clear to us for a while that the Christian Post was preparing a response to our article, and as expected, it came out this morning. I laughed so hard at their caricature of me that I’ve (temporarily) set it as my Facebook avatar:

Ken Smith

It’s very easy for this sort of thing to degenerate into a he-said/she-said debate, and I very much doubt anybody else out there is interested enough in the details to put up with an extended commentary, so I won’t go through every point they make. But at a high level, Ted Olsen and I stand by the story we wrote. We were aware of nearly everything that the CP article says, and where appropriate we had already included those responses in the CT article. Where we didn’t, it was generally because we didn’t consider it relevant: even if the allegation was true, it wouldn’t have changed the story.

The one significant piece of information that we didn’t have when we published the article was the testimony from Ma Li’s ex-husband, Yang Shuang Hao, and if we had, we would certainly have included it. This is the key part, in which he asserts that Ma Li had never been a member of the Young Disciples:

I am sure that she was not a YD China member, so everything she testified was a lie.

As I said, we hadn’t seen that specific testimony, but we had, however, seen indirect references to the allegation that Ma Li (the only former member who was willing to be named in our article) wasn’t actually a member of the Young Disciples. So several weeks ago, I asked her and one of our other Chinese sources about it.

This was Ma Li’s response:

At that time, the community hadn't been divided into so many branches, all of us were in the community, and the community was called as general church(we have different works, mainly 3 divisions at that time, economy-verecome, praise-Jubilee, and preaching. It was explained as 3 level of Noah's Ark - spirit, mental, and flesh), and we even didn't know our name, some older members(attend the church earlier) mentioned that we had a name as "contract gospel" in Korea, we are all together, there was no any media at that time, but in oct.,2002, when David Jang came to Shanghai, in a meeting of key members (Sarah Zhang, Xianzhu Gao-Korean and some others) , he(Davide Jang) said that we will put emphasis on developing more young members(students) in universities, and would establish YD(Young Disciples) based on these young people, so, they lied that i was not a member of YD, but i was almost one of te founders of YD, and also at that time, i was assigned as a missionary to Vietnam to develop church per Korea mode of Jang's community. so, am i a member of YD or not?

This was what the other former member from China said:

If you remember the debate in Hong Kong, the people from YDJ said that Mary has never been a member of the YDJ.  This may consider right, because Mary belongs to Heaven Church in Shanghai. But, in fact, YDJ and Heaven Church are the same organization, similar to one organization with two different names.  They can use different names according to the needs of the outside world.

This source said that she knew Ma Li well. She also said that she had read the Chinese book from CGNER which contained Ma Li’s testimony in Chinese (available here), and gave this assessment of the book:

I admire what CGNER did, they work hardly, trying to find the truth. But I don't like them to give an conclusion as "cult" label to the community. It is very serious annoucement to say some organization is cult. But you can trust Li Ma's testimony completely in the second version of the book. I read her testimony completely and I think it is just.

Of course, it’s always possible that Ma Li and this other source were conspiring to lie to Christianity Today. That’s just one of the many reasons that, for this story, CT didn’t rely on just one or two sources. As you can tell from reading the article, in addition to interviewing multiple former members from Asia, we were also approached by multiple current and former members from the United States. Making allowances for different viewpoints, cultures and locations, these independent testimonies sufficiently aligned that we judged them credible.

The Christian Post’s article also included some references to yours truly. I’m really of two minds as to whether it’s worth responding or not. But I’ll toss these three things out, hoping that they don’t make me sound too petulant. (I have three preschool children, so I’m a little sensitive to whining.)

(1) Among other things, CP included a quote from an email I sent to one of their lawyers, after they threatened to sue me for a Facebook post I made back in April. It’s my understanding that when I sent that email, it was part of a protected, confidential conversation, so I’m not sure about the journalistic ethics of their including it in the article. Nor am I sure what it was supposed to show. They note correctly that, as a gesture of good faith, I did in fact remove the post in question. (I didn’t care about the post, and I’d just as soon stay out of court, thank you very much.) But the lawyer continued to demand that I acknowledge that the post was false, which I wasn’t able to do. Here’s the key paragraph of my second email to the same lawyer, lightly edited to avoid naming the individual in question (yes, I still want to stay out of court):

I am afraid that I cannot communicate to Christianity Today or to the ABHE that my earlier statements about Mr. X were false, as they were not. I was, in fact, told by two internal sources whom I believe credible that it was their belief and understanding that Mr. X had in fact made this confession. To say otherwise would be to lie - and I hope that Mr. X is not requesting that I lie to avoid a lawsuit. It is, of course, possible that those two sources are mistaken: but it is the simple truth they told me this, and it is the simple truth that I believe they are credible. To say otherwise would be to lie, and I will not do that, even to avoid a lawsuit.

I note wryly that they didn’t quote from this email.

(2) They also included some quotes from a sermon I preached last September, in which I used my initial interactions with Olivet, and the lessons I learned, as an illustration of “dying to self”. I’d encourage you to read the sermon for yourself. My first impression, for what it’s worth, is that if I ever took a source’s quotes that badly out of context, my journalistic integrity would indeed be very much open to question. But since I am, in fact, trying to repent of the sins I describe in that sermon, I’ll try to submit to this graciously as penance.

(3) You know, I have to admit, I wasn’t as charitable in some of my blog posts about the WEA or Olivet as I should have been. I keep imagining God reading them back to me on the day of judgment, and looking at me with a raised eyebrow as He comes upon certain phrases. It’s not a terribly comfortable feeling. I don’t want to go back and re-edit the posts – that would feel weird: not only did I say what I said, but I fully stand by the concerns they raise. But if I were to write them over again, I would use less inflammatory language. And to those concerned, I offer my apologies. I’ll try to do better.