预览模式: 普通 | 列表

日本史与酷爱自相残杀的人类

日本史与酷爱自相残杀的人类

    日本动漫里虚构某世界某星球某皇室的人际关系、血缘关系总是那么乱,还要搞搞窝里反,不能说不是受日本历史上许多名族望门的混乱关系及内斗而死的最终命运的影响。不知是因为地域狭小,还是风气问题,上层人物亲友间的自相残杀屡屡上演,其密度和频度远非他国可比拟。尤其在战争年月更是如此。

    举个例子来说,从室町幕府末期的应仁治乱开始到德川幕府完全获得统治权的200来年中,亲生父子、手足相残之事几乎年年上演,各个大名、城主都遇到过部下,甚至是有亲缘关系的部下的叛乱。就拿这个时期最有名的织田、丰臣、德川三家来说,便可见一斑。

    织田信长作为家督的正统继承人,受兄弟、叔伯排挤,最终靠诱杀亲族,才在尾张一国站稳脚跟。随后靠夺取自己的侄孙(此君的父亲在生前则杀了自己的亲生父亲,即信长的岳父)的美浓一国扩大势利。信长是怎么死的呢?发动叛乱使之在本能寺被迫自杀的重臣明智光秀乃是信长公正室夫人的表哥!

    接下来,以替主子报仇为名除掉光秀的羽柴秀吉(后丰臣氏)又娶了信长亲妹妹阿市的长女淀君为侧室(插一句,秀吉的养子乃为信长的四子,因此此君辈分混乱)。而这位侧室夫人的亲爹,掌握半个近江国的大名浅井长政仁兄正是被织田军打得大败而死于非命,指挥那次战斗的恰好是羽柴自己。更有趣的是这位侧室夫人的亲娘阿市和后爹柴田胜家也是被羽柴军打败而命丧黄泉的。此外,包括信长的儿子等一些亲族也因反对秀吉而遭难。

    灭了丰臣氏的不是别人,正是织田信长君生前和死后的亲家德川家康。之所以说生前和死后的亲家是由于娶了信长女儿的家康长子德川信康是因信长的命令不得不自行了断,同时被逼赴死的还有织田公的亲家母,也即家康的正室夫人。织田死后,秀吉侧室淀君之妹又被秀吉嫁来嫁去最后嫁到了德川家,此外秀吉的最小的妹妹甚至也被嫁来嫁去最后扔给家康做老伴儿。但显然家康不会顾及自己以及亲儿子与丰臣军总帅(秀吉之子)的生父的这点关系就手下留情。

    在乱杀一通之后,混乱的战国时代总算就此完结了,但自相残杀的历史还在继续:秀吉的这个嫁给德川家二代将军的妻妹不但为德川家生了三代将军家光,还生了一女和子。此女后来嫁入皇室,成为后水尾天皇的儿媳。她所生之女即为有德川和织田家各四分之一血统的女天皇明正。这下明白了吧,从这个角度看,作为明正子孙的明智天皇打倒德川幕府的倒幕运动也不过是自家远亲之间的权势之争罢了。

    如此咄咄怪事,自有史以来在历国历代时有发生。除了一穷二白的真正无产阶级,以及祖上无德几代人才凋零,几无继承人的倒霉家族之外,许多稍衬家财的中户大户家中也不罕见此类丧人性、缺廉耻之徒。近来据说连少数无产者也学会谋夺亲族性命来榨取巨额保险金。对于这些占有欲超过了动物本身的为生存之需的界限,并不择手段之辈,真的很难说他们是因为基因突变进化成了丧失人性的异型,还是收到严重的返祖现象退化成了受本能支配的野兽。

Tags: 历史

分类:思考感悟 | 固定链接 | 评论: 0 | 引用: -3 | 查看次数: 4980
    如果管制指的是限定最高价格的话,效率会提高。如果价格管制指的是公共定价(政府制定一个固定价格),那么免税也不会引起效率改变。
    比如一件产品100块时有100个人买假定需求弹性是1,也就是单位弹性,也就是说价格上涨1块,买产品的人少1个(如果弹性高于1,那么价格上涨一块买的人会少很多,即富有弹性,如果弹性低于1,则销售量的减少比价格的上升量要小,即缺乏弹性)。
    现在假如政府开始征税,税收是40,那么对企业来说,最佳的定价是120。因为假如税完全让客户承担,那么市场价格变为100+40=140,销量则变为100-40=60,收入是(140-40)×60=6000。而如果完全自己承担,则收入为(100-40)×100=6000。实际上可以求出价格在120时企业的毛利正好最大化,为(120-40)×80=6400。
    价格为120的时候,企业收入是6400,政府税收是40×80=3200,总效率是9600,原来的总效率是100×100=10000,两者相减可得税收造成的效率损失是400。
因此如果此时减税,比如从40减到20,那么同理,市场价格应该变为110,总效率是110×90=9900,效率提高了300。
    如果价格是由政府限定的,必须为120,那么减税造成的结果是企业收入8000,政府税收1600,总效率仍为9600。也就是说,有两千块钱从公共财政转移给了企业,没有造成社会总效率的变化。
    理论上就是这样,比如政府限定了汽油的价格,那么减税对效率也没啥作用。假如原油价格上涨,而政府不希望石油产品涨价,那么只要一方面规定油价不变,一方面相应减税,就行了。

查看更多...

Tags: 经济学

分类:思考感悟 | 固定链接 | 评论: -1 | 引用: -3 | 查看次数: 8083

    Windows、Mac OS X和Linux的动态链接库/共享库各有千秋。在这里简单介绍下Mac OS X的共享库。Mac OS X的内核是BSD和Mach混合而成的。由于Mach核心处理CPU相关的最核心的任务,包括线程调度等,因此Mac OS X的原生可执行文件是Mach-O(O是Object的缩写)格式。因此Mac OS X的共享库也一般基于该格式。
    Mac OS X除了有框架和包罗框架(又译伞状框架,两者的扩展名都为.framework的包,在此不多做介绍)之外,还有两种共享库格式。一种的扩展名为.dylib,被称为MH_DYLIB格式,是一种仅仅在内存中共享代码的简单的动态库,它不能被其它代码显式的载入。一般在XCode直接创建的BSD、Carbon或Cocoa动态库并进行编译,就能得到这种库。
    另外有一种能被代码(一个程序或另一个共享库)显式载入的“插件”库,它是.so的单一格式文件,或者为.bundle的包(如果有相关资源的话,实际上包中的主程序也是.so格式的库)。它被称为MH_BUNDLE。比如ODBC Driver在Mac上一般应该被编译为这种格式,这样它才能被ODBC Driver Manager(也是一个共享库,请参见
软件开发技术科普之一)显式载入。MS Office的Mac版中的一些.bundle包也是这种格式的动态库。
    用XCode 2.2以上版本编译MH_BUNDLE有些麻烦,曾一度被怀疑为Bug,并在国外一些知名苹果软件开发论坛或邮件列表中有相关的讨论,做法如下:
1、双击Targets中的项目
2、弹出Target Info对话框,切换到Build选项卡以修改其中的选项(每个选项均对应一个GCC 4的编译选项)
3、将Mach-O Type改为bundle
4、此时如在XCode 2.2以上(我用的是2.4)中编译会遇到编译器错误:-compatibility_version only allowed with -dynamiclib,无法link。
5、打开Target Info对话框,在build面板中找到Current Library Version项,默认值为1,单击Edit,清空随后弹出的下拉对话单(sheet window)中的内容,注意直接将1删除是没用,XCode还会把它改回来。
6、再次编译,遇到错误-current_version only allowed with -dynamiclib
7、回到Target Info对话框,找到并用同样的办法清空Compatibility Version。
8、第三次编译,会显示-single_module or -multi_module flags can only be used when -dylib is also specified错误。
9、再次回到Target Info对话框,在build面板中找到Perform Single-Object Prelink,将其选中。
10、这次编译应该能通过了,在编译前,最好将Executable Extension(文件扩展名)改为.so。
11、可以在Build Results窗口(单击主窗口右下角──状态栏最右边的链接)中,将编译设置改为release,编译之——成功!

Tags: 软件开发 Mac XCode GCC

分类:编程开发 | 固定链接 | 评论: 0 | 引用: -10 | 查看次数: 30588

软件开发技术科普之一:ODBC科普

一、ODBC的目标:
ODBC技术的目标是让数据库应用程序可以链接到各种各样的数据源,而不必重新编译或链接。比如一个程序在启动时,让用户选择数据源,随后执行一系列代码,比如创建一个表、添加几条记录,然后执行完毕。不管用户选择的数据源是什么类型的数据库、是哪个数据库、它的实际操作如何。也就是说可以写出与数据源无关的程序。
比如下面这组REALbasic代码(需要安装Rb的ODBCDatabase插件)能在数据源名称(DSN)“RSS”所指代的数据库中创建一个空白的表,而不必知道“RSS”的类型。用户如果在ODBC管理器中修改了“RSS”,比如将类型从MySQL改为MS SQL Server,这段代码仍能在不需要重新编译、链接的状况下运行,之不过最后会在MS SQL的数据库中创建表而已。
  Dim db As ODBCDatabase
  db = New ODBCDatabase
  
  db.DataSource = "rss" 'the DSN you set
  
  If db.Connect Then
    'Return the database name set by ODBC Setup
    msgbox db.DatabaseName    
    'Create a table
    db.SQLExecute ("Create Table test (texta Text, textb Text)")
    if db.Error then
      MsgBox db.ErrorMessage
    else
      db.Commit
      MsgBox "Create Table Successed!"
    end if    
  Else
    MsgBox db.ErrorMessage
  End If
 
二、如何实现这一目标
实现这一目标的方法是在数据库应用程序和数据源之间添加一个中间层,即ODBC技术。
一般的数据库链接方式是这样的:
数据库程序<——>数据源
加了中间层之后的链接变成了:
数据库程序<——>ODBC Driver Manager<——>ODBC Driver<——>数据源
甚至:
数据库程序<——>ODBC Driver Manager<——>ODBC Driver<—…(多个ODBC Driver)…—>ODBC Driver<——>数据源
或者:
客户端数据库程序<——>客户端ODBC Driver Manager<——>客户端ODBC Driver<—Gateway及其他软件—>服务器端ODBC Driver Manager<——>一系列服务器端ODBC Driver<——>一系列服务器端数据源
 
三、ODBC Driver
就像需要不同的显卡或打印机驱动程序才能将应用程序中需要输出的内容,在不同的显示屏或打印机上输出出来一样,ODBC驱动程序用于将应用程序与数据源链接起来。它专为特定的数据源编写,提供了操作数据源的功能,并为数据库程序提供了一致的接口,这样数据库应用程序就不需要了解数据源的情况而能直接与之通讯了。ODBC驱动程序本质上十一个动态连接库(共享库),在用户访问特定的数据源时被动态加载。
 
四、ODBC Driver Manager
ODBC驱动程序管理器也是一个动态链接库。要它干嘛呢?仔细想一下就知道了,虽然ODBC Driver是一个动态库,因此数据库程序不用与它静态链接起来,但程序中也要定义动态库中所有需要使用的成员函数或结构之类。在C/C++/Obj-C之类的语言中,要包含改驱动的头文件,在Basic中要Declare该库中的所需使用的函数。这样不重新编译或链接应用程序就能操作各种不同的数据源的想法显然没法实现。这样ODBC驱动程序管理器就登场了,它通过数据源名称(DSN)中的信息来操作各种各样的ODBC Driver,而用户开发的数据库应用程序则只要操作ODBC Driver Manager这个动态库就行了。因此在C/C++/Obj-C之类的语言中,如果要使用ODBC来开发程序,一般需要包含ODBC Driver Manager的头文件,而ODBC Driver要通过ODBC Driver Manager才能把处理好的结果反馈给用户写的程序,因此当然也要包含ODBC Driver Manager的头文件。
 
五、ODBC Administrator/DNS (ODBC)和ODBC Setup库
有了ODBC Driver和ODBC Driver Manager,只需要数据源名称(DSN)信息就能操作到数据源了。但驱动也好驱动管理器也好都是动态库,那么用户怎么配置数据源名称(DSN)呢?用户可以手动写注册表(Windows)或ini配置文件(非Windows),或者使用ODBC管理程序,在Windows中叫做“数据源(ODBC)”(控制面板中)。如果需要以图形化方式来配置,还需要带有对话框资源的ODBC Setup动态库(在Windows中一般是必须的)。像Windows ODBC管理器、unixODBC、iODBC一般是ODBC Driver Manager和ODBC Administrator的合称,是带有这两个程序和一些其它实用工具及帮助说明文件的软件包。

查看更多...

Tags: ODBC database

分类:编程开发 | 固定链接 | 评论: 0 | 引用: -3 | 查看次数: 6826

REALbasic图书资料一览

1、REALbasic跨平台应用程序开发
综合类图书
Mark Choate 著
Sams出版公司出版
电子版下载:
CHM格式:http://www.3exware.com/online/Sams.REALbasic.Cross.Platform.Application.Development.Apr.2006.chm
PDF格式:<已删除>
简介:后面有详细的介绍。

2、REALbasic起点教程-从菜鸟到专家
综合类图书
小Jerry Lee Ford著
Apress公司出版
电子版下载:http://www.3exware.com/online/Apress.Beginning.REALbasic.From.Novice.to.Professional.May.2006.pdf
简介:非常好的零起点教程。

3、REALbasic University
综合类图书
作者:《REALbasic Magazine》主编兼出版人Marc Zeedar
电子版下载:http://www.3exware.com/online/REALbasic.University.pdf
简介:虽然是REALbasic 2005前的老东西了,但仍有不少可借鉴之处,http://www.sinomac.com有部分译文,原载:http://www.applelinks.com/rbu/

4、I Declare - Calling External Functions in REALbasic
专业类图书
作者:Charles Yeomans
电子版:http://www.declaresub.com/iDeclare/
电子版下载:请向作者本人购买,如果没有Paypal帐户可通过本人代购(不收取任何手续费只是把好人做到底罢了,价格2美元起)
简介:详细介绍了在REALbasic程序中调用动态链接库和共享库API的原理、方法与技巧,范例翔实完整,在Mac平台的Carbon和Cocoa框架上着墨较多。

5、Windows Api For Visual Basic And REALbasic
专业类资料
作者:Petur J. Skulason
电子版下载:http://www.3exware.com/online/Windows.Api.For.Visual.Basic.And.REALbasic.pdf
简介:详细介绍和比较了在REALbasic和Visual Basic程序中调用Windows动态链接库API的方法,虽然书名中Visual Basic在前,但所有主要范例都是针对REALbasic的,可以作为对I Declare的补充。

免费午餐就到这里了,在http://www.rblibrary.com/中也有不少写的不错的资料,比如Beginning Object-Oriented Programming with REALbasic (http://www.rblibrary.com/rblibrary/index.php?main_page=product_info&cPath=1&products_id=59),可惜没钱是下不到的啊。

查看更多...

Tags: REALbasic

分类:编程开发 | 固定链接 | 评论: 0 | 引用: -3 | 查看次数: 9980