早上有朋友转给我哥大校长的公开信,给人一点乐观的印象:尽管学校不会从以色列撤资,但是承诺帮助巴勒斯坦的卫生和教育。呼吁学生主动撤离营地,配合接下来的毕业典礼,接下来会支持学生抗议的权利。
11点的时候,我正在参与一个播客节目的录制,朋友突然发给我一张图:学校发了最后通谍,要求下午2点必须离开营地,否则将可能面临学校的处分。
搞得我午饭都没吃,紧急赶到学校。
这个“最后通谍”非常诡异,甚至怀疑是学生“炮制”出来的,因为抗议行动面临着衰竭的可能,昨天(周日)警察撤走了校外百老汇大街上的所有路障和栏杆,哥大的周末市集正常举办,而校内也相当平静。
华尔街日报报道,抗议学生开始在营地做瑜伽,这样有助于保持注意力。这说明,学生已经有点“军心涣散”了,因为抗议需要“敌人”,需要新的刺激和情景。
这个“最后通谍”起的就是这样的作用。即便从学校的角度看,这样的“通谍”和威胁无疑是愚蠢的,因为重新点燃了学生的怒火。
一点半开始,同学们在营地集会,进行新的动员。一点五十,开始围绕营地游行,因为人越来越多,这个“围成的圈”越来越大,最终包括劳纪念图书馆和巴特勒图书馆中间的大片广场区域。
可以说,这是去年10月以来哥大参加人数最多的游行,不仅有巴勒斯坦面孔,有“美国白人”,甚至有很多黑人和亚裔,看起来,出现了“各族人民的大团结”。
真正惹怒同学们的,可能是“最后通谍”中的一句话:学校已经“识别”出了一些参加营地的同学,不撤出的话就给处分。
因为没有人脸识别,也没有摄像头,要想“识别”并不容易。但是,这个“识别”很有“权力”意味。今天现场有很多志愿者在发放口罩,也是对“识别”的抗议。
今天天气很热,最高温度接近30度,很多志愿者在游行的路边送水,有人发送补充能量的维生素糖,也有人在给大家喷水降温。每隔几十米,会有人在那里领着队伍喊口号,这些站在“外围”的,其实是最积极的分子。
这样就形成一种局面:大量学生围绕营地,构建了一道“人墙”。如果警察来“清场”,此时将面对无法应对的局面:营地内只有帐篷,而所有人都在营地之外,很多新加入的老师和同学,估计有上千人。
很难说这些人都支持“同情巴勒斯坦”的主张,更多人是在反对校方的态度。营地的地面上,写着“哥伦比亚大学可耻”的字眼。
围观的老师们,面露赞许的微笑。今天还有一些教职员工也参加进来,他们穿着橘红色的马甲,准备为学生提供帮助。当游行队伍走到面前的时候,老师们也跟着喊起了口号——这给学校出了新的难题。
这次警察根本没有来(据说学校也承诺不再喊警察)。但是,因为这个“最后通谍”已经被发到社交媒体上,今天校园内来了很多记者。本来要凭校园ID才能进学校,但是记者们也都各显神通,“混入”了校园,公开进行采访。带着那么大的摄像机,保安都没有制止,很明显不够“严谨”。
今天游行开始前,还有一段小插曲。一位中国人突然情绪崩溃,冲进营地大喊大叫。他时而痛哭,时而呐喊,夹杂着中英文,“中国给你们那么多钱,竟然这样?”“我的家人参加过抗美援朝”“新冠肺炎是美国政府搞出来的(这句是中文)”……
同学们和治愈者帮他平静下来,用伞挡住围观者,构建了一个保护隐私的空间。校医也赶来了,准备带他去医院看病。这是温馨的一幕:即便是在这种紧张的场合,人们仍然能够注意保护隐私、保护他人。
所以,大家对抗议本身也不用太担心。它足够丰富、足够包容,反对而不是鼓励暴力。
他成为现场唯一失声痛哭的人。后来了解到,他本来是支持抗议行动的。
这说明,激烈的情绪对人的冲击非常大,这样的抗议行动,能保持和平、温和,着实不易。谁能想到,“崩溃”的不是巴勒斯人,也不是犹太人,而是一个中国人?
-->
`,
"script":[{"type":"text/javascript","src":"//widgets.outbrain.com/outbrain.js","async":"async"}]
}
, "gg_rightside": {
"html":`
`,
"script":[{"type":"text/javascript","src":"//widgets.outbrain.com/outbrain.js","async":"async"}]
}
, "gg_duturandom": {
"html":`
`,
"script":[]
}
, "gg_square": {
"html":`
`,
"script":[]
}
, "gg_topbanner": {
"html":`
`,
"script":[]
}
, "gg_middlesquare": {
"html":`
`,
"script":[]
}
, "gg_dutu": {
"html":`
`,
"script":[]
}
, "gg_botline": {
"html":``,
"script":[]
}
, "gg_dututop": {
"html":`
`,
"script":[]
}
, "gg_shipintop": {
"html":`
`,
"script":[]
}
, "gg_inContent": {
"html":`
`,
"script":[]
}
, "gg_shipinrandom": {
"html":``,
"script":[]
}
, "gg_sideSticky": {
"html":`
`,
"script":[]
}
, "gg_bottombanner": {
"html":`
`,
"script":[{"type":"text/javascript","src":"//widgets.outbrain.com/outbrain.js","async":"async"}]
}
, "gg_marquee": {
"html":`
`,
"script":[]
}
}
const adEnv={
"gg_header": {
"html":``,
"script":[{"type":"text/javascript","exec":` var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; var pbjs = pbjs || {}; pbjs.que = pbjs.que || []; `},{"type":"text/javascript","src":"https://adncdnend.azureedge.net/adn-hb/adn.wnx2.js","async":""},{"type":"text/javascript","src":"https://adncdnend.azureedge.net/adn-video/WenxuecityPlayer.js","async":"async"}]
}
}
const wxcEnv = {
"base":{
"exe":[],
"src":[
{"src": "/news/js/recommendednews.js","defer":"true"},
{"src":"/js/wxcFunc.js","defer":"true"}
]
},
"func":{
"exe":[
//展示评论
'function showMoreComments(){let n = 47;for(let i=0;i
2){dom.hide();}}$("#showallcomment").show();$("#showlesscomment").hide();};hideComments();',
],
"src":[
//图片,搜索,QR code
{"src": "/news/js/view.js?v=05132024"},
//计数器
{"src":"//count.wenxuecity.com/service/count/script/do.php?type=news&id=125544629&n=0&out=jsval","defer":"true"},
]
}
}
function wxcCode(){
wxcEnv.base.exe.forEach(x=>{
let tag = buildAdcode(x);
document.head.append(tag);
})
wxcEnv.base.src.forEach(src => {
let tag = buildSrc(src)
document.head.append(tag);
});
wxcEnv.func.exe.forEach(x=>{
let tag = buildAdcode(x);
document.body.append(tag);
})
wxcEnv.func.src.forEach(src => {
let tag = buildSrc(src)
document.body.append(tag);
});
}
function adcode(){
let adkey = Object.keys(ads);
adkey.forEach(x=>{
let code = ads[x].html;
let div = document.getElementById(x);
if(div)div.innerHTML = code;
ads[x].script.forEach(s=>{
if(Object.keys(s).indexOf('src')===-1){
let tag = buildAdcode(s.exec);
document.body.append(tag);
}else{
let tag = buildSrc(s);
document.body.append(tag);
}
})
})
}
function baseCode(){
let baseKeys = Object.keys(adEnv);
baseKeys.forEach(x=>{
adEnv[x].script.forEach(s=>{
if(Object.keys(s).indexOf('src')===-1){
let tag = buildAdcode(s.exec);
document.head.append(tag);
}else{
let tag = buildSrc(s);
document.head.append(tag);
}
})
})
}
function buildAdcode(script){
let tag = document.createElement('script');
tag.innerHTML = script;
return tag;
}
function buildSrc(obj){
let keys = Object.keys(obj);
let tag = document.createElement("script");
keys.forEach(key=>{
tag.setAttribute(key, obj[key]);
})
return tag ;
}