世界各地美丽的教堂

宗教建筑极富历史和艺术价值, 见证文化和历史的兴衰。 也是艺术史时代风格变迁的标志之一。 它既是引领信徒进入圣境的道路, 也象征着权力与财富, 它是人造工程的巅峰和艺术家与工程师的乐土。 这里展示了一些教堂的摄影。 有些雄浑沉重, 有些轻巧而富于装饰意味。 有些华丽夸张, 有些质朴而简洁, 展现了世界各地不同历史时期和文化背景下的教堂风貌

详情请见原文:Beautiful Churches Around The World

http://www.noupe.com/photography/beautiful-churches-around-the-world.html

Related posts:

30张优美的冬季摄影 惊人的高速摄影 40张优秀的获奖摄影 35张富于戏剧性的动物摄影 色调很棒的人物摄影 […]

代码之丑(十)

C语言出现之初,跨平台是个极大的卖点。于是,我们有机会看到这样的代码:   int sys_old_mmap(struct tcb *tcp)   {     long u_arg[6];

  #if defined(IA64)     int i, v;     for (i = 0; i < 6; i++)       if (umove(tcp, tcp->u_arg[0] + (i * sizeof(int)), &v) == -1)         return 0;       else         u_arg[i] = v;   #elif defined(SH) || defined(SH64)     int i; […]

中国的税种(2010版)

上周的《南都周刊》,有一篇《谁动了Mr.A的税单》。

它通俗地介绍了我国的税种,很有阅读价值,可以了解很多有用的税务知识。

但是,它的行文和结构有点模糊,而且增值税全部都算错了,所以我整理了一个更清晰易读的版本。

=========================================

中国的税种(2010版)

资料来源:《谁动了Mr.A的税单》

原载2010年12月17日的《南都周刊》

1.

税种总数

根据财政部网站,我国目前共有19个税种。

它们分别是:增值税、消费税、营业税、企业所得税、个人所得税、资源税、城镇土地使用税、土地增值税、房产税、城市维护建设税、车辆购置税、车船税、印花税、契税、耕地占用税、烟叶税、关税、船舶吨税、固定资产投资方向调节税(从2000年起暂停征收)。

2.

个人所得税

针对个人收入的一种税。

税前月薪18000元,对应的个人所得税为2337.64元。

3.

增值税

针对生产、经营过程中实现的增值额的一种税。

购买500元的书籍和200元的CD唱片,价格中就包含了87元增值税(500/1.13 ×13% + 200/1.17 × 17%,图书的增值税税率为13%,电子音像制品增值税税率为17%)。

4.

消费税

针对11种消费品的一种税。

100ml的女士香水Chanel CoCo,市场售价为1480元。其中包含了17%的增值税215元,30%的消费税380元,以及城市维护建设税41.6元,总计636.6元,接近商品价格的一半。

每一瓶进口葡萄酒身上都有三种税,关税14%、消费税10%、增值税17%。

5.

营业税

针对经营活动营业额的一种税。

在餐馆吃顿200元的饭,其中包含5%的营业税10元。

个人出售不动产也要征收营业税,税率为5%。150万的价格卖出一套原价为100万的房产,营业税为7.5万。另外,还要对50万的利润征收4.5万的个人所得税(税法规定的税率为利润的20%,但实际缴纳时通常按售价的1%-3%缴纳)。

6.

城市维护建设税

为筹集城镇建设维护资金而征收的一种税,金额为增值税、消费税和营业税税额之和的1%~7%。

在市区的商店,购买一套100元的CD唱片,其中的增值税约为14.5元,对应的城市维护建设税为1.02元(14.5×7%)

7.

关税

[…]

[译文]VIM使用者大脑的形态

via :Kevin Watters’s blog译:XGuru

原始状态    我曾经观看过小提琴家非常有激情地拉弦演奏,我有了这种想法:也许我投入到文本编辑器中的脑细胞数量和他为投入所喜好的乐器的演奏中差不多吧。我还有种奇异的想象,当他独奏的时候,脑中的核磁共振图和我在使用VIM中操控代码的的图像也许不会相差太大吧?

    如果你愿意的话请你仔细思考下,以下是一个vimmer的学习旅程的剪辑

Vim涅磐所经历的漫长而艰苦的道路 星期一

    “Eclipse当然是简洁实用的”

    “但是一些满脸落腮胡的奇怪家伙在工作中似乎使用vim确实非常快,我应该试一下。”

    “好吧!我弄了个Gvim,这看起来不是很糟糕,这里甚至还有菜单界面!”

    “等什么?我的文本去哪了?等一下,撤销,不要啊!”

    “:help”

    “:q!!!!!”

    今天剩下的时间还是回到拥有让人上瘾的自动补全样板功能的Eclipse中获得解脱吧

星期二

     “好吧 vim,这是新的一天了,这是个磨砺自己学习新东西的一个崭新的机会,我不是那么容易放弃的人!”

    “为什么我就不能一直呆在插入模式里面呢?FJDSAKLFJDALSKJKLDF(发狂的敲击键盘)”

    “等一下,你在告诉我保存的时候必须按ESC-shift-冒号-w-回车?这简直就是狗屁啊”

    “在花了2个小时学习教程以后,我基本上懂的就是ddp命令可以交换两行的内容,真是蛋疼啊”

一个礼拜以后

     “哇噢,任何地方都有vim阿,这意味着这付出的所有的努力将不会白费,比如当我用ssh远程登入主机修改一些配置的时候”

     “太爽了,嘿,朋友们来看看这个全暗色的配色主题,我新的工具链表面上看起来非常安逸了”

     “噢,真是扯蛋,我的.vimrc没有在我的远程主机里,当我ssh登入编辑一些配置的时候,所有我的酷玩意都没了”

两个月以后

     HJKL的移动方式习惯成自然,你神秘的失去了使用鼠标的能力。

    “我将始终使用我刚下载的这400个插件!尤其是这个折叠latex语法的插件,噢,哥们”

    “使用小箭头方向键简直是自我折磨阿”

    “再见,Caps Lock键”

    “就这样吧,这是忍耐的极限,vim甚至不能让文本合适的自动换行,我准备回到edit.com了”

[…]

代码之丑(九)

这是一个让我纠结了很久的话题:缩进。   for (int j = 0; j < attributes.size(); j++) {     Attr *attr = attributes.get(j);     if (attr == NULL ) {       continue;     }

    int IsCallFunc = -1;     if(attr->status() == STATUS_NEW || attr->status() == STATUS_MODIFIED) {       if(strcmp(attr->attrID(), "CallFunc") == 0) {         if(0 […]

代码之丑(八)

下面是一段代码,出现在一个函数里面:    XString groupid;    getGroupidByTel(tel, groupid);

   YString sql;    sql.SetData("select subsid from subscriber b");

如果你没有注意到问题,我稍微提醒一下,这里用到了两个字符串类型。

这确实是一段真实的代码,于是,我找到了项目组中的人,询问两个字符串的来历。终于,一个颇有资历的人给了我一个答案。

项目之初,有人编写了XString,用了一段时间之后,在某些特定的场景 下,XString会出问题,于是,又有英雄出现,编写了YString。从此,XString和YString并立于江湖。

其实,我想搞清楚的只是一个问题,什么时候该用哪个类。

可是,我把这个问题抛给了不只一个人,却没有人能给我一个确定性的答案。好吧!当时,编写YString的动机是XString出了问题,那问题是什么呢?我看到的依旧是困惑的面孔。

XString和YString让我不安,原因在于,它们的并存破坏了概念一致性。一旦要写一段用到字符串的代码,我会纠结于到底该用XString还是YString。有时候,没有选择是幸福的。对于大规模团队而言,尤其如此。

最简单的做法自然是,选择其一,一统江湖。方法很简单,做一次全局替换就好了。

不过,理性告诉我,这是冲动的做法,特别是没有人对两个字符串有足够清晰认识的情况下。在一个叫现实的东西面前,我不得不低下头,改动遗留代码风险极大,况且没有足够的测试支撑我们。

但我们至少可以在编写的新代码中做出统一的要求,选择一条路走下去,而不是放任所有开发 人员根据自己的脾气秉性、喜怒哀乐,甚至天气,随机的做出选择。

好吧! 我可以再退一步,如果在全系统统一确实是一件困难的事情,但至少,至少在一个函数内别再混用不同的字符串了。

本文已经首发于InfoQ中文站 ,版权所有,原文为《专栏:代码之丑(八) 》,如需转载,请务必附带本声明,谢谢。

InfoQ中文站 是一个面向中高端技术人员的在线独立社区,为Java、.NET、Ruby、SOA、敏捷、架构等领域提供及时而有深度的资讯、高端技术大会如QCon 、免费迷你书下载如《架构师 》等。

[…]

代码之丑(七)

这是一段用C++编写的数据库访问代码:   int Comm::setIDBySevNum(const XString& servnumber) {     DB db;     db.setSQL("select id from users where servnumber=:servnumber");     db.bind(":servnumber", servnumber.c_str());     db.open();

    if (!db.next()) {       return -1;     }

    setID(db.getString(”id"));     return 0;   }

它告诉我们,如果找不到需要的值,那么操作失败,返回-1,否则,返回0,成功了。

显然,写下这段代码的人有着C语言的背景,因为在C语言里面,我们常常会用整数表示成功失败。我说过,这是一段C++代码,而C++里面有一种类型叫做bool。

整数之所以能够占有本该属于布尔类型的舞台,很大程度上是受到C语言本身的限制。当然,C99之后,C程序员们终于有了属于自己的体面的布尔类型。

只是还有为数不少的C程序员依然生活在那个蛮荒年代。于是,很多人通过各种不尽如人意的方式模拟着布尔类型。不过,我们也看到了,偏偏就有这些生在福中不知福的程序员努力的重现着旧日时光。在我的职业生涯中,我见过许多用不同语法编写的C程序。

就个人学习语言经验而言,了解了基本的语法之后,如果有可能,我希望找到一本 Effective,寻求这门语言的编程之道。很多语言都有着自己的Effective,比如《Effective C++》、《Effective Java》、《Effective C#》,等等。

不了解语言,也会给丑陋代码可乘之机。比如,下面这段C++代码;   void CommCode::notifyCRM(XString* retparam) {     if […]

代码之丑(二)(续二)

一个叫夏勇杰的朋友看了《代码之丑》(二) 》 和《续 》之后,给我写了封邮件,就原来的问题,给出了自己的解决方案,这里分享一下。

他的思路是把所有判断条件转换成数字,然后,利用常见的位操作的技巧来处理。上代码:   enum Type {     PreDropGroupSubs                   = 1,     StopUserGroupSubsCancel        = 1 << 1,     QFStopUserGroupSubs              = 1 << 2,     QFStopUserGroupSubsCancel    = 1 << 3,     QZStopUserGroupSubs             = 1 << 4,     QZStopUserGroupSubsCancel    = 1 << 5,     SQStopUserGroupSubs             = 1 << 6,     SQStopUserGroupSubsCancel    = […]

Category

Archives