Posted on 26-01-2013
Filed Under (技术) by waterlin

今天使用 Putty 来远程编辑代码,因为一些原因,代码没有办法下载到本地编辑,自然也没有办法上传,只能在 Putty 下用 Emacs 编辑。在 Putty 下用 Emacs 真痛苦,默认情况下 M-v 这个快捷键无法使用,并且自己大量 Emacs 配置文件也没有办法使用,相信 secureCTR 也存在类似快捷键冲突的情况。看来只好使用 Emacs Tramp 来远程编辑文件了。

1. 安装 Putty

Putty 就没什么好说的,直接下载安装吧。

2. 添加 Putty 安装目录到系统 PATH 里

把 Putty 的安装目录添加到 Windows 系统的 PATH 变量里:

C:\Program Files\PuTTY

以便 Emacs 可以找到 plink.exe 这个可执行文件。

3. 在 Emacs 配置文件里,添加有关 tramp 的使用代码

Emacs 配置文件里,添加下面的 elisp 代码:

(require 'tramp)
(setq tramp-auto-save-directory "c:\\tmp")
(setq tramp-default-method "plink")

4. 使用 Tramp

直接使用命令 M-x find-file 或是 C-x C-f 就可以打开远程文件,在打开的时候,文件路径按如下形式输入:

/usr@machine:/path/to/file

例如访问远程的 ~/main.c 文件,则使用以下路径打开文件:

/water@192.168.1.20:/home/water/main.c

有的主机 ssh 服务是映射在另外的端口上的,如果远程主机的 ssh 端口有变化,则可以使用类似下面的 URL 来打开文件:

/test@host#2222:/tmp

即用 # 来分隔端口,在 # 后紧跟端口号即可实现指定端口连接。

有关远程文件和目录的编辑方法,和本地文件编辑完全一样。剩下的事情和使用 Emacs 编辑本地的文件或目录差不多,大家用用就熟悉了。

5. 题外话

虽然 Emacs Tramp 对于编辑远程 Linux 主机上的文件来说还算方便,不过建议大家最好还是想办法把远程文件下载下来在本地编辑,这样你不但可以使用 Emacs,还可以使用其它任意称手的工具(比如 Visual Studio,WinMerge)进行代码修改、备份、合并,岂不快哉?!

(0) Comments    Read More   
Posted on 26-01-2013
Filed Under (技术) by waterlin

要让 Muse 不转义 * 符号,即直接显示 * ,可以用 = 来不转义特殊符号:

例如

=*word=*

就会显示为

*word*

= 其实就是 <code></code> 的简短表达方式,也可以直接用 <code></code> 来不转义大块的段落。

(2) Comments    Read More   
Posted on 24-01-2013
Filed Under (商业) by waterlin

今天在 Agoda 上订酒店,真是让我怒火伤肝呀!下了单后,选择支付宝付款,可是发现支付宝信用卡网关有 2000 元的支付上限。以下是从网上找到的一些信息:

招行率先将支付宝平台的信用卡小额支付单笔额度从500元提升至2000元,每日额度以信用卡本身额度为准。

除了日常小额网购支付外,用户如果要进行大额商品的购买,也可以选择支持信用卡大额支付的商家,信用卡付款基本以信用卡本身额度为准,就无需担心额度限制的问题了。

Agoda 为什么不选择支付宝的大额支付网关?试想有几个人在 Agoda 上定的房间总额会小于2000元?

更可恶的是,一旦在不知道这个限额的情况下选择了支付宝付款,就没有办法回头了。我想回到 Agoda 换支付方式,可是我死活就是找不到这个订单,没有办法修改订单,也没有办法改变支付方式,也不知道 Agoda 的网站是怎么设计的。

最后,我只好重新下了一个一模一样的订单,获取了订单号,可是依然没有办法在我的帐户里看到这个订单,30分钟后也依然没有如期收到确认邮件。难道是有两个相同的订单,就出现了技术上的问题?

Agoda 在这里犯了几个错误:第一,难道一定要等帐单确认了,才能显示出来?能不能在我下了订单后就显示一个待确认的帐单信息出来,让我好安心一下。第二个,就是之前说的,既然看不到已下的订单,就没有办法修改该订单,也就无法更改支付方式。

我现在都不知道该订单是否有效,无效了我好再订一个,有效的话,我好安心上班。

Agoda 的网站是怎么设计的?唉,一把无名业火那个烧呀~~

(0) Comments    Read More   
Posted on 23-01-2013
Filed Under (技术) by waterlin

通常情况下使用 log4cxx 都是通过一个 log4cxx 配置文件来配置相关参数的,通常描述 log4cxx 的文档1, 2,都会对此作详细的介绍。

但是,如果我能直接在 C/C++ 代码里设置 log4cxx 的属性,这样就可以不使用属性配置文件了。在某些情况下,这样还是更方便一些。从 log4xxx Wiki 获取的示例代码就是起这个作用的,代码如下:

#include <log4cxx/logger.h>
#include <log4cxx/helpers/pool.h>
#include <log4cxx/basicconfigurator.h>
#include <log4cxx/fileappender.h>
#include <log4cxx/simplelayout.h>

int main() {
    log4cxx::FileAppender * fileAppender = new log4cxx::FileAppender( log4cxx::LayoutPtr(new log4cxx::SimpleLayout()),
                                                                      "logfile", false);

    log4cxx::helpers::Pool p;
    fileAppender->activateOptions(p);

    log4cxx::BasicConfigurator::configure(log4cxx::AppenderPtr(fileAppender));
    log4cxx::Logger::getRootLogger()->setLevel(log4cxx::Level::getDebug());
    log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("logger");

    LOG4CXX_INFO(logger,"Created FileAppender appender");

    return 0;
}

上面的代码仅仅是把日志输出到日志文件,如果我们想同时把日志重定向到终端和文件,我们应该添加一个 log4cxx::ConsoleAppender 类来支持 log4cxx::BasicConfigurator 的初始化。下面是示例代码:

#include <log4cxx/logger.h>
#include <log4cxx/helpers/pool.h>
#include <log4cxx/basicconfigurator.h>
#include <log4cxx/fileappender.h>
#include <log4cxx/simplelayout.h>
#include "log4cxx/consoleappender.h"

LoggerPtr logger;

int main() {
    log4cxx::FileAppender * fileAppender = new log4cxx::FileAppender(log4cxx::LayoutPtr(new log4cxx::SimpleLayout()), L"logfile", false);

    log4cxx::ConsoleAppender * consoleAppender = new log4cxx::ConsoleAppender(log4cxx::LayoutPtr(new log4cxx::SimpleLayout()));

    log4cxx::helpers::Pool p;
    fileAppender->activateOptions(p);

    log4cxx::BasicConfigurator::configure(log4cxx::AppenderPtr(fileAppender));
    log4cxx::BasicConfigurator::configure(log4cxx::AppenderPtr(consoleAppender));
    log4cxx::Logger::getRootLogger()->setLevel(log4cxx::Level::getDebug());
    log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("logger");

    LOG4CXX_INFO(logger,"Created FileAppender appender");

    return 0;
}

通过上面的代码,在没有 log4cxx 配置文件的情况下,日志也同样可以同时输出到终端和日志文件了。

(0) Comments    Read More   
Posted on 07-01-2013
Filed Under (生活) by waterlin

最近,因为换了工作,查了一下前一家公司的社保缴纳情况,结果发现社保缴纳基数一直在逐渐下降,最可气的是,公司的财务人员也没有跟大家解释一下为什么要这么做,这么做对大家有什么好处、是否符合国家政策等。

虽然现在缴纳的社保,对年轻人来说暂时还体现不出任何效果,不过还是值得深入研究一下这个问题。

社保缴纳的国家政策

上网搜了搜,社保政策比较复杂,简单来说有以下几点值得关注一下:

  1. “工资比较高却按照最低基数上五险”是违规行为,经劳动保障部门查实需要责令补缴并视情况严重成都予以相应处罚。
  2. 按照养老金计算办法,养老金水平是与缴费基数高低、缴费时间长短、社平工资、退休年龄等相关联的,实行“多缴多得”机制。
  3. 对于养老保险来说,基数越高,将来的养老金会更多。
  4. 对于医保来说,基数高,只会增加医保卡里的钱,住院报销待遇是不会改变的,跟基数高低没有关系。
  5. 对于养老保险来说,基数越高,将来的养老金会更多。

当然,上述只是理论上的值,并且还要加上一个很强的定语“将来”,等到我们这批人退休的时候,政策怎么样、那时的人口红利怎么样,谁都说不清楚。

薪资实际发放计算结果

在实际操作中,一些公司(尤其是一些小民营企业)会把你的缴纳基数降低,比如说你的工资是 15000 元,可是却把基数设成 4000 元来进行社保缴纳,这样,公司可以少交一半的钱,你个人也可以少缴纳一半的钱,所以发工资时你会有一种发到手的钱变多了的感觉。

可是这样的话,抛开实际的法律法规不谈,实际对我们打工的人来说,影响究竟有多大呢?如果同时公司未交公积金,那好处和坏处又是怎么样呢?

网上有很多个税计算器,大概算一下我们就知道结果了。下面就以工资基数为10000(呵,相信大多数人的工资都不止这个数,我只是举个例子,你可以把自己实际的工资填上再算一遍),用9米计算器来计算一下几种情况下打工一族所获得的“总收入”。

  1. 公司全额上社保,并且按国家规定缴纳住房公积金的计算结果

    ./images/full-salary-with-house-fund.png

    员工实际收入为到手工资+医保+公积金:7975+200+500*2 = 9175元,公司实际支出为 13635 元。

  2. 公司按工资基数来缴纳社保,并且未按国家规定缴纳住房公积金的计算结果

    ./images/full-salary-without-house-fund.png

    实际收入为到手工资+医保+公积金:8375+200+0 = 8575元,公司实际支出为 13135 元。

  3. 公司按4000基数来缴纳社保,并且未按国家规定缴纳住房公积金的计算结果

    ./images/half-salary-without-house-fund.png

    实际收入为到手工资+医保+公积金:8903+80+0 = 8983元,公司实际支出为 11254 元。

由以上三种计算,我们可以很容易看出一些门道来。很明显,在公司帮你全额缴纳社保、公积金的情况下,对于员工来说,收入最大化;如果是按一定基数缴纳社保、并且不交纳公积金,则公司的成本会迅速减小,对公司来说最有利了。

大家可以从上面的计算,大概看出,如果你交公积金,对你的好处远大于坏处。别跟我说你不打算买房,你不是不打算买房,而是时候未到。所以,不要认为你去创业公司就不用在乎这样的事情,创业公司如果有你的一份则这样是应该的,如果你也只是去创业公司打打工,则少替老板着想、还是多替自己考虑考虑。看来,我们国家虽然有一些很可耻的一面,可是对于劳动者,从法律角度还是有一定的保护的。

题外话

一般来说,大公司或是国有单位,一般来说不差钱,二来怕违法劳动局的相关规定,所以都是严格按你的工资基数来缴纳的。

其实如果你工资高,那基本上基数高一点还是化算的,因为你税前扣除了这笔费用(其中医保是直接到你的个人帐户里,不用扣税的),税也要少扣一些,基本上个人就没有多出多少钱。

如果你是自己开公司,或是外地户口,那肯定是基数越少越好。

公司帮你减少社保基数,我们不探讨这个问题在法律上的纠纷,我们主要关注的重点是,公司有没有在你入职前就跟你说明白这事,或者说,公司有没有在中途调整这个基数的时候,跟你沟通并获得你的理解,或者说,公司在大幅下调了基数损害了你的利益的时候,有没有给你进行适当的补偿。这些,是一个老板必须有的担待!

当然,奉劝各位一句,如果缴纳这些费用的地方,不是按国家规定来做的企业,去与不去一定要慎重!因为,很重要的一点,哪怕可以用各种理由来证明社保缴纳基数越少对你越好,但是,会去找这些理由的公司,要么是老板特别小气,要么是赢利能力不强的地方。否则,少缴纳的钱,为什么不用来给你发工资、奖金和福利呢?

当然,最好的方式是,公司把这些交纳社保的钱全给你,然后你自己去交纳低额社保?哈~~

(2) Comments    Read More   
Posted on 05-01-2013
Filed Under (软件) by waterlin

上次吐槽了联想笔记本电脑的触摸板设计,这次也被联想电脑的电源管理给搞晕头转向了。

我的联想笔记本,在隔了一定时间就会自动把显示器、硬盘关闭,在没有插电源的情况下,这样关闭还算正常,可是当我插着电源的时候,还这样自动关闭就有点无聊了。尤其是,我还开着 BBS 帐号、开着一些挂机测试的帐号,这些帐号可不能自动下线呀。更可气的是,当显示器和硬盘关闭后,我再按键盘来唤醒 Windows XP 的时候,系统经常启动不了;这个时候,我只好出大绝招了,直接使用开机按钮关机再重新启动。

在控制面板 ==> 电源选项 ==> 电源使用方案里,根本就没有办法修改下面的选项,如下图所示:

./images/lenovo-energy.png

这个时候呢,可以安装好联想电源管理软件(Lenovo Energy Management),通过它来管理你的电源设置。

C:\Program Files\Lenovo\Energy Management

我找这个联想电源管理软件找了蛮久的,最关键的问题在于这个管理软件的图标并没有像网上所说的,显示在左下角时间图标的旁边。我想,联想的东西,还是得出得更加人性化一些:像我这种人都找了这么久,很难想象如我们父母般的普通电脑盲,能自己折腾出来么?

(0) Comments    Read More   
Posted on 01-01-2013
Filed Under (软件) by waterlin

记得几年前上班还比较有空闲的时候,天天用 Google Reaader 来看一些自己订阅的博客或是网站的更新,这种得以和世界同步的感觉实在是太好用了。可是后来 Google Reader 经常被封,同时因为我用的是 2G 手机,上网速度慢,Google Reader 的手机版本用户体验不好,于是后来慢慢转到有道阅读了。令我失望的是,有道阅读太乏善可陈了,页面设计中规中矩,功能也没太多特色,同时也面临着移动终端表现不够好的问题。

后来,我还尝试过豆瓣九点。豆瓣算是我最喜欢的网站了,风格很喜欢,可是豆瓣九点为什么这么不给力呢?抓取速度慢,最可气的是,手机终端上,没有出配套的客户端。豆瓣九点是我最关心的豆瓣产品之一,每天关注其功能更新,可是一直感觉都没什么进步,真有点恨铁不成钢的味道。

我同样也尝试过使用鲜果阅读、爬藤,但是感觉并不好。这两个网站的用户界面设计得实在太丑陋了,我感觉还停留在十年前门户网站的水平。鲜果虽然出了手机客户端,但是比较鸡肋,依然是重点推荐其展示的渠道信息(我猜,可能推荐这些内容更加有利可图吧),而对你自己订阅的内容,则没有大力推广,使用起来也不友好,在离线方式下并没有批量标注为已读的功能。对我来说,最不好的部分在于,离线方式下,在我的订阅里,能离线阅读的内容太少了。

至于 QQ 邮箱里的 RSS 订阅功能,这个用得少,几次想尝试,但是不知道怎么回事,自己对于腾讯的东西,始终没有太大的热情,说不上喜欢也说不上不喜欢。

我觉得 RSS 阅读器,对于我们这种上班族来说,真是一个好东西:可以有系统、及时地获取信息,同时不用花太多精力太多时间去关注某一个网站,在不至于错过重要信息的同时,也不用关注信息获取的细节。想想以前读书的时候,就因为没有经常上学院的网站看消息,错过了多少机会?如果当时学院的网站提供 RSS 订阅或是邮件订阅,我想我现在一定会比原来成功不少,哈~~

在我试用了 EasyRSS 和 GReader 后,我有一种相见恨晚的感觉,终于可以在手机上愉快地使用 Google Reader 了。在拥挤的地铁与公交里,不用再和别人分享那慢如蜗牛的无线网络了。

回头想想,我在寻找的无线 RSS 阅读器,以下功能是必不可少的:

  1. 可以在 PC 和手机端同步访问;
  2. 支持离线阅读,即事先定时下载好了内容,以后不管有没有网络都可以阅读,我觉得这是移动阅读器所必须具备的功能;
  3. 需要有推荐、转发等一系列的社会化功能,并且这些社会化功能,可以在没有网络的情况下使用,等移动终端一能上网,即同步数据到网站上。
  4. 对于以摘要形式输出的 RSS 源,可以直接用内置的浏览器来打开观看并阅读。

Google Reader 可以在手机上使用第三方的阅读器,在 PC 上可以使用 Googler Reader 本身,这种组合绝对是黄金搭档。对于喜欢阅读的人来说,还有什么比找到更佳阅读工具来得更开心的吗?

(0) Comments    Read More