四金到底掏谁的腰包

四金,各地叫法不统一,也有叫三险一金的,包括养老保险、医疗保险、失业保险和住房公积金。有些地方已经发展到五限一金,还包括生育保险和工伤保险。

交纳比例各地也不一致,这里以上海为例。(其实大家比我更清楚,只是列出数字好扯出话题)

企业 个人
养老保险 20% 8%
医疗保险 8% 2%
失业保险 1.5% 0.5%
住房公积金 10% 10%

上表可以看出,单位交纳的部分大约是个人交纳的2倍。

–真的是这样吗?

–不是这样。

–为什么?

这些社会保险,其实很类似于税收。人大代表们当然可以立法确定其向企业和个人征收的比例,但是情况确没有这么简单。当然企业和个人分担了这些保险金,但是真实的分担比例却和上面的比例无关。

在劳动力市场中,其供给量是比较固定的。很少有人会因为目前劳动力的价格很低就放弃供应劳动力。而其需求却是比较灵活的,否则今年工作也不会那么难找了。

按照经济学的术语是:劳动力的供给是缺乏弹性的,而劳动力的需求是富有弹性的。

在这种情况下征税,税收实际主要来源于缺乏弹性的一方。

如图所示,供给曲线是工人们愿意提供的劳动力随工资变化的函数图像;需求曲线代表企业们愿意接受的劳动力随工资变化的图像。最终的工资就是这两条曲线的交点。供给曲线陡峭是因为工人们提供的劳动力总量对工资不太敏感,工资下降也不会停止提供的劳动力。而需求曲线则相对比较平缓。需要注意的是,这里的工资应该是一个平均的概念。

当政府征税时,不管是向买方征税,还是向卖方征税,其效果都是一样的。援引曼昆的经济学原理1

如果我们设想政府在每家冰激凌店的柜台上放一个碗来收取0.5美元的冰激凌税。当政府向买者收税时,要求买者每买一个冰激凌蛋卷往碗里放0.5美元;当政府向卖者收税时,要求卖者每卖出一个冰激凌蛋卷往碗里放0.5美元。0.5美元是直接从买者的口袋进入碗内,还是先从买者的口袋进入卖者手中,在间接进入碗内,都无关紧要,一旦市场达到新均衡,都是买者与卖者分摊税收负担。

而具体的分摊比例,正式根据供需双方的弹性决定的。如上图所示,如果没有税收,供给曲线和需求曲线的交叉点就是平衡时的价格。当税收存在时,供给曲线、需求曲线或它们两者会上下移动。但不管是谁移动,再次平衡之后的效果都是相同的。企业付出了A的工资,工人得到B的工资。其中弹性较大的一方的损失会小于弹性较小的一方。

因此,四金基本上还是自己付的。

注1:关于冰激凌的例子,还可以参考Matrix67的征税到底亏了谁

经济学原理学习笔记(4)

第二章 像经济学家一样思考

2.1 作为科学家的经济学家

科学的本质是科学方法。科学方法:观察、理论、进一步的观察。

在经济学中做实验通常是困难的:研究通货膨胀的经济学家绝不会被允许仅仅为了获得有用的数据而操控一国的货币供给。经济学家像天文学家、进化论生物学家一样,通常不得不使用这个世界碰巧向他们提供的数据。

经济学家像物理学家一样,做出假设,忽略一些次要因素,使复杂的世界简化。

两个经济学模型:循环流量图和生产可能性边界。

上图是汽车和电脑的生产可能性边界示意图。生产可能性边界通常是这种凹向原点的形状。这是因为当该经济把大部分资源用于生产电脑时,最适于汽车生产的资源,如熟练的汽车工人,都被用于电脑行业。由于这些工人也许并不擅长生产电脑,该经济就不会因为多生产一单位的汽车而少生产许多电脑。与此相反,当该经济把其大部分资源用于生产汽车时,多生产一辆汽车就意味着要把一些最好的电脑技工从电脑行业中转移出来。结果是,多生产一辆汽车会导致电脑产量大幅减少。

微观经济学研究家庭和企业如何做出决策,以及它们如何在特定市场上相互交易;宏观经济学研究整体经济现象,包括通货膨胀、失业和经济增长。

2.2 作为政策顾问的经济学家

实证表述是描述性的,它们做出了关于世界是什么的表述。

规范表述是命令性的,它们做出了关于世界应该是什么的表述。

2.3 经济学家意见分歧的原因

经济学家可能对世界如何运行的不同实证理论的正确性看法不一致。

经济学家可能有不同的价值观,因此对政策应该努力实现的目标有不同的规范观点。

大多数经济学家一致同意的十个主张:

  1. 租金上限降低了可得到的住房数量和质量。(93%)
  2. 关税和进口配额通常降低了总体经济福利。(93%)
  3. 有伸缩性的和浮动性的汇率提供了一种有效的国际货币协定。(90%)
  4. 财政政策(例如,减税和/或增加政府支出)对低于充分就业的经济有重要的刺激效应。(90%)
  5. 如果要平衡联邦预算,应该在经济周期中而不是每年中来实现。(85%)
  6. 现金转移支付带来的领取者福利的增加大于等值的实物转移支付所带来的。(84%)
  7. 巨额联邦预算赤字对经济有不利影响。(83%)
  8. 最低工资增加了年轻人和不熟练工人中的失业。(79%)
  9. 政府应该按“负所得税”的思路重建福利制度。(79%)
  10. 排污税和可交易的污染许可证作为控制污染的方法优于实行污染上限。(78%)

foobar2000的Now playing插件for TM

想做这个插件很久了,但一直没有动手。一来是没有foobar plugin的开发经验;再者有人在说曾经研究过QQ Music,发现数据是加密发送的,只好作罢。

今天中午突然想到,为何不直接向窗体发送消息,模拟键盘和鼠标操作……于是开始动手。

事情进展得比想象中还要顺利,一个小时不到,一个可以更改QQ签名的可执行文件已经出炉了。

转头研究foobar2000的sdk,途中遇到几个小问题,不值得一提。

由于这个程序稳定性尚有待商榷,暂时不提供源代码下载,bin文件请点击这里

注意:plugin在设置TM的签名时会使用剪切板,暂时没有自动恢复剪切板的功能。

记得报告bug,造福你我他:a@yegong.net

已知bug:

  1. 偶尔会在设置的签名前后多出一个字母v来。[已修复]

书评:时序保护事件

几个月都没看科幻世界了,今天买了一本十二月的(总第271期),里面保罗·莱文森的时序保护事件读完之后却是很难得的有了一些想法。说出来给大家听听,不怕笑话。

这篇文章讲的是一个和宇宙监督假设有关故事。呃,先让我们忘掉那个该死的假设吧,我也不记得那是什么玩意了。

时间旅行,通常提到它都是指穿越虫洞、回到过去。呃,很好,让我们回到过去。但是同样该死的雷纳·巴雅瓦提出了那个我们都知道的祖父悖论,就是回到过去,杀死自己祖父那个悖论。

很多盛行的说法试图解释这个问题,比如说前面说到的宇宙监督假设。这个由霍金提出的假说认为无论从理论上是否能够进行时间旅行,宇宙都会避免你这样做。

好了,我们来换一个话题,虽然同样不那么轻松。

我们来考虑一下,人类有些什么办法毁灭自己。

  1. 核武器?老土!
  2. 前段时间被讨论得很多的大强子对撞机?产生一个黑洞吞掉地球倒是一个好主意,不过还不够厉害。
  3. 未来,更大更强的大强子对撞机?引发真空衰变1毁掉整个宇宙?这个很厉害。
  4. 还有呢?回到侏罗纪干掉所有的哺乳动物。(我们假设这个可能先)

让我们来看看,前面三种方式和最后一种其实有很大的不同,前者仅仅毁灭了宇宙的未来,而后者毁灭了宇宙的过去。你现在仍然在阅读我的博客证明我们未被来自未来的恐怖分子袭击。

你现在仍然在阅读我的博客证明我们在一个不会被来自未来的恐怖分子袭击的那些宇宙。

等等!

如果你知道什么是人择原理的话,你可能已经在喊等等了。如果不是,就让我这个不太合格的物理爱好者来解释一下。宇宙物理学家发现宇宙的发展和几个物理常数关系非常密切。如果他们变大或者变小万分之一的话,宇宙早已发展到了他的尽头。为什么那些物理常数不多不少的刚好等于现在的值呢?人择原理认为,如果那些物理常数不是正好等于这些数值的话,宇宙就不会发展到有生命去提出这个问题。或者说,在无穷多个宇宙中,仅有一少部分宇宙取到了合适发展的值。我们的存在证明了我们来自那些取值合理的宇宙。

嘿嘿,这两个表述很像吧,这就是我看小说的心得。

如果时间旅行在理论和实际都上可行的话2,我们这个宇宙可能就是那个宇宙–它会发生无数的“巧合”事件来避免任何人进行时间旅行,因为我们的存在证明了这个宇宙永远也没有时间旅行者。比如说时间机器突然损坏、飞车枪击命中心脏。而这,并不是巧合,这个宇宙从诞生开始就决定了它的发展必然如此3

这就是我理解的霍金所说的宇宙监督假设。

好像不太妙,其实这很好。这保证了我们不会受到某种时间武器的攻击。或者某个疯狂的物理学家,他那可能毁灭世界的实验其实仅仅会毁灭他的小木屋。

注意这和核武器的区别,宇宙并不保证我们会被核武器毁灭。仅有那些会影响过去的事件才会被宇宙监督假设约束–如果假设成立的话。

如果理论上允许时间旅行的话,我们似乎可以做那么一个实验。多次启动一个仅有50%几率正常工作的时间机器,观察它是否总是失败。如果大强子对撞机老是出故障的话,我们也可以怀疑它其实可以带来小规模的时间旅行。

虽然这个内容有点tough,但期待讨论。


注1:有少部分科学家认为,现在我们认识到的真空不是真正的真空。因为这个真空的能级还不够低,如果我们对撞机能量足够大的话,可能产生真真空。进而引发周围的普通真空向真真空衰变,滚雪球似的毁灭整个宇宙。

注2:似乎有不少理论支持时间旅行。只是……技术上……难了不是一点两点。不是要求无限长的棍子,就是要求比宇宙总能量还多的能量来支撑一个黑洞扭曲空间。

注3:好像有点决定论4的意味。呃,虽然决定论的观点很悲观,但是其正确性仍然不明。其实,好多物理知识都让人挺悲观。比如,你最好不要对自由意志抱太希望,虽然这个问题也没有结论。但有数学家通过模型指出,如果人有自由意志的话,那么原子也有。所以,无所谓啦:)

注4:决定论是指,一旦宇宙的初始条件给定,就可以通过计算得到它任何时间的状态。当然,决定论否定了自由意志的存在。虽然量子力学的出现对决定论是一大打击,但它仍然可能在我们了解更多物理规律之后重生。

Boost库文件文件名完全解析

今天总算完全弄明白了编译boost文件名前缀和后缀的含义。

在Windows上完整的编译boost大约会生成4GB左右的库文件。总的来说有如下分类:

  1. st和mt,分别对应单线程和多线程。如果你在使用Visual Studio .Net 2005及以上的版本。请直接删除st系列,因为KB154753中提到,The /ML and /MLd library compiler options for static single-threaded libraries were removed in Visual C++ 2005 and in later versions of Visual C++. 令人奇怪的是编译boost的时候它们是怎么跑出来的,在编译器都抛弃它们的情况下…
  2. 带gd和不带gd的,这个大家都知道,分别是debug和release。
  3. 带s和不带s的,s当然是指static,但并不是用于static链接,而是指是否已经把runtime library静态链接,参见这里
  4. 以libboost开头和以boost开头的,前者是静态链接用的,后者是动态链接用的。动态链接版本的包括一个链接时需要的lib文件和一个运行时需要的dll文件;而静态链接版本的就只有一个lib文件。
  5. 带版本号和不带版本号的,这两种完全一样,都是Windows没有符号链接的错。建议保留版本号。

通常情况下只需要动态链接的库文件即可,mt和mt+gd,大约25MB而已。但记得定义BOOST_ALL_DYN_LINK宏,否则boost的自动链接指令默认的是静态库。

ps. 不小心把文章删掉了,从Google Reader里面重新找了出来。

ps. 增加一条:后缀带p的是指使用STLport编译的。

Windows的环境变量的递归问题

今天调整PATH路径,无意中发现Windows环境变量的递推法则有点奇怪。

系统变量是完全支持递归的。当然啦,要是弄一个死循环出来,我也不知道会发生什么。

但是用户变量的递归似乎有一点不同。

环境变量是按其名字的字典顺序定义的。若某一用户变量其中包括其它已定义、但顺序靠后的环境变量时,似乎无法正确的递归展开。而系统变量完全不存在这个问题。例如

COMPILERS	d:\compilers
JAVA_HOME	%COMPILERS%\java\jdk1.6.0_10
PATH		%JAVA_HOME%\bin;%MINGW%\bin
MINGW		%COMPILERS%\mingw

则其中JAVA_HOME, MINGW都能顺利展开,但PATH中的%MINGW%却无法展开。把上述定义改为系统变量,就能全部展开。

可能是个bug,求证实或证伪。

VIM通用时间戳脚本

曾经写过一个VIM的时间戳脚本,用于自动在源代码文件中添加和更新时间戳,也就是Last Change的注释。前段时间重新写.vimrc,把这个脚本又完善了一下,下载请点

PS. 最近VIM又学到不少技巧。觉得最有用的:!grep可以把visual模式下选中的行用grep工具过滤。其次可以把ii设置成命令模式和插入模式的开关。少了遥远的<Esc>效率高好多,就算不清醒,这个命令也基本上是无害的。

function! TimeStamp(...)
    let sbegin = ''
    let send = ''
    if a:0 >= 1
        let sbegin = a:1.' '
    endif
    if a:0 >= 2
        let send = ' '.a:2
    endif
    let pattern = sbegin . 'Last Change: .\+'
        \. send
    let pattern = '^\s*' . pattern . '\s*$'
    let row = search(pattern, 'n')
    let now = strftime('%Y-%m-%d %H:%M:%S',
        \localtime())
    let now = sbegin . 'Last Change: '
        \. now . send
    if row == 0
        call append(0, now)
    else
        call setline(row, now)
    endif
endfunction

au BufWritePre _vimrc,*.vim   call TimeStamp('"')
au BufWritePre *.c,*.h        call TimeStamp('//')
au BufWritePre *.cpp,*.hpp    call TimeStamp('//')
au BufWritePre *.cxx,*.hxx    call TimeStamp('//')
au BufWritePre *.java         call TimeStamp('//')
au BufWritePre *.rb           call TimeStamp('#')
au BufWritePre *.py           call TimeStamp('#')
au BufWritePre Makefile       call TimeStamp('#')
au BufWritePre *.php
    \call TimeStamp('<?php //', '?>')
au BufWritePre *.html,*htm
    \call TimeStamp('<!--', '-->')

Apache镜像在校内

今天无意中发现,校内网有Apache的镜像,速度很快,地址是http://dev.xiaonei.com/apache-mirror/。想想校内图片服务器奇慢无比,却仍然坚持为开源项目做镜像,这种精神绝对应该表扬。

ICH10南桥启用AHCI控制器

NCQ(Native Command Queuing)是一种通过重新排列磁盘操作的顺序,来提高硬盘性能的技术。在频繁读写小块文件的时候能提供不错的性能提升。

NCQ技术需要硬盘和主板的双重支持。目前的SATA硬盘大多支持这项技术,但是主板却不一定含有必须的AHCI控制器(Advanced Host Controller Interface)。最简单的办法是直接拨打主板的技术支持电话进行询问。也可以在BIOS中查看有没有某个磁盘的选项是AHCI。

如果你的主板也支持AHCI,那么自然要想办法启用它,但这并不容易。

默认情况下,Windows安装盘是不含有AHCI驱动的,如果直接在BIOS中设置硬盘按AHCI模式工作,Windows根本无法启动。

Thinkpad升级中心给用户提供的79im05ww补丁就是启用AHCI的Intel Matrix Storage Driver,其中添加一个脚本保证切换硬盘工作模式后Windows不会启动失败。但是,要让这段脚本在自己电脑上运行,还需要修改里面的AHCI控制器编号。我的主板南桥是ICH10,尝试好几次都没能成功启用ACHI。最后发现,驱动开发网的管理员写好了一份通用的脚本。出于保护作者劳动成果的目的,这里就不直接放出下载了。但还是提醒一下,那里声称下载是需要手机付费1元进行身份验证的,但是我发现似乎不需要。

不小心撞上Linux Kernel的一个bug

前天晚上在京东买了一台电脑,昨天傍晚送到,花了一晚上的功夫才把它装好。

早上起来开始装操作系统,没想到openSUSE 11的光盘插进去,选择Install,然后在加载Kernel的第一步就死掉了。选择文本的安装模式一看,提提示 BUG Int 14 : CR2 ffb41000。

上网查了一下,14号中断原来是给换页错误用的。首先被怀疑的就是4G内存。回到BIOS关闭Memory remap,问题依旧。

用Google搜索了一下英文的内容,发现有人和我有同样的问题,而且还是同样的主板:ASUS P5QL-PRO。看下去,原来这是Linux Kernel的一个bug。如果某块数据在某页第一个字节结束的情况下,Linux错误的把页卸载了。恰好,ASUS P5QL-PRO的DMI表就满足这个情况。

打电话给ASUS的技术支持,询问是否有办法调整这一问题,没想到差点被雷死。她说:“P5QL是一款家用型的主板,华硕家用型的主板都是按Windows平台设计的。”

这下晕了,还好,似乎只有2.6.26的核受到影响,我还有得用。