Quantcast
Channel: 懒得折腾
Viewing all 769 articles
Browse latest View live

这些年背过的面试题——LeetCode

$
0
0

简介: 本文是技术人面试系列LeetCode篇,一文带你详细了解,欢迎收藏!

【Python语法】

reduce(function, iterable[, initializer])
    reduce(lambda x,y:x * y,ns) # 数组之乘积 (ns[0] * ns[1]) * ns[2]
    reduce(lambda x,y:x + y,ns) # 数组之和
# 记忆化搜索
@functools.lru_cache(None)
res = helper(0,N,0)
helper.cache_clear()
tuple(ns) 可以hash做参数
# 大根堆
q = list(map(lambda x:-x,ns))
heapq.heapify(q)
key = -heapq.heappop(q)
# 过滤函数
filter(function, iterable)
    filter(lambda x: 2 < x < 10 and x % 2 == 0, range(18))
    filter(dfs, range(len(graph)))
# 除数
div, mod = divmod(sum(ns), 4)
random.randint(i,len(self.ns)-1)
#第一个降序,第二个升序
sorted(pss,key = lambda x:[x[0],-x[1]])

# 不可变str 常见函数
split(sep=None, maxsplit=-1)  # 以sep来分割字符串
strip([chars])  # 去除首末两端的字符, 默认是 \r,\n," "
join(iterable)  # 将iterable内的元素拼接成字符串,如','.join(['leet', 'code'])="leet,code"
replace(old, new[, count])  # 字符串替换, old to new
count(sub[, start[, end]])  # 统计子字符串sub的个数
startswith(prefix[, start[, end]])  # 以prefix开始的字符串
endswith(suffix[, start[, end]])  # 以suffix结束的字符串
cs in chrs: # chrs 中包含 cs 

# deque 常见函数
queue = deque([iterable[, maxlen]])
queue.append(val)  # 往右边添加一个元素
queue.appendleft(val)  # 往左边添加一个元素
queue.clear()  # 清空队列
queue.count(val)  # 返回指定元素的出现次数
queue.insert(val[, start[, stop]])  # 在指定位置插入元素
queue.pop()  # 获取最右边一个元素,并在队列中删除
queue.popleft()  # 获取最左边一个元素,并在队列中删除
queue.reverse()  # 队列反转
queue.remove(val)  # 删除指定元素
queue.rotate(n=1)  # 把右边元素放到左边

# list 常见函数
lst.sort(*, key=None, reverse=False)
lst.append(val)  # 也可以 lst = lst + [val]
lst.clear()  # 清空列表
lst.count(val)  # val个数
lst.pop(val=lst[-1])  # (默认)从末端移除一个值
lst.remove(val)  # 移除 val
lst.reverse()  # 反转
lst.insert(i, val)  # 在 i 处插入 val

# 字典dict 常见函数
d = defaultdict(lambda : value) # 取到不存在的值时不会报错,用{}时、需要设置get的default值
pop(key[, default])  # 通过键去删除键值对(若没有该键则返回default(没有设置default则报错))
setdefault(key[, default])  # 设置默认值
update([other])  # 批量添加
get(key[, default])  # 通过键获取值(若没有该键可设置默认值, 预防报错)
clear()  # 清空字典
keys()  # 将字典的键组成新的可迭代对象
values()  # 将字典中的值组成新的可迭代对象
items()  # 将字典的键值对凑成一个个元组, 组成新的可迭代对象
dict1 = dict2 #两个字典完全相等,滑窗时可用

# 集合set 常见函数
s = set(lambda : value)
add(elem)  # 向集合中添加数据
update(*others)  # 迭代着增加
clear()  # 清空集合
discard(elem)  # 删除集合中指定的值(不存在则不删除)

# 堆heapq 常见函数
heap = []  # 建堆
heapq.heappush(heap,item)  # 往堆中插入新值
heapq.heappop(heap)  # 弹出最小的值
heap[0]  # 查看堆中最小的值, 不弹出
heapq.heapify(x)  # 以线性时间将一个列表转为堆
heapq.heappoppush(heap, item)  # 弹出最小的值.并且将新的值插入其中.
heapq.merge(*iterables, key=None, reverse=False)  # 将多个堆进行合并
heapq.nlargest(n, iterable, key=None)  # 从堆中找出最大的 n 个数,key的作用和sorted( )方法里面的key类似, 用列表元素的某个属性和函数作为关键字
heapq.nsmallest(n, iterable, key=None)  # 从堆中找出最小的 n 个数, 与 nlargest 相反


# 二分查找函数
bisect.bisect_left(ps, T, L=0, R=len(ns))  #二分左边界
bisect.bisect_right(ps, T, L=0, R=len(ns)) #二分右边界 
bisect.insort_left(a, x, lo=0, hi=len(a))  # 二分插入到左侧
bisect.insort_right(a, x, lo=0, hi=len(a)) # 二分插入到右侧

# bit操作
& 符号,x & y ,会将两个十进制数在二进制下进行与运算
| 符号,x | y ,会将两个十进制数在二进制下进行或运算
^ 符号,x ^ y ,会将两个十进制数在二进制下进行异或运算
<< 符号,x << y 左移操作,最右边用 0 填充
>> 符号,x >> y 右移操作,最左边用 0 填充
~ 符号,~x ,按位取反操作,将 x 在二进制下的每一位取反

# 整数集合set位运算
# 整数集合做标志时,可以做参数加速运算
vstd 访问 i :vstd | (1 << i)
vstd 离开 i :vstd & ~(1 << i)
vstd 不包含 i : not vstd & (1 << i)

并集 :A | B
交集 :A & B
全集 :(1 << n) - 1
补集 :((1 << n) - 1) ^ A
子集 :(A & B) == B
判断是否是 2 的幂 :A & (A - 1) == 0
最低位的 1 变为 0 :n &= (n - 1)
        while n:
            n &= n - 1
            ret += 1
最低位的 1:A & (-A),最低位的 1 一般记为 lowbit(A)

# ^     :匹配字符串开头
# [\+\-]:代表一个+字符或-字符
# ?     :前面一个字符可有可无
# \d    :一个数字
# +     :前面一个字符的一个或多个
# \D    :一个非数字字符
# *     :前面一个字符的0个或多个
matches = re.match('[ ]*([+-]?\d+)', s)

【背包模板】

「力扣」上的 0-1 背包问题:

  • 组合问题模板
#0-1背包,不可重复
for n in ns: 
    for i in range(T, n-1, -1):
        dp[i]
 = max(dp[i], dp[i - n] + ws[i])
#完全背包,可重复,无序,算重量
for n in ns: 
    for i in range(n, T+1):
        dp[i]
 = max(dp[i], dp[i - n] + ws[i]) 
#完全背包,可重复,有序,算次数     
for i in range(1, T+1):
    for n in ns:
        dp[i] +
= dp[i-n]
  • 377 组合总和 Ⅳ
  • 494 目标和
  • 518 零钱兑换 II
  • True、False问题
dp[i] |= dp[i-num]
  • 139 单词拆分
  • 416 分割等和子集
#特殊的可以使用bit数组
  • 最大最小问题:
dp[i] = min(dp[i], dp[i-num]+1)
dp[i] = max(dp[i], dp[i-num]+1)
  • 474 一和零
  • 322 零钱兑换

「力扣」第 879 题:盈利计划(困难);
「力扣」第 1449 题:数位成本和为目标值的最大数字(困难)。

【回溯模板】

# 回溯算法,复杂度较高2^n或者N!,因为回溯算法就是暴力穷举,可用lru剪枝
@functools.lru_cache(None)
def backtrack(路径, 选择列表):
    if 满足结束条件:
        结果.append(路径)
        return
    for 选择 in 选择列表:    # 核心代码段
          if vst[i]:   # 辅助数组,减枝
          continue
        做出选择
        递归执行backtrack
        撤销选择

「剪枝」第 46 题 全排列 第 47 题 全排列②

# 剪枝
def backtrack(temp_list, length):
    if length == n:
      res.append(temp_list)
    for i in range(n):
      if not visited[i]:
          visited[i] = 1
          backtrack(temp_list + [nums[i]], length + 1)
          visited[i] = 0

「索引遍历」第 78 题 子集 | 第 47 题 子集② | 第 131 题 分割字符串

  第 **39 **题 组合 | 第 **40** 题 组合②  | 第 **216** 题 组合③
# 索引遍历
def helper1(idx, n, temp_list):
  if temp_list not in res:
    res.append(temp_list)
  for i in range(idx, n):
    helper1(i + 1, n, temp_list + [nums[i]])

「 资源消耗」第 22 题 夸号生成

# 资源消耗
def backtrack(S, L, R):
  if not L and not R:
    ans.append(''.join(S))
    return
  if L :     backtrack(S + ['('], L-1, R)
  if R > L : backtrack(S + [')'], L, R-1)

「资源消耗」第 93 题 复原IP

资源消耗
def backtrack(i, tmp, flag):
  if i == n and flag == 0:
    res.append(tmp[:-1])
  elif i<n and s[i] == '0':
    backtrack(i + 1, tmp + s[i] + ".", flag - 1)
  elif flag :
    for j in range(i, min(n,i + 3)):
      if 0 < int(s[i:j + 1]) <= 255:
        backtrack(j + 1, tmp + s[i:j + 1] + ".", flag - 1)

「资源消耗」第 17 题 电话号码

# 资源消耗
def dfs(path, remains):
  if not remains:
    res.append(path[:])
    return
  for i in range(len(remains)):
    dfs(path + [remains[i]], remains[:i] + remains[i+1:])

# 套模板
def dfs(pth,idx):
    if idx == len(ds):
        res.append(pth)
        return
    for c in dic[ds[idx]]:
        dfs(pth + c, idx + 1)

「多重限制」第 37 题 解数独 | 第 51 题 N皇后

# 多重限制
def backtrack(pos):
  if pos == n:
    return True
  i, j = empty[pos]
  for num in row[i] & col[j] & block[bidx(i, j)]:
    row[i].remove(num)
    col[j].remove(num)
    block[bidx(i, j)].remove(num)
    board[i][j] = str(num)
    if backtrack(pos + 1): return True
    row[i].add(num)
    col[j].add(num)
    block[bidx(i, j)].add(num)

「递归」第 10 题 正则匹配

# 递归
def isMatch(self, s: str, p: str) -> bool:
  if not p: 
    return not s
  f = bool(s and p[0] in {s[0],'.'})
  if len(p) >= 2 and p[1] == "*":
    return self.isMatch(s, p[2:]) or f and self.isMatch(s[1:], p)
  else:
    return f and self.isMatch(s[1:], p[1:])

【并查集模板】

#虚拟节点用以连接某一特征的全部节点,类似于链表的preHead
dummy 
parent = {}
size = collections.defaultdict(lambda:1)
cnt = 0
def find(x):
    parent.setdefault(x,x)
    while x != parent[x]:
        x = parent[x]
        #路径压缩 parent[x] = parent[parent[x]];
    return x
def union(x,y):
    nonlocal cnt
    if connected(x,y): return
    # 小的树挂到大的树上, 使树尽量平衡
    xP = find(x)
    yP = find(y)
    if size[hP] < size[yP]:
        parent[xP] = yP
    else:
        parent[yP] = xP
    size[xP] += size[yP]
    # 优化结束
    parent[find(x)] = find(y)
    # 不优化
    cnt -= 1
    return size[xP]
def connected(x, y):
    return find(x) == find(y)
def add(self,x):
    if x not in parent:
        parent[x] = None
        cnt += 1
# 检查是否有环
for a, b in edges:
    if connected(a, b): 
        return True
    union(a, b)
# 将每个集合组成以头为key的字典
res = collections.defaultdict(list)
for e in e2n:
    res[uf.find(e)].append(e)

【拓扑排序模板】

# 【拓扑排序模板】
ins = [0] * n
ous = collections.defaultdict(list)
for cur, pre in ps:
    ins[cur] += 1              #入度
    ous[pre].append(cur)    #出度
res = list(filter(lambda x:ins[x]==0, range(n)))
q = collections.deque(res)
while q:
    pre = q.popleft()
    for cur in ous[pre]:   #释放出度队列
        ins[cur] -= 1
        if not ins[cur]: 
            q.append(cur)  #入度为0解锁
            res.append(cur)

【单调栈模板】

# s中一般存索引
for i in range(len(ns):
    while stack and ns[stack[-1]] <= ns[i]: # 单调递减栈
        stack.pop()
    # 业务逻辑
    stack.append(i)

「单调递增」第 84 题 求最大矩形

# 第 **84** 题 求最大矩形
for i in range(len(hs)):
    while s and hs[i] < hs[s[-1]]:
        base = s.pop()
        if s:
            H = hs[base]
            W = i - s[-1] - 1 # 当前弹出的做高,当前与次小做宽
            res = max(res, H * W)
    s.append(i)

「单调递增,考虑剩余」第 316 题 去除重复字符

# 第 **316** 题 去除重复字符
for i,c in enumerate(ss):
    if c not in s:
        while s and c < s[-1] and s[-1] in ss[i:]:
            s.pop()
        s.append(c)

「单调递减」第 42 题 接雨水

# 第 **42** 题 接雨水
for i in range(len(hgt)):
    while stack and hgt[i] > hgt[stack[-1]]: #递减栈
        base = stack.pop()
        if stack:
            LH = hgt[stack[-1]]
            W = i - stack[-1] - 1
            H = min(LH,hgt[i]) - hgt[base]
            res += W * H 
    stack.append(i)

「单调递减」第 739 题 每日温度

# 第 **739** 题 每日温度
for i in range(len(T)-1,-1,-1):
    while s and T[s[-1]] <= T[i] :   #递减栈
        s.pop()
    res[i] = s[-1] - i if s else 0
    s.append(i)

【二分模板】

# 1355579 T=5 => 13(5)55579 返回2
# ps[i-1] < ps[i] <= ps[i+1]
bisect.bisect_left(ps, T, L=0, R=len(ns))  
# 1355579 T=5 => 13555(5)79 返回5
# ps[i-1] <= ps[i] < ps[i+1]
bisect.bisect_right(ps, T, L=0, R=len(ns))  
bisect.bisect(ps, T, L=0, R=len(ns))   

「中位返回」第 33 题 搜索旋转排序数组 | 第374题 猜数字大小 | 第69题 x平方根

# 中位返回
while L <= R:
    M = (L + R) // 2
    if nums[M] == T:
        return M
    elif nums[M] < T:
        L = M + 1
    else:
        R = M - 1

「区域压缩」第278题 第一个错误版本| 第162题 寻找峰值 | 第153题 寻找数组最小值

# 区域压缩
while L < R:
    M = (L + R) // 2
    if need in s[L:M]:
        R = M
    else:
        L = M + 1

【动态规划模板】

「单串问题」

  • 70 爬楼梯问题
  • 801 使序列递增的最小交换次数
  • 746 使用最小花费爬楼梯
  • 300 最长上升子序列
# 依赖前单个元素
dp[i] = dp[i-1] + ns[i]
# 依赖前部区域元素
for i in range(n)
    for j in range(i)
        dp[i] = min(dp[i], f(dp[j])

「单串加状态问题」

  • 887 鸡蛋掉落
# 鸡蛋掉落
while cur[K] < N:             # 还剩 j 个蛋 测 ans 次 覆盖多少层
    for j in range(1, K + 1): # 覆盖总层数 碎了 -1 次层数 + 1 + 没碎 -1 次层数
        cur[j] = prev[j - 1] + 1 + prev[j]
    ans += 1
    prev = copy.deepcopy(cur)
  • 813 最大平均值分组
# 813 最大平均值分组
for k in range(K-1):            #循环k次
    for i in range(N):          #每次均依赖上次的结果
        for j in range(i+1, N):
            dp[i] = max(dp[i], avrg(i, j) + dp[j])
  • 410 分割数组最大值
# 410 分割数组最大值
for k in range(1,K):
    for i in range(N): 
        for j in range(i):
            # 0~i中分 k 段最大 即为
            # 0~j中分k-1段最大 和 j到i的前缀和的最大
            dp[i][k] = min(dp[i][k], max(dp[j][k-1], ps[i+1] - ps[

「经典双串LCS问题」

# 经典双串LCS问题
dp = [[0] * (M+1) for _ in range(N+1)]
for i in range(N):
    for j in range(M):
        if t1[i] == t2[j] : dp[i+1][j+1] = dp[i][j] + 1 
        else : dp[i+1][j+1] = max(dp[i][j+1],dp[i+1][j])

「区间动态规划」

  • 5 最长回文子串
  • 647 最多回文子串
  • 516 最长回文子序列
  • 1312 最长回文插入次数
# dp[i][j] 代表从 i 到 j 的最长子串满足条件的数量
# i-- < j++  ==> i 在 0~j 范围内 --
dp = [[0] * (N) for _ in range(N)]
for j in range(N):
    dp[j][j] = 1
    for i in range(j-1,-1,-1):
        if ss[i] == ss[j]:
            dp[i][j] = dp[i+1][j-1] +2
        else :
            dp[i][j] = max(dp[i+1][j],dp[i][j-1])

「区间分治动态规划」

486 预测赢家:https://leetcode-cn.com/problems/predict-the-winner/?spm=ata.21736010.0.0.49ae7ec0sfNWbz

312 戳气球:https://ata.atatech.org/articles/***https://leetcode-cn.com/problems/burst-balloons/***?spm=ata.21736010.0.0.49ae7ec0sfNWbz

664 奇怪的打印机:https://ata.atatech.org/articles/***https://leetcode-cn.com/problems/strange-printer/***?spm=ata.21736010.0.0.49ae7ec0sfNWbz

546 移除盒子:https://ata.atatech.org/articles/***https://leetcode-cn.com/problems/remove-boxes/***?spm=ata.21736010.0.0.49ae7ec0sfNWbz

# 区间分治动态规划
def helper(self, ns: List[int]) :
    N = len(ns)
    dp = [[0] * N for _ in range(N+1)]
    for l in range(N): # 长度从小到大
        for i in range(N-l): # 以 i 为 开头
            j = i + l           # 以 j 为 终点
            for k in range(i,j): # 以 k 为分割点,进行分治         
                // Todo 业务逻辑 

「卡特兰数」

# 卡特兰数
g(n) = g(0)*g(n-1) + g(1)*g(n-2) ...g(n-1)*g(0)
dp=[1] + [0] * n
for i in range(1,n+1):
    for j in range(1,i+1):
        dp[i] += dp[j-1] * dp[i-j]

【滑动窗口】

"""给定待查串s和目标串t"""
nd, wd = {}, {}
nd = collections.Counter(s1)
L, R = 0, 0
cnt = 0 # 满足条件个数
while R < len(s):        # 窗口右边界不断扩大,本质是搜索问题的可能解
    c = s[R]      # 即将加入到窗口中的字符
    R += 1
    更新窗口中的数据
    while 满足窗口收缩条件:  # 窗口的左边界收缩,本质是优化可行解
        记录或返回结果
        d = s[L]   # 即将从窗口中删除的字符
        L += 1
        更新窗口中的数据
return 结果

# 固定窗口 ,比滑动窗口更快一些
i = j = cnt = 0      
for j in range(len(A)):
    if A[j] == 0: 
        cnt += 1
    if cnt > K: #不满足时 平移
        if A[i] == 0:
            cnt -= 1
        i += 1
return j - i + 1        
 
for j in range(len(A)):
    if A[j] == 0:
        cnt += 1
    while cnt > K:
        if A[i] == 0:
            cnt -= 1
        i += 1
    res = max(res, j - i + 1)
return res

【前缀和】

「累加和存位置」

1371 最长偶数元音子数组

525 最长相等01子数组

325 最长和为k 子数组

# 前缀和初始化
psd = {0: -1}  
for i in range(len(s)):
    t ^= cd.get(s[i], 0) # 业务逻辑
    if t not in psd:
        psd[t] = i       # 第一次存入数组
    else:
        ans = max(ans, i - psd[t]) #已存入则开始计算

「累加和存数量」

560 和为K的子数组数量

统计优美子数组

# 累加和存数量
psd = {0:1}
for i in range(len(ns)):
    s += ns[i]
    if s - T in psd:
        ans += psd[s - T] # 存数量
    psd[s] = psd.get(s,0) + 1

「模K状态前缀和」

523 连续和为 k 倍 的子数组(存索引

974 和被k 整除 子数组数量(存数量)

# 模K状态前缀和
psd = {0:-1}
ans = s = 0
for i in range(len(ns)):
    s += ns[i]                # 业务逻辑
    if T != 0: s %= abs(T)    # 模k状态做key,索引做值
    if s not in psd:
        psd[s] = i
    elif i - psd[s] > 1:
        return True

「矩阵前缀和」

  • 363 不超过K的最大数值和
  • 1074 和为目标值的子矩阵数量
# 矩阵前缀和
for i in range(m):        #固定左边界
    ps = [0] * n
    for j in range(i, m): #固定右边界
        psS = 0    
        dct = {0:1}       #初始只有一种可能
        for k in range(n): # 以高做前缀和
            ps[k] += mtx[j][k]          # 每行前缀和
            psS += ps[k]                # n行前缀和
            cnt += dct.get(psS - T, 0)  # 满足条件cnt
            dct[psS] = dct.get(psS,0) + 1 # 保存当前状态
return cnt

【双指针】

# 双指针
def removeElement(self, ns: List[int], val: int) -> int:
    slow = 0
    n = len(ns)
    for fast in range(n):
        if ns[fast] != val:
            ns[slow] = ns[fast]
            slow += 1
    return slow

【深度优先】

「二叉树遍历模板」

# 递归
# 时间复杂度:O(n),n为节点数,访问每个节点恰好一次。
# 空间复杂度:空间复杂度:O(h),h为树的高度。最坏情况下需要空间O(n),平均情况为O(logn)

# 递归1:二叉树遍历最易理解和实现版本
class Solution:
    def preOrd(self, root: TreeNode) -> List[int]:
        if not root:
            return []
        # 前序递归
        return [root.val] + self.preOrd(root.left) + self.preOrd(root.right)
        # # 中序递归 
        # return self.inOrd(root.left) + [root.val] + self.inOrd(root.right)
        # # 后序递归
        # return self.postOrd(root.left) + self.postOrd(root.right) + [root.val]

# 递归2:通用模板,可以适应不同的题目,添加参数、增加返回条件、修改进入递归条件、自定义返回值
class Solution:
    def preOrd(self, root: TreeNode) -> List[int]:
        def dfs(cur):
            if not cur:
                return      
            # 前序递归
            res.append(cur.val)
            dfs(cur.left)
            dfs(cur.right) 
            # # 中序递归
            # dfs(cur.left)
            # res.append(cur.val)
            # dfs(cur.right)
            # # 后序递归
            # dfs(cur.left)
            # dfs(cur.right)
            # res.append(cur.val)      
        res = []
        dfs(root)
        return res


# 迭代
# 时间复杂度:O(n),n为节点数,访问每个节点恰好一次。
# 空间复杂度:O(h),h为树的高度。取决于树的结构,最坏情况存储整棵树,即O(n)
# 迭代1:前序遍历最常用模板(后序同样可以用)
class Solution:
    def preOrd(self, root: TreeNode) -> List[int]:
        if not root:
            return []        
        res = []
        stack = [root]
        # # 前序迭代模板:最常用的二叉树DFS迭代遍历模板
        while stack:
            cur = stack.pop()
            res.append(cur.val)
            if cur.right:
                stack.append(cur.right)
            if cur.left:
                stack.append(cur.left)
        return res
        
        # # 后序迭代,相同模板:将前序迭代进栈顺序稍作修改,最后得到的结果反转
        # while stack:
        #     cur = stack.pop()
        #     if cur.left:
        #         stack.append(cur.left)
        #     if cur.right:
        #         stack.append(cur.right)
        #     res.append(cur.val)
        # return res[::-1]

# 迭代1:层序遍历最常用模板
class Solution:
    def levelOrder(self, root: TreeNode) -> List[List[int]]:
        if not root:
            return []
        q = deque([root])
        res = []
        while q :
            l = []
            for i in range(len(q)) :
                t = q.popleft()
                l.append(t.val)
                if t.left : q.append(t.left)
                if t.right : q.append(t.right)
            res.append(l)
        return res

        
# 迭代2:前、中、后序遍历通用模板(只需一个栈的空间)
class Solution:
    def inOrd(self, root: TreeNode) -> List[int]: 
        res = []
        stack = []
        cur = root
        # 中序,模板:先用指针找到每颗子树的最左下角,然后进行进出栈操作
        while stack or cur:
            while cur:
                stack.append(cur)
                cur = cur.left
            cur = stack.pop()
            res.append(cur.val)
            cur = cur.right
        return res
        
        # # 前序,相同模板
        # while stack or cur:
        #     while cur:
        #         res.append(cur.val)
        #         stack.append(cur)
        #         cur = cur.left
        #     cur = stack.pop()
        #     cur = cur.right
        # return res
        
        # # 后序,相同模板
        # while stack or cur:
        #     while cur:
        #         res.append(cur.val)
        #         stack.append(cur)
        #         cur = cur.right
        #     cur = stack.pop()
        #     cur = cur.left
        # return res[::-1]
        

# 迭代3:标记法迭代(需要双倍的空间来存储访问状态):
# 前、中、后、层序通用模板,只需改变进栈顺序或即可实现前后中序遍历,
# 而层序遍历则使用队列先进先出。0表示当前未访问,1表示已访问。
class Solution:
    def preOrd(self, root: TreeNode) -> List[int]:
        res = []
        stack = [(0, root)]
        while stack:
            flag, cur = stack.pop()
            if not cur: continue
            if flag == 0:
                # 前序,标记法
                stack.append((0, cur.right))
                stack.append((0, cur.left))
                stack.append((1, cur))
                
                # # 后序,标记法
                # stack.append((1, cur))
                # stack.append((0, cur.right))
                # stack.append((0, cur.left))
                
                # # 中序,标记法
                # stack.append((0, cur.right))
                # stack.append((1, cur))
                # stack.append((0, cur.left))  
            else:
                res.append(cur.val)  
        return res
        
        # # 层序,标记法
        # res = []
        # queue = [(0, root)]
        # while queue:
        #     flag, cur = queue.pop(0)  # 注意是队列,先进先出
        #     if not cur: continue
        #     if flag == 0:
                  # 层序遍历这三个的顺序无所谓,因为是队列,只弹出队首元素
        #         queue.append((1, cur))
        #         queue.append((0, cur.left))
        #         queue.append((0, cur.right))
        #     else:
        #         res.append(cur.val)
        # return res



# 莫里斯遍历
# 时间复杂度:O(n),n为节点数,看似超过O(n),有的节点可能要访问两次,实际分析还是O(n)
# 空间复杂度:O(1),如果在遍历过程中就输出节点值,则只需常数空间就能得到中序遍历结果,空间只需两个指针。
# 如果将结果储存最后输出,则空间复杂度还是O(n)。

# PS:莫里斯遍历实际上是在原有二叉树的结构基础上,构造了线索二叉树,
# 线索二叉树定义为:原本为空的右子节点指向了中序遍历顺序之后的那个节点,把所有原本为空的左子节点都指向了中序遍历之前的那个节点

# 此处只给出中序遍历,前序遍历只需修改输出顺序即可
# 而后序遍历,由于遍历是从根开始的,而线索二叉树是将为空的左右子节点连接到相应的顺序上,使其能够按照相应准则输出
# 但是后序遍历的根节点却已经没有额外的空间来标记自己下一个应该访问的节点,
# 所以这里需要建立一个临时节点dump,令其左孩子是root。并且还需要一个子过程,就是倒序输出某两个节点之间路径上的各个节点。

# 莫里斯遍历,借助线索二叉树中序遍历(附前序遍历)
class Solution:
    def inOrd(self, root: TreeNode) -> List[int]:
        res = []
        # cur = pre = TreeNode(None)
        cur = root

        while cur:
            if not cur.left:
                res.append(cur.val)
                # print(cur.val)
                cur = cur.right
            else:
                pre = cur.left
                while pre.right and pre.right != cur:
                    pre = pre.right
                if not pre.right:
                    # print(cur.val) 这里是前序遍历的代码,前序与中序的唯一差别
                    pre.right = cur
                    cur = cur.left
                else:
                    pre.right = None
                    res.append(cur.val)
                    # print(cur.val)
                    cur = cur.right
        return res


# N叉树遍历
# 时间复杂度:时间复杂度:O(M),其中 M 是 N 叉树中的节点个数。每个节点只会入栈和出栈各一次。
# 空间复杂度:O(M)。在最坏的情况下,这棵 N 叉树只有 2 层,所有第 2 层的节点都是根节点的孩子。
# 将根节点推出栈后,需要将这些节点都放入栈,共有 M−1个节点,因此栈的大小为 O(M)。


# N叉树简洁递归
class Solution:
    def preorder(self, root: 'Node') -> List[int]:
        if not root: return []
        res = [root.val]
        for node in root.children:
            res.extend(self.preorder(node))
        return res

# N叉树通用递归模板
class Solution:
    def preorder(self, root: 'Node') -> List[int]:
        res = []
        def helper(root):
            if not root:
                return
            res.append(root.val)
            for child in root.children:
                helper(child)
        helper(root)
        return res

# N叉树迭代方法
class Solution:
    def preorder(self, root: 'Node') -> List[int]:
        if not root:
            return []
        s = [root]
        # s.append(root)
        res = []
        while s:
            node = s.pop()
            res.append(node.val)
            # for child in node.children[::-1]:
            #     s.append(child)
            s.extend(node.children[::-1])
        return res

【广度优先】

# 「**无向图的遍历**」
q = collections.deque([i])
while q:
    cur = q.popleft()
    for nxt in dt[cur]:
        if not vst[nxt]:
            vstd[nxt] = True
            q.append(nxt)
# 「**二叉树层序遍历**」
q = deque([root])
res = []
while q :
    l = []
    for i in range(len(q)) :
        t = q.popleft()
        l.append(t.val)
        if t.left : q.append(t.left)
        if t.right : q.append(t.right)
    res.append(l)
return res

【图论】

#「Dijkstra最短路径」
dic = collections.defaultdict(list)
for u, v, w in edges:
    dic[u].append([v, w])
    dic[v].append([u, w])
q = [(0, n)]
dist = [-1] * (n + 1)
while q:
    dis, cur = heapq.heappop(q)
    if dist[cur] < 0:
        dist[cur] = dis
        for nxt, wi in dic[cur]:
            heapq.heappush(q, [dis + wi, nxt])

「Floyd 求图中路径」

# Floyd算法 求图中任意2点距离
ds = defaultdict(int)
st = set()
for i, (x, y) in enumerate(ess):
    ds[(x, y)] = vs[i]
    ds[(y, x)] = 1 / vs[i]
    st.update({x,y})
arr = list(st)
for k in arr:
    for i in arr:
        for j in arr:
            if ds[(i, k)] and ds[(k, j)]:
                ds[(i, j)] = ds[(i, k)] * ds[(k, j)]

来源  |  阿里云开发者


How to Invest with RRSP in Ontario, Canada

$
0
0

In Ontario, Canada, your Registered Retirement Savings Plan (RRSP) is a tax-advantaged account that allows you to save for retirement while benefiting from tax deductions and deferred taxation on investment earnings. Here’s a step-by-step guide on how to invest with your RRSP:

1. Open an RRSP Account

You can open an RRSP through various financial institutions in Ontario, such as:

  • Banks (e.g., TD, RBC, Scotiabank)
  • Credit Unions
  • Online Brokers (e.g., Questrade, Wealthsimple, RBC Direct Investing)
  • Robo-Advisors (e.g., Wealthsimple, Justwealth)

Choose a provider based on your preferences—some offer self-directed accounts where you choose the investments, while others offer managed RRSPs with portfolios designed for you.

2. Determine Your Contribution Room

Your RRSP contribution room is the maximum amount you can invest annually. It’s based on your income, and the current year’s contribution limit is 18% of your previous year’s income, up to a maximum limit set by the government (e.g., $31,560 for 2024). You can find your exact contribution room on your CRA (Canada Revenue Agency) account or your most recent Notice of Assessment.

3. Select Your Investments

Within your RRSP, you can invest in various financial instruments. Popular options include:

a) Stocks (Equities)

  • Purchase individual stocks to own shares in companies.
  • Higher risk but potential for higher returns over time.

b) Exchange-Traded Funds (ETFs)

  • ETFs track indexes (like the S&P/TSX or S&P 500) and are more diversified than individual stocks.
  • They have lower fees than mutual funds and provide broad market exposure.

c) Mutual Funds

  • Professionally managed funds that pool money from multiple investors.
  • Available through banks or investment companies and can offer a balanced mix of stocks, bonds, etc.
  • Higher fees compared to ETFs but actively managed.

d) Bonds and GICs (Guaranteed Investment Certificates)

  • Lower-risk options that offer predictable returns.
  • Government and corporate bonds or GICs can offer stability and guaranteed income but lower returns than stocks.

e) Robo-Advisors

  • If you’re unsure about managing your investments, robo-advisors automatically allocate your RRSP funds based on your risk tolerance and goals.
  • Examples: Wealthsimple, Justwealth, BMO Smartfolio.

4. Contribution Strategy

  • Maximize Your Contributions: Aim to contribute as much as possible to your RRSP, up to your limit, to take advantage of the tax deduction.
  • Contribute Regularly: Use dollar-cost averaging by contributing regularly (e.g., monthly) to avoid trying to time the market and reduce the risk of investing in a market high.
  • Spousal RRSP: If you’re married or in a common-law partnership, you can contribute to a spousal RRSP to split income in retirement and potentially reduce taxes.

5. Tax Advantages

  • Tax Deduction: Contributions reduce your taxable income for the year. For example, if you earn $80,000 and contribute $10,000, your taxable income would drop to $70,000.
  • Tax-Deferred Growth: Investments inside your RRSP grow tax-free until you withdraw them, at which point they’re taxed as regular income.
  • Unused Contribution Room: If you don’t use all your RRSP contribution room, it carries forward indefinitely, so you can contribute more in future years.

6. Withdrawals and the Home Buyers’ Plan (HBP)

  • RRSP Withdrawals: Be cautious with withdrawals, as they are taxed as income in the year you take them out. There are exceptions like:
    • Home Buyers’ Plan (HBP): You can withdraw up to $35,000 tax-free to buy your first home, as long as you repay it over 15 years.
    • Lifelong Learning Plan (LLP): You can withdraw up to $20,000 to pay for full-time education.

7. Monitor and Adjust Your Portfolio

  • Rebalance Periodically: Ensure that your asset allocation (stocks vs. bonds, etc.) aligns with your risk tolerance and retirement timeline. Over time, your portfolio might become more stock-heavy due to market growth, so rebalancing can bring it back to your target allocation.
  • Stay Informed: Keep track of market trends, interest rates, and your investment performance. Adjust your strategy as needed based on life events or market conditions.

8. RRSP Deadlines

  • Contribution Deadline: Contributions for a given tax year must be made by the first 60 days of the following calendar year (e.g., contributions for 2024 must be made by the end of February 2025).

9. RRSP to RRIF Conversion at Retirement

  • You must convert your RRSP to a Registered Retirement Income Fund (RRIF) or purchase an annuity by December 31st of the year you turn 71. Withdrawals from a RRIF are taxable, but provide a steady income stream during retirement.

Final Tips:

  • Start Early: The sooner you start contributing to your RRSP, the more time your investments have to grow tax-free.
  • Consider Tax Impact: Aim to contribute in high-income years and withdraw in lower-income years, like after retirement.
  • Consult an Advisor: It’s beneficial to work with a financial advisor if you’re unsure about your investment strategy or risk tolerance.

By following these steps, you can make the most of your RRSP and secure a more comfortable retirement.

有用的 Hooks

💯💯💯 历经四个月,我们开源了一个协同的在线代码编辑器,还支持执行 Node 项目哦!

$
0
0

Moment

2024-10-30

4,055阅读5分钟

专栏: 

深入浅出NodeJs

从七月份以来我们对这个在线代码编辑器了一次重构,并且在一个月之内完成了一个基础版本,两个月之后我们对编辑器的核心功能:协同。

20241029214810

在开始之前,先来贴一下相关的地址,如果对你有帮助,欢迎 star:

  1. 前端仓库地址
  2. 前端预览地址(能直接运行 React 项目)
  3. 前端预览地址(能实现协同)
  4. 后端仓库地址

因为本项目使用的是 WebContainer,所以部署的必须在 HTTPS 的情况下才能使用,然而 Vercel 提供了 HTTPS 的方式来部署,但是我们的后端服务没有 HTTPS, 如果用 Vercel 部署的话就访问不了我们的后端服务,所以要想体验最好的效果我的建议是直接拉取本仓库代码然后直接启动。

技术选型

要编写一个开源项目,首先最重要的肯定少不了技术选项了,前端这边采用的是 NextJs,而后端这边采用的是 NestJs。

首先我比较喜欢 NextJs 的一个点就是它的文件路由(File-based Routing)系统简单直观,能够根据文件夹结构自动生成路由,减少了我们手动配置的工作量,开箱即用了。

Next.js 集成了 React 和 Node.js 环境,开发者可以通过熟悉的 React 语法快速上手,同时无需配置复杂的构建工具。在对后端依赖较小的项目,完全可以使用 NextJs 来实现全栈项目,而不需要额外的后端来编写。

其次就是对远程比较友好,从我接触过的人当中,还是有部分的朋友倾向于找一份远程的工作的,在我面试过和工作的远程岗位当中,基本使用的技术栈都是 NextJS,这首先得益于它提供了服务端渲染的功能,对 SEO 比较友好。另外一个点就是生态也很完善,例如 tailwindcss、shadcn、zustand、swr 等等,他还提供了 vercel 来免费部署,还有 supabase 这些免费的数据库。

至于为什么选择 NestJs,应该就不用解释了吧。

功能实现

接下来我就和大家分享一下他的一些功能,以便大家对这个项目有一个全面的了解:

首页

image.png
20241029221634

首页的话就一个流星的动画,加上后面的内容,整体还算协调。

控制面板

点击控制面板之后会进入到 dashboard,如果没有登录的话会跳转到登录页面:

20241029221905

这里不需要额外注册,直接获取验证码,没有账号的话会直接注册一个新的。

20241029222039

进入到控制面板,这里我们可以选择创建项目或者创建一个协同文档:

20241029222128

在这里提供了多种不同的框架来进行初始化,除了使用原有的模板之外,我们也可以直接导入本地的代码来进行开发和编辑:

20241029222441

这里有个头像还挺好看的,我很喜欢:

20241029222526

代码编辑

点击创建之后我们会进入到这样的一个页面,首先左边是一个文件栏,整体布局跟 vscode 一样,下面的是控制台,在这里我们可以直接执行 npm 和 pnpm 的一些命令,还有一些 NodeJs 的命令,

20241029222747

现在我们就是给这个项目执行 pnpm 来安装了相关的依赖包,并执行了 pnpm dev 来把这些项目启动了起来:

20241029223422

文件搜索

除了文件树之外,我们还提供了跟 Vscode 差不多的功能,文件搜索:

20241029223613

还可以分屏编写:

20241029223745

切换编辑器主题

在这里我们还可以切换编辑器的主题,在这里提供了多个主题可以选择:

20241029224822

协同编辑

这回我们要回到了我们的核心功能:协同编辑上了,首先要到 dashboard 控制面板上创建一个文档:

20241029225117

创建完成之后你会看到这样的效果:

20241029225214

点击分享文档,可以分享该文档给其他的朋友来一起编辑:

20241029225453

最终协同编辑的效果:

output.gif

协同如何实现的?

关于协同编辑这块,就来分享一下这前后端所涉及到的技术栈吧

  1. 前端
    1. y-monaco: 将 Yjs 的实时协作功能与 Monaco Editor 集成,提供了默认的协同编辑数据同步与协同 ui 效果.
    2. y-websocket: Yjs 的 WebSocket 适配器,提供实时数据同步功能,允许多个客户端通过 WebSocket 进行协作编辑。
    3. yjs: 高性能的 CRDT 框架,支持实时协作和离线编辑,通过共享类型自动合并变更处理冲突,适用于大型文档和无限用户的场景。
    4. perfect-cursors: 提供平滑的鼠标移动效果.
  2. 后端
    1. y-websocket:yjs 封装了协同逻辑
    2. y-mongodb-provider:持久化存储

贡献者

感谢所有为这个项目做出贡献的人!

Contributors

如果该项目对你有帮助或者对这个项目感兴趣,欢迎 Star⭐⭐⭐

最后再来提一些这两个开源项目,它们都是我们目前正在维护的开源项目:

如果你想参与进来开发或者想进群学习,可以添加我微信 yunmz777,后面还会有很多需求,等这个项目完成之后还会有很多新的并且很有趣的开源项目等着你。

汇丰私人财富规划

$
0
0

汇丰私人财富规划

玺越世家·臻享沙龙 上海站

(速记稿)

时间:2024年11月24日

地点:上海浦东文华东方酒店LG1层东方厅

主持人:女士们,先生们,各位尊敬的来宾,我是陈佳昊(音),我是汇丰私人财富规划上海分区总经理,我代表上海汇丰私人财富规划欢迎各位的莅临。

今天有很多新朋友,也有很多老朋友,我在周五的时候问过后台同事报名报了多少了,他告诉我们已经快要接近200人了,但从今天的规模来看,我感觉好像今天的人数还要再超过一些。

当然了,有一些是原先的老客户,也有很多是慕名而来,看到这次邀请的是付鹏先生,所以慕名而来。也有一些新朋友。在付鹏先生上台之前,请允许我对汇丰私人财富规划做简短的介绍。

汇丰私人财富规划是全球的战略重点之一,老朋友都知道,汇丰私人财富规划成立于2020年,距今刚好四年,在四年的过程中集团一直在给我们大力注资,也是集团里最重要的项目之一。

为什么聚焦在中国市场上?大家很多人都明白,中国中产阶级的人数在世界上占有量是最庞大的,随着中国经济的高速发展,中国人财富管理的需求逐步提升到很高的水准。所以,私人财富规划也会变成汇丰的重要战略之一。

介绍一下发展历史,从2020年汇丰私人财富规划成立,先是在上海和广州,总部离这里不远,汇丰总部就在国金,欢迎大家去坐一坐。逐步进入到杭州、深圳、北京、佛山,今年在苏州、成都开立了分支机构。

2020年汇丰私人财富规划才刚刚成立,那汇丰的历史又是怎么样的?汇丰简称叫HSBC,很多人会问HSBC四个字母分别代表着什么,可以跟大家简单介绍一下,H代表的是香港的意思,S代表的是上海的意思。很多人印象中以为汇丰是一家外资银行,但其实大家有所不知,其实汇丰在清朝的时候就在外滩已经设立了总部,现在这栋楼交给了浦发银行。1949年之后,汇丰因为历史的原因退出了中国,在WTO之后回到了中国。

汇丰1865年成立至今已经有100多年了,那时候还是清朝的同治年间,同时已经在全球的62个国家还有3900多名客户,这段历史和这么大的分布也是汇丰很多同事内心的骄傲。我们跟很多客户做沟通的时候,经常会把这段历史拿出来跟大家讲一讲,就像这头石狮子,很多人都见过,但很多人都不知道它的历史,很多人在海报、广告、港元大钞上看过这个石狮子,原来在外滩上也有两座,现在放在上海博物馆里,前一阵儿我在博物馆参观的时候还看到了这两只石狮子,上面还有很多历史的痕迹,比如说战争而留下的弹孔,就在人民广场的博物馆里,大家有兴趣的话可以去看一下。

财富大矩阵与中国内地市场,汇丰集团对于中国私人财富规划业务的重视程度,在大矩阵中承担了很重要的地位。

每100位客户中,会有87位客户将汇丰私人财富规划视作为提供财富重要的主要品牌,提出了很多好评,82%的调研者打出9-10分的高分。

也有一些比较有意思的话,如:“对产品内容的保障满意,公司大有保障;甄汇生活有一定的吸引力,汇丰的产品较贵但也愿意买,因为对汇丰私人财富规划师的认可。”

这两年提出一句比较新的Slogan“懂你关心的,给你安心的”。

今天的活动我们邀请到了一位重量级嘉宾,他曾任职于雷曼兄弟、所罗门投资集团等全球顶尖金融机构,从事对冲基金等相关工作。他就是东北证券首席经济学家付鹏先生。让我们欢迎付鹏先生为我们带来《2024年年终回顾和2025年展望——对冲风险VS软着陆》主题分享,有请付鹏先生!

付鹏:正值年底,虽然刚才汇丰一直强调大家不录音不录像,但大概率你挡不住。我在这儿讲话会谨慎一些,非常小心谨慎,大概率会有人透露出去,放到YouTube上,基本上所有见我都说付总我在YouTube上看过你的视频,我说那都是盗版的,靠盗版发财的也不少。

今天和大家分享的内容基本上都是官方的,回顾会多一点,展望不多,因为这个月展望完了之后下个月怎么办?有些话对我来讲我倒觉得很简单,本质上原来我们是做Hedge Fund出身,所以我们的逻辑框架整体具有极强的延续性,不是说今年去讨论,或者说明年去讨论。

惯性思维从2016年开始,我一直在跟大家强调这个世界已经完全不一样了。当然经历过过去的几年时间,我相信在座各位应该对这番话的理解变得越发深刻。

2016年实际上是美国特朗普的第一次大选,我有一个特点,我的特征是如果我觉得什么地方有投资机会,我可能第一时间去一线调研,我不喜欢看YouTube,我也不喜欢在网上扒。当然你会说,现在ChatGPT很强大了,人工智能好像能帮你解决很多问题,但你们有没有想过,可能广泛流传或者广泛传播的很多信息是错的。这一点在2012年当时我从日本做完调研回来之后,我的感悟是最深的。

当然去日本有一个重要的人物,名字叫本森特,很快大家就会非常熟悉他的,目前来讲应该是特朗普政府提名的美国财长。本森特原来是索罗斯基金实际掌控人,因为索大爷已经年龄很大了,去年的时候才刚刚把基金的业务交给他儿子亚历山大,但在这之前,最主要的几场战役本质上来讲都是本森特在主导。

2012年当时我从北京去香港约朋友们吃饭的饭局上,当时斯索罗斯基金在香港办公室跟我说,本森特从这儿去了日本。我说OK。我经常说一句话“站在巨人的肩膀上看问题。”

当然你知道,网民们最可怕的地方是巴菲特“SB”、索罗斯“SB”,我最“牛逼”。你要记住,他们的所有行为一定有很大的变化,很多人可能都不知道,巴菲特第一次去是2011年,我们正在讲福岛核电站泄漏,核废水污染以后海鲜不能吃的时候,一个80多岁的老头顶着核辐射泄漏去日本吃海鲜了,当然他去日本干吗,这其实很关键。

之后我们跑到日本做完调研回来之后那几年,我陆陆续续跟很多人讲,日本正在发生变化,日本的利率结构都会随之变化的,当然包括日本的证券市场。今年日本股市终于走出这35年了,创下了历史性纪录。

但网上很多人还在说,我从经济数据里好像没看出什么状况来,这就是我们说的“信息差”,因为有时候你知道人的理解,对社会的理解,对经济的理解带有惯性思维。前几年我经常普及的一点是关于日本的理解,很多人总在想经济增长,有没有一种可能性经济不增长也很爽呢?比如说中国过去三四十年改革开放之后我们习惯的就是经济要增长,经济不增长我们就很难过,你有没有想过一种不增长还会把蛋糕吃多的方法呢?答案是分配,你怎么老想着分工、努力、工作、干活儿、挣钱、增长,有没有另外一种可能性是进行再分配?

你对日本的理解为什么要增长?用我的话说在过去30年的时间里保持着这块蛋糕没有变,但现在远端利率抬起来的根本原因是因为年轻人可以吃多了,年轻人为什么可以吃多了?你们知道2012年日本的死亡数据是什么吗?你有注意过他的人口结构变化吗?到了今天为止,你突然之间发现日本现在招聘怎么会是应聘的在下面坐着,招聘的在上面站着?放心,中国现在不是招聘的问题,是HR砍人的问题,这种变化的根因到底来自于什么?其实很多人只是惯性思维,你不一定能看懂世界。

过去40年已经发生翻天覆地的变化了,从2016年开始,中国也不再是过去40年的中国,美国也不再是过去40年的美国,日本也不再是过去40年的日本,东南亚也不再是过去40年的东南亚,你资本运转的逻辑框架都在发生着巨变,而这种时刻下,如果你保持着过去的思维,你并不能理解我在讲什么。

我只能说,大家一切看缘分,我不需要完全说“付总在胡说,我并不认同”,无所谓的,你能听懂你就听懂,你能早理解你就早理解,早理解你就能顺着这条线Get到2016年之后世界发生的巨变。

最新的美国大选,特朗普重新上来,但这次上来跟2016年又不一样了,因为他比2016年变的更加右翼化了,2016年大的政治转变本质上就是逆全球化和右翼化。2016年我把我自己的书稿整理过一版,当年也没空没时间把这个东西出版,去年因为我们家孩子回来以后做了传媒公司,原则上来讲我就把书稿送给他作为传媒公司的一部分出版业务去做,这就是大家后来见到的《见证逆潮》。但这本书不完整,全文将近70万字,你们拿到手的只有50万字,中间差不多有20万字被删减掉了,这20万字其实非常关键,涉及到我们对世界大类资产顶层逻辑的核心框架,金字塔究竟是什么?底层是我们的所有资产和市场,市场其实是在框架中最底层的,大家天天想问的房价的上涨、股票价格,这实际上是金字塔中最底层的。

稍微往上一点有人说宏观经济很重要,尤其是中国2008年次贷危机结束之后,中国的投资人开始发生巨变,2008年金融危机之前,中国大部分投资人讲的是“擒龙大法”,如何抓涨停。但2008年的次贷危机,全球的冲击使得很多从事金融交易、资产交易的人开始意识到,原来全球金融市场是这样的,是联动的。自那一刻起,真正意义上的金融才开始在中国慢慢生根发芽。

稍微有人开始意识到宏观经济的重要性,当然像现在证监会的首经团队中,36个首经里,我一直说我是那个最不正经的,因为我又不是搞学术的,我也不是搞政府出身的,我是市场一线的,我们对很多问题的理解是完全不同的。

前两天的时候,在Fox News上,本森特和几个诺贝尔经济学家在那儿争吵关于关税作用的时候,你就突然间发现,一个站在市场角度上的人理解关税作为一个手段到底起到什么样的作用,和那帮老学究们去讲的,甚至跟在座各位在新闻联播上看到的关税描述“美帝国主义打关税,使得老百姓生活在水深火热中”,你会发现好像你聪明点的话就知道好多东西并不对,这就是差异性。这次特朗普组成的第一是实权派,第二是通杀了,可以理解右翼化已经完全没有牵制了,第三上来的全是实干派。你猜后面的结果是什么?这场仗可不好打,比2016年那一届还难拿。

再往上是什么呢?有人说终于讲到了政治,没错,再往上是政治,民主党、共和党、全球政治的变动。但再往上的顶层,金字塔的最核心是什么东西?实际上是意识形态。

我教很多研究员说你们在研究世界经济的时候别盲目地做简单的对比,我估计很多研究报告都会犯这样的错误,动不动就做对比,和70年代、80年代做对比,这种对比纯粹写报告凑字数的,换成我的角度,我都不会看完直接撕了就扔垃圾桶了,我其实挺心疼这些券商研究员的,为什么呢?是个事儿就得写个报告,写个报告就得好几万字,好辛苦,结果还没人看。

顶层断代,也就是大家经常讲的周期性的断代到底是什么?你记住一点,顶层的断代是意识形态,社会政治的发展本质上是群体性意识形态的周期,也就是大家学过的思想政治课中的“左”和“右”,左倾右倾、左派右派、左翼右翼、集体个体,这些东西的变动才是世界经济周期的最大变动。

当前是什么?大领导讲的那句话很对,百年之未有大变局(百年未有之大变局),基本上就是1929年大萧条到二战后完整一个周期的结束。全球从二战的极端右翼,慢慢发展到中右,再偏向中左,再到差不多这20年左右的极端左翼化,最终导致重新开始右翼,这个世界很有意思,没有任何方向是绝对正确的。

我一直告诫大家,你们不要在网上争吵,我站在左边,你站在右边,PK,非得讨论出谁最牛逼,谁最正确,没有。就好像你想找个女朋友,又漂亮,腿又长,胸又大,腰又细,还有钱,还特别爱你,你想多了,挑一样就行了,完美主义哪儿有?最终的结果就是在运动的过程中对政治造成影响,进而对经济造成影响,进而对金融市场造成影响,一定记住金字塔的逻辑。

大部分时间我们不用Care顶层,因为在过去百年,顶层的方向是固定的,就是从极端右翼不断向左翼在运动,所以顶层方向不变的情况下就会形成下面的一套运转逻辑。

比如说以美国为代表,你们应该看到Ray Dalio关于债务危机的那本书,里面有个利率曲线,二战前我们的利率就是0,到80年代利率达到顶峰,2008年次贷危机到疫情期间利率再次达到0。利率的低点到底是什么意思?为什么在过去的百年历史里,利率的低点总是战争的起点?是有原因的,因为利率的本质实际上就是贫富差距,利率越低的时候,贫富差距越大的,利率越高的时候,贫富差距越小的。

当然,我们每个人都是屁股决定脑袋,比如大家手上拿着一堆金融资产,拿着一堆杠杆,我可以告诉你,你永远高呼的是低利率是对的,就好像大家对于美国的理解一样,永远认为美国在过去的40年的逻辑就是不能加息,加息就崩溃,崩溃就降息,利率永远是低的,美元永远是Carry的借贷方,但你从来没有想过这个逻辑会变的。

几年前我跟很多人讲的时候,我说你记住一点,中国从高利率变低利率,海外从低利率变高利率,所谓的几毛档还动不动说付总说了高利率是多少,4-5都是高利率。低利率是多少?0、1、2有多大区别吗?没有的,这是关键的点。有人说非得纠,把我的话直接变成了付总说的,中国不会加息,永远降息,美国永远加息不会降息,降一点加一点,加一点降一点,这不很正常吗?比如特朗普上来了,明年有没有另外一种意外性呢?比如说降了50,降了25,大概回到4.75,5的水平了,突然间又抬回到5.25了,这不正常吗?4和5的纠结不重要,重要的是他不会再回到0、1、2了,这是很关键的。

对于劳动力来讲,利率是很关键的,如果利率的抬升来自于劳动收入的增长,这是好事情。你想想中国,你把时间拨回到20年前,利率高不高?那时候你难受吗?不难受。现在利率低不低?低,你难受吗?你难受。为什么?所以你要知道是通过劳动获得收入还是通过资本杠杆获得收入的,你对利率的感觉完全是反的。

但是整体社会去讨论贫富的时候,贫富主要讨论来自于劳动价值,简单讲,天天外面送外卖跑滴滴的,他们就是失去的一代,在过去的二三十年里,靠劳动力的就是被淘汰的一代,没办法,这是社会发展的必然结果。但是当这种矛盾压力大了,就会转化成社会矛盾,甚至可以通过选票转化成对政治的影响,对意识形态的影响。所以贫富到极端的时候一定会进行修正,无论是极左的贫富还是极右的贫富,都会最终产生矛盾,这就是社会运转的规律。

过去百年发生的这一轮大周期就是完整的周期,到2016年表面上看叫中美贸易战,表面上看是中美两个大国之间所谓的对抗和博弈,其实是全球各个国家内部的矛盾展示,对内是内部的分配,对外是外部的分配。在这个背景下,战争的风险将加大。

前两天,我们也看到了,人类历史上第一次使用了洲际弹道导弹,无非就是前面没挂核弹头而已,仅此。你觉得这个东西离你还很远吗?我们这一代可以说是幸福的一代,但我们这一代也将经历不常见的百年之未有大变局了。

很多人在思考这个世界的时候,真的不要以为我们现在还能回到过去,回不去了,那个全世界包容融合的,不断左翼化推进的,全球化不断推进的路径,这个时代彻底在2016年已经开始结束了。

2016年很多人判断是错误的,总觉得2016年只是一场贸易战,那时候我从华盛顿调研两周回来以后,我跟很多人讲,不是贸易战,不是说哪个党派,民主党、共和党上来对中国就会温和的,不会的,两党的共识,他两者之间只存在着我比你左一点,我比你右一点,但咱俩都是往右的。美国政治的变化核心在于不管民主党和共和党,对中国的压力都是一样的,只不过是他俩谁压力多一点谁压力少一点,谁在外交上压力多一点,谁在经济上压力多一点,仅此而已。

对中国来讲现在也麻烦,在过去的80年代、90年代,西方在不断包容融合右翼化,同时当时的中国也在不断地往右走,当然此处不是指的中国的右倾。注意西方右翼概念和中国完全反的,你们不要觉得是错误的,如果你觉得错误的,你先了解了解什么是左派右派、左倾右倾、左翼右翼。如果你不能理解这个东西,你肯定对左和右在中国和西方的框架里完全是颠倒的。

中国也是朝着包容、融合的,所以我们才有了非常好的入市、WTO、改革开放等一系列的操作。我经常说家庭中女生是天生右翼,右翼有一个典型特征,右翼可以叫民粹,可以叫国家主义,可以叫爱国主义,极端右翼可以叫纳粹。但右翼的特征很明显,“我没错,都是你的错”,这就是右翼。

家庭中女同志天生带有,当然我不是歧视各位女士,这是你们DNA里带的,两个X里带的,如果家庭中男生是左翼,家庭是幸福的,什么意思呢?“老婆,没事儿没事儿,都是我的错”,男生是个左翼,家庭很好,左+右。

如果男女都是左翼,这简直是幸福无比了,男生回家了,女生把拖鞋一放说“老婆你打会儿游戏,我正做饭呢,一会儿做好了叫你洗手吃饭”,这个男同志真的去打游戏了,吃完饭了说“你歇一会儿,看会儿剧,我来把碗洗了。”你可千万别当个大直男,锅一甩又去玩儿了,不行,时间长了,她会右翼化的。

此时你也表现出左翼特征,你家庭就是融合的。家里如果两个右翼就完蛋了,都是你的错我没错,凭什么说是我的错?就是你的错,就是你做错了。直男碰上女生,一般来讲没啥好组合,两个右翼就是战争,打架到离婚。

不要认为这是在讨论家庭、婚姻,同样在讨论国家,同样在讨论全球。当国家和国家之间的组合出现统统左翼化的时候,就是包容、融合、全球化共同增长的俱佳的历史环境,当全是右翼化的时候,就是战争。

我们现在的大麻烦在哪儿?就在这儿。全世界在过去5、6年时间里已经陆陆续续都在右翼化了,右翼化的特征,政治的重要性已经体现出来了,选票回归传统的特征已经体现出来了,反移民的特征已经体现出来了。

我之前说过,这两年全球著名的交易就是“多美国,空加拿大”,原因就是加拿大的小土豆放了那么多印度裔进来,就完蛋了,加拿大的核心矛盾是什么?经济增长创造了五个蛋糕,原本加拿大的国民可以一人吃一个,现在放了10个阿X进来,加拿大问题是分配,当分配不够的时候,一定会趋于保守,一定会趋于右翼化,一定会趋于反移民。

各国都一样,70年代80年代的时候,英国那时候有过排华,现在又开始反穆斯林了,这正常。世界的动荡不是简简单单表现在单纯的资产上,前两天英国又出台了新的政策,你只要非英国国民的,原则上来讲要交遗产税的,英国政府也要收你的遗产税。我之前跟很多富人说,别天天琢磨避税了,包容融合的时候藏点私房钱是没事儿的,当都右翼化的时候,你再藏私房钱你就完蛋了,现在全世界的大麻烦是什么?找个税率低的地方该缴的缴。当年特朗普上来的时候20%只要你愿意回流美国,全部合法化,你看有多少资本往回回流?所以你们知道左翼和右翼大概的框架和特征,这才是我那本书里的真正精髓,但被删掉了。

你把它理解了,你对应的穿透到经济上,穿透到利率上,穿透到资产上,你会门清儿的,这就是大类资产的精髓,真正的精髓。你要问这东西谁创造的,索罗斯那批人,本森特那批人,整体框架大家都是一样的。

我到底在讲什么?其实我就是在讲回顾,因为从那一刻开始,几个问题就在陆陆续续暴露。美国在进行重构,特朗普上来以后方向继续重构,这里面其实就涉及到民主党为什么是错的,民主党的很多政策为什么是极端左翼,左翼政策不一定是对的,右翼为什么会使得美国进入到增长通胀利率的环境。

包括有些华人带有意识形态,我只能说一句话,我们作为全球投资人,最佳的选择是没有任何意识形态,对我来讲,我非常清楚左有左的问题,右有右的问题,左有左的好处,右有右的好处,我不会站在任何一侧。我的答案是全世界选择往左走,我就知道我的交易路径是什么,全世界选择往右走,我也同样知道我的交易路径是什么,但我绝对不会站队说谁是绝对正确的,否则的话就会压错宝。世界有时候不一定按照我们的意识走,美国的这次大选也是典型的结果,其实我也没想到,美国右翼化的速度会这么快,推进速度会如此迅速。本来想的是民主党还能够撑一撑,但现在来看基本上是完败的。

对于中国来讲,当前我们面临的问题不仅仅是外患的问题,还包括了内忧。综合在一起,会有一个非常奇特的答案,之前很多人问我中国到底和日本一不一样?网上这句话炒的纷纷扬扬的,有人说中国就是会走日本的老路,有人说中国不会走日本的老路,你要问我正确的答案,我会告诉你这个问题没有任何意义,为什么?太泛了,如果拆的细一点我能回答你。比如你要问中国的居民部门和日本的居民部门一不一样?我的答案是一样;中国的企业部门跟当年日本的企业部门一样不一样?我的答案是不一样;中国的政府部门和当年日本的政府部门一不一样?我的答案是不一样;中国的金融机构跟当年日本的金融机构不一样?不一样;中国当前面临的国际环境和当时90年日本面临的国际环境一不一样?不一样。

你说最后的答案是什么?如果站在纯居民角度来讲,我可以告诉你99.99%可以复刻,但如果站在大的国际环境上来讲,可能得到的是完全不同于日本的最终答案。用我的话说,你是说一样还是不一样呢?没有意义。

所以我大部分时间给你们分拆的是日本居民部门和中国居民部门的比对。而日本的企业部门、金融部门、发展模型我也给大家分享过,去年你们应该都知道了,巴菲特买三井、三菱、丸红、伊藤忠商社,大笔发行日元债券购入到日本的三井、三菱、丸红、伊藤忠这些资产中,他到底在干吗?

那时候第一财经找我说付总你去讲讲巴菲特为什么买,我发现很多评论人员单纯在讲三井、三菱、丸红、伊藤忠资产怎么样,稍微聪明点的会讲到当年的商社们是日本的海外资产,是日本Carry trade套息交易的主要收入端。再聪明一点的会讲到巴菲特在参与日本过去40年存量财富的再分配。

我可能明年把我们家小儿子送到日本去,我跟他讲的很清楚,我不需要你去学习人工智能、AI,为啥呢?你好像没那么聪明,也不是IT技术男,你把日语学好,能考上应庆就不错了,那里面都是一些日本传统贵族的姑娘,你娶一个就行了,最好她们家都是80岁90岁的,你就躺赢就行,等她们家80岁90岁的明后年一挂,房是你的,股权是你的,土地是你的,财富是你的,存款是你的,咱们就参与日本存量40年财富再分配。巴菲特是用钱去参与,我们用人参与,本质上都一样,你买股票,我把儿子嫁过去,这都是参与财富存量分配。

你们要明白日本的核心究竟是什么?日本的核心是参与分配,而不是参与增长。很多人不太理解,因为他在国内没参与过分配,永远都是增长处在哪个环节,我距离权力近一点,资源近一点,资本近一点,我就多吃点,卖劳动力的就少吃点。当经济增长增速不够的时候,最底层就没饭吃了。经济增长5,可能各个阶层的体感是完全不同的,所以网上会有些人说经济数据造假,真的造假了吗?也许没有。5代表的是整体的蛋糕,而你的体感仅仅代表你的阶层。

在过去几年中国经济的调研中,我们到底做对了什么?

第一,在2020年疫情后,那时候长白山论坛我跟大家讲的很清楚,我说的非常赤裸裸,中国居民资产负债表出现问题,那时候券商们都很Happy,因为他们永远需要Happy,只能做多。但对于我们做Hedge Fund出身的来讲,我可不能这么做,我这么做我就完蛋了,我的钱在里头。10月8日之后,有人在里头吗?千万别自己麻醉自己,那都扯淡。网上一般来讲,拿所谓的这种东西蒙蒙别人可以,你自己信了就完蛋了,就跟当时“6000点不是梦,1万点刚起步”,记住那话是说给散户听的,你信了那你就完了。核心是什么?从我们的角度非常明确地大家,大家的预期很高,但现实很残酷。

那两年跟各家公募基金每个季度做交流的时候,他们没法去理解现在的经济情况,比如说那时候我跟他们讲网约车司机、外卖,那两年我大量的调研样本参数是底层。经济增长消费扩张升级的时候,调研样本是富人先进五星级酒店,富人先买超跑,富人先吃海鲜,然后你的样本参数是下沉的,到最后是老百姓吃上海鲜,老百姓开上汽车,老百姓进五星级酒店。

但是当经济收缩的时候,倒过来的,第一步先收缩的是底层。我前几年我说每年现在新增几千万的网约车司机,你们都没有想想人从哪儿来的吗?有人说了,农村劳动力进城,我说都啥年代了,还农村劳动力进城,这又不是你当年搞大规模基建城镇化建设的时候缺农民工,把农村劳动力大规模转移过来。现在的农村你去看看,哪儿还有劳动力,除了老弱病残幼以外,还有劳动力吗?你就没想想这两年突然激增的两千万的网约车司机这些人从哪儿来的?答案很简单,中产阶级的陨落。只不过是你的阶层不一样,你看的问题不一样。

很多人的调研很有问题的,很多人说美国通胀导致美国居民部门水深火热,我问他为什么?他说你看我打电话问了我在美国的朋友,他们都很惨。我说那你美国朋友的样本是个什么状态?他一描述,我说那当然惨了,他们以前爽的时候是老公在中国挣着通胀的钱,老婆在那边花着通缩的钱,享受着社会福利保障体系,还不交税。现在倒过来变成了老公在国内挣不着钱了,海外人家上门给你弄个草皮清理一下要多收你50美金一小时,你的钱没增长,花的钱多了,你当然难受。我要是那个铲草皮的,我会告诉你那点通胀算个屁,5块钱的三明治涨到7.5元,翻了50%,对我来讲不重要,重要的是我从你们家弄个草皮,挣50多一个小时,劳动价值提升了。从事劳动的人就很舒服,从事单纯支出的人来讲你就难受了。

你要调研的样本是一样的,前两年的样本收缩的是时候是底层先吃苦,但对宏观经济数据影响不大,你们记住一点。

我就说网约车司机,如果你在广州做调研,他们的特征就是有钱没钱,今天都吃龙江猪脚饭。但注意,北京北四环的网约车司机吃的中午盒饭到多少钱吗?15块钱送瓶水,还带锅包肉,猪肉炖粉条子,耙子肉,嘎嘎香。但你记住一点,千万别问肉多少年,问你就吃不下了,因为基本上都是80年陈酿拉菲,一定是冻肉,一定是冻了20年、10年以上的肉,不然怎么那么便宜。所以你们也不要瞧不起预制菜,我觉得预制菜很好,没有预制菜老百姓日子更苦,有预制菜老百姓好一点,为啥?12块钱能吃饱,还能吃上肉,吃上足够的蛋白质。

你就记住一点,当你都吃12块钱了,你还注意肉多少年吗?现在统计中国在讲需求的时候很有意思,我从来不会用一个数字,从来不会用中国的CPI,中国的CPI一直有一个大的问题,当年宏观经济数据设立的时候中国老百姓第一目标是解决吃穿,解决温饱,所以对我们来讲,物价中的菜价、猪肉价格、粮食价格、油价波动,我们看的比天都大。

那时候一般来讲,领导们下去做慰问的时候,第一件事儿都是去家里掀锅,动作都很标准,打开锅看看你吃啥,这个动作其实就是因为当年我们的重要问题是解决老百姓的吃穿住行,所以我第一件事情就关注你吃的情况。但改革开放下来以后,到现在为止,吃如果都成问题,那就是大问题了。

为什么不用数据?因为数据中这部分的波动很大,这部分的波动已经跟需求没关系了。比如说城市里洪涝,那蔬菜价格那几天就会暴涨,那种变动其实影响已经不重要了。我们现在讲需求,比如中国经济从2019年获得大问题,非常麻烦,你们不要觉得现在的经济问题是现在,是2019年就开始了,在今年是恶化的,所以今年的情况你们都不知道有多严峻,数据里已经告诉你,非常严峻,而在调研的时候更严峻。

8、9月份的时候,必须转向,那时候很多人不理解,因为过去的一年大家都养成了一种习惯,这也是右翼化的特征,右翼化的特征就是我没错都是你的错,我不许你说我错。你想想,家里的老婆你敢说她错吗?到最后男生就是出门抽烟,不吭。

过去几年我们的右翼特征当中体现出来的,大家都有一种习惯,国内经济不许说不行,谁说不行谁就是叛徒,谁说不行谁就是不爱国,谁说不行就网上攻击他。问题是诞生了另外一种生意,什么生意?你们懂得,你只要说这东西遥遥领先,8000块钱的东西就能卖18000。

在我的角度看很简单,这是社会的整体意识形态变动的核心,但是真正可怕的是如果大家都不去讲,到了关键的时间点上,会使得所有的信息反馈形成谬论性错误,最后你们会发现,连决策层都做出错误判断,那就完蛋了。

到最后谁是那个误国误民的,历史会有正确评价。最上头在关键的时刻该做调研,该让你发声,还是要发声的。8、9月份到底中国发生了什么事情?大部分人在当时并不了解,8月27日开始,你们关注一下所有的金融峰会和论坛上,全部让你敞开了讲中国经济的核心问题。

当然只是说我当时在大湾区论坛上讲话时间不够长,大家传播更为广泛,但不是说我胆大讲。当时下午讲完之后,晚上就有朋友发“付总,这能讲吗?”我说“如果能讲,你要想想为啥?”24小时都不到,大概12小时左右,第二天早上易纲同志在上海的外滩金融论坛上马上跟你讲当前中国经济的核心问题,通缩的风险,以及经济有效需求不足,所有人从8月份到9月份,用的词都是一模一样的,中国经济当前核心问题有效需求不足。其实我想说,有效需求从2019年开始就在下降了,而此次的有效需求非常麻烦,可以说是我们改革开放之后的百年之未有大变局。

我在9月初的时候,提的政策建议里,我都没有用“解决”,我用的是“对冲”。9月11日我怕大家对这个事儿理解不深刻,当时演讲的原题目是要注意有效需求问题,赶快出政策对冲,9月11日我把东西又给你写出来,再讲了一遍。

但那时候会发现社会上的整体风气依旧沉浸在“不许说我们不行,我们挺好的”。到现在为止,现实情况是什么?你觉得资本市场起来这一下,猛冲这一下跟经济好有关系吗?恰恰出现的情况是经济差才来了这么一下,而不是经济好。现在出的所有政策有没有达到目标呢?有一讲一,没有。能不能达到对冲的目标呢?我觉得对冲一点点,解决肯定不可能,因为你如果仔细地了解这次有效需求的复杂性,意思是告诉你这事儿挺难,因为里面掺杂了中短长期的因素。其实在疫情后,我们当时就做出中国国内经济的预期很高但现实很差的根因也来自于有效需求背后的矛盾。

有谁记得前两年我在各个公开演讲中,一直跟你强调国内经济的核心变量是什么吗?我老跟你们讲到人口的问题,老跟你讲到老龄化的问题,几年前跟你们讲到现在为止,通过金融市场、资本市场、银行背后的数据大概都能看明白到底发生了什么,老龄化对于中国、韩国、日本都不是好事儿。

西方经济研究中研究移民政策,中国、韩国、日本研究人口出生,因为这几个国家的历史决定了他不会有大规模移民的。你别动不动就来一句,老龄化了人口出生少了,北欧怎么怎么样,好家伙,你这一刀切出去,你玩过《文明》吗?马上《文明》就要上新了,大家可以Steam上下载玩一玩,开局资源要素是不一样的,最后你组成的文明和帝国发展战略也是不同的,别动不动做瞎对比,没用的,这就是中国经济的大问题。

这是所有这次有效需求的组合,包括下面我们对的政策建议,不用看了,意义不大。

核心的就用这两张图够了,很简单。

第一,我不会用CPI这个数字就是因为里面含了实际上已经跟现在有效需求没太大关系的。用的什么呢?把高清大图放大到2007年之后,我们用的是扣除食品和能源以后的通胀。简单讲,我要关心的是老百姓吃饱饭以后没事儿干的价格,你没事儿干的价格高,就说明你的有需求好,你没事儿干的价格低,就说明你有效需求差,就这么简单。至于吃饭这件事情,非常容易解决,龙江猪脚饭。

说实话,你们点20块钱30块钱的外卖,成本价格就4块钱,4块钱你都吃的嘎嘎香,可以想想,食品工业发展到现在为止,防腐剂、添加剂一加,成本是很低的。当然了,做不到既要又要还要,既便宜,又好吃,还健康,还得是厨子现割肉现做,你想多了,你要想吃现割肉现做,你掏50,我去你家做,你就掏5块,那就是预制菜。你们要明白,这是解决吃喝拉撒很重要的因素。有的时候,左右两边不可共同都有,健康和便宜不可能同时存在的,所以健康很贵的。

大家先看放大版的数字,2019年是整个平台的顶峰期,2019年后的典型特征是总需求曲线一直在降。10月份的数字是负的,没有疫情,没有2008年金融危机的外需崩塌,从2002—2024年,长达22年的时间里,在没有任何重大风险的情况下,中国第一次出现了有效需求为负。负数啥意思?非常简单,中产阶级节衣缩食,这个宏观数据就告诉你这个答案。

刚才我讲了,底层老百姓是一点点往上反馈的,不会很快地作用到宏观经济数据里,所以你们在疫情后看到的这个数字大平台还没有快速往下掉,但当时的底层(网约车司机、送外卖)其实一点点在痛苦,但那时候去金融机构做路演,他们都没有这种感觉。今年所有金融机构都觉得很痛苦的原因是啥?因为他们被裁员了,他们被降本增效了,他们被要求奖金退回了,板子打到了他们的阶层之后,他们开始感受到了痛苦。你知道这代表什么吗?今年经济为什么从3月份之后这个数字一路掉下来,答案非常简单,今年的大麻烦是中产阶级陨落。

别说今年了,这两年底层慢慢“拼多多”,现在应该是中产阶级开始“拼多多”,今年最好的样本参数调研应该是隔壁的杭州,其实上海也可以做调研,差不多。3月份降本裁员裁老张,6月份降本裁员裁老李,我就问你老王怎么办?回家跟媳妇开个香槟庆祝一下,老张、老李被裁了,我没被裁,是这样吗?现实的情况是回家赶紧跟老婆算账,国际学校多少钱,孩子多少钱,面膜多少钱,健身房多少钱,该花的不该花的多少钱,房贷欠了多少钱,一算账列一个数字,假设被裁员怎么办?算完跟老婆说,你的面膜SPA中心别去了,李佳琦的直播间拍一个糊脸上差不多。然后你开始节衣缩食收缩,你的收缩是要命的。记住一点,中产阶级的收缩对整个宏观经济是冲击最大的。

底层真的是今天干个活儿,跑跑,有钱挣没钱挣都得吃个龙江猪脚饭,反正也不贵。多挣钱了,跑个单王,跟老板说“龙江猪脚饭加个蛋”,今天各位在外卖平台上给打赏10块钱就是龙江猪脚饭加个蛋来个腿。

我没有太多投资的群,但我会潜伏在全国外卖小哥、网约车司机的群里,因为他们是我广大调研阶层的样本参数。我甚至还有个样本参数是全国最大的美容连锁店的老板,我经常拿他当调研样本,为啥?他背后的2000多家店,以及店后面的那些女人们,那就是标准的消费调研样本参数,他的生意好经济就好,他的生意差经济就差。杭州今年上半年应该有500家美容店要转让,你们有谁要的我给你们搭个线。你们会要吗?你要知道,不管是正宫娘娘还是非正宫娘娘,都没钱了,她背后的男人们都没钱了。

你说消费降级吗?其实不仅仅是降级,你们一定要记住,这个大周期的结束很可怕的,因为这是大部分中国投资人里第一次经历这样的周期。

中国证券市场反应非常精准,不要再看上证综指,那个意义不大的,我们经常讲有结构性行情,一点错没有,结果里对经济、政策的反应非常准确,不是不准确,是非常准确。所以说你真正在这几年对宏观经济的理解,就是告诉你一句话,没有增量,就是结构,对结构怎么把握?这里的结构可不是40年前的结构。

前两天我跟一家公司说了一句话,黑色线是PPI,相信在座各位都明白,PPI是什么呢?简单讲就是企业利润,PPI为负,大家就是在拼命地价格战、竞争,我卷你,你卷我,上游卷完卷下游,下游卷完卷客户,卷到最后就卷到谁能活着,这就是PPI为负的答案。

中国这二十多年来,从2002年开始,我们的经济从来没有遇到大问题的根因非常简单,红色线永远存在,上面的红色线存在。

中国经济的任何供给问题都是有需求在的,有内部需求有外部需求,外部需求是全球化对我们的支撑,内部需求是什么?房地产大佬现在好像在里头踩缝纫机,他当年曾经说过一句经典的话,“什么房地产、供应、需求、土地开发、城镇化,扯淡,就一句话,我们有庞大的80后”。我觉得他说的非常诚恳,因为需求内需到底是啥?本质上就是人口收入的债务函数、杠杆函数。

所以你就知道,中国内需庞大的一代是谁,就是这批80后。是“文革”之后人口基数最大的那批,可以花3个钱的,可以花过去时,上一代人给你留下的6个口袋。可以花当下时,你的企业老板给你的收入函数。可以花未来时,金融机构给你们的杠杆。你们是花三代的钱,一代的人口高峰,那就是中国内需的所有底牌。中国经济的任何问题都可以由这部分人买单,所有债务问题、经济问题均由这代人买,那就不会有真正意义上的经济的风险。

比如说2008年,现在也会发现,有些政策跟2008年很像,房地产放开、限购放开、购置税减免、消费补贴、刺激消费,但你们都会发现,还能产生2008年效果吗?能回去吗?我可以明确告诉你,回不去的。

你们记住一点,那句忽悠了老百姓这几年的一句话叫“做内债不是债”,我不知道谁让这句话传出来的,很多人在那儿喊“内债不是债”,这是我们家祖传对联之一,下句是什么?“内债不是债,只要人还在”横批“万税万税万万税”。任何国家的本币债务就是对自己本国居民的征税权,税等于什么呢?税基×税率,税基等于人口和收入函数,一叠加就是人口收入×税率,这就是税和债务。

中国现在的化债化什么?要么增加税率,要么增加人口,要么增加收入,人口不增,收入不增,答案只有一个,增税率。那你猜你的遗产税跑得了吗?你猜你的房产税跑得了吗?想啥呢,年轻人不生,咱收不着他们了,那就收老年人的,一样的。你要知道,债务不会像你想的“内债不是债”,你想多了,本质是税源。

政府债务驱动的投资行为只要能收到税,所有投资行为理论上都是合理的,2008年两个经济学家在那儿讨论高铁到底应不应该修,当时他们俩的讨论中我站后者,当时应该修,因为修不修就看能不能征到税,但他俩的计算方式是不一样的。其中一个是按照标准的市场经济去计算,市场经济计算税就是这个项目能不能挣钱,杭州到上海这条高铁修完了,成本核算完,二等票需要150元,老百姓能不能承担得起,能承担得起能运营得起就会项目回本。所以他经常挂在嘴边的口号就是如果项目不能挣钱,那原则上高铁是浪费的,就是纯纯的债。他这句话在当年是不对的,因为中国非常奇特,中国的税分为间接和直接的,你刚才所有的成本核算是直接税,但中国的特色是直接税上减免,增收间接税。这就给中国老百姓一种很好的感觉,我们的高铁又快又好还便宜,成本150的票价,我们只需要60就能坐了,老百姓觉得生活便利。

你咋那么天真和可爱呢?我就问你,剩下的65块钱谁掏?然后就来一句,内债不是债,这钱国家掏。咋可能呢?这钱谁掏?你们知道为什么所有基础设施一定跟着城镇化走吗?一定建在新城吗?一定高铁内新城的土地很便宜,圈完了之后,三通一平做完了,十字格一画,土地一卖,盖上房子,80后1万块钱2万块钱买房子,什么意思?这叫间接税,我们是间接收税补直接。

核心是什么?核心就是只要能收上间接税,所有的投资政府基建全能做,间接税收不下来,项目就完蛋了。你们猜中国以后还会有大规模基建吗?我可以明确告诉你不会有了,只有修修补补,因为最大的税源税基没了,这就是2015、2016年中国经济里暴露出来的最大问题。

知道是什么吗?年轻人,你们咋不生了呢?你不生我咋办?你不生税咋办?当时的人口拐点,大规模老龄化开启,年轻人不再生育,这将是巨大的麻烦,因为我们所有债务的兜底没了,谁给我们兜?此时很简单,去海外收税,所以大家就明白,我们要走国际化,国际化的本质就是向海外征税。政府、企业、金融均向居民征税,记住一点,企业征税就是所谓的商品通胀,1块钱的东西卖2块钱,就是向居民部门收1块钱的税,但国内PPI持续为负,代表着企业征不上来税,企业恶性循环,企业债务严峻。PPI为正,代表着企业可以通过通胀、价格转移的方式向居民转移,也就是向你征税。

只要居民部门在,通过供给端的调整,都会带来周期性的PPI恢复,简单讲,供给侧改革一搞,房地产一推,老百姓一买单,企业的债务就不是债务了。所有政府的债务、企业部门的债务、金融部门的债务,只要居民部门能扛得动,都不是债。

你们知道现在的大问题是什么吗?我现在说了某一个行业,你知道有些人犯的巨大错误是什么?到现在为止跟我讲,付总PPI为负很正常,市场化竞争,优胜劣汰,弱者淘汰,强者赢家通吃。我说现在不是的,现在会出现一种情况,都得死。他没懂,在这个图里你们看得懂吗?

一是,看2011—2015年周期里,2008年4万亿基建,加杠杆,把有效需求扩的非常好,那时候政策一出,绝对管用。现在很多官员犯的错误是觉得老百姓还是曾经的老百姓,还用同样的政策。当年的政策是我准备50万孝敬丈母娘准备买房子,结果你跟我说首付只需要40万,那你知道年轻人怎么做吗?40万首付,10万装修,还是花50万。现在的情况是什么吗?告诉他不需要50万,只需要499,年轻人说我不缺那10万,我现在缺那40万。

杠杆到头,消费是完全两个概念,用加杠杆的方式刺激经济,这个手段将失效,我现在唯一投票的全部是降杠杆刺激经济政策,比如说降低存量房贷利率,这是扎扎实实的降杠杆,说白了是银行吐出钱来给在座各位每个月可以少还800、1000。但你还是说降低首付比例,大爷快来,加杠杆哦,我可以告诉你,加不动了,这就是核心。当年产能加上去以后供给过剩,主要是旧产能,出现36个月PPI,企业恶性竞争,破产倒闭,银行压力巨大。我们干了供给侧改革,然后行政性出清一部分产能,其实是转移到新产能上去了,使得供需把需求再一刺激,老百姓买单。

当年的大问题是这儿是一个妹子,白富美,下面是俩小帅哥,俩帅哥在那儿竞争,优胜劣汰,一个把一个淘汰之后,最终迎娶白富美,因为白富美需要一个帅哥,所以你们俩金正,胜者为王。这句话,充分的市场竞争后胜者为王,假设前提是需求不变,经济的这点活儿放到自媒体、网上真的搞坏了。充分的市场竞争后,胜者为王,赢者通吃的假设前提是需求不变,也就是妹子在,你俩竞争。

知道现在的数字啥意思吗?红色线没了,0,PPI如果扣掉疫情期间,持续从2019年之后为负,两个小伙子在那儿PK,目标是胜者为王,最后卷完了,剩下一个,摇头一看,妹子呢?你们等着看吧,这件事情必然是两三年后某些行业必然发生的,会真以为是胜者为王?你的大环境是什么环境?是有效需求面临着中长周期的收缩和调整,这种情况下市场如此恶性竞争和卷是没有赢家的,最后会爆发危机的。我把这话送给某些企业的董事长们。

跟往年不一样,往年任何过剩的市场竞争,最终都胜者通吃的原因是因为居民部门有效需求永远在,永远能加杠杆,永远能为你的企业产能和利润买单。最后只剩下一条路,你们知道是什么路吗?因为这条红色的线只代表着内需,如果国内的姑娘没了,就要迎娶海外白富美,所以他只剩下一条路,出海。这也是网上很多网友们很开心的,我们就是要出海,我们就是要拿下国际市场。

现在国际环境是什么样?是不是20年前、30年前全球往左翼包容融合的大环境,能让你出去迎娶白富美。当然日本的三井、三菱、丸红、伊藤忠等等,在90年之后就是出海迎娶白富美,问题是我们现在能不能?我相信大家心里都有杆秤,“想不想”跟在未来的大环境上“能不能”将形成激烈的碰撞,如果不能,国内没有有效需求给你怎么办?

现在所有经济问题是两个都存在,供给过剩也存在,有效需求不足也存在,我们需要解决问题,答案是必须提振内需,内需的核心就是进行再分配。政府和居民之间进行再分配,贫富之间进行再分配,债务和杠杆之间进行再分配,如果不做,那我们就是35年日本。日本35年周期怎么来的,你们最终知道答案了吧?还不知道,我都把儿子送过去了,你们还不懂再分配是什么意思吗?日本战争后获取所有资源要素(岗位、职务、薪资),战争后的第一代和第二代,到了2012年开始死亡,代际分配,老同志们死了,年轻人吃的蛋糕就自然多了,就这么简单了。

你如果能理解到这个的变动,你就能自然地理解到我在说日本经济的核心到底是什么,是代际分配,不是增长,光增长不分配那就是富着恒富、穷着恒穷。这话翻译到股市上你们知道是什么吗?上市公司不分红没增长的话,答案永远是富着恒富、穷着恒穷。00后指望着炒股来分60后的财产,你想多了,你还不如去萧山当个上门女婿来得更快一点,还不用努力,把自己倒腾的帅帅的,嫁进萧山豪门,财富代际再分配,躺赢,何必要天天炒股累死累活的,心里想着我能干掉60后,那都活成精了,你能干成他?换手跑的比你还快,一边喊着“年轻人快上啊,人生唯一一次机会,此次不all in梭哈,未来就没机会了。”他一边all in着,咱们一边换着手撤,让他们站在高高的山冈上。

市场跟经济是一样的,创造增量的同时也要进行分配,不配没有任何意义。有些事儿都是本质一样的,这就是中国经济当前最大的问题。

2006年供给侧改革,我提醒大家一句,有几个错误的观点特别强调一下。为啥说错误的?这观点用我的话说一定咱们要知道,不一定要让老百姓知道。

举个简单的例子,股票市场创造财富效应,用此来改变国运,这是不是外面经常听到的声音?你想啥呢?房子如果没有收入和租金的回报率和住的功能,那换句话说房子不创造自身价值的情况下,纯换手,依旧答案是富着恒富、穷着恒穷,能创造短期财富效应吗?能,就像2015、2016年我跟你们举过的例子,满仓all in梭哈,融资杠杆伞形都上,然后你发现股票一个涨停一个涨停,账户里全是钱,出门给老婆买了个包,财富效应。

然后呢?跌停的时候你知道你后悔买啥吗?你后悔股票没卖掉,放心股票卖不掉的,因为开盘就跌停了。你真正后悔的是,我没给老婆买这包就对了。我经常劝他们,辛苦你给你老婆买了包,因为她至少还剩个包。你要当时没买这个包,你连这个包都不剩了。

这种换手的游戏只有结果是富着恒富、穷着恒穷,而且后果会越来越差,中国就是典型的这个逻辑。不要把泡沫当成家庭财富去忽悠老百姓,这是扯淡的,背离收入的,背离企业增长和股息分红的,这种东西咱都心知肚明,就是为了来换手的,你把它当成家庭财富配置,会死人的,最后对经济会造成今年这种情况。

换手的时候你看着消费很爽,比如说我这儿给你举的房子,中国的房子上涨幅度最大的真的不是2008—2015年,恰恰是2015、2016年股灾之后房价是最猛的,那时候北京我记得最清楚,2009年炒房的时候,亚运村是17500,2015年年终的时候亚运村房价是25000,2019年亚运村的房价是10万,黑色线是同比上涨,70个大中型城市同比上涨,同比上涨+长时间累计就是房价涨幅最大的时候,所以我们就是2015、2016年那一波,房价带来了大家的消费预期和希望,但从这张图上你们可以非常明显地看到消费背离了收入,这种消费就是大家讲的建立在财富效应上的,但此时的财富并不是收入支撑起来的。

问题就来了,四年前五年前我拍过一些短视频,跟平台合作让我拍些短视频,我当时就讲得很清楚,房子如果纯换手,到底是什么东西?我200万买的房子,600万卖给年轻人,我拿走的就是年轻人未来40年青春的当期现金折现。我可以为我的未来40年潇洒了,他背上这40年的债务,他要还的。如果没有收入的增长,他要硬硬地还40年,他就是失去的,我替他多活40年了,就这么简单。

股票价格也一样,咱们交换的叫时间价值,我是大股东,我现在拿走,我现在Happy,把你套在里面套10年,10年后能不能解套呢?也许解套了,你觉得你开心吗?你丢了10年。金融资产交换成本你们一定要注意时间函数,没有时间函数都是扯淡。

问题就在于,如果收入不增长,纯换,短期内创造的财富效应毕竟等于另外一批人短期内累积的债务。换句话说,我们爽了,他的债务达到一定程度的时候会造成全面的坍塌,整个资产不可能持续的,他买的房子800万买的时候,指望800万买,1000万卖给下一个年轻人,结果发现没年轻人了,下一个年轻人接不动1000万了,此时他的资产负债表就开始恶化了,消费开始出现断崖式的回归,这就是2019年后的结果。2019年后开始逐层断崖往下走,向着真实的收入回归。

千万不敢跟老百姓讲把股票、房子当成家庭财富,过去有年轻人的时候,他才是我们的财富,不管通过股票还是通过房子,年轻人就是所有人财富的来源。说实话,中国的房地产涨了差不多20年的根本原因是啥?有一讲一,凭良心讲,任何的房子年轻人能买走,我们就拿走财富了,我的房子就是他们的负债,咱们所有人在吃的就一条东西,就是居民部门杠杆率,所有人吃的就是这根红色线。

有些研究员说,中国现在居民部门杠杆率比海外低,因为他单纯的对比数字。我可以告诉你不低了,你知道原因是什么吗?我们的杠杆背后没有高福利,高福利国家70%,低福利国家60%,你跟我说60%比70%低,你自己实际的杠杆压力到底是多少,你心里没点数吗?你的教育、医疗、养老,上有老下有小,你需要花多少钱你心里没点数吗?你是社会福利70年代80年代建立起来国家的居民部门杠杆率吗?不是的。从各种现象上去观察,这个杠杆率到头了。

资本市场很聪明,从2002年一直到现在,长达18、20年左右的时间,交易中国的消费升级,不管上证综指是3000点还是3500,不重要,消费板块大周期就是中国居民部门80后加杠杆这一带。

从2019、2020年开始,我对中国消费的所有教育逻辑就是:一是消费会发生结构性的变化,这种变化实际上是代际的变化;二是消费开始降级。

那时候我演讲中讲的那句话,咖啡不再是喝完20喝30,喝完30喝40,喝完40喝50,而是开始喝9.9买一赠一,年轻人开始周四攒个肯德基优惠券。

年轻人开始发生消费型变化,比如我们家孩子喝茶,我看他们喝茶马上告诉我老婆,把囤的普洱的茶饼全甩卖。为啥?我们家姑娘怎么喝茶知道吗?去她办公室,红茶绿茶普洱,你说红茶,东方树叶拿出来拧开,连水都不用,倒壶里,卡哇伊的小杯子往那儿一放,往那儿一倒,请。她不会给你拿个饼搓半天,然后再一泡,那是上一代人。

日本当年经济顶峰期的时候,做日本的清酒和威士忌,结果1990年之后真正火起来的是三得利、Jim Beam嗨棒。年轻人说1000块钱的酒,啥酒?我要的就是10块钱,口味偏甜,RIO喝起来微醺,能醉吗?能,行了。我的社交场景已经变了,我不会有请客吃饭坐在那儿了,我的消费场景已经变成俩孩子往那儿一坐,看电竞比赛直播。

这种年代已经到了,你可千万不要以为没到,你囤的邮票、木头,你记住一点,没得传承的,还囤邮票,我家儿子都不知道邮票长啥样?他倒知道小马宝莉值钱,这就是时代的变化,消费在发生结构性变化及总量上的变化。

中国的资本市场对经济的反应是完全准确的,你们可以看看整个的板块指数,房地产结束了,居民部门的食品、饮料、消费、零售结束了。新能源汽车到底结没结束,我的答案是你们等着瞧。其实现在只有一个板块在扩张,半导体。

你们看懂啥意思了吗?银行的对联叫“只做锦上添花,绝不雪中送炭”,横批“我家银行”。你要是经营不善,我们家第一个干的事儿是抽贷。“内债不是债,只要税还在”,还有一个秘诀是关于中国特色的经济,海外没有的,我们是非市场经济下的“J、Q、K”。

“J”是什么意思?大爷快来。“Q”,大爷,投点钱吧,把钱圈住。“K”是出去,KO。中国能够高速经济发展实际上和这只手有密切关系,大家炒股票都知道,经济越差的时候,你炒的是这只手动不动,有人问中国的股市跟经济到底有没有关系,我可以告诉你,两头是反向关系,中间是正向关系。

两头反向关系就是经济越差,这只手会出动,你会有反向关系,中间一定重新回归到跟经济相关,然后再往那头,过于亢奋了,也是行政关系。举个例子,2015、2016年当时非常典型,我发了个微博,最后一个月,我说你们谁爱玩谁玩,我们要撤了,拜拜了您。当然好处我没做空中国,我做空了香港,我要是做空中国我就回不来了。

那时候我跑到江浙沪调研当时的伞形信托场外融资配置,证监会一出政策,我说很简单,你们谁爱玩谁玩,老子撤了,根本原因这只手才是关键,你现在的市场什么6000点不是梦,10000点刚起步,你哪一条支持了?债务杠杆再一撤,游戏就崩了,赶紧跑。你们不觉得这玩意要出事?那也是手,不是经济,中间这一段才是正常经济发展,而中国的指数编制将决定了大部分时间经济反映出来的是结构,不是增量。现在出来个A500,是想试图让A500类似标普那样能反映总量加结构。

JQK什么意思呢?中国非常奇特,在投资的过程中,只做JQ环节,绝不做K。JQ环节是什么呢?行业有没有崛起呢?没有。行业有没有国家主义的意义呢?有。你们一定要记住一点,我们是右翼,右翼的产业政策全是偏向于国家主义的,所以说国家主义干任何事情不是要挣钱,要的是有,你们记住这句话。所以JQ的所有目的是为了政绩,是为了有。

老股民都懂,看新闻联播炒股的逻辑是啥,你告诉我你看新闻联播是炒经济吗?你看新闻联播炒股就是炒的他哪儿没有他想要,你就投。这时候是没有证伪的,而他会倾注所有资源给你,倾注土地、税收、地方引导基金,倾注一切资源,股市也是资源,用来融资的,会把一切资源给你,你是最爽的。而你一旦做到了遥遥领先,他的政治目的达到以后,就会把你甩到市场上进行市场经济的KO,此时你们就会发现PPI的秘密。你们就会发现PPI的周期性,PPI的周期性很简单,你如果把PPI里的行业再分一下,生产资料、生活资料,再细拆就会发现周期性和政策的关系。

啥东西呢?我没有,就会让PPI为正,我倾注一切资源和方式可以让你在里头挣到钱,而且不需要竞争。但我一旦达到目的,把你扔到市场经济的时候,你们会迅速发展,如果是正式的市场经济,竞争波动会比较温和的,也就是说稍微一有点钱挣,就有人进来了,就会烫平,周期拉的比较长,需要30年才能崛起一个大型企业。

但在中国不是,中国是5年,产业链就要做到全球遥遥领先,在JQ的保护期内,大家都可以活,但同样会造成很多“大家”,一旦保护期一到,扔到市场经济的时候,你们就会发现大家就变成了非自己人,开始PK、竞争、内卷,PPI开始转负,就这么简单。然后一轮产业过剩,开始淘汰,政府驱动再引导新的产业。用这种前浪推后浪的方式,推动整个产业各个环节的周期缩短到五年,但是代价就是很多行业会以很快的速度进入到PPI为负,而所有能到PPI为负的产业,最后能活下来都得感谢有自己的负债端,居民部门能买单,一旦内需不够还这么搞,就会出危机,就是现在这种状态。

老百姓的投资是说你看新能源渗透率到了多少多少了,老百姓开的越来越多了,怎么股票一直跌呢?这就是他的错误,他没有理解政策到底什么时候投资,成熟的时候是不能投的,因为能放给市场的时候一定不那么挣钱了,不放给市场的时候一定是特别挣钱的。

当然,这里面还牵扯到一点就是当年供给侧改革,你们可能都没有人会想到供给侧改革跟当年的股灾和楼市是有高度关系的。当年周兴涛(音)在市的时候,2015年底2016年初在上海搞了个会议让我讲供给侧改革,我说供给侧改革很简单,1997年朱镕基总理翻一下,供给侧改革这个词就来自于那儿。中国这一轮所有的起点是2002年,PPI为正,核心CPI为正,有效需求为正,持续到了2012年,供给开始过剩,但有效需求可以继续加杠杆,在这儿就是供给矛盾,2009年供需双落,这就是中国这一轮从2012年开始的大周期的末端。

上一次末端是什么时间呢?改革开放一直到90年代末,2000年初。出门京东上150块钱买《朱镕基总理答记者问》,三卷本,里面所有的事儿都发生过,房地产泡沫、金融经济危机,鼓励老百姓要有信心。你知道当年怎么鼓励老百姓有信心吗?“心若在,梦就在,大不了从头再来”,刘欢同志从此从那儿活起来的,那就是当年鼓励你们有信心。

把年轻人的失业率不能拉那么高,你们知道当年怎么做的吗?大学本科扩招,因为我们的年轻失业率统计上是不统计在校生的。把你都赶到大学里,失业率就能往后延三年。

今年清北附交本硕的比例是多少吗?1比3,5000本科,15000硕士,当然,当年那种政策最后直接结果造成的什么?曾经本科很值钱,然后本科不值钱。我大概率觉得以后硕士可能也不咋值钱了,如果三年后经济的问题还不基础,我估计开始鼓励你们读博了,读到30岁再开始就业吧。在座家里有孩子的,你孩子不是富二代的,就别卷了,富二代就更不用卷了。用我的话说,想清楚了,后面卷学历没什么太大价值了。

当年还干过啥?银行风险,四大资产管理公司处理不良,供给侧改革,化债,股票和政府化债。如果你想知道股票市场到底用来干啥的,请品品当年。2002—2004年,经济已经恢复了,A股跌到2004年的原因是啥?都有,所以你们知道债务到底怎么化吗?答案非常简单,所有的债务记住上下联,“只要人还在,啥债都能化”。只要人不在,这债怎么化?税率。量收不上来,就抓率。以前有人说中国是高税率,是居民部门高税率,企业部门低税率,因为各种退税、补贴给你的是低税率的,大家要懂得,该抓税率的时候要抓税率,不然是不够的。这一段大周期到现在为止进入到末端,这就是当前最麻烦的点以及外围环境。

海外我就不分析了,因为你倒过去就OK了,你把过去的40年倒过来就是海外正在慢慢发生变化,产业在回归,贸易关系在重塑。我这两天刚从新加坡回来,新加坡、东南亚、马来西亚、印度尼西亚、越南,开句玩笑话说,2016年之后真的是受益于你俩人打架,因为他们在走正向反馈和循环,他的正向反馈循环就是我们转移的。

最后送大家一句话,这张图是全球很重要的,当财政需要扩张,当利率在下降,你们可以想想财政花钱短期内挣不到,国内经济的有效需求不够,储蓄过剩,投资回报率下降,利率下降,在这种背景下,汇率就代表着你的实际回报率以及本币购买力,是减弱的。所以新兴市场一般来讲,如果出现这种状况一是利差会推着汇率贬值;二是政府的债务会推着汇率的贬值,会导致资本流出,会导致你需要加息去应对,但一加息,经济崩,资本进一步流出,这就是新兴市场危机。

注意,新兴市场危机不单纯是美国加息,这是很多人错误的认知。我可以告诉你,中国以前从来不会崩,因为不管老美加到几,中国的投资回报率都远远高于老美的话,我不会有新兴市场危机的,本质上是对内投资回报率和债务。

大家老是讲一句,老美加息就会收割别人。我开句玩笑话说,你如果没有借那么多钱,且投资回报率很强,他加息对你没影响。有一讲一,老讲成阴谋论,不是左就是右了,是偏颇的,我们站在中立的角度看,左有左的问题,右有右的问题,两边都有。

全世界在低利率和政府财政扩张情况下能保证汇率稳定的只有欧美、日本,他采用的模式很简单,自己家里不能挣钱,又要保证自己的信用和币值的稳定,答案就是我可以作为资本方到海外挣钱,这也是全球化必然在当年会发生的路径,拿海外的carry trading套利资产作为背书,支撑汇率。

我可不认为《广场协议》把日本打败了,你去日本访问,他们会告诉你日本当年的官员都是偏国家主义的右翼,因为从二战后过来的,他们在写自己所有回忆录的时候都说,我们日本发展的挺好,我们的政策没有错,都怪美帝国主义。你想想,哪个右翼会写本书说我错了,你们家老婆会说自己错了吗?想多了,怎么着都得说你错了。当年你们看日本官员书的时候,就会形成错误的右翼认知,原来是美帝国主义把日本打败的,而他不会去反思自己的问题。日本中立的这批人相反在做历史分析和回顾的时候,那个答案更准确。

在那个背景下,《广场协议》以后日元大幅度升值,日本形成了低息日元,强势汇率,什么意思?到海外去,购买海外资产吧,日元carry trading套息,到海外去形成,这就是日本的三井、三菱、丸红、伊藤忠,他们承载了日本海外所有财富。而更关键的是日本政府债务用于了对那一代居民的补偿,教育、医疗、养老对你们的支撑。当然,没有增长了,所以他的内心是痛苦的,肉体不痛苦,所以日本是内心痛苦,肉体不痛苦,答案就是抑郁症、焦虑症、自杀森林,如果肉体痛苦,那就不是自杀,那是杀别人。

在这种背景下,财政转向、利率下降,carry trading套息,用海外资产兜住,形成汇率,这就是当年很著名的,日本只要国内有地震,全球资产就会马上出现抛售潮,日元套息交易会迅速支撑日本,重要的就是这部分资产会回流。

美国也是一样,1980年后,美元套息交易,所以全球就形成了低利率美元、借贷美元,永远借贷,美国不能加息,永远降息,美元永远是借贷方,不是投资方。这种背景下,用他的财政扩张和低利率,支撑汇率的就是美元的跨国资产,也就是美股里的所有上市公司和跨国企业。

但是他造成的结果是,三井、三菱、丸红、伊藤忠富了,老百姓穷了,也不叫穷,就是不增长了。老美也是同样的道理,跨国企业高管富了,老百姓穷了,而老百姓最终会用选票红脖子投出特朗普进行逆转。逆转了游戏就颠倒了,低利率就会回归,套利会回归,产业会回归,债务会下降,汇率会走向,就这个逻辑。

中国也想这么干,但做不到,我们现在的问题是利率低又不能低到那么低,财政想帮老百姓又不能真的帮到老百姓,汇率升值,我不知道当年有多少人你们咋想的升到5块6块,不是指2016年,是指这两年突然间有人说人民币将来升到5块4块,你靠啥升?你用什么升?现在说白了就是一种平衡,利率不能那么低,财政不能那么扩,汇率不能那么贬,三者之间找平衡点。比如说2的利率,对应的就是7-7.3的汇率,财政对应的就是能救救地方政府。如果明年打贸易战,变的更加严峻了,那利率可以更低点,比如破2,汇率可以往上放一下,7.3-7.6,7.3-7.8,财政可以再扩一点,这是我们现在手上唯一剩下的牌,怎么可能一次给你打出去呢?咋打,打出去以后没有海外市场给你做背书,我们就是新兴市场了。这个游戏就是现在国内的逻辑,止和稳,没有刺激,靠啥刺激?你对国内所有资产理解透了,大概率也就是明年的一些东西了。

说句实在话,全球这两年战争风险不断加大,某些资产计入的可不是利率、汇率、货币,某些资产在计入的是战争和脱钩,此处请参考俄罗斯。

时间原因,留几分钟给大家提问。

现场提问:付总我问一个问题,您刚才也在报告里提到了,这么大的人口国家,也到了1万美金以上的人均收入,结构性机会会在哪些行业或者哪些领域里有?

付鹏:你就记住一点,你现在要么做富的,要么做穷的,放弃中产吧,这就是答案,做富的不受影响。比如说刚才的奢侈品,富的是啥?各位女士们,记住一点,只买爱马仕,香奈儿、LV、GUCCI、Prada通通放弃,从新品到二手都会崩的,这叫富的。

穷的怎么做?杭州已经开始了,香奈儿一个包一天租金25,二奢已经都玩不转了,现在玩的都是租一天25,干吗呢?租给名媛们拍拍照打打卡,这就是极致的两头。优衣库,要么就往上走,要么就是升级到始祖鸟,要么就往下降级到优衣库,不过现在年轻人更猛,他们都觉得优衣库贵,这都没辙了,我发现优衣库在国内的销售数据在下降。为啥呢?年轻人一问,优衣库挺贵,这没法去理解了,优衣库。就是往两头,中间的部分不做。

第二,年轻人的生意做,老年人的生意做,40多岁中年不做,因为他基本上是上有老下有小,还着债,苦哈哈的中年牛马,这部分放弃。年轻人做就是他的兴趣爱好会发生很大的变化,他们不一样,不管有钱没钱,他们的兴趣爱好完全不一样。比如动漫、游戏、二次元,就像年轻人买包,我们家姑娘买啥包?什么LV、GUCCI、爱马仕统统不买,人家买“痛包”,知道啥是痛包吗?知道里面塞一堆吧唧是啥东西吗?这就是他们那个时代的消费。

老年人你们知道做什么吗?老年人记住一点,人生中最后一刻花钱,一定是最后一个房子,ICU病房。中间60、70岁你也没啥好花的,我一直鼓励中国应该尽早退休,趁着这代人有财富的,能花的时候让他花,把岗位职务让出来给年轻人。你真学日本,老着站着,年轻的上不去,你会发现该花的没花还在工作,该挣的挣不着,时间就拖了,中国也一样,放弃中间。

剩下的是什么呢?国家让你干哪些产业你就干,而且一定干早期,早期干完,后期一定过剩,干早期,达到顶峰的时候就是市场热度极高,要名有名,要利有利的时候,撤。

现场提问:半导体到了吗?

付鹏:没到,很简单,我们还没宣布我们“遥遥领先”,着啥急。会不惜一切代价,哪怕10个公司中有9个是骗子,他都认,这没办法,你必须明白国家主义的特征。

现场提问:感谢付总,想问关于海外资产配置的问题,个人在海外资产美股、美债、新兴市场的债券和股票,有什么建议?

付鹏:新兴市场的债券就是中国,原则上你购买他。比如说你们配置型的会配新兴市场债券,我们投机倒把型的直接在新兴市场放高利贷,任何新兴市场早期第一件事情都进去放贷。2015年去越南,我原来是做小米总代的,干着干着开始放贷,为什么?中国早些年也是放贷的,新兴市场有个特征,金融体系不完善的情况下,央行和银行的利率并不能正确地反映经济周期的资本供应和需求,所以说银行的利率一定低于实际经济的投资回报率。

我们的“搬运工”直接搬到最高的利率上就可以了,放小贷违约率很低的,现在在中国敢放贷吗?

举个例子,在座各位2分有没有人借钱给我,你们大概第一反应是2分,你要我本金的吧?但把时间倒回10年前,2分,开发商问你借,你借不借?那时候你们担心违约吗?不担心,原因跟你放多少息没关系,是对经济的判断,我可以告诉你,新兴市场在这个维度上就是当年的中国。

人家的员工00后就是00后,2015年有一些产业转移跟我们去越南,我跟老板说的很清楚,你不要觉得越南劳动力成本低,不低的。他说这不是挺便宜的,我说加班是要给加班费的,4点59是必须下班的,工会真会罢工的。中国劳动力成本低的原因是啥?牛马可以随便压榨,这才是劳动力低的根因。

这两年又有些企业想往回迁的原因是啥?越南这两年年轻人动不动就罢工,罢工了人家工会就上,你不给加薪人家就不干的,老板拿着没辙的,中国老板很不适应,就想迁回来。我说你也别迁了,因为中国的00后们也很快崛起了,他们整顿职场已经开始了。

这两天香港闹的很凶的是华为的HR招聘,一样的道理,这个时代到了。

新兴市场的债券,本质上确实是高息的,这很好,美股美债就不用说了,美元资产的投资回报率你自然琢磨去,当然美股明年会有点特殊,因为今年创造奇迹了,今年是美股的奇迹年,你们可能都没注意过回报率、波动率、估值,高估值,低波动,高回报,这三种组合理论上不会同时出现的,但今年同时出现了,是绝对异常的。这就是前几年我跟你讲的,你们必须要明白人工智能已经开始了。前几年我说美股会从人工智能的集中到慢慢扩散,很多人说不可能,他对股市结构的理解不够深刻的。

当然今年最辉煌的一仗就是英伟达闪崩之前我们明确告诉国内所有的公募基金,你们要注意英伟达场外杠杆,那天晚上崩了,崩完了之后,第二天晚上马上做了将近8000人的直播,跟各家公募基金说,这就是波动率的高点,因为经济没有问题,市场没有问题,其实就是过低的波动率带来很多人加了杠杆,把这帮人干掉就完了。

当时新加坡有些朋友给我打电话说付总这怎么办?我说你今天晚上把保证金补上,明天就能活,补不上死的就是你。这跟英伟达、人工智能没任何关系,妥妥的就是爆杠杆,爆完了就完了,我们也爆完,去完杠杆,英伟达重新回到3万亿,现在是这种情况。但这种组合明年应该不会持续,高估值、低波动、高回报,不会。明年要么保持着高估值,保持着低波动,回报率就得下降,要么就是保持着高波动,回报率下降,高估值,要么就是直接杀估值,我目前看还看不到杀估值的路径,杀杠杆是有可能的,杀估值的可能性不大,产业的中期早期估值都是偏高的。到明年去看,美股确实不太一样。

但我还是那句话,大部分时间你要琢磨琢磨百年美股为啥都是上涨的,是有原因的。对于老百姓来讲,美股不是因为它高的所以高了,是防止高波动就行了,你只要防止高波动,大部分时间就是让你定投了,这没啥选的。

还有一点,记住,巴菲特是资产管理,不是大散户,老百姓一理解巴菲特持有那么多现金,是不是美股要崩了?现金是啥?是零波动率4.5%股息的股票,你去品品这句话就OK了,在资产组合中你就是评估资值、波动、回报率,当三者之间异常的时候,你的比重会调到0波动率的股息,4.5%的股票上,这就是现金,千万别把巴菲特搞成大散户,说巴菲特买现金说因为美股要崩,做做短视频蒙蒙老百姓可以,咱们自己就别这么干了,这大概就是美股。

主持人:感谢付鹏先生的精彩分享。稍后的自由交流时间,各位有任何咨询或问题,可以和您的私人财富规划师继续交流。活动的最后再占用大家两分钟的时间,麻烦大家扫描屏幕上方二维码,填写调查问卷,我们很期待能收到您对于本次活动的反馈,以便我们在以后的活动中更好的服务于您。

I can now run a GPT-4 class model on my laptop

$
0
0

https://simonwillison.net/2024/Dec/9/llama-33-70b/

Meta’s new Llama 3.3 70B is a genuinely GPT-4 class Large Language Model that runs on my laptop.

Just 20 months ago I was amazed to see something that felt GPT-3 class run on that same machine. The quality of models that are accessible on consumer hardware has improved dramatically in the past two years.

My laptop is a 64GB MacBook Pro M2, which I got in January 2023—two months after the initial release of ChatGPT. All of my experiments running LLMs on a laptop have used this same machine.

In March 2023 I wrote that Large language models are having their Stable Diffusion moment after running Meta’s initial LLaMA release (think of that as Llama 1.0) via the then-brand-new llama.cpp. I said:

As my laptop started to spit out text at me I genuinely had a feeling that the world was about to change

I had a moment of déjà vu the day before yesterday, when I ran Llama 3.3 70B on the same laptop for the first time.

Meta claim that:

This model delivers similar performance to Llama 3.1 405B with cost effective inference that’s feasible to run locally on common developer workstations.

Llama 3.1 405B is their much larger best-in-class model, which is very much in the same weight class as GPT-4 and friends.

Everything I’ve seen so far from Llama 3.3 70B suggests that it holds up to that standard. I honestly didn’t think this was possible—I assumed that anything as useful as GPT-4 would require many times more resources than are available to me on my consumer-grade laptop.

I’m so excited by the continual efficiency improvements we’re seeing in running these impressively capable models. In the proprietary hosted world it’s giving us incredibly cheap and fast models like Gemini 1.5 FlashGPT-4o mini and Amazon Nova. In the openly licensed world it’s giving us increasingly powerful models we can run directly on our own devices.

How I ran Llama 3.3 70B on my machine using Ollama #

I don’t expect that this model would work well with much less than my 64GB of RAM. The first time I tried it consumed every remaining bit of available memory and hard-crashed my Mac! For my second attempt I made sure not to have Firefox and VS Code running at the same time and it worked just fine.

I used Ollama. Install that, then run this command to fetch the model:

ollama pull llama3.3

This fetched 42GB of data into my ~/.ollama/models/blobs directory.

I used my LLM tool to run prompts against the model, since that way both the prompt and the response would be automatically logged to SQLite. First I installed the llm-ollama plugin:

llm install llm-ollama

Then with the Ollama local server running I could run this:

llm models

And see this in the list:

Ollama: llama3.3:latest (aliases: llama3.3)

Putting the model through its paces #

This means I can run prompts like so:

llm -m llama3.3 'Write a letter to the mayor of Half Moon Bay CA advocating for the installation of cosy boxes for Pelicans in the harbor'

And get back a response that started like this:

[Your Name]
[Your Address]
Half Moon Bay, CA [Zip Code]
[Email Address]
[Phone Number]
[Date]

The Honorable Mayor, Deborah Penrose
City of Half Moon Bay
501 Main Street
Half Moon Bay, CA 94019

Dear Mayor Penrose,

I am writing to propose an innovative and unique initiative that would not only enhance the beauty of our picturesque harbor but also provide a safe haven for one of our beloved coastal residents: the California Brown Pelican. I am excited to advocate for the installation of cozy boxes specifically designed for pelicans in the Half Moon Bay harbor. […]

(Deborah Penrose was the mayor of Half Moon Bay for a single year from December 2016 to December 2017—so a hint of some quite finely grained world knowledge there, even if it’s not relevant for the present day.)

Here’s the full transcript, including the response I got when I ran the follow-up llm -c 'translate that to spanish'.

Next I tried a simple coding challenge. I love using Claude Artifacts to build simple single page applications, can Llama 3.3 on my laptop do that too?

llm -m llama3.3 'produce HTML with embedded CSS and JavaScript - no react, no dependencies - for an app that takes a URL to a YouTube video and outputs images along with visible URLs for all known thumbnails for that video'

Here’s the code it produced (the full transcript is here):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>YouTube Thumbnail Extractor</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        #thumbnails {
            display: flex;
            flex-wrap: wrap;
        }
        .thumbnail {
            margin: 10px;
        }
        img {
            max-width: 150px;
            max-height: 150px;
            object-fit: cover;
        }
    </style>
</head>
<body>

<h2>YouTube Thumbnail Extractor</h2>
<input type="text" id="youtubeUrl" placeholder="Enter YouTube video URL">
<button onclick="extractThumbnails()">Extract Thumbnails</button>
<div id="thumbnails"></div>

<script>
    function extractThumbnails() {
        const youtubeUrl = document.getElementById('youtubeUrl').value;
        const videoId = getYoutubeVideoId(youtubeUrl);
        
        if (!videoId) {
            alert("Could not parse YouTube video ID from the URL.");
            return;
        }
        
        const thumbnailSizes = ['default', 'mqdefault', 'hqdefault', 'sddefault', 'maxresdefault'];
        const thumbnailsDiv = document.getElementById('thumbnails');
        thumbnailsDiv.innerHTML = ''; // Clear previous results
        
        thumbnailSizes.forEach(size => {
            const thumbnailUrl = `https://img.youtube.com/vi/${videoId}/${size}.jpg`;
            const img = document.createElement('img');
            img.src = thumbnailUrl;
            img.alt = `${size} thumbnail`;
            img.className = 'thumbnail';
            
            const link = document.createElement('a');
            link.href = thumbnailUrl;
            link.text = size;
            link.style.display = 'block';
            
            const div = document.createElement('div');
            div.appendChild(img);
            div.appendChild(link);
            thumbnailsDiv.appendChild(div);
        });
    }
    
    function getYoutubeVideoId(url) {
        const regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/;
        const match = url.match(regExp);
        return (match && match[7].length == 11) ? match[7] : false;
    }
</script>

</body>
</html>

Again, we’re illustrating some world knowledge here: it knows that YouTube videos are generally available as defaultmqdefaulthqdefaultsddefault and maxresdefault.

Here’s the hosted page, and this is what it looks like when run against this YouTube URL:

YouTube Thumbnail EXtractor. The URL has been entered and a Extract Thumbnails button clicked. It shows five thumbnails, for default and mqdefault and hqdefault and sddefault and maxresdefault - they are each the same size with a hyperlink to the full version.

It’s not as good as the version I iterated on with Claude, but this still shows that Llama 3.3 can one-shot a full interactive application while running on my Mac.

How does it score? #

It’s always useful to check independent benchmarks for this kind of model.

One of my current favorites for that is LiveBench, which calls itself “a challenging, contamination-free LLM benchmark” and tests a large array of models with a comprehensive set of different tasks.

llama-3.3-70b-instruct-turbo currently sits in position 19 on their table, a place ahead of Claude 3 Opus (my favorite model for several months after its release in March 2024) and just behind April’s GPT-4 Turbo and September’s GPT-4o.

Data table showing AI model performance metrics with column headers for Model, Provider, Global Average plus several other performance categories. Visible entries are: gemini-1.5-pro-exp-0827 (Google, 52.38), meta-llama-3.1-405b-instruct-turbo (Meta, 52.04), gpt-4o-2024-11-20 (OpenAI, 50.64), qwen2.5-72b-instruct-turbo (Alibaba, 50.63), dracarys-72b-instruct (AbacusAI, 50.15), chatgpt-4o-latest-0903 (OpenAI, 50.07), gpt-4-turbo-2024-04-09 (OpenAI, 49.83), llama-3.3-70b-instruct-turbo (Meta, 49.78), and claude-3-opus-20240229 (Anthropic, 48.51).

LiveBench here is sorted by the average across multiple evals, and Llama 3.3 70B somehow currently scores top of the table for the “IF” (Instruction Following) eval which likely skews that average. Here’s the Instruction-Following Evaluation for Large Language Models paper describing that particular test.

It’s worth noting that the benchmarks listed here run against the full-sized Llama 3.3 release. The versions I’ve been running on my laptop are quantized (Ollama’s is Q4_K_M), so they aren’t exactly the same model and likely have different (lower) benchmark scores.

Honorable mentions #

Llama 3.3 is currently the model that has impressed me the most that I’ve managed to run on my own hardware, but I’ve had several other positive experiences recently.

Last month I wrote about Qwen2.5-Coder-32B, an Apache 2.0 licensed model from Alibaba’s Qwen research team that also gave me impressive results with code.

A couple of weeks ago I tried another Qwen model, QwQ, which implements a similar chain-of-thought pattern to OpenAI’s o1 series but again runs comfortably on my own device.

Meta’s Llama 3.2 family of models are interesting as well: tiny 1B and 3B models (those should run even on a Raspberry Pi) that are way more capable than I would have expected—plus Meta’s first multi-modal vision models at 11B and 90B sizes. I wrote about those in September.

Is performance about to plateau? #

I’ve been mostly unconvinced by the ongoing discourse around LLMs hitting a plateau. The areas I’m personally most excited about are multi-modality (images, audio and video as input) and model efficiency. Both of those have had enormous leaps forward in the past year.

I don’t particularly care about “AGI”. I want models that can do useful things that I tell them to, quickly and inexpensively—and that’s exactly what I’ve been getting more of over the past twelve months.

Even if progress on these tools entirely stopped right now, the amount I could get done with just the models I’ve downloaded and stashed on a USB drive would keep me busy and productive for years.

Bonus: running Llama 3.3 70B with MLX #

I focused on Ollama in this article because it’s the easiest option, but I also managed to run a version of Llama 3.3 using Apple’s excellent MLX library, which just celebrated its first birthday.

Here’s how I ran the model with MLX, using uv to fire up a temporary virtual environment:

uv run --with mlx-lm --python 3.12 python

This gave me a Python interpreter with mlx-lm available. Then I ran this:

from mlx_lm import load, generate
model, tokenizer = load("mlx-community/Llama-3.3-70B-Instruct-4bit")

This downloaded 37G from mlx-community/Llama-3.3-70B-Instruct-4bit to ~/.cache/huggingface/hub/models--mlx-community--Llama-3.3-70B-Instruct-4bit.

Then:

prompt = "Generate an SVG of a pelican riding a bicycle, start with <svg>"
messages = [{"role": "user", "content": prompt}]
prompt2 = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
response = generate(
    model, tokenizer, prompt=prompt2, verbose=True
)

Which gave me:

<svg xmlns="http://www.w3.org/2000/svg" width="400" height="300" viewBox="0 0 400 300">
  <!-- Sky -->
  <rect x="0" y="0" width="400" height="300" fill="#87CEEB" rx="0" />
  
  <!-- Ground -->
  <rect x="0" y="250" width="400" height="50" fill="#964B00" rx="0" />
  
  <!-- Pelican -->
  <g transform="translate(150, 150)">
    <!-- Body -->
    <ellipse cx="0" cy="0" rx="30" ry="40" fill="#FFFFFF" stroke="#000000" stroke-width="2" />
    
    <!-- Beak -->
    <path d="M 0 -40 L 20 -60 L 40 -40 Z" fill="#FFFF00" stroke="#000000" stroke-width="2" />
    
    <!-- Legs -->
    <line x1="0" y1="40" x2="-20" y2="80" stroke="#000000" stroke-width="5" />
    <line x1="0" y1="40" x2="20" y2="80" stroke="#000000" stroke-width="5" />
    
    <!-- Eyes -->
    <circle cx="-15" cy="-20" r="5" fill="#000000" />
    <circle cx="15" cy="-20" r="5" fill="#000000" />
  </g>
  
  <!-- Bicycle -->
  <g transform="translate(200, 220) scale(0.7, 0.7)">
    <!-- Frame -->
    <rect x="-50" y="-20" width="100" height="40" fill="#808080" rx="10" />
    
    <!-- Wheels -->
    <circle cx="-35" cy="20" r="30" fill="#808080" />
    <circle cx="35" cy="20" r="30" fill="#808080" />
    
    <!-- Pedals -->
    <rect x="-45" y="40" width="10" height="20" fill="#808080" rx="5" />
    <rect x="35" y="40" width="10" height="20" fill="#808080" rx="5" />
    
    <!-- Seat -->
    <rect x="-20" y="-40" width="40" height="20" fill="#808080" rx="5" />
  </g>
  
  <!-- Pelican on Bicycle -->
  <g transform="translate(200, 150)">
    <!-- Pelican's hands on handlebars -->
    <line x1="-20" y1="0" x2="-40" y2="-20" stroke="#000000" stroke-width="5" />
    <line x1="20" y1="0" x2="40" y2="-20" stroke="#000000" stroke-width="5" />
    
    <!-- Pelican's feet on pedals -->
    <line x1="0" y1="40" x2="-20" y2="60" stroke="#000000" stroke-width="5" />
    <line x1="0" y1="40" x2="20" y2="60" stroke="#000000" stroke-width="5" />
  </g>
</svg>

Followed by:

Prompt: 52 tokens, 49.196 tokens-per-sec
Generation: 723 tokens, 8.733 tokens-per-sec
Peak memory: 40.042 GB

Here’s what that looks like:

It's not great. Blue sky, brown dirt, then a weird oval with two eyes and an offset triangular yellow hat, next to a bundle of grey circles that is probably meant to be a bicycle

Honestly, I’ve seen worse.

Posted 9th December 2024 at 3:08 pm · Follow me on Mastodon or Twitter or subscribe to my newsletter

More recent articles

北国“朝圣”的奇遇 –姚艮

$
0
0

不平静的学生时代

发布时间:2010-10-15 11:45:29      发布人: 孝行天下

  1912年12月23日,出生在黑龙江省双城县的一个地主家庭中。父亲是一位小商人,有时开小店铺,有时做店员。8岁时随父亲到了城里,从此离开了农村老家。得伯父姚介忱曾参加兴中会,是孙中山先生的追随者,1912年当了参议院议员,但在反袁斗争中差一点掉了脑袋。后来,他又因反对曹锟、吴佩孚、张作霖,而被通缉,就逃到广州参加了孙中山的北伐准备工作。他一生追求革命,虽受很多挫折,仍不懈地追求真理。之所以走上革命道路,乃是受到伯父的很大影响。生长在中国充满民族忧患的苦难时代。1927年4月12日,蒋介石叛变革命后,积极推行反共反人民的反动政策,国力衰弱、民不聊生。日本则于1927年6月制订了“田中奏折”,确定“唯欲征服支那,必先征服满蒙;如欲征服世界,必先征服支那”的侵华方针。1929年资本主义各国陆续发生了经济危机。1930年,日本也被卷入其中,国内阶段矛盾激化,人民生活在水深火热之中。日寇为了转移其国内矛盾,紧锣密鼓地准备入侵东北,继而侵占华北以至全中国。

  1930年6月在北京潞河中学读书时,加入了党的外围组织“革命互济会”,在党的领导下,从事抗日活动,还在同学中组织“春草读书会”,传阅新文学著作,出版“春草墙报”,发表批判国民党腐败制度、揭露帝国主义侵略以及介绍巴黎公社、广州公社、二七罢工的文章,团结了一批进步同学。

  1931年2月6日,被北平地下党接受为中国共产党党员。随后担任了中共北平市委通县支部书记、通州区委书记。在互济会和读书会的基础上又发展了多名党员。还在通州附近的大镐村、草房等四、五个村子发展了党员,在火车站将所有国民党关于“围剿”苏区的标语和宣传画统统破坏掉,改写为“共产党万岁、保卫苏区”等内容。还在通州城关、公路要道口的八里桥、通州发电厂、潞河中学校园都用红漆写了大标语,这些对我们来说,都是有益于一生的实际锻炼,树立了为共产主义事业奋斗终身的决心。

  在和同志们的活动,引起了学校当局的注意,被他们指责利用潞河中学宣传赤化,反对军警也加强了监视。不但难于活动,更随时有被捕的危险。经支部研究并请示上级后,暂时离开通州,先回东北老家从事抗日斗争。

  1931年8月下旬我返回双城县看望双亲后,又于9月初乘船到黑河看望伯父。但没几天“九•一八”事变爆发,我就在当地开展了抗日宣传活动。到青年学生中、到戏院里、到马占山回到黑河后的抗日群众集会上发表抗日演说,在地方报纸上发表抗日文章。后来又和共产党员、《民族日报》编辑李德才一起,共同协助绥滨县县长陈庸的抗日武装活动。经伯父姚介忱帮助,我们从黑河盐仓缉私队弄了一批武器,武装了陈庸的游击队。

  1932年9月25日,我与李德才抱着扩大游击队力量的幻想,由黑河渡江到对岸的苏联布洛戈维申斯克城,目的是为了学习军事和请求给予武器援助。

  然而,在当时的国际形势下,我们的希望落空了。日寇侵占整个东北以后,不断地在中苏边境制造磨擦,远东局势十分紧张。对苏联来说,当然要尽全力应付。但是他们却未能采取正确的动员民众,团结一切抗日力量、包括长期居住在那里,并且曾为苏联革命献身出力的中国侨民的方针。实际上,当时苏联正处于历史上那段极不正常的清党和肃反扩大化时期。在远东,他们同样也采取了错误的怀疑一切,打击一大片的方针。为了防止日本奸细,他们在远东进行了一场排华运动。许多中国人只因是黑头发黄皮肤就被怀疑可能是日本特务,被没收了几代人辛勤劳动积攒下来的财产,妻离子散,家破人亡。其中许多人被迁往中亚,而一些受到猜疑的人,则以“间谍嫌疑”、“走私犯”、“越境犯等种种莫须有的罪名送进了劳动营。同样,一些到苏联授助的中国游击队,或那些与入侵的日寇作了艰苦卓绝战斗后被迫撤退到对岸去的抗日战士,也成了被怀疑对象。在神经质的“革命警惕性”,同时也不泛民族沙文主义传统思想的作怪,这些中国人不但没有得到援助,还常常受到被骂为“懒虫、胆小鬼”等的无端羞辱,有的人则被送到了劳动营。

  这样的命运也落在我们身上。到苏联后,我们没有受到苏联地方当局的信任和接待,只有先到当时远东中国革命者的组织东方俱乐部去安身。参加了中文拉丁化训练班,毕业后分配到布城运水队,给华侨工人当文化教员,教拉丁化中文。半月后,又转到一所小学当教员。两个月后,布城一位“格伯乌”官员金尼索夫把我叫到市苏维埃,对我讯问了许多从家庭出生,所受教育到社会接触,来苏目的等一系列个人和家庭问题,我以为自己的要求可能被注意到了,很是高兴。过了几天,地方当局告诉我说,要送我到赤塔去教汉字拉丁化,同时学军事和政治。实际上,却在中途包其格辽夫站时,以事先已安排好的诱捕方式让我转车,押解到了伯力,并在没有任何说明的情况下,关进苏联远东政治保卫总局“格伯乌”的地下室监狱,成了第412号囚徒。

  入狱后,一开始没有人审讯,我每天只能领到200克水份很大的面包和一点点菜汤或稀粥,我一再要求见预审员,要求解释逮捕原因,始终无人理睬。于是我开始向地方各级领导以至加里宁和斯大林写申诉信,但仍无人过问。1932年底,我开始绝食抗议。

  绝食第四天,来了两位军官,其中一位是中国人嵇直。嵇直是二十年代初期参加革命的中国共产党党员,曾在莫斯科东方大学学习,后被党中央派往苏联远东边疆区共产主义大学中国班工作,培训由中国上海和东北送去的工人运动积极分子。远东局势紧张后,他被应征参加了苏联远东红旗军。在了解情况后,嵇直告诫我,在这种情况下,应当树立信心,注意身体,可以进行申诉,但绝食是无济于事的。把身体搞垮,更无法应付将来也许更为恶劣的局势。作为一个共产党员,不管在什么情况下,都不要灰心,要经得住考验。鉴于当时的远当形势,嵇直作为一个中国人,一个普通的红军军官,他所做的也只能是帮助我树立信心和向有关当局说明情况,但是,他没有直接决定我命运的权力。他的一番话使我得到宽慰。为了使我振作起来,嵇直给送来了《铁流》和《夏伯阳》的中译本以及几本政治理论书籍,鼓励我要利用这个机会多读点书,同时要在狱中注意锻炼身体。嵇直还帮助给我补发了800克面包,请我吃了一餐比较好的饭。就这样在牢房中关了近五个月。在狱中,我努力读着嵇直送给我的书籍,尽可能保持积极平和的心态,耐心等待着公正的审判。

  1933年5月4日,吃完早饭,我正在读《资本论》时,和一批“泽克”(俄文罪犯的谐音)被集中送到了伯力郊外的一个白色大教堂。原来这是远东伯力运动场劳动营。高大的教堂内设有象脚手架般的高达5层的大通铺,约有1000名“泽克”住在这里。我从此开始了劳改生涯。起初派我在运动场掘土,后来又到江边做码头搬运工,在野外营地割牧草、种菜,到山里砍伐木材。

  1933年8月初,我和一批中国“泽克”以及苏联各民族的上千名劳改犯被一艘很大的客货两用船送往远东黑龙江下游的新城“干草帽子”(俄文“共青城”的谐音)。这原是一座名为上丹波斯基的小村,现在开始兴建一座新城,到处是由劳改犯组成的伐木队、筑路队、建筑队、运输队以及打鱼队。我被分配到离城一、二十公里的劳改队打鱼基地胡米渔场,从事打鱼、洗鱼、腌鱼的工作。

  1933年9月5日,我正在编织鱼网时,几个官员在没有经过法庭辩论和审判的情况下,直接向我宣读了判决书:“苏联远东军事法庭三人小组,经过调查、研究,认为姚艮,又名姚廷枢,亦名姚冬麦,1912年12月23日出生于中国黑龙江省双城县。本照苏联刑法五十八条六款规定,犯有反对苏维埃社会主义共和国联盟的间谍罪,判处徒刑五年,送劳动营劳动改造”。

  终于被扣上了莫须有的间谍罪名!虽然宣判人员说,不服可以上诉,然而,既然在被捕送进牢房和劳动营时,都没法申诉,现在又能找谁呢?好在已经有了个盼头,只有忍受了。从此我开始计划安排自己的生活和学习,准备系统学习俄语语法,提高俄语水平,开始认真阅读马克思主义书籍,注意劳动技能,建筑技术等的锻炼。以便能有价值地度过未来的漫长岁月。我和那些囚徒一道为共青城的建设起了开路先锋的作用,许多人献出了宝贵的生命。

  在远东以及其后的所有劳动营中,每天的劳动定额按全苏统一标准制订,很少考虑工作条件、工具情况和季节变化。一般如果能100%完成定额,可得到800克面包和普通菜汤;完成150%定额的,可以得到1000克面包和突击队员灶的肉汤,外加一盘小米或荞麦面做的饭;如果完成80%的工作任务,则只供给600克面包和清水大锅汤;完成50%以下的,给400克面包;不出工的只发200克面包。实际上实行了一套饥饿政策,使劳改人员不得不拼死干活,劳动确实成了人们的“第一需要”。否则,吃不饱肚子,没有力气干活,完不成任务,得到的定量更少,更没有力气干活,形成了恶性循环。劳动中还实行了劳动优秀的减刑制度。每个季度,宣布减刑一次。但是由于通常劳动强度很大,而工作岗位常常变换,等工作逐渐熟悉,已能较快地完成时,又被调到新的工种,又得从头开始,因此要得到奖励和减刑并不是一件容易的事。

  当时的劳动营从领导到小队长都是由“泽克”自己担任。由于劳动地区的偏僻和艰苦,无需特别看管,那些“泽克”们是很难逃跑的。他们无法积累逃跑期间所需的足够的备用食粮,偶尔有些人要逃跑,往往不是被在遥远的道口抓回来,就是饿死或冻死在途中。

  由于我当时年青力壮,精力旺盛,又善于动脑筋,常常被选为“骆驼”(俄文劳动队长的谐音)。我抱着干革命要受得起委屈,一定要坚强地活着回到中国的信念,决心用优异的成绩表现中国人的志气,并争取减刑提前释放。我带领劳动队中的中国和俄国的“泽克”积极干活,利用大家智慧,苦干巧干,常常是超额完成任务,连俄罗斯的“泽克”领导也常常夸我是好样的“基代岳茨”(俄文“中国人”的谐音)。由于我的生产队一直能较好地完成任务,我又是突击队队员,劳动积极,仅1934年中就被宣布减刑300天。

  1935年3月,我和所有在共青团城的上千名“基代岳茨”被集中起来,用运牲口的棚车装载着,经过十几天自东到西的行程,递解到卡拉干达的中亚劳改营,送到一个蔬菜生产基地,在大田种蔬菜,在菜园暖窖培育菜苗,以及修牛棚、猪圈等泥瓦匠活。

  1936年7月,所有的中国人又被棚车装运到巴勒哈什北边的矛音特车站铁路工地,修筑卡里甘达—巴勒哈什湖铁路,从事高强度的修建铁路设施和工程的任务。在押解途中经过沙漠干旱地区,曾连续在三天的高温中没有喝到水,饱受干渴的折磨。

  修路工程完成后,中国“泽克”被装进带锁的棚车,由内务部押解部队押送,先向西行,然后往北,经十几天的旅程抵达白海边俄国最北部的城市阿勒罕格尔斯克城的递解站。这是一座太阳不落的白夜城。在递解站候船的罪犯除了新押解去的以外,多半是大肃反时期由苏联各地送来的,许多人是原高级官员、军官、教授、记者、作家等政治犯,多属于知识阶层,他们往往高谈阔论而又缺乏斗争性;另一部分人则是流氓小偷等一般刑事犯罪人员,这些人胡作非为,他们组成黑帮,常常结伙欺侮那些不屑与他们为伍的知识分子,偷抢后者的食品、日用品和其它财物。中国人到后,他们又想抢夺中国人的财物,被忍无可忍作了充分准备的中国人联合起来打得落花流水,不得不从此收敛了对中国人的嚣张气势。
  几天后,这群“泽克”又由北冰洋航线的客货两用海轮运送,经七八级大浪,三四天的航程抵达北冰洋沿岸伯绍尔河入海处的纳里扬马尔港。在休息一天加燃料和水后继续航行到沃尔库塔城,再送到瓦尔士特集中营。这个北极之城居住着爱斯基摩人和高米人,靠驯鹿和爬犁作交通工具。在那里我当了矿工,深入地下挖煤。先是当推车工,后来又当镐工,每天限定开挖2平方米面积的煤层,而对深度没有严格要求。最初我们组每天只能完成50%的任务,后来我仔细观察了矿层性质及工作条件,在一位老华侨矿工的帮助下,对工具形状作了改进,大大超过了工作定额。此经验在全矿推广,我被评为斯达哈诺夫工作者,获得了食品奖励,可以吃到肉、咸鱼及米饭,此后的待遇得到较大改善。

  10月,根据得到的减刑期,我的刑期将满,需在冰封到来以来离开北极圈。我和一批俄国犯人,被装上内河拖船沿着伯绍尔河南行,乘了三四天船以后登岸,由两名战士押送,沿着一条废弃的公路路基,经过大森林和高米人的村落,一直向南走。此时已是大雪迷漫,气温低达零下三、四十度,我们历尽饥饿寒冷,行进了约一个月到达伯绍尔集中营设在齐必由城的劳动营。我被送到一个打石场劳动,等待释放。

   11月,劳动营通知说,苏维埃政权决定,凡是属于第58条罪行,即反革命罪行的人,减刑一律无效。必须再劳动一年。因此我又被送到伯绍尔公路工地修路。当时已是严冬,冰天雪地,住在帆布帐篷里,饥饿寒冷,工作条件十分恶劣。开春后,由于表面雪地化成一片泥浆,下面仍是冻土,汽车马车都无法通行,犯人的面包也得由人到很远的面包房去背运,劳动更加艰苦。

  所幸的是,这时洗衣房需要人员,而这种工作当时都由中国“泽克”承担,我也因此被调往洗衣房工作。当时劳动营的犯人和士兵一样,不给个人发服装,而是在每周洗洗澡时,用脏衣服换取干净衣服,由洗衣工集中洗净,供下次替换。我同时负责洗衣和烧澡堂,既是洗衣工,又是锅炉工。

  1936年5月,我又被调回齐必由城内的劳动营,仍然分配到洗衣房工作。在这里遇到许多担任炊事员、理发员、洗衣工、锅炉工的中国人。由于洗衣房工作相对轻松,我经常阅读报纸和一些俄罗斯经典著作,一位同室俄罗斯罪犯,原真理报记者诺维科夫给了我很大的帮助。

  9月25日,刑期满时又获得通知,凡是触犯刑法第58条的政治犯均缓期释放。这使我感到十分失望,但也只好从长计议。于是每天在认真地完成一天的工作定额之后,再接受一些“贵族犯人”,即在劳动队中担任技术员、工程师、会计师、监工员等的特殊犯人的洗衣任务,洗一件可以得到几十戈比的收入,我将这些钱积攒起来以备将来需用。通过这种方式总共积累了约100卢布。

  几年来在劳动营中,我经历多次九死一生的灾难。1933年11月,我带领筑路队在冰封的黑龙江江面修筑冰路,以供由伯力到共青城的运输车队通行,气温常常低到零下35度。每当冰路为雪暴所封阻时,筑路队必须及时前往清路和救援。一次我奉命带领劳动队冒着零下40多度的的严寒和雪暴的肆虐,为一支阻滞在暴风雪中的建设者车队开辟雪路。在完成工作任务返回驻地途中,由于过度的劳累和饥饿,我在队伍后面摔倒后,被暴雪深埋,在绝望无助之中,猛然清醒,凭着要回到祖国的信念和求生的欲望,以顽强的毅力爬出雪堆,等爬近屋前被同伴救起时,已几乎完全冻僵,直到三天过后才活转过来。还有一次,我在北极劳动营当矿工,深入地下上百米采挖煤矿时,矿井突然冒水,我和几位中国“泽克”埋在地下九天才被营救出来。此外,在劳动营和押解转递过程中,还常常会发生俄国流氓抢劫和殴打中国人的事。此时,也不止一次地冒着生命危险,拼死去和他们打斗,以维护“基代岳茨”的利益和尊严。这一切总算过去了,万幸地活着出来了。但是又有多少人知道和记得那些葬身异国的同胞呢?

  我被释放后,没有按一些人的建议留在苏联工作和生活。祖国还在灾难中,我要回到中国参加抗日斗争。获得自由后,我准备去心目中的圣城莫斯科完成“朝圣”。但是根据苏联当时的法律,作为一个由劳动营中释放出来的外国“泽克”,是不允许住在莫斯科的。于是我办理了去离莫斯科100多公里的小雅罗斯拉夫尔城的通行证。到小雅罗斯拉夫尔城民警局登了记,然后前往莫斯科“朝圣”和办理回中国的护照和签证。在莫斯科,一位在北极劳动营认识的、开洗衣房的中国人徐文焕收留了我。我一边帮这位同胞干活,一边办回国手续,终于在40多天后,拿到了回国的签证。我告别了同胞,踏上了回归之路。

  1938年4月,我乘火车抵达边境。在出关时,我再次受到苏联边防人员满怀敌意的盘查和嘲讽,仍然被当作了间谍,只不过是劳改了五年三个月,如今被释放了而己。这段经历使我终身难忘。只有在二十年后,得到苏联政府的平反证明时,才算讨回了公道。

  从1932年9月25日到苏联,11月2日被诱捕判刑劳改,到1938年2月宣布释放,4月离开苏联,总共在苏联关押劳改了5年3个月,在苏联历时5年5个月。时光流逝,当初我是一个20岁的青年,如今已经是26岁了。几年的磨难,使我也经受到人生难得的锻炼。终于离开了六年前期往朝圣的国家,回归到祖国。

边疆烽火多变幻

发布时间:2010-10-15 11:47:27      发布人: 孝行天下

  1938年4月中旬,我到了新疆塔城,祖国对我是那么亲切,我很想立即找到党,但是,此时的我已是人生地疏、身无分文了。在那里我遇到了许多从东北流落来的青年,他们向我介绍了新疆的局势,建议我先在新疆住下来,再慢慢找党。我于是先到塔城行政公署做文书工作。不久,又报考新疆军校。结业后,分配到新疆督办公署翻译室作翻译。此后,又曾到库车骑兵第三连、督办公署参谋处翻译室、新疆军校高级军事研究班做翻译工作。最后又回到新疆军校,任普通学教官,教授国文、历史、地理、数学等课程。

  1941年,我和有俄罗斯血统,回国不久的年轻姑娘瓦莉亚,也就是张春燕结了婚。

  尽管我时时想回到党的怀抱,以使自己能为人民的解放事业做更多的工作。但是,当时的新疆形势十分复杂,难以实现自己的愿望。新疆自三十年代初期以来,就一直有共产党人在这里从事动员人民、组织人民的革命活动,但并没有公开的党的组织。1938年7月,我在库车骑兵第三连当翻译。当时的库车县长是林基路,我们夫妇和他及夫人陈茵素常有往来。陈茵素做妇女工作时,也常常带上张春燕。我曾向林基路谈起自己的经历和参加革命活动情况,林基路告诉我现时新疆没有党的组织,暂时无法解决组织问题,但要努力学习,不要灰心,不要堕落,将来一定会回到革命队伍的。

  这时的新疆督办盛世才一方面投机革命,表面上表示要靠拢共产党,实行“反帝、亲苏、和平、建设、清廉、民平(民族平等)”的“六大政策”,另一方面却利用庞大的特务组织对一切进步活动进行严密的监视,把那些有进步倾向,或者他认为与他意见相左的人或者谋杀,或者投入监狱。特别是1941年苏德战争爆发后,盛世才以为苏联要完蛋了,便公然撕破追求进步的假面具,转而投靠国民党。大肆逮捕有进步倾向的军政人员,杀害共产党人,变本加厉地镇压一切进步活动。库车骑兵第三连也被调回迪化,马匹、枪支被收缴。整个部队,士兵复员,军官遣散,全部瓦解。我和一些军官被软禁。

  一次张春燕抱孩子去市立医院看病,在走廊中碰到陈茵素抱着儿子库尔班看病,后面还跟着一个人,张春燕问她住在哪里,她没有回答。张春燕回来告诉了我。我当即设法请医院中中俄混血的女护士给陈茵素转去几十元钱和一封给狱中人员的信。不久,接到陈茵素请人转来的信,说林基路和周斌(即毛泽民)、徐杰(陈谭秋)已经牺牲了,并随信附来林基路的遗作《新囚徒歌》,以及她的《思夫曲》。还说她们在狱中进行了顽强的斗争,曾经绝过食。这件事使我对盛世才的反革命两面派的本质有了更深的认识,并决心反盛世才。我也作了可能被捕的准备。我告诉张春燕,万一我出了问题,就让她带着孩子回苏联。

  1944年4月,新疆政局又起风云,由于国民党官僚到新疆后,自恃有“中央”支持,以“征服者”姿态出现,常常胡作非为,纳妾、贪污、豪赌,又轻视本地人员,对新疆政事随意抨击,甚至大骂盛世才,使盛世才深受威胁。于是先从他认为受国民党影响较大的原新疆军政文教界的干部和大批学生着手,将他们也带上红帽子,逮捕关押。8月13日开始,盛世才又大规模逮捕国民党派来的中上级人员。消息被重庆得知后,蒋介石决定把盛世才调离新疆改任农林部长,盛世才在迫不得己的情况下,离开了新疆,结束了他对新疆十多年的独裁统治。

  盛世才走后,新疆军校改名为“中央军官学校第九分校”,我调政治部任科长,不久又代理了训导主任。我利用政治部接触人多的机会继续进行反对国民党的活动。

  在这一时期,我经常在一些有正义感的同事中进行揭露国民党的宣传。并由赵丹导演,演出了反对汉奸殷汝耕的话剧《夜光杯》。此剧内容是,女主角因为暗杀未遂而牺牲,由于她的死,激起革命而将汉奸消灭掉。我对剧本作了修改,加进了反对用个人冒险代替革命行动,而不去动员群众的一些内容。同时在女主角牺牲时旁白道:“全中国还在黑暗的统治之中,我未能看见祖国的彻底解放就死去了,希望后来者继续战斗”。以后又根据一部苏联抗德战争的剧本,改写为中国抗日战争的内容演出。这些演出获得了社会好评,但也引起国民党宣传处的注意,说演出中有“共产党语言”。

  在这些活动中,我结识了一群进步青年,其中有张伯中和赵普林。他们曾坐过牢,并且在狱中自发地组织了一个叫“新疆共产主义者同盟”的秘密组织,参加的人多半是他们在新疆学院的同学和原《新疆日报》社的工作人员。他们拿出以共产党章程为依据的“同盟”纲领草案给我看,我也向他们介绍了自己在新疆军校的活动,并参加了“同盟”。整个同盟有数十人,许多人曾在新疆学院受到过林基路的直接教育,或者曾受过中共和苏共的影响。大家都希望能直接得到中国共产党的领导。

  1945年8月15日,日本宣布无条件投降。流落到新疆的东北人多半不愿再留新疆,都在寻找出路。“同盟”于是派张伯中去重庆找党的领导。其他人暂留迪化继续活动。

  不久,新疆军校形势发生很大变化,国民党派了宋希濂来第九分校当主任,唐井然当副主任,另一个十分反动的叛徒孙浮生当政治部主任。此人一到后就到处宣称,新疆军校一定有共产党活动。说这种学校竟然一条国民党的标语都没有就是问题。还对人说,“我看姚艮就像共产党,我到军校就要好好地整他”等等。我和一些同志虽然也在暗地里进行反对“孙猴子”的活动,但大多数人都先后被以各种名义调走了。在学校已很难活动。而且得知校方正在收集我的材料,再呆下去很危险,于是先把妻子张春燕和两个孩子安排到哈密去,然后以探亲为名,离开军校,到达哈密。在哈密找到先期去做发动工作的同志,发现许多熟悉的部队军官都已撤换和调走,无法开展工作。原先希望落空,也进一步感到党的领导的必要性。否则,这个自发组织的“共产主义联盟”纲领想象得再好,口号提得再响亮,只能是空谈多,无法进行实际的工作。

  我于是决定去重庆。但也有顾虑,与党接上关系后,在国民党不断制造磨擦,企图挑起内战的情况下,将来不管被派到战争前线还是去秘密战线工作,妻儿的安排都是一个问题,有可能会成为一个负担,影响党对自己的工作安排。但如果自己独自一人走了,把年轻的妻子一个人留在新疆,那么她又如何能带领两个幼儿生活呢?此时我的心情十分矛盾。

  在作了反复思考后,我下定了为革命事业作出个人牺牲的决心。我对妻子说,为了革命,只有和她及女儿暂时分别,由我带着儿子先去重庆,等事情有眉目后,再来找她们母女俩。深明大义的妻子含着眼泪说:“你放心的走吧,谁叫我是你的妻子呢?等你有了着落,我再带女儿去找你。实在过不下去,我就回苏联西伯利亚找亲戚,去当个工人也可以把孩子拉扯大。我们总会再见面的!”

回到革命大家庭

发布时间:2010-10-15 11:48:07      发布人: 孝行天下

  1945年12月,我带着儿子由哈密乘车去兰州。打听去重庆或延安的门路。正在这时,我看到了在苏联北极劳动营中结识的革命挚友李正文用笔名岳光在报上发表的文章,才知道李正文也被释放回国,并已参加了党的工作,于是便设法和李正文取得联系,谈了自己回国后的情况和迫切找党的心情。不久接到了李正文的信。李正文在信中告诉我,在重庆有一位革命长者、东北人阎宝航。宝航同志在重庆的家被人们称作是“每个东北革命青年的家”。许多东北青年在那里得到热情的接待,找到党的组织,走向革命道路。李正文建议我带着全家去重庆“阎家老店”,他说阎宝航和他的夫人不但会热情地接待我们,还会帮助和党中央驻重庆办事处及周恩来副主席取得联系。

  接到这封信,我高兴极了,但也产生一些顾虑。阎宝航这个名字我是很熟悉的,因为早在1931年,阎宝航等人成立“东北民众抗日救国会”时,就在东北人心目中享有很高的声望。但是,此时如果真象李正文的建议那样,四口之家一起到素昧生平的“阎家老店”去,将会给阎家造成很大的麻烦,怎么好意思让阎家同时供养四口人呢?

  于是,我还是狠心地留下了妻子和女儿,带着儿子踏上了去重庆之路。我们日夜兼程,经过十多天的汽车颠簸,终于到达了重庆新村17号的“阎家老店”。当我怀着忐忑不安的心情敲开“阎家老店”的大门时,受到了阎宝航和夫人高素桐的热情接待。原来李正文事先已经向他们介绍了我的情况,他们已知道我一家四口将要来投奔他们的“阎家老店”,所以当他们看到只有两个人,并且得知我为了革命事业,把年轻的妻子和年幼的女儿都留在了新疆时,严厉地批评了我。阎夫人对我说:“你怎么可以把老婆和儿女抛下不管呢?难道革命不需要妇女孩子吗?你这是为什么呢?……从东北老家出来抗日救国和干革命的,都是我们‘阎家老店’的亲友啊!有什么不好意思的呢?你千万不该这样做啊!”阎宝航也批评了我,说这样做法的确不妥。尽管一见面,就受到了阎宝航夫妇的批评,但我的内心却感到了无限的温暖,深深感受到了同志之间的真正友爱和骨肉亲情般的关怀。

  当晚,阎宝航和我进行了长谈,我向阎宝航谈到重庆来的目的是要和中共驻重庆办事处周恩来副主席取得联系,主要解决三个问题:一是向党汇报新疆一些自发的地下革命组织情况,并请求得到党的领导;二是请党组织设法救助身陷新疆监狱里的一些革命同志;三是,请求党考虑恢复自己的组织关系。我激动地向阎宝航介绍了自己的革命经历,特别说到自己1932年至1938年在苏联劳动营中所受到的磨难,正是由于对共产主义事业的坚定信念,和对党的事业的无限忠诚,我才能在极端困难的情况下坚持下来,回到组织的怀抱是自己多少年来梦寐以求的大事。阎宝航同志静听了我的叙述后,对我历经坎坷十分同情和理解,他对我说:“我为你的苦难遭遇不只是要表示同情,而是更要为你庆幸,你这是受到了千锤百炼的冶炼。一个从饥饿、苦役、屈辱、死亡的漫长的路上走过来的人,一定会成为最坚强的人,一个最忠诚的革命者、最可信赖的好同志!我相信你今后遇到再大的困难,只要你回忆起这些已往的灾难,就会毫不踌躇地冲向前去!”宝航同志的一番话使我十分激动,离开组织那么多年来,这是第一次听到党内同志的肺腑之言,初来乍到时的一些不安的心情顿时消退许多。

  阎宝航在听了我的陈述后,建议我尽快给周恩来同志写出书面汇报。当夜,我掩奈不住激动的心情,不顾旅途的疲劳立即动笔,思绪如潮水般涌来,一下子就写了50多页,复看之后还补充了两页纲要,连夜腾抄清楚。第二天吃早饭时,我就把报告交给了阎宝航。阎宝航非常理解我的急迫心情,他劝慰说:“我非常理解你这种急迫的心情,你有那么多话要向党说。不过,你要注意身体,要准备承担工作重担呢。好好休息吧,我现在就送给周恩来同志。恩来同志那里办事是从来不拖拉的,你静等好消息吧!”

  但是我并没有休息,我想到昨天刚到重庆时,听到一群青年学生在气愤地议论报纸上的一篇署名文章,那篇文章对坚持在东北的抗日联军进行诬陷诽谤,把抗日英雄杨靖宇、周保中、李延禄等说成是红胡子,这引起了我的愤怒,我便用自己的亲身经历,写了一篇文章:《一个东北抗日联军战士的控诉》。后来这篇文章因为正符合当时形势的需要,很快便在《新华日报》上整版刊登了。

  中午时分,阎宝航回来了,他高兴地对我说:“恩来同志虽然工作很忙,但立即看了你写的材料。他说他要派人和你详细谈谈。让我先转告你,关于你在苏联的遭遇,并不是偶然发生的事件。我们有好多同志到苏联学习,遭到这种不幸的误解。他们外部受到帝国主义的夹攻,内部又有灾荒饥饿和叛乱,再加上敌人的挑拨离间,自己心中无数,结果就发生这种亲痛仇快的事情……”这番话使我如释重负,心头感到一阵温暖。

  下午,恩来同志的秘书宋岱(宋黎)同志来了,他对我说:“恩来同志叫我来看望你,并让我转告你,从全国形势看,我们在东北、华北、华东的成败是关键,新疆现在是鞭长莫及。组织希望你和那些流落在新疆的爱国青年能回到东北去工作。你在信中提到的那些曾在新疆学院、新疆军校受到党的教育的革命青年,应当尽可能在目前接收东北的关键时刻,设法到那里去工作。组织希望你借助东北的关系回到那里去做地下工作,要有长期干地下工作的思想,准备干上十年、二十年,直到革命胜利。党决定承认和恢复你的组织关系,你努力干吧!关于新疆狱中的同志,你信中说你与他们有联系,最好先弄一个名单来,我们一定设法营救!”

  我对于这么快就和党联系上,恢复了自己的组织关系,并得到周恩来同志关于工作安排的指示十分高兴,表示一定要按党的指示尽快去东北。宋岱同志又转过话头说:“你就一个人带着一个小男孩去东北敌区工作,行吗?”阎妈妈这时就说:“关于这个问题恩来同志已经有指示,他说,现在要把姚艮安排到东北去工作,孩子妈妈有俄罗斯血统,一个单身男人带着一个有外国相貌的孩子,很容易引起人们的猜疑。带着妻子孩子,那是最好的掩护!应当把老婆孩子接来一起去东北。”

  根据周恩来同志的指示,阎宝航催促我往新疆发电报,让妻子带着女儿尽早去兰州,阎宝航又给兰州的朋友发电报,请他们帮助母女俩买机票飞到重庆。这样,在周恩来同志及众人的关怀下,分别了两个星期后,张春燕就带着女儿也来到了重庆。张春燕和孩子的到来使阎夫人非常高兴。她不停地和张春燕亲切地交谈,安慰他们,并让他们不要见外,她认张春燕做了她的干女儿。张春燕非常激动地叫了声阎妈妈,并给敬了礼。从此,姚艮的四口之家和阎家融合成了一个大家庭。

  当时,阎夫人已有明诗、明英、明光、明复四个孩子,还有一些老乡,一家有八、九口人,再加上我一家,为了维持这十几口人的大家庭,实在是一个沉重的负担。为此阎妈妈想了很多办法,每到星期五、六就捡出一些衣服、字画、家具交给由延安归来的大女儿明诗去卖,而明诗不但要帮助妈妈料理家务,照顾弟妹,还要照看自己新生的儿子,伺候生病的丈夫,此外,还要常为东北救亡总会的事,协助父亲到处奔走。为了能多少帮点忙,在这段时期我便主动承担卖东西的任务,常常和明诗在附近街道摆摊卖书画和衣服等。《一个东北抗日联军战士的控诉》在《新华日报》刊登后,报社给了50元稿费,我交给了阎妈妈,阎妈妈当时坚决不要,后来虽然勉强收下,不久又还给了我,说是节省下来给孙儿孙女的。

  在等待分配工作期间,我参加了阎宝航组织的一些进步活动,临时担任了阎宝航的秘书。在一次“阎家老店”召开的座谈会上,我遇到了双城同乡、国民政府检察院的委员王冠吾先生,不想王先生竟是我的姑父,他是在我离开家乡双城后和姑妈姚玉霞结婚的。王冠吾在国民党内有很好的关系,他是重庆国民参政会主席、国民党元老莫德惠的亲戚和至交。当阎宝航同志和宋黎同志得知我有这样的社会关系时,鼓励我和王冠吾家多多接触,并通过他请曾任中东铁路督办的莫德惠介绍去中东铁路工作。当莫德惠见到我时,知道是好友姚介忱的侄儿,概然应允,因为他的朋友张家鳌是东北行辕经委会主任兼中长铁路理事长。不过他认为中长路沿线战事非常紧张,很少有人愿意冒生命危险去那里工作,所以建议我跟他们一起到上海、南京去,到那里帮我找一个接收工作,静观时局的变化。但在我的执意坚持之下,莫德惠为我向张家鳌写了推荐信。这样我的工作定了下来。

  1946年4月8日,叶挺、王若飞因飞机失事牺牲,重庆举行了隆重的悼念活动。我随阎宝航参加追悼会回家后,阎宝航和我进行了彻夜长谈,阎宝航以长者和亲人的态度,亲切而诚恳地谈到自己追寻真理的历程。教导我“为了做一个有觉悟的革命者,必须向社会学习,向历史学习,向工农学习,向前人留下的哲学、伦理、社会、财经著作学习。”告诫我“真理只能从学习和实践两个方面得到!”使我受到了终身的教益。阎宝航还告诉我,他即将按照党的建议到南京、上海去。

  在阎宝航飞往南京的前几天,我陪同他参加了东北救亡总会举行的记者招待会,阎宝航在招待会上大谈和平、民主、团结、进步。会后,我把这些讲话进行整理,由阎宝航修改后于次日在重庆出版的民主刊物上发表。

战斗在东北交通线上

发布时间:2010-10-15 11:49:11      发布人: 孝行天下

  我接到了乘飞机去东北沈阳中长路局上任的通知,阎妈妈搂住张春燕的脖子,反复叮嘱:“春燕啊,我的好女儿!记住你阎妈妈的话,要多多帮助你的丈夫,遇到什么困难也不要离开他,时时刻刻要为他的安全多操些心,多尽些力。”

  1946年5月中旬,我们一家乘一架由美国人驾驶的东北经济委员会包机飞抵北京西郊机场。临离开重庆时,宋岱代表组织再次嘱咐,希望我到中东路争取担任较高职务,并要有长期作地下工作的思想准备,在东北扎下根后,将会有人和我联系。同时,告诉我,中长路局长王竹亭比较接近党,可以做他的工作,得到一些帮助。还告诉了一些其它可以利用的关系。在北京期间,我与北京军调部中共代表团徐冰在北京饭店接头。徐也要求我准备在中长路扎根,主要任务是收集军事运输情报。

  6月初,我们乘火车到达沈阳,遇到先期到达的新疆“同盟”中的同志张伯中以及其它许多由新疆来东北工作的同志,他们大多已作为接收人员分配在各个不同的部门。我作为接收大员担任了总调度所主任,以后又因情报工作的需要调中长路长春分局车务科任副科长兼中长路长春分局调度所主任,所属辖区正是国民党军队运输调动最繁忙的铁岭到松花江站地段。当时松花江以北即为解放区。

  在此期间,我曾冒险将由关内到达长春的高崇民的夫人和他们的三个孩子掩护住在自己的家里,然后又转弯抹角地请长春站站长帮忙把他们送上去德惠的列车,又请熟悉的列车长帮助照看,使他们安全地通过封锁线回到哈尔滨。10月底,阎妈妈又带着孩子明光,明复和东东、玲玲到了长春。我把他们接到家中掩护,并且利用关系仔细安排好车辆,交待列车长给予关照,而他自己也上了火车,在一旁暗中监护,亲自送他们到德惠车站,看到他们平安地进入站长室的贵宾通道,才放心地返回长春。

  我利用有利条件准确地搜集了敌人的军车调动运行情况。11月,我利用当时天寒地冻的气候条件,和国民党军队各个部分倚势乱下命令形成的种种矛盾,在燃煤运输供给方面,制造了许多人为障碍,造成了交通阻塞,成功地阻拦了部队的调动。

  事情的经过是这样的,1946年冬,我军在德惠一带发动了一次冬季攻势,国民党积极调兵遣将前往救援。我事先得知情况,把管区各站的好煤都分配给铁路员工作为冬季生活取暖用煤,剩下的大都是含硫量很大,不宜用于烧机车的营城子煤。于是,我便以此为借口,把路局掌握的棚车调往西安运煤。当陈明仁部队要求由四平开出四、五列列车要到德惠一带支持国民党挨打部队时,我向总局报告,沿线的优质煤很少,机车的质量又差,烧不上汽,应当允许从西安开来的煤车优先于军车先行,以便把好煤送到各站。总局调度所与军运指挥部交涉,没有结果。结果五列开出的军车因为煤烧不出汽,被迫停在昌图附近的几个站。这时,我又指挥长春站的调度机车从长春开出去救援,而这些车本身的质量也很差,结果不但没有能救援军车,反而把昌图附近的几个站完全堵塞了。从沈阳开来的特快也在昌图站熄火停车。此时正值严冬,车上的官兵都冻得要死,大大地影响了士气。他们便向铁路工人寻衅,制造事端,整个车站一片乌烟瘴气。

  1947年元旦,我与长春局牟局长一起由长春到昌图解决阻塞问题,由于受到国民党军的威胁和围攻,牟未敢露面即独自返回。我为了进一步破坏,提出用存放在昌图的枕木点燃熄火的机车,以便解决堵塞问题。但当把堵塞排除时,德惠我军已打完仗胜利返回了。陈明仁的部队只好又返回四平。事后国民党军曾追查过堵车责任,并怀疑到我。但因我有事先向总调度室和军运指挥部请示的记录,说明责任在部队没有听从我的建议,又互相争行,以至发生冲突。问题只好不了了之。

  不久,我被调往中长路总局行车安全室工作。后来又通过关系到东北行辕经委会交通处第二科当科长。这是一综合东北地区铁路运输情况的调查、统计、综合的机构。各铁路的军运、货运、客运都要按日报来,极利于收集军运情报。

  但当时地下工作的领导王同安指示我,还是回到中长路好,我便通过王竹亭的关系到沈阳南站当了站长。当时,国民党在东北的主力军都集中在沈阳周围,他们的军事活动主要依靠铁路运输。而铁路向北只能通到四平,向南到锦西、山海关。沈阳车站成了龟缩在沈阳的国民党军运与锦州和关内联系的最主要的车站。坐在沈阳站内即可了解各站情报,探知国民党军队的活动情况。

  但是不久,出现了两件意外事件,一件是张伯中的哥哥带患精神病的母亲回解放区,在边界受到化装为我方人员的国民党特务的盘查,不慎说出是要到解放区找党组织,并说出了在沈阳的张伯中,特务机关便通知沈阳警备司令部逮捕了张伯中。但因一时未难于查清,便由我找了一个铺保保外候审,随叫随到。

  另一件是9、10月间,王同安回哈尔滨汇报工作,回来时带了一部电台,还有一名电报员同行。但在开原时受到国民党53军的检查。王示意电报员离开,他自己用钱和敌人周旋。电报员当即逃回哈尔滨,但王同安还是被捕,不久就叛变了。他告诉敌人他老婆的住址,还说了孩子的名字和生日,便衣特务当即到沈阳按地址去找“王太太”,但引起他妻子陈雪屏的怀疑,便由其他同志出面询问,来人答称受王同安之托,要亲见王太太有要事转达,并说了孩子的名字和生日。根据这个情况,同志们分析一定是王同安出了问题,但当时并未想到王可能叛变。经大家研究,认为虽然处境很危险,但没有接到哈尔滨的通知,不能随意停止活动,而应继续为党工作,但要提高警惕,做好应急准备。这样在紧张的气氛中度过了两个月。
  12月底,王竹亭局长听到一些风声,便警告我说话做事要小心,这年头国民党什么事都做得出来,赶快把家里的书信文件清理一下。第二天王竹亭又派人转告我,有人供出我是共产党,要小心。我即与同志们商量,大家认为,王同安两个月无消息,他不至于会供出大家,至于戴共产党帽子也不是第一次,可能是谁想当站长而造的谣,不至于有大问题。在这紧急时刻,更应坚持,不能被吓跑了,等等再说。

  又过几天,一位同志赵普林到《和平日报》社与另一位同志赵新亚接头时,碰到赵新亚的弟弟,说哥哥已被捕,家已经被监视。赵普林当即通知陈雪屏和我以及其它可能通知到的同志。我得到通知后,立刻找到陈雪屏要她与自己一起走,但陈说,王同安没有消息,她不愿走。后来她被敌人抓住,也成了叛徒。而那些没有来得及通知到的,以及在长春、吉林、锦西等地工作的同志后来都被捕了。

  我在劝说陈雪屏逃走无效后立刻到了车站,看看是否有北去的列车。我在车站碰到了沈阳站客车主任李福庭,李以为是站长来检查工作,便紧跟在我身后不断向我汇报。此时正好有一列晚点火车停靠,但很快就要开了。我无法摆脱李福庭,但如贸然上车,必然会引起李的怀疑,只有对李福庭说,自己曾给张伯中作保,现在张伯中跑了,警备司令部向我要人,没法交待,只好逃跑。我又对李福庭说国民党快完了,我想回北满探家去。又说,你的家也在北满,何必在这里干?我在哈尔滨有许多朋友,不如一起走,到那里去,请他们给介绍其他工作。李福庭同意了,说回去取东西就走。我说要走不能让任何人知道,必须现在就走,那些东西值不了多少钱,就不要了。于是两人一起上了车,坐到三等车厢中。当时因火车晚点,车内乘客很少,车长走来认出了我们,便请我们到软卧车厢,说那里有暖气。我称,路局临时派我们办点事,便去了软卧。车开后,李福庭问我准备怎么走法?我说,先去铁岭,找一个熟人住下再打算。李提议先到开原,那里有一位他的老同事,原是一个地主,他在地方上人头很熟,可以请他帮助把他们送出去,我也知道此人,他曾在新疆公路局当过局长,过去在东北也参加过革命活动,便同意了李的建议。

  第二天一早我们到了开原,找到了李的朋友,这位朋友很热情地接待了我们,请我们吃饭。当问及我们跑出来的原因时,我便把李福庭说的话说了一遍。那位朋友问李福庭为什么也要跑,说两个人一起走,遇到敌人盘查,很可能问出漏子来。我同意他的看法,便和李福庭商量,决定李在我走后,再回沈阳,就说是我叫他一起到开原,说铁路局派他们检查工作。后来叫他在车站附近等候,结果久等未来,就不知道我的下落了。

  这位开原朋友告诉我可以经过老开原城到马三家,再通过威远堡门到解放区去。威远堡门是一个两不管的地方,那里有他的一个表弟是当地有名的地主,有人问,就说是去找他的。当日中午,我就进了老开原城。在出城时,有部队把守,检查行人,我装作办公事的样子,在一旁观看检查,然后问检查人员前面有什么情况?随手将身上带的东北行辕经委会的职员证晃了一下说,那我到前面看看,就这样混出了城。到了马三家又受到哨兵的盘问,我答称是到威远堡门亲戚家,接回娘家看病的老婆的。并故意问那里是否有情况。如果那里进不去,我还要回来。这样消除了哨兵的怀疑,放了行。到了威远堡门,又遇到一个哨所,我主动向他们说明,他已和马三家岗哨说好,是来威远堡门接自己老婆的,不知道前面有什么问题,如果进不去我还得回来,就这样,混过了国民党的最后一个岗哨。

  当晚,我在那个朋友的表弟家住了一晚,第二天一早,迎着朝阳,大步向解放区迈进。在第一个村子,我遇到了解放军战士,说明自己是东北局社会部派到沈阳做地下工作的,现在经清源县回哈尔滨去。部队保卫人员在了解情况后说,由于部队正在深入敌区的作战行动中,在没有得到哈尔滨社会部的证实前,不能放走。此后我被送往特务排,在零下30度的严寒风雪中,日夜兼行随军行动。此部队是朱瑞领导的炮总,我随军先到了昌图一带,后又横过中长路进军到法库一带,以后又被送到郑家屯的后勤兵站,在那里等候一个多星期后,才接到哈尔滨社会部的复电。后勤部的负责人热情地将我送上了火车,经两昼夜才到哈尔滨。

  我离开了长春当天,即有国民党特务住到家里监视,企图通过蹲守抓住我或其他同志,直到一个月后才撤走。我走后,张春燕生活十分困难,幸好有当地铁路工人偷偷送钱送粮,暗中保护。在生下第三个孩子后,她终于逃过了敌人的监视,抱着两个月的新生幼儿,背着女儿和大儿子,历经辛苦,涉水渡过齐腰的小河,闯过敌我双方的封锁线到了安东解放区,但是她当时并不知道我在那里,所幸的是她回答安东我方同志的审查时提到她在重庆“阎家老店”住过,她是阎夫人的干女儿。当时阎宝航已担任了辽北省人民政府主席,这样经向阎宝航打电话询问,阎宝航给予证实,并告知说,姚艮现在在吉林东北大学。于是张春燕又带着孩子于1948年的中秋节赶到吉林。及至到了东北大学,又答称查无此人,只有一位叫姚冬麦的同志曾在学校呆过,但现在已转到哈尔滨去了。这时张春燕才松了口气,原来学校不知道姚冬麦就是姚艮。当时的校长是诗人李季,当他知道张春燕冒着生命危险历经千辛万苦地带着三个孩子找组织的事迹时非常感动。热情地招待了张春燕,同时找了马车,派了两个同志送她去火车站。临行前,李季召集全校人员列队向大家说明张春燕的事迹,并以诗人的激情,动情地说,这就是我们伟大的中国母亲,正是因为有这些平凡而伟大的妻子对丈夫的支持,我们的革命就一定能够胜利。就这样,张春燕在同志们的具体安排下,过封锁线、赴安东、绕道吉林到达哈尔滨,找到了我,一家人总算又团圆了。

和平年代的风雨人生

发布时间:2010-10-15 11:50:01      发布人: 孝行天下

  我从敌区回到哈尔滨后,和一批同样由敌区归来的青年一起,被送到佳木斯东北大学学习和接受审理。审查结束后,被分配到哈尔滨公安总处工作。

  建国后,我被调往北京,先后任公安部办公厅秘书处俄文秘书、办公厅秘书处编译科科长、编译处处长及公安部首席苏联专家的翻译。

  1958年我兼任群众出版社总编辑,在繁忙的行政工作之余,自己也致力文学创作活动。翻释出版了多部外国文艺书籍。其中有《金星英雄》(苏)、《丰收的故事》(苏)、《基础》(波)和《一年长的故事》(意)等多部长篇小说,以及《山里的春天》和《红色保险箱》等电影剧本。也发表过诗作和其它作品。其中巴巴耶夫斯基的长篇小说《金星英雄》曾获得斯大林文学奖金一等奖。经我的介绍。在50年代曾风靡全中国,对新中国的文学事业及正在进行经济建设的中国人民都产生过不小影响。

  1961年春,我被任命为公安部办公厅副主任。为解决困难时期的群众生活问题,在嫩江建设农场。在当时极为困难的条件下,利用定额加奖励的制度,调动了农场人员的积极性,使得在农场开办的第一年即获得大丰收。

  十年浩劫期间,罗瑞卿部长被批斗。我先是靠边站,造反派要我交待罗瑞卿如何指使我里通苏修。后来,阎宝航受到“四人帮”的残酷迫害,和儿子明复被关进了秦城监狱,我又因此受到牵连,被逮捕蹲了十年监狱。妻子张春燕也因有俄罗斯血统而被怀疑是苏修特务,被送到“干校”隔离审查。30年代我曾在苏联坐牢和劳动改造。当时我做梦都不会想到,以后在自己的祖国,还会受到更长时间的监禁。两者不同的是,在苏联尽管有高强度的劳动,但还可以和人们接触交往;而这一次没有劳动,却是无指望的与亲人隔绝、与人世隔绝,迫使人陷入精神崩溃。这实在是又一场历史悲剧!所好的是,我在苏联已经历过考验,有着坚强的信念和决心,来度过监禁的十年。

  “四人帮”倒台后,我被“解放”了,恢复了公安部办公厅主任的职务。在我恢复工作后,曾担任公安部清查委员会主任,尽力地帮助那些受到“四人帮”迫害的同志,帮助他们落实政策,为他们解决生活上的困难,得到很多老同志的赞许。
  1968年5月阎宝航在秦城监狱被迫害致死,1978年1月党中央正式为阎宝航平反,当我得知阎老的死亡后十分悲痛,帮助阎宝航的子女对阎宝航的遇难经过进行了仔细的调查。

  离休后,我一直担任公安部咨询委员会主任,力所能及地从事一些社会工作。鉴于我国内国外的两次特殊遭遇,常常引起自己的思考。很想把自己的经历写下来,但又常感精力不足,但使命感终于驱使已不顾年老体衰,且时有社会活动的困难,常常“秉烛夜书”,终于完成以我传奇生涯为题材的计划中的多部作品中的第一部《一个朝圣者的囚徒经历》。

  我是在六十年后,以八十高龄完成这部作品的。六十年过去,弹指一挥间,想当年怀着朝圣之情前去参拜的苏联已不复存在。而中国在经过种种人为灾难,特别是“文化大革命”后,已摒弃了那些极左路线,走向了以经济建设为核心的发展轨道,今天的中国已发生了翻天覆地的变化。但是,前车之鉴仍是人们应当牢记的啊!
   
往事的思考

  最后,让我用一段我常说的话来结束本文:“作为遭受无端迫害的人来说,当然这是很不愉快的事,特别是对于那些没有死在敌人手里,而是死在自己人手里的人来说,这不能不是一件憾事。至于我,对这一段时间的经历,我以为还是有所得的。你知道,在这漫长的岁月里,我接触了成百上千的各式各样的人物,上至劳改营的各级领导,这些领导也是劳改犯,其中有教授、学者、军官、革命家和政治家;下至一般的囚徒,包括苏联各民族各阶层人在内的囚徒,自然也有许多真正的流氓罪犯、反革命分子。此外,还有数以千计的被当作“阿根特”(间谍)、“施波”(间谍嫌疑)、“施别翁”(奸细)、“坡哥(越境犯)、托派分子、阶级异已分子等的中国囚徒。他们中的大多数人都是热情的革命者,许多人是被我党派去学习革命理论的党的早期干部,他们是在苏联清党和肃反扩大化中,被王明、康生一伙坏家伙诬陷的。但是你可以看到,在那样的劣境下,许多革命者仍然对生活、对未来充满希望,例如,我在中亚劳动营结识的范家巽和北极劳动营相识的李正文同志,就是我所尊敬的好同志。他们在那样的环境下,仍热爱生活,努力学习马克思主义,对革命充满信心。象这样的好同志还有不少。当然也有一些卑鄙的家伙,无事生非,诬陷同志。我们可以充分看到许多人间真善美与假恶丑、高尚与卑鄙、纯真的人性与扭曲的兽性的斗争。这些生活经验都是宝贵的财富,是一辈子可以享用的。在劳动营中我广泛的接触的是处于社会下层的那些苏联人,除了一部分人确实是罪犯和流氓外,更多的是一些政治犯。尽管许多人是受冤蒙屈的,但他们仍是充满理想和幻想,他们相信未来,他们积极劳动,固然是要填饱肚皮,但也为自己的劳动能为后人造福而欢欣鼓舞。你想,象远东泰阿森林的共青城,那里原是冰天雪地、人迹罕至的原始森林,在短短时间里,就被创造出来。当你亲眼看到那里的森林,那里的大树,那些盘根错节的树根,那里的池沼和灌木丛,怎样在你的手中一点点被铲除,变成街道、变成工厂、变成商店、变成居民区,一句话,变成一个崭新的城市,你会想到劳动的伟大。你不能不承认这种建设的成功,这不能简单的贬为‘犯人劳动’,也不能只是简单地用人道不人道的语言去分析。你不能不承认在这支劳动大军中,有一种劳动创造世界的真理在起作用。也不能不承认,尽管是不自由、常常挨饿的犯人,他们也同样有一种向往真理、为后代幸福生活而牺牲的崇高思想和力量,在指导他们的行动。共同的劳动、共同的劳动成果,使他们绝大多数人相信未来的共产主义理想。他们只有在想到自己的委屈时,可能有仇恨、有哀怨和咀咒,但他们在行列中、在伟大的成果面前,却不能不成为自觉的建设者。这正是时代的悲剧!也是时代悲壮的喜剧。

  革命是一场社会的大变革,事物的发展是曲折的,绝不象一些教科书中所写的那么单纯。革命会有牺牲。除了在对敌斗争中会死人外,死于自己人手中的也不在少数,这一点历史已经证明,古今中外都是如此。我的那段经历应当说是不应该发生的事。但是既然已经发生,更重要的便是要汲取经验教训,不让或少让那些不该发生的事重演。比方说,当初在苏联发生过的事,许多竟然在几十年后的中国,特别是在“无产阶级文化大革命”中变本加厉地重演,这是什么原因呢?这就值得研究了。可以不可以说,这是一种革命中的病患?当然,这和每个革命者特别是领导者的思想水平和道德品格是密切相关的。正因如此,我们有充分理由和权利提出,有必要正视这些历史上不应发生的事,我们的历史家和政治家应当正视历史,要研究发生的根源和克服的方法,从而让这样的事不再发生。只有这样,才能团结全党全民、同心同德地完成我们的革命事业。”

涼山日記

$
0
0

馮良:小時候住過的木頭房子——《喜德縣》之一│涼山日記

現在走在喜德縣的街上已經很難看到全木頭的房子了。 那些房子,帶樓不帶樓的都一樣,是用水泥和磚砌起來的。

我這樣說,只是在懷舊。 要是我仍然生活在喜德縣,我一定也搬到一個水泥房子裡去住的,世事如此嘛。 而且一點都不會有遺憾的心情,水、電、衛生間皆而有之,多舒服啊! 再說木頭房子反正我小時候是住過的,是一個鄧姓財主留下來的老宅子。 現在講出來肯定會讓很多富有懷舊情結的人眼紅。

我家住的那個宅子……哦,先要澄清一下不是我們一家住的,我父親的單位,還有一部分職工都包羅在其中。 這個宅子在縣城當時的鬧市區。 門口有一條丁字形的街道,豎的那一條順著一個山坡通向政府機關,橫的那一條平行去往市場。 郵局呀新華書店等都挨在近旁。 它們的外牆是用土夯成的,就像我們後院那兩排相向而立的土房子。 據說那兩排房子是鄧家的下人住的。

我父親的單位叫向榮區,介乎於縣府和公社之間的政府機構。 好像當時只在我們那樣的民族地區才多出這麼一個級別來。 後來撤銷了,「向榮」這個名字也沒有了,以它包含的意味來說,也算是極「左」時代的產物吧。 或者它之被取消,並不在於此,主要是我們那裡沒有區這個級別了。 和全國一樣,公社直接變成了鎮。

小時候我家住在當街的一間裡,地板牆板都是用一尺多寬二十公分厚的木板拼就的。 饒出來的廚房裡還有一架沒有護欄的樓梯可以上到屋頂低低的樓上去。 那上面儘是交錯的橫樑和椽子。 我哥哥住在上面,也用來放一應雜物。

回想起來,我和我妹妹在裡面住的時間比我的其他家人都更長。 我父親是個基層幹部,老得往鄉下跑,宣傳黨的各項政策,幫助漢彝農民把握階級鬥爭新動向,進行社會主義教育都是他和他的同志們的工作。 我哥哥十五歲時也離家到州府的所在地昭覺上師範去了。 繼母呢,住在離縣城二十來公里的黨校難得回來。 所以,我家那只有三十來平方米的地盤(加上樓上有五十平方米? ),在我的記憶里足夠大。

我們在那裡住了八年,在我七歲到十五歲時。

之所以覺得大,以我那小人兒的身體來感受是一個原因; 另一個原因,在於我家的兩個窗戶朝著的是這座宅子的後花園。 那裡面各有一棵杏樹、梨樹和李子樹。 很方便,搭上一根矮凳子,一偏腿就能翻進去,不又是一個空間嗎! 但也說不上有多空,因為大多數時間,裡面都亂堆著單位食堂要用的柴火。 橫七豎八的柴火縫裡,在夏天雨後常能鑽出一些開著紫花的蘭草來。 偶然我會摘回家,插在一個瓷盅或玻璃瓶里。

摘花沒有大人來干涉你,摘果子就有了。 主要是別家的孩子告的狀,原因簡單呀,他們沒有一家有窗戶朝著後花園的。 於是就眼氣就嘴饞得使壞唄。 也好說,有時候我們化干戈為玉帛,比如他們來求我,或者哪一天我心情好,允許他們翻我家的窗戶也去摘杏子李子梨。

大家就這樣好一陣壞一陣地玩著,但是有一次他們生的氣維持了很長一段時間,差不多把我孤立起來了。 原因是他們聽我班上那些多嘴的丫頭說,我居然在班上宣稱那後花園是我家的。 他們可真氣的嗷嗷叫,連大人也跟著起鬨。

我父親有一次就鄭重其事地和我談了一次話,說都解放了,沒有誰有私有財產的,連我們的生命都是國家的。 環顧一下我家的四壁,又說私有財產那是舊社會的事,比如這房子吧,舊社會是私人的,怎麼樣了呢,一解放,人民一翻身,還不就是人民的了。 而以前這房子的主人,那個姓鄧的地主,早已不知去向。 讓我別把公家的房子號在自己名下,嚇唬我,再不敢出去亂說,再說,他就把窗戶堵掉。

大道理小道理對我未必起作用,堵窗戶的威脅卻把我嚇住了。 我父親的脾氣我知道,外面和氣得像麵團,回到家凶呢。 因為怕他真堵,我在做作業時總抱怨這地主家的房子呀,窗戶開得可真小,光線暗得人都沒法做作業。

這鄧姓地主家的宅子光線暗確是個問題。 喜德縣老住戶的房子沒一家不如此。 等我長大起來,我才知道,各家各戶的窗戶所以開得小,還高,是為了防土匪。 土匪嘛,本事都高強得很,只要留點空隙給他,乘著月黑風高的夜晚,還不衝進鑽進你家來燒殺掠搶。

1949年以前,也就是解放前,有關土匪的故事不要說在我們那樣冬暖夏涼又有野獸野果子的山區,就是在西北的禿山嶺上也多得很。 這樣說來我們那裡是不是更多呢? 我看是。 以我的理解,我們那樣的山裡,在不搶的時候,氣候啊物產呀,也夠那些土匪維持的。 再去搶,就一個土匪而言,日子又好過一分,更別提偶然還能搶來一個壓寨夫人了。 或者他們並不在山裡頭亂竄,平常時光沒事都在家裡閒坐,孝敬父母,逗弄兒女,下地種田,上山放羊。 突然聽聞來了商隊,才從某處妥當的地方取出槍來,跟上頭兒,搶去。 我小時候就有小友咬著耳朵告訴過某某的爺爺曾經是個土匪,還說當年誰家的娃兒一哭,大人就拿他爺爺的名字來嚇唬那娃兒,像我們知道的那般: 再哭,紅鬍子來了! 娃兒就不敢哭了。 可是待我某一天專門去同學家打望他爺爺,看見的卻是一個彎腰駝背的老人家,一點都沒看出來他有多匪氣威猛、邪性。 回來說給咬我耳朵的同學聽,她說,那是他老了。

曾經的匪患導致的防範風習流傳下來,就是前文說的彝漢人家的窗子都開得小而高。 當然比起舊社會,已大有擴展。 但我小時候去農村同學家串門,仍然會在她家解放後新建的房子裡被桌腿椅子絆得跌跌撞撞。

快要解放時,不知道哪裡發明了玻璃做的瓦片,有錢的人家就買幾片來安在屋頂上,叫亮瓦。 我家住的屋頂上就有三片。 不過等我們住進去時已經不亮了,那麼長的年頭,風塵雨土,又不清掃,有多少積垢啊!

老宅子還有的一個問題是,老鼠太多,哪兒哪兒都亂跑著。 最多的是在木地板下。 大概為隔潮,地板與地面之間還留了點距離,這就為老鼠製造了活動空間。 通常是人在上面走,老鼠在下面跑,還打鬧,成天吱啊嘰的,瘮人。 我們小時候又沒有迪斯尼拍的米老鼠可以養成審美情趣,聽見看見的都是地溝老鼠可厭可憎的一面,不免十二分地羨慕那些住上新土房的同伴。

何況這家主人雖然姓鄧,卻不是我們喜德縣現代史上頂頂有名的軍閥鄧秀廷。

鄧秀廷的宅子在縣城的最頂端,順著我們門前的坡道就能抵達。 不過那是在舊社會。 在我有記憶後,也就是上個世紀七十年代,我們縣城最頂端的建築是大禮堂。 那裡面平時放電影演戲,關鍵時候縣委縣政府在裡面開大會。 比較起來,鄧秀廷的宅子反而靠下了。

鄧秀廷的宅子縣裡先是用來做招待所,後來又做了縣府的辦公點。 以此,也足見它的大。

如果拿它來和我家住過的老宅子做個比較,它可能大出三倍去。 或者可以說我家住過的老宅子只是它的縮小版。 由此可知,我家那老宅子的主人只是鄧秀廷的一個本家。 鄧秀廷據說孤兒出生,年少時靠打柴為生,這樣一個窮孩子想來各位本家躲之唯恐不及吧。 結果也是風水輪流轉,有一天發跡起來,連住的房子也有人模仿了。

像我住過的那樣的老房子,在我小時候的喜德縣還有不少呢!

馮良:蜿蜒在山中的羊腸小路——《喜德縣》之二│涼山日記

我記得喜德縣另一處比較顯赫的老房子是我曾在那裡讀過書的小學校。 不過只有迎街的門臉和十幾級台階尚存。 據說那是舊社會的九皇宮。

我父親退休後,曾參加過縣誌編寫的一些外圍工作。 那一年我回去探親,走在縣城的街上,他給我指點說,這裡那裡,舊社會時各有一個供奉孔子的文廟和供奉關羽的武廟。 又說那文廟在當時的涼山堪稱大而巨。 不免讓我對自己住過十幾年的家鄉頓生刮目相看的感慨。 我懂事後,見到的是商業局和文化館不斷翻新的房屋。 所謂的文廟武廟上個世紀五十年代起就消失了。 挖刨記憶深處,我小時候肯定見過它們被拆後殘存的幾間土房子,或者三兩堵泥石駁亂的牆。 現在有關它們的記憶只保留在那本印製簡陋的十六開本《喜德縣誌》裡了。

具體到文廟,縣誌里說它建於清道光年間,分魁樓和殿堂兩部分。 其中,魁樓高三十米,分三層,一樓是戲台,二樓是講學論文之地,三樓塑有文武魁星像。 再說殿堂,前後五開間,東西還有供所謂士子講學的配殿,前庭後院,除了棗樹,還植得有一叢一叢的牡丹、萬年青。 又說什麼檐起三疊,琉璃覆頂,雕樑畫棟,滿目壁畫,更有風振鈴動,聲聞全城,好一派恢弘的景象! 而我在這些描述性的文字面前,激動之餘,也只有一句「往事知多少」,打發現存的光景了。

這是一種心情,還有的一種是,原來我的老家這樣的有文化啊!

喜德縣未必是我的老家,我的老家以父系一方來算,該是內江地區的樂至縣; 以母系一方來算,該是雅安地區的漢源縣。 兩個地方都不必,因為它們對我而言,只有存在的概念,哪裡有我生長的喜德縣具體而感性,喜德縣可以不是我父母的老家,但它是我的老家。 所以再說一遍,真沒想到,我的老家原來那麼有文化。 就是說,除了配槍的人以外,還有的是鄉紳耆老和讀書的士子。 這是我小時候絕不知道的事實。 難道真的是歷史無情、人無情,不過三十年,這些繽紛過往就成雲煙散去了? 或者仍有幾位酸腐活在世間吧,像我小友的爺爺,那個傳說中的土匪。 那樣的人如果還活著,又在哪裡呢? 起碼我的老師里沒有。

我的老師,小學中學的都算上,幾乎沒一位是當地人。 他們多來自於成都平原,他們之出現在喜德,用充軍做比喻,於他們於當地人的理解都貼切。 不然的話,他們不會在政策變化的1978年後如驚鳥般的一鬨而散的。

自他們離去後,我們那個曾經在全州高考中榜列第一的中學每況愈下,某一年竟給刷了光頭。 這大概也是讓我感到家鄉無文化的原因吧。

另外,也是最關鍵的,以正統的歷史觀來分類的話,我家那在雲貴高原深處的縣只是化外之地。 它和文字史的瓜葛在古時候是由連接今天昆明和成都的所謂西南絲綢大道聯繫起來的。 說是大道,在我們那裡卻是蜿蜒在山中的羊腸小路。 和這條小路最先發生關係的一個歷史名人是西漢時的司馬相如,再一個就是三國時詭計多端的諸葛孔明了。 漢文史書里,他和一個名為孟獲的彝人打過仗,當然是連空城都可以做成計謀的孔明大人「勝而又勝」了。 我小時候聽說的故事還有他死在我們這裡也埋在這裡。 除了這二位,真沒聽說過有誰了。

至於誰是這片土地的老大呢,誰管著這片土地呢,二十世紀五十年代前,一個拿著槍的人都敢回答: 「我。 」真所謂天高皇帝遠,老子怕哪個!

雖然有此一說,或者口服心不服,但在 1950年以前,差不多三十年的時間裡,在這片土地上最敢說「我」的,是前文提到的鄧秀廷。

他之所以敢於如此發言,在於他手中的槍比別人多,漢人彝人都算上,火力也猛。 除此而外,他大字不識,小字不懂,文盲一個,亂世梟雄而已。 但他在我們地方上確實大大的有名。 或者正是他以一介武夫的名聲掩蓋了我們那裡的書卷氣息? 可能。

其實,1953年以前,我老家那地方還不是縣,也不叫喜德,叫甘相營。

以甘相營這樣的稱謂考究,早年間,我們那個地方只可能是一個駐兵的地方。 那些兵大概是為了保護經過我們那裡的驛道,即連接所謂的西南絲綢大道的孔明鳥道。 在有皇朝的時候,不用說那些兵都是官家的衛士,比如我們愛說的明軍、清兵。 到了民國年間,官軍應該是國民政府的兵丁,但那是個混亂的年代,大大小小的地方軍棍粉墨登場,都不等別的軍棍騰出空來,就擠進去一起喧鬧,根本不理睬蔣家王朝。 蔣家王朝呢,連觸角都很難直接通達我們那偏遠的地方,即便派兵也無濟於事,於是,只好倚重當地的豪強來代表中央了。

在我們那裡,豪強是鄧秀廷。 他是怎麼發跡的呢? 先還得靠護路。 那條貫穿雲南和四川的西南絲綢之路,在民國年間不用說已經拓寬了不少,但還不能跑汽車,還是在山間委蛇蜿蜒。 那時候的山上,有的是兩人三人都不能合抱的大松樹大柏樹,至於競秀於其間的林木花草誰知道有多少。 它們遮天蔽日、密不透風,再加上那些隨處都有的遮擋視線的石頭,藏上幾個劫人財物的強盜有什麼稀罕。

為財物計為性命計為父母大人和妻兒計,行走在西南官道上的行旅們都願意把錢掏給額頭上貼著護路標籤的武裝人員。 這些武裝人員是地方上勢力最強的軍閥的隊伍,軍棍輪不上,不夠資格。 比如我們那裡,軍閥就是鄧秀廷。

隨著過路費盡落腰包,鄧秀廷在地方上越坐越大。 一個男人的虛榮心肯定也得到極大的滿足,比如錢有了嬌妻有了,宅子當然也有了。 區別於其他人,老子的宅子要建得最大,要建到甘相營最高的地方,考慮到安全的因素,還要最牢固——誰知道有多少心有豪情的男子在盯著老子的地位財富呢!

不管怎麼說,在鄧秀廷豪強霸道的同時,甘相營也在漸次擴大。 總有一些小民要來依附一個大人物。 他們把自己的房子蓋在鄧秀廷家的下面,一層又一層,在四十多年的時間裡,連著的幾座小山都給覆蓋了。

我小時候當地附庸風雅的人士總喜歡把我們的縣城吹噓為小山城,和重慶這樣的大山城竟有一比。 其形勢又有點扇面的樣子,風雅的人士又用扇城來自喻我們的縣城。 1970 年成昆鐵路貫通後,路過我們縣城的那一段沿著山腳而去,好像為我們的縣城鑲了道邊,於是,無論如何都是扇城了。

實際上,只是成昆鐵路貫通後,才有一條連接南北的道路經過我們那裡。 在鄧秀廷時代,和他之前,喜德縣城,當時叫甘相營,都在道路,也就是前文的西南絲綢大道之外。 在那條道路上,著名的驛站有登相營、九盤營、深溝、冕山、新橋等。 其中的登相營、九盤營因為被成昆鐵路拋在一邊,往昔的繁榮不再,前些年我聽說住戶外遷的不在少數。 那些居民做慣了往來客商的生意,客商一寥落,又沒有地可種——石頭多於土,還打熬了四五十年,其志可嘉。

最近卻聽說前去昆明的高鐵可能通過的地方又把登相營、九盤營收納在道上了。 甘相營,我成長於斯的喜德縣城卻命運翻覆,再次被傳統的西南絲綢大道擋出幾十公里以遠。 說話的當地人免不了嘆息,縣城的發展要受困囉!

而民國年間,即使不在西南絲綢大道上,甘相營還是發展起來了。 或者它的地方到底要比登相營、九盤營、冕山大? 但和鄧秀廷的關係確實至關重要。 試想當年鄧秀廷將他的巢穴放在冕山呢,或者不遠的瀘沽?

馮良:製造弓箭的地方 ——《喜德縣》之三│涼山日記

瀘沽,那地方可比我們縣城大多了,有三個大還不止。它正好在涼山著名的安寧河畔,田疇平坦,物產豐饒,人煙自古以來也要稠密得多,灰瓦片屋頂土牆木板牆的房子鱗次櫛比,青石板的街巷曲里拐彎,多多少少,短短長長,在我們小孩兒那裡,哪能數清。更有鋪排在道路邊的小攤微店,由身穿青布對襟或斜襟衣服、乾乾淨淨的男人或女人打理,賣的呢,不是澆紅糖的冰粉,就是海椒鮮艷的涼麵涼粉,至於麻糖呀糖裹黃豆呀爆蠶豆,還有酸角枇杷拐棗,應有盡有。我小時候某一天聽說要下瀘沽趕場,夜裡連覺都睡不成。不過,那裡民間有點瞧不起我們,大概比較他們,我們住在山上,更蠻一點吧。小時候和那裡來的小友吵嘴,偶然急了,戧他們,未必你們比成都厲害,他們會乖乖閉嘴的。如果拿現在稱作衛星城的西昌來比,他們肯定把脖子一梗,不服輸地道:比!意思是說他們比當時是寧屬駐地現在是涼山州州府的西昌還強,豈有此理!

事實是鄧秀廷哪裡都沒去,他把自己巢穴就建在自己的老家。

就是當時叫甘相營、現在叫喜德的地方。我這個說法只說明了一方面的情況,另一方面是甘相營在舊社會還有一個彝族名字,叫「喜奪拉達」,喜德就是從它的漢語譯音而來的。

1953年2月2日喜德縣成立時,人民政府不用甘相營而用彝族對當地的稱呼來為這個新建的縣命名,顯示了新生的政權對歷史和對世代生活在當地的彝族人的尊重。

就是說,在喜德建縣前,漢族人把這裡叫做甘相營;彝族人呢,則叫「喜奪拉達」。至於哪一個更古老,當然是「喜奪拉達」。不過古老是古老,至解放前夕,彝族人卻少有在這裡住了。他們住在哪裡呢?住在距離「喜奪拉達」十幾二十公里甚至更遠一些的山上。相對於那些山而言,因為安寧河的支流,一條叫孫水、水流湍急的河流過,「喜奪拉達」也有良田可供耕種。

「喜奪拉達」的漢文意思是製造弓箭的地方。

難道當年這裡的彝人就是用自己打造的弓箭來抵抗蜀國丞相諸葛亮的?

歷史證明,他們沒打贏。

諸葛亮這個神話人物,大概除了自己能打敗自己外,無人是他的對手吧!

又據說,諸葛亮死在南征雲南的途中,而這個途中正好在我們涼山。我就老聽大人們講,諸葛亮的墳在我們縣的賀波羅鄉就有一個。

為什麼說「一個」呢,是因為諸葛亮狡猾得很,也是怕當地他得罪太多的土著挖他的墳揚他的灰,便虛張聲勢,這裡堆座墳,那裡樹塊碑,搞到最後,到底哪裡是自己皮囊的安身之處,恐怕連諸葛丞相的魂也糊塗了吧,要不,自三國以來都一千多年了,他那麼英明偉大,怎麼沒聽說他借屍還魂呢!彝族人雖然恨他,也不敢輕易碰他的墳,甚至不敢經過那裡。說是他在墳里安了暗箭,還塗有劇毒,一不小心,小命就丟了。只能隔老遠,扔塊石頭過去。這麼上千年的石頭戰,那地方都變成石頭山了吧!總之,從那時以來,喜德便住上了漢族人。

慢慢的,還有其他民族也住了進來,比如回族、蒙古族。回族多些,不過不在縣城裡,在古驛道上的冕山站。

等到「喜奪拉達」住上漢族後,它就改叫甘相營了。

漢族人住進來,習慣也帶了進來,比如設縣建區築牆起門。從小到大,我連城牆上的一塊磚或者石頭都沒見過,但我們成天掛在嘴上的地名、位置不是東門外就是西門裡,可見城池儼然。《喜德縣誌》說甘相營是在清道光年間建的城。我父親1956年第一次來喜德時見過城牆,只是稀稀落落,不成氣候,有些竟然是用亂石堆砌的,還不如登相營,怎麼說還有幾個垛子吧。如此「氣派」的城牆,拿東門西門來有什麼用,又能防住誰呢!

前年我編過一本涼山名流寫的回憶錄,裡面提到國民黨時期涼山的民族矛盾時,有文字說,當時的冕寧縣城,城門上經常掛著彝族人的首級。《水滸》等涉及造反的書籍里,掛首級的地方也都在城門上。

而我們那裡掛首級的地方卻是一棵核桃樹和一棵皂角樹。

皂角樹我還依稀記得,懸在一道坡壁上,枝葉如篷。在它下面有涌流而出的泉水,四季都有洗衣淘米的婦人。

小 時候我常納悶,不知道當年打那首級上是否有陳血腐肉掉下來擊中某位婦人的頭,或者擾亂一潭清波。一想,自己先打幾個寒戰,嚇死了!皂角倒常掉下來,洗衣的婦人就便砸碎了拿來搓洗衣物。

核桃樹不說也罷,因為它就在我家後來住過的那排平房的西頭。

以此來看的話,喜德在叫甘相營的時候雖然有牆有門,但起的作用並不大,連掛首級都不成,大概不夠高,起不了嚇唬活人的作用吧,還不如一棵核桃樹、一棵皂角樹!

甘相營的城牆城門不怎麼樣,那些老宅子的院牆卻了得。從來沒聽說過有人攻破過鄧秀廷家的院牆。只是有記載說他曾被自己的一個彝族親兵在自家的宅子裡射過一槍。

這一槍射偏了。親兵知道鄧秀廷的殘暴,旋即,調轉槍口,對準了自己。

如此慘烈的案例,在舊時的涼山比比皆是,所謂亂世亂象啊!

為求自保,也為人生順當,大家互相結拜,互認乾親。

所謂互認乾親,是將自己的兒子或者女兒拜寄給對方,認對方做乾爹乾媽,以後有個好歹,好相互照應。乾親相認,不只是一個兩個人的事,認開了,像常說的藤上的瓜,能串出去無數。當然你也可以沒有兒女來讓你拜寄,但你卻可以受人拜寄,前提是你得聲名遠播,就是說有錢有勢唄。在甘相營時代還得有兵有槍。這樣的話,遠人依矣。

比如鄧秀廷,他大概應了「英雄」無後的說法,一輩子只有一個女兒,兒子呢,是從本家抱養的。所以,他給自家孩子拜寄的乾爹乾娘倒不多,或者他也看不上,倒是那別的人,越在他發跡後越把自己的子女拜寄給他,子女的子女也拜寄給他。這其中貪圖他名聲的不少,但彝人將子女拜寄給他時,多數卻是為了子女的平安。否則的話,你就是不出自家的寨子,誰知道哪一天鄧秀廷想要銀子了,莫須有地指你是不服管教的野夷,揮著把美制手槍就來了,指揮著他的兵燒掉你家的木板房子,能抓著的男女娃子都分給了參戰的頭目,任憑他們將自己的戰利品,那活生生的人賣到大涼山的這裡那裡去再當奴隸娃子。僥倖跑脫的,過上一段時間,鄧秀廷和他的兵歇夠了,還是把你當作野夷,不過這一次是逍遙法外的野夷,再派兵去殺去搶。追殺得那些人,拖兒帶女,只敢在沒什麼人煙的大山里流浪,偶然路過有鄧秀廷勢力的地方,恨不得變只麻雀從空中飛過去,還不敢隨便就飛,先得在嘴裡銜根樹枝噤聲,翅膀也不能盡展、撲扇。不然的話,萬一被鄧秀廷那遠聽八方的耳朵捕捉到不經意間發出的呼兒喚女的嘰咋聲,還不趕來滿門抄斬。如此這般,哪有終了。

把自己的子女孫子拜寄給鄧秀廷,是不是真的就安全了呢,非也。這都是此一時彼一時的事,由不得你,只能由鄧秀廷這樣的強人說了算。某一天,他心生了一個滅你的奸計,可能會去找一個素來與你家有仇的人,也可能自薦為那家人某個兒子的乾爹。既做了人的乾爹,那咱們就是一家人;既是一家人,你的仇,乾爹豈有不幫你報的道理,完全置自己的另一個乾爹身份於不顧,殺氣騰騰地便沖向了那個欲殺之而後快的乾兒子家。鄧秀廷就是這樣來大耍他的以彝治彝的手段的。

馮良:在甘相營看到的景象——《喜德縣》之四│涼山日記

這樣,鄧秀廷雖然子嗣不繁,倒也坐上了爺爺祖祖的交椅,只不過是乾的,沒有實際內容,徒然。這一點一定令他對人生很失望!當然,他可以小妾連連地娶來為自己生子。據說,他一共娶了五個老婆,兒子大概也生過,但都夭折了。如此說來,豈非報應。他一生明槍暗箭,誰知道殺了多少在他眼裡是「野夷」的彝人。以致終於惹火了他手下的彝族親兵,想送他一顆子彈。

那個殺他不成的彝族親兵死後,不用說頭被割下頭來懸在了外面的核桃樹上。據說那時候核桃樹正開花,天氣漸漸地熱著呢,那顆人頭很快就臭遍了半座城,當然最感惡臭的是鄧秀廷和他那一妻四妾,因為那棵核桃樹就在他的宅門口。他好像根本就不怕,晚上呼吸著那樣的臭味也能睡著。

連這都聞的,可想他完全不像我老家那些人,隨便哪裡死個人,先不先就嚇一跳,走夜路也心驚,生怕被變為鬼的故人打擾。

憑著這股子歪門邪氣,鄧秀廷硬是在甘相營橫行了差不多半個世紀。

不止甘相營。甘相營只是他的老巢。他的活動範圍廣及現在的涼山彝族自治州——當時以寧屬相稱,是當地大大有名的軍閥,雖然是土的。

他最後被國民黨西昌行轅的主任張篤倫任命的職務是寧屬剿辦野夷的總指揮。這時是1944年。1938年,他曾被四川省的省長劉文輝委任為中將靖邊司令。實際早在十年前,他就已經控制住了這一地區。

以中國之大、歷史之悠久來看,我們那裡不但是化外之地,而且是個小極了小的地方,一根香菸都能抽遍全城嘛!鄧秀廷能被封為什麼總指揮,又是什麼司令,還是一個什麼中將,怎不叫小地方的小民們至今吹起牛來仍唾沫星子橫飛呢。再有一個,也最讓小民們驚掉大牙、瞳孔放大的是,鄧秀廷那惟一的女兒鄧德芳的婚事是由宋美齡做的媒。

哦呀,天老爺,宋美齡!

那可是蔣委員長的老婆,當時的第一夫人呀!

這樣一轉念頭,多少明白點時事的小民還不佩服得五體投地。再一想,第一夫人都能給我們鄧司令的姑娘做媒,可想我們的鄧司令是何等了不起的人物了,起碼蔣委員長是器重他的吧!

現在去我的老家,天塹變通途,但即使有成昆線穿城過境,又有新近修成的高速公路,山裡頭那些幽深的隧洞、高懸盤繞的橋樑道路,比較平原、丘陵,高原面上的鐵路、公路,仍然驚險萬分。好在時人歡喜風光無限在險峰,倒也相宜。

1950年代以前,不要說鐵路,連公路都是一段一段的。所以說宋美齡竟然能給當地一個土豪的女兒當媒人,就是到了這年頭,我在和外人神聊故鄉時,多少也是當作一個人文名勝加以炫耀的。可惜宋美齡不留日記也不寫自傳,否則,不知道她會不會捎上一筆。

對此,我也不用太當回事,這種籠絡地方的事想必宋美齡做得不少。但到底我們那裡太不起眼,今日如果沒有衛星基地在我們那兒占了先聲,網際網路再發達,相信知道我們那裡的人也寥寥無幾;又有多少人知道那裡生活著漢人,也生活著彝人呢。

或者宋美齡記得這事,畢竟當時蔣介石在廣大的東北、華北戰場上被人民解放軍追得暈頭轉向時,曾經想把西昌當作他在大陸的最後基地,有說是他還想把西昌設為國民政府的陪都,像抗日戰爭時的重慶。為了經營好這個所謂的基地,他還派來了自己的嫡系胡宗南,好和張篤倫唱雙簧。這兩人是從西昌起飛逃往台灣的。據說他們堅持到了最後,在他們的飛機駛離跑道時,人民解放軍的炮聲已響成一片。可見,蔣介石是多麼的不想放棄西昌了。

用自己親信的兒子來和當地的豪強打親家,算得上是一個經營手段。既經營,肯定要費神。據說,一開始鄧秀廷並不十分樂意把自己的女兒嫁給行轅張主任的公子,似乎擔心的不是高攀,而是正相反。還有的一個原因是,他很難平衡蔣介石與劉文輝的關係。按說一個是中央一個是省上,有什麼平衡不了的。話是正確的,可實際上,蔣委員長,不要說劉文輝這樣的四川軍閥不買他的帳,就是鄧秀廷對他也是陽奉陰違。所以,哼哼哈哈,拖了很長時間,拖到他病死時分也沒一個了斷。他死後,難得張主任還來求親。這次是向鄧秀廷的遺孀鄧女仙開的口。鄧女仙據說也非等閒之輩,但到底剛死了當家的,一個養子還成不了氣候,多少有所顧忌。正拿捏著,西昌那邊傳話來請她過去一趟,說是委員長的夫人來視察地方,要見她一見。見她是虛,做媒是實,因此將西昌攥在手心裡恐怕更是實。

蔣夫人都出馬了,鄧女仙還有什麼好作勢的,恐怕高興都來不及,夢裡都要笑醒吧。涼山人無論彝漢都講究身份,名氣感也高昂得離譜。面子撈得足足的,還有什麼囉嗦的。再說她孤兒寡母的,地方上今天你凶你當老大,明天他橫他又奪了第一把交椅,如今有中央替我鄧家做主——蔣委員長的夫人是我家的媒人,看誰敢把我們兩娘母啃了還是吃了!鄧女仙這一下不啻吃了定心丸,興高采烈,當場拿出一萬兩銀圓來給女兒做嫁妝,把女兒嫁給了張主任的長公子。

天可憐見,不幸的是,這位公子新婚不久,即在西昌小廟機場因飛機起飛不當釀成的空難中斃命。

鄧張聯姻,當時當地很是轟動,又陡起這樣一道悲慘的波瀾,免不了有人說三道四。比如新娘子好硬的命呀,過門沒幾天,就把人家新郎官剋死了。這樣的女子,那三姑四姨操心不已:可怎麼再嫁呀!

她們的嘆息甫定,人家張篤倫張主任就讓二公子將嫂子收了房。於是,新娘尚在喪夫之痛中,便二度行了新夫婦的禮。由此也足見鄧秀廷的面子之大了。

這個故事如今在涼山廣為流傳,我小時候可沒太聽說。這和當時的形勢有關,屬於封建惡霸的歷史,沒有人願意提它。等我聽說後,同時聽到的還有鄧秀廷那隨公公一家逃到台灣去的女兒傳話回來了,說她很想回來觀光和憑弔父母,還說也不知道她父親的墳地如何了?她父親的墳地?啊呀,原來是我縣舉行體育運動和群眾集會的燈光球場呀!

鄧秀廷居然把自己的墳地安排在離家不到百米的地方。

行文到此,我意識到甘相營時期,原來我們扇城的邊緣並不是前文我以為的鐵路,而是一年當中大部分時間如白練一般的孫水河呀!

這樣再來回想我的老家,分明浮現在眼前的是一個含在半爿蓮花里的花心。這花心以鄧秀廷的宅子為頂,打開後,真的如一把扇子似的鋪展在川西南奇峰峻峭、林深松碧的大山里。

如此形勝,方圓百十里地哪裡尋得見,就是所謂的瀘沽所謂的西昌又有什麼了不起!難怪鄧秀廷發跡後非但沒有離開甘相營,還對它進行過多方經營。

比如孫水河,原來並不在對面的山腳下,而由今日的田地中流過。鄧秀廷病得奄奄一息時,仍不忘整頓它。就像今日的荷蘭填海,他讓四鄉的人都來填河,填到最後,終於實現了他的主張,那孫水河被推移到山根。然後再把堤修起來把垻築起來,空出來的成片土地,植上樹種上草,最主要的是種上水稻,於是有了今日喜德縣的平疇百里。

但鄧秀廷也太霸道,全然不顧這扇城的人民性,憑著蠻力,先把最好的位置辟來做自己土皇帝的「宮殿」,又把次好的地方占來當自己的靈宮。他肯定想把那整座的山當成自己的生死樂園。不承想,人算哪裡比得過天算,他死了才七八年,甘相營就變成了喜德縣。

在鄧秀廷時代,甘相營只是現在冕寧縣的一個區。 

馮良

1963年生,四川涼山人,彝族,現居北京。曾在西藏生活工作15年,上世紀八十年代開始發表文學作品,在當代「西藏新小說」里是最少魔幻最寫實的。代表作有短篇小說集《情緒》,散文集《彝娘漢老子》。最新長篇小說《西南邊》廣受好評。


李正文在苏联劳改营

$
0
0

[ 2006年第2期 李正文在苏联劳改营 作者:张惠卿 ]

李正文同志是我党的一位杰出的地下工作者,他在1941年受共产国际东方部派遣,到上海从事对日伪的情报工作,日寇投降后转回中国共产党,直到上海解放。他长期在隐蔽战线上英勇斗争,出生入死,屡建奇功。上海解放前,他是中共中央上海局策反工作委员会的三位委员之一。

1999年在纪念上海解放五十周年之际,上海市国家安全局为表彰这位为解放事业做出特殊贡献的革命老人,特地派两位负责干部去北京李老家中慰问,并以该局名义赠给他书有“疾风劲草青史英豪”八个大字的横幅,以表敬意,也是代表组织对李老一生的公正评价。

李老这位忠诚坚定的共产党人,却有一段鲜为人知的经历,那就是他曾在苏联被内务部逮捕关押,在劳改营经受了近两年的残酷折磨,九死一生,是极少数得以平反出狱的幸存者之一。斯大林当时的所谓“大清洗”,冤死的不仅是无数苏联本国党政军各界的干部和群众,还有很多外国的革命同志,包括我国一大批在苏联工作、学习的干部和学生,以及共产国际中国代表团的许多工作人员。他们都是极为优秀和忠诚的共产党人,却被强加于外国间谍、特务的莫须有罪名,作为反革命罪犯投入监狱,不少人惨死在劳改营中。这一段惨痛历史是不应该被遗忘的。

李正文1908年出生在山东潍县农村一个贫农家中,1916年随家人逃荒到了东北关东的四平街。他自小勤奋好学,但因家境贫寒,小学和初中期间经常被迫辍学,后得到同学资助,顺利读完高中三年。1930年以优异成绩升入张学良任校长的东北大学。

本想作马列主义的信徒,却成为情报人员

李在高中时期即开始接触先进思想,参加进步活动,接受中共满洲省委地下组织领导。在东北大学曾被国民党市党部通缉,幸得校方庇护,才免于被捕。

“九一八”事变后,李逃亡到北平,在清华大学借读。1932年参加北平“左联”(左翼作家联盟),并很快被选为执委兼理论部长。不久又从“左联”转到“社联”(社会科学家联盟)工作,担任执委兼研究部长,积极宣传马克思主义理论。他用岳光的笔名编译了多种苏联有关哲学和政治经济学的文章和小册子。

1933年10月,李正文经北平“社联”党团书记宋劭文介绍,加入了中国共产党,并成为“社联”的党团成员,从此成为一名职业革命家。

当时王明的“左倾”机会主义路线在党中央占统治地位,党组织经常举行飞行集会、游行示威和公开讲演等冒险活动,把党员群众和进步力量公开暴露在国民党特务面前。从1933年下半年开始,白色恐怖越来越猖獗,蒋孝先的宪兵第三团到处搜捕共产党员和赤色群众,党组织遭到严重破坏,“社联”、“左联”等进步团体也陷于瘫痪状态。1934年5月宋劭文被捕,整个“社联”的活动被迫停止。

约在此事发生半年前,李曾通过一位朋友的介绍,认识了在共产国际情报部工作的刘一樵。刘和李经过多次交往,彼此之间都比较熟悉,刘也知道李的共产党员身份。在“社联”停止活动后,刘就向李提出,愿不愿意去苏联学习,李当即表示愿意去。1934年8月间,刘带李到六国饭店会见一个苏联人,在座的还有一位名叫肖项平的中国人,据说是苏联情报系统在华的负责人之一。那个苏联人问李到苏联去想学什么,李说希望学习马列主义理论。他就说,那就派你到莫斯科去学习理论。

肖项平带李正文到了上海,办理去苏联的手续。在上海停留了三个月,肖要李抓紧空余时间设法提高自己已掌握的英、日文水平。1934年11月李正文乘上去苏联的轮船,先到海参崴,后转伯力,在伯力又停留了约一个月,到达莫斯科时,已是1935年1月了。

在莫斯科接待李正文的是苏联国防部的一位叫阿基莫夫的少将(此人在我国北伐时曾来华担任过军事顾问),阿基莫夫把李送到莫斯科郊区的赫姆基无线电学校,要他学习无线电课程,实际上这是一所培训情报人员的秘密学校,李当时毫无思想准备,因为他在北平时讲好是来学习马列主义理论的。经过反复交涉,校方最后同意李的请求,为他专门开了列宁主义问题的课,同时也要他学习其他课程,包括如何识别日本的军种、兵种、各种武器弹药的性能和作用等知识。在这个学校和李同一班级的共有八名中国学员,1936年上半年同时结业。李原有较好的英、日语基础,在学习期间,他又很快掌握了俄语。

结业以后,李被单独转到莫斯科的另一个叫马拉霍夫卡的郊区,住在一幢专门接待外国共产党人的国际宿舍大楼里,等待分配工作,这幢大楼又称国际招待所。

先后来到这家招待所的中国人连李在内共有六个人(四男二女),为了保密,他们相互都用俄文名字称呼,李的俄文名字是瓦夏。最后到的一位取名叫罗莎的女同志,是刚从上海来的,她原名吴先清(刘鼎同志的夫人),是中共老党员,长期为苏联搞情报工作,与共产国际的中国代表团有来往。

在这个招待所里,他们的生活条件较好,除吃住外,每人每月还发100卢布零用钱。有的人就经常进城去吃喝玩乐,甚至喝得酩酊大醉回来。李正文则始终洁身自好,烟酒不沾,也很少去莫斯科城里闲逛。他总觉得应该利用空余时间多学点东西,所以几乎成天关在房里看书学习,主要是钻研俄文和理论。他和大家的关系都处得很好。但万万没有想到,可怕的厄运正一步一步地向他们逼来。

遭诬陷,成为苏联大清洗中的“特务”

1937年夏季的一天,吴先清对李正文说,她发现他们那个叫索妮的女同志经常偷偷地给上级写针对他们几个人的诬告信,指控他们是反革命。吴还说,今天乘索妮不在,她找到了一批诬告信的底稿,叫李快去看。李看后大吃一惊,其中讲到李正文的部分是这样说的:

“瓦夏反对国际无产阶级的五一劳动节,大家喝酒庆祝,而他怎么也不肯喝;瓦夏不想看到苏联伟大的社会主义建设,所以经常呆在房间里,不愿到莫斯科城里去参观;瓦夏为了掩盖他的反革命政治面目,买社会主义建设公债最多,捐给西班牙革命战争的钱也最多。”

实际是李不乱花钱,把每月的零花钱省下来,因而买的公债和捐献的钱就比别人多。索妮的信里还说:

“瓦夏懂日文,他的母亲是日本人。他长得也像日本人,肯定是日本特务。”

她写吴先清和其他几个人的诬告信,也都是满纸荒唐,全是造谣。

李正文完全没有想到,世上竟会有这样卑鄙到不择手段来陷害别人的人。他和吴先清都气愤极了,当天等索妮回来就和她大吵了一架,从此见面也不说话了。

当时正是苏联大清洗时期,斯大林大搞肃反扩大化,全苏联处于极为恐怖的气氛之中。不仅是苏联人,也使在苏联的外国人感到人人自危,李正文他们也感觉到了。当时苏联的《真理报》、《消息报》已经大张旗鼓地宣传,声言要发动一场“揭发和铲除人民敌人”的声势浩大的运动。斯大林公开号召,要大家“大胆怀疑”,提供“人民敌人”的材料,说什么只要包含百分之五到十的真情,也是我们需要的。于是在全苏联掀起了一片诬陷狂和告密狂,造成不仅成千上万无辜的苏联共产党人遭逮捕,在苏联和共产国际工作或学习乃至避难的外国共产党人也纷纷被捕,中国人自然也不例外,一批接着一批遭到苏联内务部逮捕和审讯,差不多都是被指控为“日本间谍嫌疑”,而西方人则被指控为“德国间谍嫌疑”。

住在国际招待所的六名中国人,除那个不断写诬告信的索妮外,都先后被捕。李正文懂日文,在劫难逃。吴先清则因她来苏联时途经日本,并在那里停留了若干天,也硬说她是“日本间谍”。五个人中他们两个是最后被捕的。

1937年11月下旬的一个傍晚,招待所那个一直和他们联系的翻译通知李正文和吴先清,说领导要找他们谈话,并一再要他们多带点衣服和日用品。李虽意识到可能要逮捕他们,但自认为自己完全清白,反正很快就会回来,就和往常一样,什么也没有带。中途换了一次车,从黑色车换成了内务部的黄色车,直接开进了莫斯科鲁别克监狱。

据说这个监狱关的都是“要犯”,关李正文的牢房里已有近十个人挤在一张通铺上。他们见李进去,都热情地和他打招呼,给他腾地方。李当时认为他们都是真正“人民敌人”,而自己则是因误会被捕的人。同他们是敌我关系,故装聋作哑,自始至终不和他们搭话。但他们仍然亲切地向他介绍,说他们都是苏联的驻外大使,这个监狱的规矩是如何、如何的,并告诉他,如果你的问题严重,就要留在这个监狱里,如果不严重,就将被送去布德里斯克监狱,然后押到劳改营。但不管什么情况,都不会被释放,还要判刑,至少五年。

李正文当时根本就不相信他们这些话,认为是故意挑拨离间,要他反苏。他心想,抓我完全是一时误会,不出一个星期就可获释。然而大出李正文的意料,对他的审讯既草率又无理。首先是每次审讯都叫他“刘进”,李一再声明,他从来没有叫过“刘进”,你们搞错人了。最后他们才改口称他“刘进又名李正文”,说明他们连名字都没有搞清楚,就把人抓进来了。

然后是大搞疲劳轰炸、车轮战,每次审讯都在十个小时以上,搞得李头昏脑胀。一再逼他承认是“日本间谍”,还用手枪顶着他的脑袋吓唬他,硬说他懂日文,母亲是日本人,非是“日本间谍”不可。李再三申辩说,日文是在东北四平和沈阳学校里学的,那时那里的学校都有日文课,至于他的母亲,则是一个大字不识的中国劳动妇女,根本不是什么日本人,你们只要稍作调查就会弄清楚。可他们根本不相信,说他编造假话,还骗他说:“我们有一种药酒,人喝下去就会迷醉,不自觉地把真话都说出来。你不说真话,就叫你喝这种药酒。”李说,“我倒真想喝这种药酒呢,那样你们就会知道我说出来的全是真话,到底我是不是日本间谍了。”

谁知这些审讯者完全不顾事实,也不要任何证据,就把李正文定为“日本间谍嫌疑犯”,并经苏联法院特别会议判处五年徒刑,送到布德里斯克监狱关押。这时李正文才开始明白那几位苏联大使所讲的话,并怀疑苏联内务部抓来的人究竟有多少是真正的“人民敌人”!

非人的监狱生活

在布德里斯克监狱,一间五六十平方米的大牢房里,住着一百多个犯人,除了少数刑事犯外,大多是所谓的“政治犯”,有苏联人,还有很多外国人。这些“政治犯”彼此间都很融洽,对李正文也很友善,使李体会到一种国际主义的友情。在和他们接触交往后发现,这些人和他一样,都是无辜被捕的忠诚的共产党员,他们崇敬斯大林,说他是世界上最好的无产阶级伟大领袖,天真地以为他是受了内务部的蒙蔽,才发生现在这样的事情,只要斯大林一旦发觉,他们都会被释放出去,而且这样的日子很快就会到来。

有一位乌克兰中校军官,睡在李正文旁边,因为彼此都是共产党员,便成了好朋友。一个做值日的苏联盗窃犯老是找岔欺负李正文这个中国人,故意折磨他。这位中校就挺身而出,把这个盗窃犯狠狠揍了一顿,使他再也不敢对李无理。监狱每天只发300克(6两)面包,李经常饿得十分难受,而中校的妻子常从家里给中校送来面包、奶油和香肠,他都要分给李吃。他还不止一次地对李说:“如果我们都能释放出去,那就一起到中国发动游击战争,你当政委,我当指挥员。”这些都使李十分感动。

1938年5月,李正文和其他几个中国“政治犯”一起被从布德里斯克监狱发配到苏联靠近北极圈的齐必由劳改营服役。这个劳改营处在西伯利亚的最北端,自然环境十分恶劣,一年四季天寒地冻,最冷时可达摄氏零下50度以上。他们每天都要从事10小时以上的重体力劳动,每人都有劳动定额,口粮面包是按完成定额多少来分配的。如不出工一天只给200克,出工只完成定额一半以下的,给400—500克,完成百分之百定额的给800—1000克,菜和汤也按定额分配。劳改营从不给犯人发衣服、帽子、鞋袜等必需品,更不用说日用品了,逼着你拼命劳动挣钱来自己解决。很多人都穿着缝了又缝、补了又补、难以蔽体的破烂衣服。李正文体弱力气小,又不善于干力气活,累得要死也完不成定额,当然也就经常挨饿。

那里的人际关系也极为险恶,这个劳改营里有“政治犯”,也有不少刑事犯——小偷、流氓、劫匪、赌徒、杀人犯等等。这些刑事犯十分嚣张霸道,常常欺压殴打“政治犯”,偷、抢“政治犯”的东西,女犯人则被他们轮奸,整个劳改营是一座可怕的人间地狱,不少人就在那里被折磨而死,有饿死的,有累死的,有病死的,还有冻死的,死了就抬出去一埋了之。和李正文一起被押解到这个劳改营的原莫斯科东方大学青年学生王迁,一位1927年就入党的姓包的老同志,还有和李同时被捕判刑的吴先清同志,都在这个劳改营里悲惨死去。李正文自己如果不是得到难友姚艮的全力帮助,也必死无疑。

姚艮比李正文小四岁,他于1931年在东北入党。“九一八”事变后的第二年,他受组织派遣到莫斯科求援,在进入苏联边境地区不久即被当作日本间谍嫌疑逮捕。最后被莫名其妙的判刑五年,递解到远东、中亚等地的劳改营服役。其间因劳动优异,按规定应给他减刑二年半,在1935年3月释放。但苏联当局言而无信,非但没有给他减刑,五年期满后还把他继续关押劳改,最后转到了齐必由劳改营。姚感到灰心失望、前途渺茫,在李正文到来时,他正处于极度苦闷无法自拔的状态之中。

李正文和姚艮同住在一个大工棚里,这里除姚艮外,还有一些中国“政治犯”,有的已经关押很久,他们都曾经满腔热情地来到这个被看作是共产主义圣地的苏联,但谁也没有想到会平白无故地蒙受不白之冤,成了一名罪犯,大家怎么也想不通这个道理。而在苏联这个最北边的劳改营里,对每个人都是严峻的大考验。精神上的折磨不用讲了,每天还要在严寒下干挖煤、挖坑、砸石头、盖房等等超乎体力的重劳动,很多体力差的人就这样被拖垮、拖死。李正文成天干重活,吃不饱、穿不暖,靠着自己一定要活下去的坚定信念和毅力,在死亡线上苦苦挣扎,已到了能够忍受的极限。

姚艮向李伸出了援助之手,这个小伙子经过五年多重体力劳动,什么苦活都干过,练就了一身强壮的筋骨。他和李正文一见如故,常把自己节省下来的口粮给李充饥,并用工余时间帮别人干活挣来的钱接济李,这样才使李没有饿死、冻死。有一次劳改营派他们到一个一丈深的大坑里去挖泥,修建重油库。李奋力干了一阵,力气耗尽,再也挖不动了,人像瘫了一样,定额还远远没有完成。而姚艮干完了自己的定额后,又回过来帮李干了好几个小时的活,完成了定额。这样的事经常发生。

有一天,姚艮下工回来,看见一群人正围着李正文,看他干劈柴的活。李用一把大斧在劈一段直径足有半米长的木柴。那把大斧子叫大楔子斧,斧头足有十公斤重,再加上又粗又长的柞木斧把,一个棒小伙子举起它来都相当费劲,只见李正文勉强把斧子举了起来,落下去时非但没有把木柴劈开,反而弹落在地上,粗大的木墩子上只留下一道浅浅的斧痕,围观的人群登时哄然大笑,有人说:“哎,不要把大斧子落在自己头上,当心脑袋开花!”

从这天以后,姚艮和其他几个好心的“政治犯”就尽量挤时间帮李锯木头,劈木柴,并教会他如何巧干这些力气活的要领。但李毕竟是个文弱书生,力气小,个子又较矮小,再怎么尽力,也总是干不好,每次都是累得精疲力竭,还是完不成定额。

有一个叫隋老爹的“政治犯”,他原是苏联远东红色游击队的司令员,是姚艮的好朋友,也很同情李正文。他在这个劳改营有一定的威望,经他多次找管理员交涉,才得以把李正文调到了烫衣房工作,那里的活比较轻,李学得很快,也干得很出色。李十分感激他们的帮助和关照。他常常对难友们说,是他们救了他的命,如果他继续干劈木柴、砸石头、挖土方的重活的话,大概早已不在人世了。

李见姚艮思想苦闷,就耐心劝导他、鼓励他,要他克服消极情绪,振作起来。当姚表示想学习马列主义知识,要在理论上求得进步时,李非常高兴,帮他制定了一个具体的学习计划,并按计划一步一步地给他辅导。他们睡在上下铺,几乎每天晚上都可以互相切磋。姚在李的悉心指导和帮助下,进步很快。在他们相处将近一年的时间里,这两位难友成了最亲密、最知己的好友和同志。他们都有一个共同理想,是为了追求真理,决不能半途而废,在任何情况下都决不离开革命。

姚艮在被关押六年三个多月以后,终于在1939年2月获释,辗转回到了祖国。新中国成立后,他一直在公安部工作,担任过公安部办公厅主任。他把自己在苏联近七年的惨痛遭遇写成了一部四十多万字的书,书名叫《一个朝圣者的囚徒经历》(1955年群众出版社出版),写到了在齐必由劳改营和这位李正文大哥的生死之交的前后经历,十分生动感人。

姚艮走后,李正文继续在劳改营服役。他和好几位外国“政治犯”,包括苏联、波兰、捷克、朝鲜的共产党人交上了朋友,常和他们交谈各国的革命情况。每当他们从《真理报》上看到报道关于中国红军打了胜仗的消息,就来向李正文祝贺,他们也曾多次请李到他们住处介绍中国共产党的有关情况。他们家里寄来黄油和面包,也总会拿出来请李共享。特别是几位苏联同志常向管理员说情,尽量让李正文干一些轻活,并在生活上给予方便。这也是李在姚艮离开后仍能生存下来的重要原因。

向斯大林申诉

李正文对自己的冤案始终不甘心,也从不气馁,到了劳改营后,他仍像前一段一样,接连不断地给斯大林写申诉信,理直气壮地为自己辩护,要求重新审查。他在信中巧妙地引用了斯大林自己的话:“托洛茨基认贼作父,糊涂蛋认友为敌,只有布尔什维克才能辨别敌友。”并反问道:“我为什么就不能被辨别呢?”

他坚持不懈地用俄文先后给斯大林写了二十多封信,有的托被释放的难友带出去,有的自己投邮。这样反反复复的申诉,终于发生了作用。据说斯大林发了话,经过有关部门甄别,于1939年9月正式向李宣布:“撤销原判,平反释放。”李正文是被捕受冤者中极少数例外的幸运者,前后被关押了近两年,就逃脱了这场厄运,而和他一起在国际招待所被捕的四位同志,都全部冤死在劳改营中,无一人生还。

但是,劳改犯即使平反获释,也不准再让你回莫斯科,对李正文的处理是“遣返回国”。他从齐必由劳改营被遣送到歌德拉斯堡的劳改营停留了若干天。在这个劳改营里,李正文见到了不少中国政治劳改犯。一位叫张北的东方大学学生告诉李,他被特别会议判了8年刑,并说莫斯科东方大学绝大多数学生都被捕了。李还碰到了被特别会议判刑20年的共产国际中国代表团成员陈郁同志。他们两人畅谈了很久,彼此都感慨万千。陈俄语说得非常流利,当时在那个劳改营里担任近百人的劳动队长。据陈告诉李,共产国际中国代表团中大部分人被捕了,都是由特别会议秘密判刑10年、15年、20年、25年不等,现在都分别在几个劳改营里服役。

李正文在歌德拉斯堡呆了不久,又经过阿拉木图、阿克斗卡等城市,等待一些监狱中被释放的华侨刑事犯一批一批集中过来一起遣返,最后共有二百多人,这些人中就李正文一人是“政治犯”。一直到1940年夏天,苏联当局才把他们途经阿亚古兹押解到我国新疆塔城。李正文终于结束了在苏联的这段噩梦般的生活,踏上了祖国的土地。

隐蔽战线上的勇士

当时正是抗日战争时期,李正文决定先回到重庆找党,投身抗日行列。但沿途交通十分不便,他历尽艰辛,长途跋涉,经迪化(今乌鲁木齐)、安西、兰州、西安、宝鸡、成都,到达国民党政府的陪都重庆时,已是1941年1月了。

李正文通过熟人,找到了驻重庆的八路军办事处,和该处的负责人徐冰见了面。徐冰听了李的详细叙述后说:“你在苏联被捕过,要解决党的关系,必须要有苏联政府正式平反的书面证明。”

李又设法找到阎宝航寻求帮助。阎是中共秘密党员,直接受周恩来领导,并和苏联在重庆的驻华大使馆有密切联系。李和阎在东北时就相识,李对阎十分敬重。阎很同情李在苏联的不幸遭遇,立即找到苏联大使馆的武官罗申(罗后来是驻新中国第一任大使),请他帮助查询此事。苏联方面很快来了答复,说李正文是一位好同志,1937年被捕是一场误会,早已正式平反,并要李在共产国际东方部工作。共产国际东方部实际上是苏联在远东的一个情报机构。罗申交给李正文一份用俄文打印的证明材料,其中就是以上内容。李内心不想再和苏联发生任何关系,就推托说:“我不会抽烟喝酒,也不会交际应酬,不适宜做情报工作,还是让我回中国党去。”罗申说:“这是决定,你必须留在共产国际东方部工作。”

李正文拿了证明去见徐冰,汇报了苏方的意见,表示自己迫切希望回到中国党来。徐说:“既然共产国际要留你在他们那里工作,你就应该在那里工作,中共是共产国际的一个支部,我们不能和共产国际抢干部,挖他们的墙脚,反正你在哪里都是一样干革命。”李一再请求,徐就是不松口。这样,李正文就只好接受苏方的决定了。罗申要李先协助阎宝航工作。阎将李安排在黄炎培先生主持的重庆战时公债劝募委员会任顾问,作为职业掩护。

大概在1941年6月15日前一两天,阎宝航从国民党的于右任、孙科那里获悉希特勒德国将于6月20日以后几天内进攻苏联的重要消息,这个消息是从国民政府驻德使馆秘密传回来的。阎一方面将此事报告了周恩来,一方面要李正文将这一重要情报迅速转告罗申。

据后来知道,潘汉年也随后在香港获得了这一情报,报告了中共中央。苏联最高当局是6月16日收到中方提供的这份情报的,可是他们将信将疑。因为苏德已签订了互不侵犯条约,苏方不相信德国法西斯会如此不讲信义。但以防万一,还是作了一些部署和准备。因此,当德军于1941年6月22日果真对苏联发动突然袭击的进攻后,这一具有历史意义的情报,使苏联得以避免更大损失。为此,斯大林曾致电毛泽东表示感谢。

1941年7月,共产国际东方部决定派李正文去上海从事对日寇和汪伪的情报工作。上海是沦陷区,除租界成为“孤岛”外,已全被日军占领。

李正文从重庆乘飞机先到香港,再搭船于8月到达上海,和共产国际东方部负责上海地区情报工作的苏联人尼克莱·伊凡诺维奇接上了关系,从此开始了长达八年的地下秘密工作。

从抗日战争到解放战争,李正文在敌占区的隐蔽战线上,应用自己的聪明才智和渊博知识,以大无畏的精神,面对复杂凶险的恶劣环境和白色恐怖的严重威胁,始终勇敢坚定地站在斗争的第一线,出色地完成了党交给他的一个又一个艰巨任务,为革命事业和新中国的诞生作出了特殊贡献。

李老于2002年2月病故,终年94岁。他是一位永远值得我们尊敬和怀念的共产党人。

Viewing all 769 articles
Browse latest View live