Shell's Home

Feb 20, 2012 - 1 minute read - Comments

有一种错误,叫做太常见了以至于视而不见

最近整XEN,出了一个奇怪的错误。 ERROR (SrvDaemon:355) Exception starting xend((22, 'Invalid argument')) Traceback (most recent call last): File "/usr/lib/xen-4.0/lib/python/xen/xend/server/SrvDaemon.py", line 335, in run xinfo = xc.xeninfo() Error: (22, 'Invalid argument') 根据网络上的内容,首先排除没有xen模块——有了,然后是/proc/xen目录是否mount——有了,然后是/sys/hypervisor/下面的一堆属性——有了,然后是版本——不对。xen-utils-4.1是4.1.2版本,而xen-tools是4.2版本。不过xen-utils并不依赖xen-tools,没有后者应当也可以运行这些玩意。hypervisor和xen-utils的版本是一致的。那问题是什么? 出错的文件是/usr/lib/xen-4.1/lib/python/xen/lowlevel/xc.so里面发生的异常,下载xen的源码检查,这个函数主要是检查属性。属性检查会出什么错? 正在一头雾水的时候,突然想起一个问题。我安装的是xen-hypervisor-4.1-amd64,因为kernel是linux-image-3.1.0-1-amd64。然而,我这个系统有一个非常大的特殊——在64位CPU上运行的32位系统。因此,实际上xen-utils是32位的。行了行了,下面的事情用膝盖都能想到。 叹气,这世界上,真的有种错误,叫做太常见了以至于视而不见。不要认为自己不会犯。

Feb 17, 2012 - 1 minute read - Comments

最新一期的freenas测试报告

去年我写过一篇freenas和解决方案,今年我又测试了一下,发现这玩意更加完善了,更企业化了,也更不适合玩玩了。今天写一下大概的步骤,供需要的参考一下。 freenas提供以下几种服务,afp,活动目录(AD),CIFS(windows共享),动态DNS(绑定域名到动态IP),FTP,LDAP,NFS,Rsync,SNMP,Ssh,tftp,iSCSI。基本涵盖了非IT企业常见需要的所有服务(除了邮件服务)。目前镜像的大版本已经升级到8,所以我下到的是8.0.3,大概100M多点。 新版和旧版最大的区别在于,新版本去掉了bt下载,upnp,iTunes和http这四个家庭常用服务(实话说,http还是企业常用的)。加入了远程同步,snapshot,10G网卡等功能。内存要求也更加高,从7的256M-512M,变成了4-6G。对比起来更加企业化和专业化,但是更不适合随便玩玩。 首先,你需要准备合适的硬件。一台老式的机器,或者atom平台的mini-itx板子都是很不错的。即使是新的atom板子,便宜点的400也能弄到手,加上一条2G的内存,除掉硬盘大概也就1000。故障毕竟比较少,而且省电。存储需要一块硬盘和一个U盘,注意,两者不是或的关系。因为FreeNAS安装到某个物理设备后,会强制使用设备的全部空间,因此这个设备无法再用来存储数据。整个FreeNAS才500M,4GU盘绰绰有余,读取速度也不慢。除了升级和改配置外,没有什么太大写入,很节约。 然后,你需要去官网下载最新的iso镜像,用这个iso启动系统(注意,此时最好不要接上数据硬盘,只挂U盘)。当然,要省事的可以在windows下用vmware来装,不过对非IT专业人士来说,有点困难。启动后,在出现的选择中选择1,安装到硬盘上。在出现的安装目标选项中选择U盘(如果只挂U盘,这里就一个选项),然后等。最多两分钟,安装就完成了,选3重启系统。 去掉光盘(甚至可以去掉光驱),使用U盘和数据硬盘启动系统,并且将系统设定为从U盘启动(这点很重要,因为硬盘一般比较优先,但是硬盘上没有系统)。进去后什么都不干,会自动识别你的网卡,并且dhcp到一个ip。你可以在系统启动完成后使用选项1来重新配置ip,或者在dhcp上干脆给这个mac指定一个ip。对于使用路由器的小型公司来说,这点并不困难。 用浏览器访问这个ip,你可以看到freenas的控制界面。作为中国用户,先去setting里面改为中文,保存。然后关闭浏览器页面,重新打开(这点很重要),后面的设定都是中文了。然后,在存储,卷下面,新建一个卷。你现在可以把数据硬盘挂起来用了。 然后,再去服务里面把你需要的服务全部启动起来,并且配置合适的用户。这些就按照自己的高兴配了,界面都是中文的,应该不用我教吧。 如果无法启动服务,重启再试。你也可以参考这篇(http://www.c-dd.org/post/214/)。写的很详细,不过他安装的版本稍旧,是7。

Feb 16, 2012 - 2 minute read - Comments

简易debian livecd打造手册

废话不说,上干货。先装一下syslinux,genisoimage,kvm,debootstrap,squashfs-tools。 $ mkdir debcd $ cd debcd $ mkdir isoroot $ cp/usr/lib/syslinux/isolinux.bin isoroot/ $cat > isoroot/isolinux.cfg << "EOF" prompt 0 default linux label linux kernel vmlinuz append initrd=initrd.img EOF $ cp /boot/vmlinuz-3.2.0-1-amd64 isoroot/vmlinuz 完成上述步骤后,你就准备好了一个基础的iso镜像文件系统,并有了一个基础的引导模块和内核。现在,我们尝试把这玩意烧到iso上,并且测试一下。 $genisoimage -o output.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table isoroot/ $ sudo kvm -cdrom output.iso -m 512 如果没法装kvm,换成qemu。屏幕会停在内核引导过程中——因为你没有initrd.img,所以在isolinux.cfg中指定的initrd就不正确。下面我们会设法弄一个initrd.img。 $ cp -a /etc/initramfs-tools/ initramfs $ mkinitramfs -d initramfs -o isoroot/initrd.img $genisoimage -o output.iso -b isolinux.

Feb 13, 2012 - 3 minute read - Comments

Progress Linux

别紧张,我不是要progressLinux,这是一种新的distribution(算是吧)。http://progress-linux.org,是一个基于Debian的dist。 为什么要有这个dist?其实严格意义上说,这不是一个完整的dist。不同于Ubuntu,这个dist可以完全的寄生在Debianstable(squeeze)上面。你不需要真的去官网上下载一个ISO,然后安装。只需要安装Debianstable,然后加入 Progress-Linux的source就好了。如果你胆敢在Ubuntu上这么干,只会把系统弄的一团糟。当然,直接下载Progress-Linux的安装ISO也是可以的,这个ISO基于Debian Live,作者(Daniel Baumann)本人也是DD,是Debian Live的主要作者之一。 为什么要这样?因为Debian是以严谨到变态而闻名的系统。例如,mdadm这个包有一个很小的不便。每个月当检查RAID的时候,会发一封mail。如果你有一堆电脑需要管理,这件事情就非常烦人了。要修正这个问题,只需要在其中一个脚本中加入参数-q。但是Debian修这个bug修了9个月。因为具体的包维护者并不是很关心这个事情(低优先级),而Release Term需要确保这个bug必须先在Sid中修复,确认没事了(基本是没问题的,只加一个-q而已),再修复testing的,最后修复stable的。于是,你的邮箱要被一堆垃圾持续淹没9个月。 Progress-Linux就快多了。 但是为什么要做成dist呢? Debian的模式设计,是方便fork,而严格控制release的。Debian的版本库更新要很多条件,例如符合DSFG(也就意味着符合一系列的开源授权协议),更新的时候首先作用于SID,Release Term说了算等等。DD也没有权利要求更新Debian stable中的包,他必须申请Release Term批准。想想也能明白,如果真的每个DD都能直接更新包,那才天下大乱了。我们不能绕过Release Term去解决问题,也不想让这些问题留着。 那么怎么办?只有自己做一个仓库。Debian鼓励这么做(有很多dist就是这么做的),但是这时就不能用Debian的名字,因此作者才做了一个新的dist。DSFG这时变成了一个优势,Debian的所有包,都满足DSFG的第8条,“不仅仅对Debian授权”,可以直接应用。 因此,其实Progress-Linux是一个基于Debian的改进。更快的bug fix,更多的backport,更少考虑版权问题。当然,限于作者关心的包。另一个激动人心的特点是, Progress-Linux的包和backport包不会碰撞,因此使得stable可以简单的安装很多新的包。如果你喜欢,可以在安装系统后加入他的source,作为系统的改进。但是不要指望有什么实质性变化,都是一些细节改进而已。如果你希望知道几个例子,可以看这个页面(http://www.progress-linux.org/project/about/)。 也许你希望使用一个中国区的mirror来做这个事情(这样更快,也省去中间的一些其他麻烦),http://mirrors.ustc.edu.cn是debian中国区域的主镜像(即http://ftp.cn.debian.org),这个节点已经完成Progress-Linux的镜像。 Relax, I don’t mean to progress Linux, it’s a new distribution (kind of). http://progress-linux.org, a new dist based on Debian. Why people made this dist? Technically, it is no a fully dist. Unlike Ubuntu, this dist can totally on the top of Debian stable(squeeze). You don’t need to download a ISO from website and install.

Feb 10, 2012 - 1 minute read - Comments

外包和派遣的一些问题和顾虑

很多公司老总很头痛的一个问题是外包。相比自己生产程序,外包有一定的优势,也有劣势。 优势 1.外包便宜,从实现角度,比自己养程序员便宜很多。毕竟自己养程序员还要交三金所得税,外包程序员需要自己管理自己的三金所得税——通常都不会交。所以比自己养的要便宜的多。 2.在安全性上,外包并不一定比自己养程序员差。毕竟自己养程序员也没法杜绝跳槽,也没法杜绝恶意的underhand代码。 劣势 1.不稳定,极度不稳定。能不能完成并不像自己养的程序员那样有一个项目经理在跟踪,搞不好就是到期了,基本什么都没有。虽然可以不付钱,但是被耽误的时间更麻烦。 2.逼良为娼。如果你的需求类似一个论坛,他们就会诱使你做一个论坛。论坛可以用开源的项目经过定制和修改来完成,看起来工程浩大牛逼XX,实际上没花多少时间,实现小开销大收入的目的。如果你真的没被说动,他们会先答应你的一切需求,等期限快到了再告诉你,论坛做起来很快的,改一点需求吧。如果再说不动,参考问题1。 3.良莠不齐。多年筛选下来,很多优秀的,可靠的外包团队真的很厉害。但是混事的团队混事能力也很厉害,很多问题说的头头是道,价钱也比正儿八经做的便宜不少。你觉得便宜的就是混子?错,有时混事的团队比正经外包公司还贵。万一一个没看准,那就又参考问题2了。 4.外包没法解决资金来源。很多老板对这个问题只会哈哈一笑,不过有的时候这确实是个问题。不是每个外包团队都能提供发票的,很多团队没有挂靠公司,或者挂靠公司但是发票加税点。这时候你开出来的外包费用就无法按照服务费计算,只能当作其他费用处理。要么你自己找发票填上,要么就扣税。 我看下来,愿意做外包的老板,大概不足一成,而且大多都是逼上梁山没办法了(要么人力来不及按时完成了,要么没人会做了),才外包一部分。 相比起来,人力资源派遣是个新行当。这行当和外包差不多,只是他们不分离做,他们找人去你公司做。 优势 1.你的项目经理可以盯着他们了。 2.派遣多数都是从公司来的,大半有发票。 3.你让干吗就干吗,不行滚蛋。 劣势 1.可没比自己养程序员便宜,搞不好还贵。 所以很多公司对人力派遣也不是很喜欢。不过我说句实话,要是需要一个特殊类型的人才,预计时间不长,或者想试用一下,不妨考虑考虑。 目前很多外包也参考了HR派遣的做法,他们的做法是这样的。谈项目。达成协议。派团队去你的公司,该干吗干吗。验收。撤回团队。 你的项目经理可以随时验证他们的工作,因此也不会出现逼良为娼的情况。 但是无论如何,请自己找一个项目经理!不要让你的程序员来做项目经理的事情,更不要指望什么都不管丢钱下去程序就会自动长出来!

Feb 9, 2012 - 1 minute read - Comments

lfs under debian注记

1.严格按照说明做,少看一点无关内容后面就一堆err了。 2.新分区大点,4G不够的,最小用8G。我用了20G的,硬盘不值钱。另外说一句,并不是4G不能够做到,而是你可能被迫删除不少有用东西,或者是移到其他位置,增加复杂度。 3.每次你进入一个section,以前针对这个包进行解压,打补丁,并修改的source都作废了。直接删除它们,然后重新解压。lfs不依赖于以前解开的源码,在任何一节的开始都不需要翻以前怎么处理(解压,打补丁,修改)源码的。你在任何一节都可以(并且必须)独立操作源码。 4.mawk会出错,装一个gawk。 5.yacc没有的时候,装bison,it’s works。 6.如果碰到见鬼的tar.xz,用tar Jxf。或者更简单的,现代tar都支持xf直接解压,不用再自己选择zjJ。 7.chapter5的流程?先用系统的编译器编译了binutils,gcc和glibc,然后再用刚刚编译好的再编译这三个,这样编译系统就统统连接到了/tools上。然后用/tools的连接编译了一堆编译用工具,bash啦,make啦。这样,就完成了编译环境的建立,/tools是一个独立于主系统的,完整而可用的编译系统。用这个编译系统编译任何东西的结果应当是相对可控的。 8.如果我是你,在chapter5完成的时候会tar czf ~/tools.tar.gz /tools。这样会让你在chapter6中犯错的时候不至于血本无归。 9.chapter6的流程?用chapter5的编译系统,编译了新系统的编译系统。当然,这个不容易,因为刚刚的编译系统所有指向都是/tools。所以lfs指导你做了不少patch。然后重复chapter5的过程,逐步把源码编译安装到正式系统中。 10.lfs真TMD的辛苦,连source code的typo都需要在书中指出和fix。。。而且lfs自己还有errata。 11.lfs的56两章看起来像是两个人写的,风格习惯不一致。chapter5用``,chapter6用\$()。还有gcc-pass2的时候,cp -v XXX{,.tmp}; sed XXX.tmp … > XXX。而chapter6的binutils则是sed -i.bak。当然,有可能是因为有些系统的sed不支持-i,例如redhat的系统始终不支持netstat -nlp46,I hate it。BTW,我喜欢sed -i。 12.编译过程真心傻X,大部分都是解开源码,configure –prefix=… && make && make check && make install。这些过程好像可以用一个不知道啥脚本来简化,建议不要手工干这堆事情,没意思的。相反,倒是很多调整有些意思。

Feb 8, 2012 - 1 minute read - Comments

windows下那些好用的免费程序

大部分开源,不开源的特别注明。 firefox或者chrom替换掉IE。 不解释了。本公司UED坚持认为在windows下使用IE是一类人格缺陷,有这种缺陷的人应当被自然淘汰。我当然不支持他人格缺陷的论点,我认为是智力缺陷。 Everything(不开放源码) 文件搜索工具,肯定要装,平时不消耗资源,需要的时候闪电一般的把你需要的东西找出来。这个东西会彻底的改变你文件管理的习惯。 klite codec 还在用腾讯/暴风影音?我推荐klite codec。这个玩意里面内置了Media Player Classic - Home Cinema作为播放器,并且把常用的解码器组件都装上了。基本好用。当然,所谓基本,和商用播放器的一堆花哨功能不同。klite的功能还是略差的,比较偏向基本功能的稳定。不过好在,有的地方klite更强一点——例如没有烦人的广告和插件,性能和稳定性都很不错,而且有些生僻格式也做了支持。实际上,我觉得出问题最多的还是这些生僻格式和wmv。 mplayer 比klite还强的播放器,和vlc并称最强播放器之二。就是太难玩了。 另外,我不推荐在windows下用vlc,不太稳定。 MediaCoder 转编码不错,除了rmvb格式外都很好转。压个片给手机的时候很方便。 putty(英文版!) 远程命令行工具,基本是做linux开发的不二选择。即使我没事用windows也习惯装个虚拟机,跑个linux,然后用putty连上去。当然,putty肯定是要用英文版的,具体自己google吧,不要baidu。 foobar2000(不开放源码) 音乐播放器,替换千千静听和酷狗的。确实是超级强的定制工具,居然支持从zip/7z中加载音乐。这样我下的音乐包都可以直接用了,不用解压。 launchy 启动工具。有更好的启动程序可以给我介绍一下,我现在用的是launchy。按热键,敲几个字母,就可以启动程序了。而且这个是linux/windows支持的,两者习惯完全一致。当然,如果你stick在某个系统上,可以找找更适合的软件。 honeyview(不开放源码) 漫画工具,主要是还在维护。能用的漫画工具也没几个了,comicviewer不维护了,acdsee根本是个庞然大物。 peazip 压缩工具,挺不错的。现在大多数都用winrar了吧?一个是这玩意需要破解,不然就乱弹窗。作为一个程序员,我实在不好意思破解。另一方面,这个东西对samba的支持不好,在win7下,他没法打开samba共享出来的文件,而且某些文件会乱码。peazip可以解压我要用的全部格式,包括rar。并且可以生成我要的大部分格式,包括linux格式,不包括rar。这个主要受限于copyright问题。 不过peazip对某些比较奇怪的字符支持不如winrar,有时会不认识一些日文压缩包。这个问题对honeyview等程序都存在,我认为是这些压缩包自己的问题。 Foxit(不开放源码) pdf阅读工具,国产软件,比adobe的强。不过细节总是做的不是很好。例如书签不够强大,注记功能不足,不支持zip文件读取等。不过要不用foxit,就要用回adobe,你自己看着办。

Feb 7, 2012 - 1 minute read - Comments

国产软件更换计划

首先声明,我不是歧视国产软件,我自己做出来的也算国产软件,如果我真的在玩歧视,我是歧视我自己,OK? 不知道为什么,中国人做出来的软件,或者中文软件,和外文软件有完全不同的风格和特性。我很早就骂过,我们的软件充斥着免费的流氓和收费的冷屁股。现在更改一下,我承认有的软件很好用,所以中国的软件是好用的流氓大集合。 为什么?我怎么知道为什么?前两天千千静听的事情把我恶心坏了,而且还有中文putty后门事件。难道国内就没有好用的软件了么?自己想想,很杯具的发现,貌似可能性不大。首先,如果我们的程序好用而且免费,程序员就得从其他渠道赚钱。这年头程序员的第一需求是老婆需求,这是刚需。有老婆需求就有丈母娘需求,有丈母娘需求就有房子需求。OK,哪怕我们的程序员是个只对程序感兴趣的大宅男,只要他不是个Gay(说明一下,只要一不找我,二保持固定关系,我没有歧视的意思),最终还是会归结到钞票需求,而且还不是一般的钞票需求。 所以,大量的程序员都必须赚钱,赚大钱。相比起来,很多老外程序员的想法我们就觉得很奇怪。我有位朋友(在此先恭喜他喜得贵子,然后按照他的习惯隐去名字,请认识的人也不要写出本名给搜索引擎搜),他希望办一家中国公司做一项技术,因此曾经找上中国的干部。干部对这个技术很感兴趣,因此愿意给支持。我提醒他,有支持就有相应的条件,他以后将不能撤资,而且赚到的钱也不完全是自己的。他很奇怪的看我,开公司的目的是推广这项技术在中国的应用,只需要基本收入就好了。作为一个同样需要赚钱的中国程序员,我顿时觉得我们在两个世界。 而且,中国软件界普遍的情况是对恶和权不敏感,例如很多程序员都在用盗版VS。当然,我会听到很多理由,但是我觉得他们只能被称为借口。我认为盗版只在两种情况下合情理——用于教学实验目的和为了表达对版权制度的抗议。当然,后者虽然合情理,但是违法。如果说国内程序员用盗版的理由是一,那太侮辱智商了。而如果是二,我从没有看到他们举着反对版权的旗子去游行,也没有看到他们所写的所有软件都声明——本程序没有任何版权。 我也和不少程序员谈过所谓授权和回避方法,基本都是新手程序员觉得“很有道理”,老手就付之一笑了。因为老手知道,这些事情是没必要的。是否在软件包中声明使用了某个BSD的库?没有区别。商业软件使用了GPL的库?没人关心。你多此一举,只会引发项目经理的反感而已。OK,既然程序员对作恶和权不关心,那么绿坝版权问题的发生只是迟早而已。 难道中国软件界改良的希望需要寄托在培养基友程序员上? 这么大的问题我暂时无解,但是我需要做和我有关系的部分。我会逐步移除电脑中的国产windows程序,并且将其余国产程序加入观察名单。中文软件主要是指在国内制作和汉化的闭源windows软件,原生软件汉化不算,开源不算,linux软件不算。实际上,观察名单对我而言不会太长,基本就是QQ国际版,Foxit,和几大网银。 我建议读到这篇文章的人,也好好考虑一下,哪些软件真的是有风险的。这并不是让你马上回家删掉所有国产软件——实际上我至少得留着网银,他们没替代品——而是说,我建议你在脑子里面转一下,自己装了些什么东西,会造成哪些问题,是否愿意接受。这会花掉你几分钟的时间,但是也许会让你少碰到一些恶心问题。

Feb 6, 2012 - 1 minute read - Comments

千千静听被百度收购了,WTF

我挺喜欢千千静听的,这玩意被我调整到习惯和winamp差不多。自从winamp变成一个庞大的怪物以来,我一直用的这个。 不过在win7上,我一直删除不掉百度插件。每次我请他们出去,他们又会装上。后来我启用了严格的UAC,并蓄意把目标文件夹标记为没有人拥有权限,发现了问题——千千每次启动都查找并试图重装baidu插件。我开始以为是我下载的版本不对,被捆绑了其他组件。然后我去他们官网,下载了一个最新版本。安装的时候,我留意到发行者是baidu online…。OK,问题看来不是我下载的版本被恶意捆绑,而是原始版本就写入了这个代码。 用过firefox或者比较正规的软件(包括微软那个IE)的人都可以留心到,在关于页面中,可以看到这个软件使用了哪些开源组件。这个大部分是因为这个库的版权限定要求使用者必须列出库的名称。不过这点在中文软件上就做的比较差,也许是根本不拿授权当回事吧。 但是,在软件内打入和软件功能无关的其他组件,那是另一回事情。个人认为,一个程序如果在安装包内捆绑插件,让用户选择安装,我还能接受。毕竟很多软件作者也要吃饭,做插件推广是一条路。如果捆绑强制安装,那就有流氓之嫌了。如果捆绑完了不算,还在每次启动的时候都检查插件是否还在,那就是确定无疑的流氓。 当然,千千的行为比这个更糟糕(我不选择说更流氓)。千千主页上没有任何地方说明千千归属了百度旗下,只有最下方有一条<千千静听联手百度娱乐推出“百度新歌汇”>的新闻,以及最下方有百度软件世界的连接。我也是从UAC的警告中发现,千千的软件包是用winrar打的(不知道是否是正版),而签名则是Baidu。至于选择,软件安装的时候的却有选择,不过即使选择了“不安装百度工具栏”,“不将hao123设为主页”也没用。还是会有一个叫做BaiduMusicCtrl的东西伴生安装进去,每次ttplayer启动时伴生启动的就是这个。说是和音乐有关的东西么,我在IE的插件和系统启动项中都找不到这个东西的影子,不知道是干吗的。千千删除的时候也不会跟随删除,不过可以找到独立的“百度音乐控件”项目,并且手工删除。更神奇的是,我在主页上找不到任何关于此事的说明还不算,连软件的发行授权都没有。没有发行授权,这软件我们用着算怎么回事呢? 我又安装了一遍千千,找到了软件使用协议“版权归属所有者所有”。这不是TM废话么。 OK,很多人在我说,中国人不大在意版权,这句话的时候,要我拿出证据。现在就是一个明证。从整个过程中,我感觉到的并不单是恶意捆绑这么个事情,而是对版权和授权的一个漠视: 1.没问你要不要,总之给你捆绑安装百度音乐控件,每次千千启动时自动启动更新。 2.被百度买了,页面上什么关联都没写。 3.关于授权,这个软件什么都没写。(另外,写授权的时候不要写“保留一切权利”,这是句屁话。你最起码得度让使用权,否则发行软件给别人就是故意诱使别人犯罪。千千的“保留知识产权”还是正确的。)因此,不要问我如果你把千千放到你的主页上会如何——这算再发行,合法不合法就看作者定义了——虽然我觉得他自己都不一定觉的出区别。 现在改用了foobar2000,很满意。这个东西可以接受samba共享系统,并且支持从zip/7z中读取文件。我很多下载的zip音乐包就可以直接使用了。虽然界面简陋很多,不过用起来更顺手。千千还是留给度娘控吧。

Feb 2, 2012 - 1 minute read - Comments

教育的思考

首先说明一点,这是贝壳自己对自己受到教育的反思。由于本人不从事教育行业,所以结论可能和现有的理论相悖离,也不保证正确。 教育最重要的时刻,不是在高中,而是在幼儿园。幼儿园的老师不应当教知识,而是应当教常识。常识是非常重要的,我们有意无意,善意或恶意,都会给小孩子灌输扭曲的常识,例如孩子问你他是哪里来的,你说是从垃圾桶中捡来的。等孩子成长了,他的第一件事就是推翻不正确的常识。还记得那个笑话么?——我知道你的父母和老师都对你这么说,但是,圣诞老人是不存在的。是的,超人也不存在。哦,不不,驯鹿和美国总统是存在的。 孩子听到越多不正确的常识,就需要浪费越久的时间逃脱常识的束缚。大部分孩子甚至终身会带着一些偏见——例如以前的“地球是宇宙的核心”,到不久前的“空间是连续的”。从有意的“抢到的东西就是自己的”,到无意的“大人说谎也不受惩罚”。越多错误的束缚,孩子需要浪费越多的时间逃离束缚,将来的成就就越小,这就是为什么我觉得幼儿园是一个孩子成长的关键的原因。 至于第二语言,真的没有必要在幼儿园就开始学起,我甚至觉得语言不应当被独立教授。还记得你的打字是怎么练成的么?我打赌我的读者中,有一半以上不是在正规的课堂中,按照老师的指示一点一点去练习每个键位,最后成为打字高手的。我自己是在QQ起步的时候,在网络上和别人聊天。从开始的一对一还是被人家嫌慢,到最后可以很轻松的一对二甚至一对多,大概只花了我半年多的时间。同样,要在课堂上学习语言,比不上在语言的环境中学习,这个大多数人都知道。但是什么是语言的环境?这不是说找个外教,或者用英语授课就解决的。孩子使用语言的关键,在于和同龄人组织学校社会的时候。如果他们圈子里面用英文,你的孩子只有三种可能,1.不和同龄人交往,变成书呆子,2.根本不去上课,退学了,3.英文熟的你根本听不懂。问题是,在中国如何控制学校中的学生交际圈呢?所以从这个意义上说,在中国要稳定的学好英文,而且和老外差不多,是不现实的。只能靠你孩子的天赋和运气。 很多人把孩子送到了国外,实话说,这是一个不负责任的选项。孩子可以没有很强的英语能力,但是在成长中,脱离家庭的关心是致命的。除非你送到国外后,在当地有其他人可以替代你关心孩子,否则将来成长的结果只能靠运气。有很多人,在出国后交往男女朋友(这个很正常),颓废,不用功学习,失去生活目标(这个不应当在初中和高中出现),乃至吸毒(这个也不算太少)。当然,以国内不少家长的情况而言,陪着孩子成长只会导致更严重的问题。 中国的小学和初中教育,是一个学习的过程,这个没问题。但是学的内容太深入,又不够广泛。现在家长都在喊教育内容不要超纲,喊教学速度过快,喊小学上大学内容。但是,什么是纲,为什么要有纲。诚然,学习的问题上,有些时候不到一定年龄,学生是理解不了某些问题的。但是在学习知识上,实际是没有边界的。我们拆掉考试的问题来反观教育,如果真的是为了更好的工作,那么凡是需要的知识都必须要学,可以多不能少,何来超纲?超纲是一个基于考试产生的现象,本质是考试的难度无法增加,就通过增加范围来提高分辨率,强行区分学生。 以初中数学为例,我们初中数学的很大一部分都在教授二次方程特性和解法。实际上呢?二次方程用到的机会非常少。大家也都是从考试中走出来的社会人,你们凭良心告诉我,毕业后有多少机会用到了二次方程?个人觉得这部分教到过概念和解法就可以了,不必对特性深入到奇怪的地步,特意构造一些特例问题来考察学生的解题能力。其实只要在需要的时候,找一下wiki,然后根据问题能解出来就行了。我的高等数学学了很久,现在也差不多都还给了老师。但是需要的时候,我可以通过很短时间的查找资料,把问题现场解出来。反倒是从小学到高中,对一些现代数学的基础学习不足,尤其是线性代数和统计学。高中没有教授现代统计学,因为这依赖于高等数学。线性代数只教了方程组解法和行列式,没有教授矩阵运算。实际上这是现代数学概念的基础,应当在足够的时间内深入学习。 至于语文和思政,更是沦为执政党的免费广告课程。这部分课程大部分人在高中开始就吐掉了,吃都吃不下去。 高中开始,学校教授的不应当是知识了,而是研究方法。当然,研究方法其实应当从小就开始学习了,包括论文格式,研究过程和方法,预算控制等等。尤其是一些现代科学中基本的精神,都应当在实际的课题报告中做足够的检讨。国人经常在一些莫名其妙的地方出奇奇怪怪的毛病,部分可能就源自没有系统的接受过研究方法论的影响。例如,在研究效果的时候,应当应用双盲法。如果这是一道填空题,我估计大部分国人都能做对。但是实际操作的时候,有很大可能陷入双盲误区中。尤其是单向相关性断定,当有A,就发生B时,就开始断定是A导致了B。又例如中医问题,对于接受过研究方法论的人而言,双盲法检验需要不需要根本不应当是一个问题。要么就拜托你,不要自称中医是科学,这也行。不是每个结论,在科学上都有解释。不管你信不信,反正有人信。这没什么,有人信上帝,有人信科学。但是不要对外声称,我们的上帝经过科学检验。。。 至于有些民科,或者一些不知道什么的人,写出来的东西就更神奇了。为什么地球在远处向太阳坠落就会形成旋转,为什么太阳是黑洞在发光。他们写的每个字我都认得,但是连贯起来就完全看不懂说了些什么。老外的神奇论文,是从常识性的结论和公式出发,通过推导,得出一个反常识的结果。然后再验证这个结果,而且居然是对的。例如泊松斑,水星近日点漂移,宇宙膨胀。对于这些东西,我虽然看不懂,但是每个上下文的联系都能看到,只是不明白基础知识,也不知道为什么要如此推导。民科的论文则相反,是从常识性的结论和没有公式出发,跳跃性的得出反常识的结果,然后没有人能够验证。我不但看不懂上下联系,而且连他想说什么都看不明白。当然,最神奇的是这样的东西也有人买。。。 至于大学,会在大学学习知识的人是傻子。大学是一个教授研究方法论和寻找人生意义的地方,如果一个学生大学毕业,能够找到自己的人生目标,认识一群好兄弟,就已经很满足了。至于学到的知识,真的和大学无关。如果要说有什么关系的话,最多是借助大学的环境,可以更广泛的接触自己想要接触的东西。当然,后者即使对于毕业的人也不是无法做到,所以去大学绝对不是学知识的。 说到这里,国人有个奇怪的现象。大部分人好像都相信知识改变命运,更多的知识就能带来更成功的人生。但是实际操作的时候却都是脑体倒挂,进行脑力劳动的不如进行体力劳动的。程序员赚钱靠什么?加班。书本靠什么赚钱?印刷。