这个回答下面大多都不是河北考生,在靠着想象写内容。

我是石家庄的考生,回答一下。

首先,要从历史说起。曾经河北的教育基本是三足鼎立的,石家庄、唐山、邯郸,此外保定和沧州也有一些不错的学生,这些地方每年高考成绩分布也比较均匀。但是从90年初期,突然变成了石家庄一枝独秀,甚至是垄断性的优势。

这背后有两个原因,一是90年代初期石家庄扩建了好多学校,比如41、42、43全是那时候建校的,突然多了好多学校,导致老师的匮乏,所以其他城市的一些优秀教师就趁着机会来石家庄了,这其实是石家庄作为省会的一次吸血行为。二是别的城市的好学校一般只有一所,比如唐山一中和邯郸一中,而石家庄一直是三所好学校,石家庄一中、石家庄二中、正定中学,在90年代末期还有了43中和辛集中学的异军突起。石家庄这些学校为了提高整体实力,所以一直在互通有无,搞了很多教学联盟,石家庄学生印象比较深的应该是当时有很多次多校联考。

基于这两点,到了21世纪的头几年里,除了唐山一中和邯郸一中(邯郸一中甚至都没坚持多久)两所学校还能保持不错的成绩外,其他城市的学校几乎全面崩盘了,高分段学生石家庄的占比畸高。甚至很多年里,石家庄的一些二线高中,比如17、24、40、42、43的成绩放在其他城市都是第一第二的水平。

显然其他城市的学生就丧失了机会。在01年到03年之间的某个时间点里,之后河北先后出了两个非常大胆,并且也不好说是不是为了解决这个问题的政策,当然,某种角度解决了石家庄教育资源一家独大的问题 – 变成了石家庄和衡水两家独大。

这两个正常一是默许跨地区招生,二是允许民营资本介入公立教育。后一点我们当时称为公办民助,当时的重点中学都会有两个牌子,一个是公立学校只能在片内招生,一个是民办学校大范围招生,甚至义务教育阶段都在这么干。

但为什么成功的衡水?

要解释这个问题,还要从衡水说起。

外地人可能不知道衡水是什么一个城市,很长时间里,无论经济总量还是人均收入全是河北倒数两名。 我上高中的时候衡水只有一家肯德基(刚开门时是大新闻),没有麦当劳没有必胜客,连一个正经的购物中心都没有,哪怕现在去衡水看着还是像一个大县城。衡水虽然是一个地级市,但是我们当时一直叫衡中是县中,甚至我们把这类死学习的中学统称为县中。

在当时衡中并不是最早搞的,最早做全省掐尖招生的是石家庄二中,让其立刻超过了石家庄一中。石家庄一中从80年代到21世纪初期,都是河北最好的中学,但是石家庄一中一直有一颗搞素质教育的心,并没有参与到这一轮掐尖招生和拼命卷的浪潮中,导致了被全面超越。石家庄一中的结果也证明了在河北的教育环境里你不能搞素质教育。

在当时的这一轮浪潮里,最早成功的县中并不是衡中,是辛集中学,开始时热度比衡中高得多。但最终胜利的是衡中,原因很简单。

在这么一个基础设施极差的地方,如果有一个愿意搞教育的人站出来,当地政府会怎么做?肯定是全面开绿灯,于是就有了衡水中学 + 衡水一中这种看着畸形的发展模式出现,甚至是突破了政策底线的发展模式。

地方政府对这一所学校的保护是难以想象的。而石家庄市区内的学校是享受不到这些政策倾向的,甚至省里施压,衡水也会死扛着,在当时衡中是他们最大的招牌。

当然也不能否认李金池的能力,去精英中学依然可以复制衡水中学的成功模式。但他的能力没有大势重要,哪怕没有他,也会卷出来另外一个类似形态的学校。

所以归根到底无非是三个显而易见的原因,最最最主要的原因是河北的教育资源太匮乏了,从基础教育到高等教育都匮乏,必须要内耗。二是政策上有漏洞,衡中的出现有政策铺垫。三是衡水因为过于贫穷,好不容易出来一所名牌中学,当地给与了最大的保护。

至于有些人认为是民营资本的入侵是根本原因,这显然太 Naive 了,河北的基础教育阶段前两年取消了公办民助的模式,全成了全公立,强制片内入学,结果是好学校变得更强了,差学校变得更烂了,并且穷学生更没机会了。以前那几千块一两万的学费还可能掏得起,现在的学费变成了一套学区房,而那些有钱人的孩子接受的教育资源好,先天成绩就好。高中同样如此,如果限制了民办,那有钱有权的也能继续侵占教育资源,大不了把户口迁过来不就好了,河北省内都是随便落户的。

事实上,衡中早就被严重侵占了,现在在衡水系的中学念书的学生已经很少有穷人的孩子了,基本都是有钱人家的。但并不能说这个政策是错的,除了衡中系,河北还有好多跨区招生的学校,至少能让一些家里条件不好的人来上学,而不是留在本地,和一堆地痞流氓们混日子 – 很多县城的公立学校都要面对这个情况,倒不是说教育质量不好,而是教育环境不好。

现在衡水的武邑中学(武邑中学也是那个时代的卷王学校之一,只不过没卷过衡中)就是这类为相对差一点的学生提供集中教学的中学,一学期学费大几千块,虽然比公立贵很多,但是至少比大部分小城市甚至县城的公立学校教育质量都高,这个学费咬咬牙也能出得起。类似的学校有很多,光武邑就还有另外一个宏达学校(评论有人提醒,其实宏达学校就是武邑中学的民办部分),都是来自县城的孩子,如果留在原地他们根本没有机会接受好的教育,现在把他们集中起来,至少还能有走出河北的可能。

其实,大部分省份都是两三个高中垄断高分档的学生,并且好学校都在省会。你如果是一个小城市家境普通的顶尖学生,在这些省份没准更绝望,因为你12年的教育阶段都没办法和省会的学生拼教育资源,而河北这个政策还给了你一定的可能性。你要你成绩好,就可以接受全省最好的教育。

所以河北的政策本质上是给了一个所有人相对公平一点的卷的权利,然后大家敞开了卷,只是衡中成为了这场养蛊运动的胜利者。

当然,这还是在做自杀式的内耗,这个模式并没有提高整体的升学率,无论怎么做都是在侵占别人的升学率。在这个问题上,怎么想都会发现,仿佛是一个零和游戏,甚至是一个全败的游戏,只是有些人比较惨,有些人特别惨。

所以,真正的错误只有一个,就是社会资源的分配不均。导致教育资源分配不均的也是社会资源不均,去抨击教育部门根本不解决任何根本性问题。

之所以出现在河北,是因为河北过于严重,外部看是没有好大学,内部是社会阶层分化严重,两个叠加起来导致的这个结果。这个问题不解决,教育政策怎么改都不会更好。

之前发现,自己做的美术资源经常有一些细微的毛边,虽然不明显,但看起来还是不舒服。起初我以为是抗锯齿的问题,直接开到了最大,完全没有任何变化。试了一下发现,其实解决办法很简单:

  1. 在 Photoshop 出图的时候,图片边缘留1到2个像素的空白区域。
  2. 尽量出图的尺寸是最终需要的尺寸,在 Unity 进行缩放就会出现锯齿感的毛边。理论上换个抗锯齿的算法,或者写个 Shader 也能解决这个问题,但显然最简单、最保险和效率最高的就是控制好出图的尺寸。

在我们做开发时,一般都会专门写一个 GameManager 来管理游戏的数据,但 GameManager 存在也会遇到一个问题。在我们进入下一个场景时,上一个场景的所有 GameObject 都会被销毁,所以就有了单例模式(Singleton)。

下面是最简单的实现:

1
2
3
4
5
6
7
8
9
public class GameManager : MonoBehaviour
{
public static GameManager Instance { get; private set; }

private void Awake()
{
Instance = this;
}
}

这里要注意,把 GameManager 的 Instance 属性里的 set 设置为 private,是为了保证外部只能读取。

但是这么写以后还是没解决会被销毁的问题,于是需要使用 DontDestroyOnLoad() 方法:

1
2
3
4
5
6
7
8
9
10
public class GameManager : MonoBehaviour
{
public static GameManager Instance { get; private set; }

private void Awake()
{
Instance = this;
DontDestroyOnLoad(gameObject);
}
}

这么完成以后会发现一个问题,假设我们从场景一到场景二,然后从场景二回到场景一,这时候就会出现两个 GameManager ,所以我们要通过判断,保证场景里永远只存在一个:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class GameManager : MonoBehaviour
{
public static GameManager Instance { get; private set; }

private void Awake()
{
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
}
}
}

这样就完成了一个完整的单例模式。

但实际使用中,我们可能大量内容需要使用单例,这时候每个文件都这么写就很麻烦了,所以可以使用一个简单的办法,通过继承一个类来实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Singleton<T> : MonoBehaviour where T : Singleton<T>
{
public static T Instance { get; private set; }

protected void Awake()
{
if (Instance == null)
{
Instance = (T) this;
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
}
}
}

每次使用的时候就非常方便了:

1
2
3
4
public class GameManager : Singleton<GameManager>
{

}

浦东

1.[Error: errCode: -502005 database collection not exists]或者这类找不到东西链接不到后台的问题发生,一律查一下有没有添加云环境ID。

2.[error message Cannot find module ‘wx-server-sdk’; at cloud.callFunction api;] 直接在文件夹所在位置

1
npm install --save wx-server-sdk@latest

有很多地方说新版本的小程序开发工具可以自己处理微信的sdk,但是我至今还是每次都要手动处理一下。

3.如果希望使用ES6的模板字符串功能,记得用反引号,就是1左边的那个键,而不是单引号。

青年节

五月四日这天
他问我
你们年轻有什么理想
我说
可以颓废
可以消极
可以不努力
可以自暴自弃
可以不被人看好
可以安心的当一个无所事事的废柴
他说
你们年轻人完蛋了
我说
我们年轻人完蛋了

-

爱情

我对她说
地球面积有5.1亿平方公里
月亮正好映在我杯子里
就像是地球有76亿人
我偏偏遇到了你
她对我说
月亮可以在所有人的杯子里
我也可以在所有人的被子里

-

鱼丸

你在吃火锅时
不知道哪里冒出来的鱼丸
可能是上帝给你刷的
努努力
下次就是火箭了

-

周杰伦

能不能给我一首歌的时间
不能
天灰灰会不会
不会
最美的不是下雨天
我觉得是
也许时间是一种解药
你不是医生,你说了不算
我一路向北
你不向南,你是傻逼
转身离开
不转身你就不能离开?
翻着我们的照片
还留照片,渣男
听妈妈的话别让她受伤
爸爸呢?

-

经常问候我的三个人

验证码
澳门赌场
代开发票

-

强迫症

幸好我没有强迫症
否则我出生和死亡一定要同一个日子

-

驿站

我说
我要寄给上帝
快递员说
寄不到
我说
那就放驿站吧
让他自己去取

上帝

上帝如果发现
狗拖着卷纸在客厅跑
猫在挠沙发
楼上在装修
楼下的孩子在闹
老婆问你这个月工资为什么少了200块
领导告诉你这个月绩效差5单
上帝会说什么?
oh my god 还是 holy shit?

-

老虎

我问动物园的老虎
被关在笼子里你寂寞吗?
老虎说
我有女朋友

-

烤肉

我看着糊了的烤肉
质问道
为什么你没有拖延症?

-

遗物

我说
你们都是父母的遗物
她说
你物化女性

1.确认自己电脑上的node和npm安装正确,可以用 -v 查询,如果没有安装成功需要重新安装。

2.在cloudfunctions下面login文件里输入运行

1
npm install --save wx-server-sdk@latest

安装最新的wx sdk。安装成功后,在login目录下,应该可以看到看到新增文件package-lock.json。

3.在miniprogram目录下的app.js文件,修改env参数(默认my-env-id),把它改为你运行环境的环境id(点击“云开发”,抬头显示的“当前环境”内容就是环境id)。

4.在cloudfunctions根目录下,右键选择“同步云函数列表”,提示成功。

5.在login目录下,右键选择“上传并部署:所有文件”,提示成功。

6.点击页面上方的“编译”。

7.重新点击“点击获取openid”,就可以成功。

这两天做高达的时候分别在两个机体里发现了有意思的小细节。

第一个是HG版RX-78-2,在拼标准版的时候因为有明显分色所以胸甲不会拼错,但是我手上这个是再生塑料的纯黑色版,没有任何分色,导致我没仔细分辨哪边是上,直接胸甲就反着按进去了,然后发现外面根本抠不开。

当我准备拆开的时候就发现,在设计时明显考虑了这个情况,胸甲内部并不是完全填满的,专门留了一个孔洞,可以用硬物把胸甲给捅出来。而且可以肯定这个空间是为了拆件方便存在的,因为如果里面填满了显然固定的会更牢固一些,我当时就感叹设计的时候考虑的真全面。

高达胸甲

第二天我就被另外一款打脸了,在拼哈罗的时候,默认是可以选择在两腿中间插一个支架架起来哈罗,还有另外一种选择就是把哈罗完全变成球体,在底下插支架的位置上还专门提供了一个盖子,可以封死这个小洞。

但是当我把这个盖子盖上以后就发现,根本抠不开了,唯一的办法就是把哈罗从中间掰开,才能取出来这个盖子。

怎么说呢。

蛋疼。