df.py for Ubuntu on android with complete linux

2012年11月06日 14:19

在MOTO Razr上用Complete Linux装了一份Ubuntu core(文本版),配合MOTO的lapdock使用,还是比较爽的。在Ubuntu里可以做更多事。不过用Complete Linux安装有一些问题,其中一个就是df命令不能使用。我问了作者,作者表示这是因为循环挂载的问题,未来可能会解决,但优先级不高。

查看剩余空间是一个很要紧的功能,所以在作者解决之前,我先自己动手了。写了一个python脚本,可以用。

#!/usr/bin/env python
import os
import sys

def disk_usage(path):
    st = os.statvfs(path)
    free = st.f_bavail * st.f_frsize
    total = st.f_blocks * st.f_frsize
    used = (st.f_blocks - st.f_bfree) * st.f_frsize
    try:
        percent = ret = (float(used) / total) * 100
    except ZeroDivisionError:
        percent = 0

    return total, used, free, percent

def show_number(number):
    kilo = 1024
    mega = 1024 * 1024
    giga = 1024 * 1024 * 1024

    if number > giga:
        return "%0.2fG" % (float(number) / giga)
    elif number > mega:
        return "%0.2fM" % (float(number) / mega)
    elif number > kilo:
        return "%0.2fK" % (float(number) / kilo)
    else:
        return "%d" % number

if __name__ == "__main__":
    path = sys.argv[1]
    total, used, free, percent = disk_usage(path)

    print "Space information of '%s'" % path
    print '---------------------------------'
    print "Total: %d (%s)" % (total, show_number(total))
    print "Used:  %d (%s)" % (used, show_number(used))
    print "Free:  %d (%s)" % (free, show_number(free))
    print "Percent: %0.2f%%" % (percent)

(本文收录于[go4pro.org]

[tips]更灵活的数字递增替换

2012年06月04日 17:10

之前写过一篇[tips]vim替换技巧一则(数字递增),可以解决一部分问题。不过有的时候我们需要更加灵活的替换方案。

比如我们需要把代码中的一个片段进行替换处理。

这个时候,VisIncr插件可以派上不小的用场。不过VisIncr主要适用于替换内容整整齐齐的排成一列的情况,我们还需要一些更加灵活的方案对付一些更加不规则的情况。

举个例子。

现在我们有这样一段代码:

            deliv.delivTradingDay = None
            deliv.delivExchangeID = None
            deliv.delivProductID = None
            deliv.delivDate = None
            deliv.delivHedgeFlag = None
            deliv.delivDirection = None
            deliv.delivPayVolume = None
            deliv.delivUnDeliveryVolume = None
            deliv.delivOpenPrice = None
            deliv.delivPosition = None
            deliv.delivDeliveryPrice = None
            deliv.delivDelivery = None
            deliv.delivDelivFee = None

我们想把它替换成:

            deliv.delivTradingDay = row[0]
            deliv.delivExchangeID = row[1]
            deliv.delivProductID = row[2]
            deliv.delivDate = row[3]
            deliv.delivHedgeFlag = row[4]
            deliv.delivDirection = row[5]
            deliv.delivPayVolume = row[6]
            deliv.delivUnDeliveryVolume = row[7]
            deliv.delivOpenPrice = row[8]
            deliv.delivPosition = row[9]
            deliv.delivDeliveryPrice = row[10]
            deliv.delivDelivery = row[11]
            deliv.delivDelivFee = row[12]

因为None的位置不规则,所以VisIncr也帮不上什么忙。当然可以使用插件去把等号排整齐然后再使用VisIncr,但终归麻烦,另外等号排整齐也不符合python的编码规范。所以替换完之后还要再换回来,又要多一步操作。

其实vim内置的搜索替换功能就可以做这件事。首先我们选中这一段代码,然后执行如下的命令:

:let @a=0 | '<,'>s/None/\='row['.(@a+setreg('a', @a+1)) .']'/

就OK了。

这个代码原理上跟我前一篇的类似,不过经过了简化所以适应性更强了。这个命令里我没有使用g命令,而是直接使用s命令,在替换内容部分使用 \= 插入表达式。用@a而不是a是为了可以在执行过程中使用setreg动态改变寄存器a的内容。

另外要注意的是选中之后按:时,默认光标是在 '<, '> 的后面,我们需要手工移动到开头去加上 let @a=0 | 这一段。

(本文收录于[go4pro.org]

自己编译vim,解决Ubuntu 12.04 terminal里执行gvim会挂起的问题

2012年05月08日 22:51

对于我这样的vim党来说,Ubuntu 12.04有一个非常讨厌的问题,就是在terminal里执行gvim命令的时候会挂起。使得gvim根本无法正常使用。据猛禽说这个问题已经持续了几个版本了,不知道为什么到今天都得不到解决。

在ubuntu的bug track上给出了一个workround , 就是用gvim -f 代替 gvim。当然,我表示这种使用方法非常的不爽。

今天猛禽也遇到类似的问题了,我就想干脆找找看有没有彻底解决问题的方法。幸运的是,还真有。

这个帖子就对这个问题提出了讨论。然后有人给出了一个patch,据说能解决这个问题。

虽然很不想在Ubuntu下自己编译软件,不过抱着试试看的态度,我加上了那个patch之后编译了一下,还真是成功了。

在这里把编译步骤记录一下。

首先安装vim的编译依赖:

sudo apt-get build-dep vim

然后去获取vim的源码:

hg clone https://vim.googlecode.com/hg/ vim

当然了,上面那一步需要事先安装mercurial,这个很简单,就不说了。

然后把上面那个patch抓到vim目录(就是项目的根目录)里来。

cd vim
wget https://raw.github.com/gist/2576464/dcbc773312b1488f00eb8b8cb24dd74983349d89/fix-gui-gtk-fork-issue.diff

我个人觉得不是用于开发目的的话,直接编译主线代码不太好。所以先切换到某一个tag做编译比较好。一般当然是用最新的那个tag。

先用

hg tags | head

查询一下当前tags,比如我这里最新的是 v7-3-515

再用

hg update v7-3-515

切换到指定的tag。

然后开始打补丁:

patch src/gui.c fix-gui-gtk-fork-issue.diff

打完补丁之后当然应该去确认一下代码,看看补丁代码是不是已经在了,更简单的方法是直接用 hg diff 确认。这个也不细说了。

假设补丁已经正确打上。那接下来就是很熟悉的编译步骤了。不过这里要注意的是,默认的编译选项好像不行,至少要加上 --with-features=huge 才能使补丁生效。这个部分我没有深究,有兴趣的可以看看为什么。

我用的编译选项是:

./configure --enable-pythoninterp \
--enable-cscope \
--enable-multibyte \
--with-features=huge \
--with-compiledby=ch.linghu@gmail.com

configure完成之后就是 make 和 make install,这个没什么好说了的吧?

安装完成之后的程序在 /usr/local/bin 里,正常情况下会优先使用。可以用 gvim --version 确定一下(看版本号和编译者以及编译时间)。

编译安装完成之后,再执行gvim,应该是没有问题了。(至少我这里已经正常了)

Update:

这样编译出来的vim无法读取Ubuntu系统原有的系统配置,需要做一个软链接:

ls -n /usr/share/vim /usr/local/share/vim

这样编译版的vim表现才会和原来的完全一致。

本文推送至[go4pro.org]

bottlepy及其它

2012年05月07日 16:55

真的是好久好久没写blog了,现在都快不知道怎么写了。

闲话少叙,直接入正题吧。

前段时间我们的VPS上因为有人玩web开发而出现了一些些小问题,作为admin的我自然要开始解决这些问题。其中一个问题是,几乎所有用户在配置自己的 apache vhost 时都没有指定自己的日志文件,但系统默认的日志文件是需要root权限才能查看的。于是造成普通用户出问题时不知道问题出在哪里。

我当然不想为普通用户开放太多的root权限,所以我想写一个小的web服务来读取日志给VPS用户查看。当然这么简单的任务我也不想动用太大的框架,作为python爱好者的我选择一个轻型python web框架就成了当务之急,顺便公司里也需要用到一些web服务,这个选型也考虑到了公司需求。

目前比较流行的轻量级框架大概有这么几个:flask、web.py和bottle.py。我首先去看了一下Flask,因为它的知名度貌似是最高的,而且有一大堆插件可以用,社区支持度不错。不过真的去安装了一下我马上就决定放弃了。原因是它依赖其它的包。在VPS上当然是不成问题,不过我们公司的生产服务器是与网络隔离的,所以不想把依赖关系搞得太复杂。

webpy和bottlepy都是没有附加依赖的,猛禽用的是webpy,已经作出了一些东西了,于是webpy有实践性上的保证。不过我对它那种一个class带GET POST两个方法的语法结构总是感觉有些怨念。后来看了一些资料,我觉得还是bottle比较符合我的口味。于是就选了bottle。

对我来说bottle有以下好处:1、比webpy还要精简,单文件结构,代码干净俐落,容易阅读。2、标准wsgi结构,方便集成其它的wsgi中间件也方便部署。3、独立运行时,支持多种服务器。

另外bottle用decorator做url route的方法也比较合我的胃口。

再另外,bottle居然有 Google+ Page,我喜欢(这一点纯属个人恶趣味,跟技术无关-_-)。

不过bottle的缺点也是显而易见的,最大的缺点就是功能太少了,很多东西都需要依赖第三方的库。当然,它的简洁至少有一个好处,就是对于最最最最简单的应用可以不用为不需要的功能浪费资源。

另外有一个我挺纠结的缺点,就是它没有提供 url_for 这样的 urlhelper 支持,当把项目以mod_wsgi形式部署到一个子目录的时候就很麻烦了。不过这个应该可以有一些workround,回头我再想想。

实际应用中,我使用了 bottle + jinja2 + beaker 的组合来实现那个 apache_log_viewer。jinja2大概大家都知道了,是一个Template Engine,如果大家以前看过我的blog可能还记得我以前推荐过mako。现在怎么又换了呢?答案是,我想换换口味(又是个人恶趣味 -_-)。另外jinja2的语法确实比mako要简洁一些,速度相差无几,而且貌似更流行,试试没什么坏处。反正bottle对mako和jinja都有内置支持,如果这个不爽以后新项目换mako也没什么大不了的。beaker是一个wsgi session middleware。使用它的原因是因为bottle没有内置session支持,不过好在beaker用起来很简单,跟bottle的集成也很简单,这个也算不上什么太大的缺点了。

实际的代码很简单,而且没有太大的参考价值。就不献丑了。

另外这次开发让我也尝试了一些(对我来说)新鲜的玩意儿。第一是发现pip比easy_install好,对我来说好处有两点,一是有uninstall支持,二是源码安装而不是那个该死的egg包;第二是发现nose这个单元测试工具很不错,你只需要写测试代码,甚至不需要import unittest,也不需要写test loader。然后nose本身可以单独测试某些接口,不需要自己去修改单元测试的代码,把testXXX改成utestXXX,这对于测试代码的编写和管理都更容易了。

隔了很久之后重新写blog,絮絮叨叨的我也不知道在说啥。大家随便看看就算了。

使用BIND服务转换特定网址

2011年09月16日 18:16

UPDATE:

用dnsmasq,把需要自定义的IP放在/etc/hosts文件中即可。可以更简单的满足类似需求。


有的时候我们需要使用特定的IP访问特定的网站。现在比较流行的方法是修改hosts文件。但这方法需要对每一个客户端做修改,比较麻烦。为了方便起见,我在自己的服务器上尝试了配置DNS服务器来为特定网址提供特定IP的方法。

首先安装bind,在Ubuntu服务器上当然就是:

sudo apt-get install bind9

然后我们将服务器先配置成缓存模式,在 named.conf.options 文件中增加以下内容:

        forwarders {
            8.8.8.8;
            8.8.4.4;
        };
        allow-recursion { any; };

其中forwarders是将DNS请求转发,allow-recursion是设置客户端的访问权限,如果是内网使用,也可以设置网址段。

然后我们使用一个新的配置文件 named.conf.redirect 专门处理特定网址转发请求。在named.conf中增加一句:

include "/etc/bind/named.conf.redirect";

然后新建一个 named.conf.redirect 文件,将特定的网址变成master类型(由本机处理):

zone "plus.google.com" {

    type master;

    file "/etc/bind/redirect/zone_plus.google.com";

};

然后我们去 /etc/bind/redirect 目录下新建一个 zone_plus.google.com 文件,配置DNS规则,简单起见,我们可以这样配置:

$TTL    86400
@ IN    SOA     localhost. root.localhost. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                          86400 )       ; Negative Cache TTL
;

@ IN  NS  localhost.
@ IN   A    1.2.3.4
* IN   A    1.2.3.4

上面的部分可以作为模板,关键就是配置 @ 和 * 两个A地址解析而已。其中 * 可以作为泛域名配置,匹配全部的子域名。

that's all.

注:在named.conf.redirect里可以配置多个zone,他们使用的规则file可以相同也可以不同,可以视情况而定。

注2:如果DNS服务器在国外,这样做仍然无法解决DNS污染的问题。

注3:文中所用IP为演示用,并非真实IP。

推送到[go4pro.org]

关于电子书的一个讨论

2011年09月01日 21:06

在G+上参与了一个关于iPad和游戏机的选择的讨论,后来就顺势谈到了电子书问题。我回复了一段,比较长,干脆就拿到这里来发表一下好了。

……读书的人变少这是一个杯具。这个杯具是全方位的。无论是对国民素质也好,对社会发展也好,对文化交流也好,对出版商利益也好,都不是件好事。

其实是不是eink不重要,关键在于产品本身。kindle就是用来看书的,它背后有一个完整的服务链,用户在这个服务链中可以享受到方便和快捷,所以 kindle就卖得好,实际上amazon卖的不是kindle,而是用kindle看的书,所以实际上不是kindle卖得好,而是(用kindle看的)书卖得好,kindle只是顺便卖得好。但是话反过来说,正因为amazon卖的是书,所以它依赖的是有很多喜欢看书的人。如果大家都不喜欢看书,不愿意为买书花钱,你服务再好也没用。那么再深一层,如何让大家变得喜欢看书呢?前提是你要做出让大家爱看的书,你要培养出一种看书的气氛。

现在在中国,读书阶层大概可以分成两类,一类是网络文学/垃圾文学(非贬义)消费者,一类是专业读书爱好者。前者对书籍的依赖性不高,但基数大,他们有阅读 的需求,但是没有到愿意为阅读付费的程度。后者对书籍依赖性高,愿意为阅读付费,但对书籍的质量有较高的要求,而且后者的基数相对小。

我觉得目前中国的电子图书市场,两头都没做好。很多书城大量的电子书籍都是快餐型的网络文学,但是他们的受众其实不太愿意为阅读付费的。免费下载的txt, 虽然也许错误很多,但对很多人来说就够了。而对于愿意为阅读付费的后者来说,目前中文电子书籍的市场上又很少有制作精良的书籍,对于他们来说,有钱也没地方可花。

其实网络文学/垃圾文学的读者也一样是读者,如何抓住他们,提供他们所需要的,然后将他们引导提升变成阅读爱好者(这样他们才会 愿意付费阅读),这是出版界需要考虑的问题。而对于专业读者和爱好者来说,也许目前他们人数不多,但是他们对于普通读者在阅读程度提升方面会起到一个很强 的引导作用和指导作用,所以他们的需求也一样很重要,需要有专门为这些人提供的服务。

只有愿意读书的人多了,整个产业链形成了,才可以去谈产品好坏的问题。不然你产品再好没有人买还是白搭。

说一个案例。曾几何时,中国的电影院也到达门可罗雀的地步,电影事业发展到达低谷。没有人愿意花钱看电影。后来,电影行业是怎样起死回生的,我觉得可以拿来借鉴一下。

比 如现在爱看电影的人不少,是不是可以引进电影的小说版(当然我指的是电子版了)?图文并茂排版精良,我觉得还是会有人愿意买。很多这类小说虽然也是流行文 学,但质量相对较高,看多了以后再去看现在一些网络作家写的东西,估计就看不下去了(就像现在大家国外大片看多了,中国的那些所谓大片就不太容易骗到钱 了,至少是不能既赚口碑又赚钱了)。当然这也只是一个思路而已。

Google +1

2011年06月02日 13:58

昨天google发布了面向网站的+1按钮。今天我在自己的blog里加上了。现在每篇单独blog,评论数的后面会有一个这样的+1按钮。感觉好的话就按一下吧。

【翻译】Bitcoin是一个骗局

2011年05月26日 10:47

最近bitcoin在一些小圈子里(很不幸的,我也是这些小圈子的其中一员)被讨论得热火朝天。似乎天降货币救世主一般。很多大牛,像云风啦、霍炬啦,都对这个系统推崇备至。我看了几篇讨论文之后,总觉得这事不靠谱,不过自己对经济学知之甚少,也说不出什么。

今天看到一篇quora上的问答,指出bitcoin是一个骗局。从内容看,对比网上的一些争论文,它并没有其它什么创新的观点。不过基于quora的权重还算是比较高,我还是觉得翻译一下给大家做个参考比较好。我对经济学不了解,翻译错误在所难免,仅作参考吧。

原文见:http://www.quora.com/Is-the-cryptocurrency-Bitcoin-a-good-idea/answer/Adam-Cohen-2

问:加密货币Bitcoin是一个好构想么?

答:

不。bitcoin是一个荒唐的想法。它是个骗局。是个骗局。它不是货币。用作bitcoin生态系统基础的经济学假设非常可笑,并且它还对货币运作知识数百年的积累视而不见。

幸运的是,这个系统的缺陷相当明显,它可能永远也发展不到会对世界经济引起不良反应,或者哪怕是产生一点儿影响的地步。

不过,我还是觉得我有必要说明一下。

bitcoin,用最简单的话说,就是一个用数字化交易代替现金交易的系统。这……没什么问题。问题在于,它不是提供以美元计价的数字化现金交易,而是引入了一套全新的货币系统。这里我们就有一个疑问,这样做的可取之处在哪儿?也许你讨厌美国政府,或者所有的政府。也许你想避免银行转账费用,或避免交易被跟踪,因为你付款购买的东西是非法的,或者因为你是一个特别注重隐私的人。或者你只是觉得,世界货币制度会崩溃,而bitcoin是一个技术派救世主。

不管你的原因是什么,bitcoin都是一个可笑的想法,它无法做到你想要的任何事。

严重问题1:播种初始财富

当美联储在“印制钞票”的时候,它并不仅仅是把数百万的支票随机寄到美国人的家里。它做了下面两件事之一。(a) 通过在自由市场上购买其它资产(通常是美国国债),为整个经济体系注入比以往更多的资金;(b) 向银行放贷,然后银行再把这些钱贷给需要用钱的人。

重要的一点是,在交易另一端的人,他们获得的并不是免费的钱。他们要么出售资产,要么借钱,这些钱最终是要还的(含利息)。

bitcoin并没有一个中央银行来印制和放贷bitcoin。它有一个算法,通过一些复杂的机制来让bitcoin“被挖出来(mined)”。本质上,它会把bitcoin随机分配给早期使用者。这对于早期使用者来说是一个非常好的系统(免费的钱!)。但是作为真正的货币来说这是一个毫无意义的系统,不用说,它显然不能扩展到更大规模(当所有人整天都尝试着挖bitcoin时会发生什么事?)。为了解决第二个问题,算法上限制了bitcoin的供应,这又让早期使用者更加有优势。不过,这个做法带来的更严重的问题是……

严重问题2:建立在通货紧缩的基础上

经济学课时间!Deflation is the phenomenon where cash grows in value relative to everything around it (ie prices go down).More specifically, deflation occurs when people expect the value of cash to grow in relative value to everything around it, and prices trend down consistently.【译注:此段涉及经济学知识,我就不献丑了。从别处查到的对通货紧缩的定义,是指成本和价格普遍持续下跌,现金交易减少的现象】

问:当你手中的钱比预期的更值钱,你还会把它花出去吗?答:小声的说,你不会的。

bitcoin的供应量被设计成以一定但递减的速率增长,随着时间推移,封顶值会相对快速的出现在2100万这个位置。如下图所示:

一定的增长率——好吧,我和你持相同观点,可以预见会产生通货膨胀,这从经济学立场而言未必可取,但我还是会跟着走。但是递减的速率?如果你在设计一种颠覆世界秩序的货币系统,难道不希望它看起来像这样?

或者,起码有一个恒定的增长率?是的,你当然会,因为这是容纳更多人使用它的唯一途径。

但是bitcoin并没有设计成一个可运作的货币系统。它被设计成使得早期使用者变得富有。这就是为什么说它是一个骗局。

我们来做一个快速的思想实验。假设更多人发现了bitcoin的好处,于是bitcoin的需求增加了。于是,你可以想象,bitcoin的美元价格会迅速上升。现在假设我有一个bitcoin,还有一个美元。我想买瓶百事可乐。我应该花哪个?显然相对于身价暴涨的bitcoin来说,我应该先把正在贬值的美元花出去。

在最好的情况下(这个情况正在变得越来越普遍),bitcoin的限量供应会导致严重的通货紧缩。bitcoin计价贸易的枯竭拯救了所有贸易中的投机买卖行为。这是新的世界秩序。什么透明度啦、低交易手续费啦,都不会让你变得更好,如果你压根就不打算用这玩意儿也没有人打算把这玩意儿给你的话。

严重问题3:缺乏可兑换性

人们有一个普遍的误解,就是钱有一个固定的价值。没这回事。纸币面值的唯一价值就是表明了它们和其它纸币的交换程度。一个欧元可以交换一定数量的日元,一个日元可以交换一定数量的美元,一个美元可以放进银行换取一张存款凭证,这个凭证可以换回一个美元。它可以变成一张出纳支票或者个人支票,然后再转换回现金或存款凭证。它可以换成一张旅行支票,然后在你的假期里换成若干日元。就算你花钱买了一个三明治,三明治店收你的钱也只是因为它可以换成其它的东西,比如他的工资支票然后进他的银行户头。纸<->纸<->纸。都一样,也都不一样。这是一个美妙的循环平衡。想象一个tee-pee帐篷,纸币就是支撑杆。每一根单独的支撑杆都会倒下来,但是当它们斜着依靠着彼此,就形成了一个宏伟建筑。

关键的一点是,汇率可能发生改变,但它们从来没有真正消失。经济学的术语叫做“兑换性”。bitcoin要作为一种货币,它必须作为一种可预测的价值存储,这就意味着它必须能够根据个人的需要和意愿,非常容易的转换成其它形式的价值存储。它必须成为tee-pee帐篷的一部分。但事实并非如此。

这里的问题在于,bitcoin是去完全中心化的。没有人能在这个系统中取得长期成功的投资。没有人能真正的开辟一个市场,说,无论发生什么,我都可以以一定的价钱向你买一些bitcoins。据我所知,的确有一些周边的“交易所”,但是他们对市场的承诺(在我看来)都不可信。每一个人都可以说走就走。

结果就是,我用一个bitcoin去换一个美元或者一个欧元或者一个日元的能力并不比我在ebay上卖我的电脑的能力大多少。我当然可以这么做。但是这并不意味着我就能用我的macbook pro来计量我的账户上有多少钱了,因为假如有一天我找不到任何一个买家了,然后呢?

正因为如此,bitcoin不是一个真正的货币,它只是资产(而且还是无用的那一类)。它正在作为一种货币在营销,吸引那些疯狂的、理想主义的、感到恐惧的人们。这是一场骗局。

严重问题4:一旦哪儿出了问题,它就死了

在大萧条的初期,一些美国人担心如果他们的银行关门了,他们的钱就全没了。于是他们就在同一时间去银行想把他们的钱拿出来,这导致了一些银行真的就倒闭了。这些银行的倒闭使得更多的人感到紧张,于是导致了更多银行倒闭。这就是所谓的“银行挤兑”,很明显我们要避免这种情况发生。

这件事发生之后,美国政府开始明确的保证储蓄存款(也隐含保证其它形式的融资,见布什、奥巴马等“救市”, 2008)。尽管每个人都对这种情况不满意,但是它毕竟比银行系统完全崩溃要好得多。所以这种方式继续下来了。

现在,让我们快进五年。bitcoin经济突飞猛进!每个人都拥有这个玩意。生活真美好。可是后来……出了点问题。可能是一个硬件小故障。也许是系统的什么地方出现了一个流氓节点,导致交易延迟。也许是有人把bitcoin存在AWS(Amazon Web Services)里,结果它再次崩溃的时候,这些bitcoin都丢了……。真正发生了什么并不重要,重要的是:有什么东西最终将出错,bitcoin将受到考验

它能通过这个考验么?人们会变得紧张。有些人会恐慌起来。少数人会挤兑以退出。汇率会下跌。其他人会变得紧张。有些人意识到他们从一开始进入系统就没有得到过真正的信任。这使得他们真的紧张了。谁愿意去介入和逆止这个系统?

更重要的是,有人做到吗?银行倒闭,美联储可以通过印钞保证人们的存款甚至是现金(如果需要的话)能够回来。用一个轻微的(可能会有的)通胀率增加作为小代价,避免了金融危机。在bitcoin金融体系中,这根本不可能。它是去中心化的,它是公开算法。没有人能改变它,即使可以,这也不是任何一个人的必须工作。那些在bitcoin里持有大量股份的人,那时候都会忙着把钱弄回来,不会有空去管系统的风险。

bitcoin(实际上,任何电子货币)本质上是不稳定的。而对于货币来说,稳定就是一切。

结论

所以,我认为bitcoin是一个好构想么?我不是密码学家,不过加密系统看起来是一个技术优势。如果它考虑跟一个合法的银行产品做整合的话可能会是一个好构想。但是(现在的情况),这不是一个好构想,这是一个骗局。那里的一些人试图通过这个系统变得富有,但是每一个参与其中的人实际上都在玩弄着烫手山芋,直到它不可避免的崩溃。

不要。去。买。它们。

Design downloaded from free website templates.