对PayPal的“路转路”

2017-07-22 作者:

首先PayPal是什么?

支付宝早年的抄袭对象,没记错的话,当年在中国叫“贝宝”;随着ebay(易趣)败给马爹,算是消失在国人视野。2015年夏,PayPal脱离ebay独立上市,市值500+亿,本博文编写之日,市值709亿。

比较一下的话,随便找篇文章,说是“今年(17年)5月份,蚂蚁金服号称市值750亿,支付宝大概占500亿”。

然后,“粉转黑”好理解,“路转路”是什么意思?

这就得提到俺的海淘经历。

PayPal算是主流支付平台吧,以前挂的是一张带VISA通道的工行双币学生卡,因为不能调额,觉得还蛮安全。

近日该卡到期,电话得知卡面没了,银行不再续发,只得作罢。

于是申了一张招行全币(听说其实只有美金),终生免年费,唯一Master通道,木有银联通道也是挺装的。但好在花美金,用人民币还款,不收1.5%币种转换费。

收到卡后第一时间挂上PayPal付一单试试 ~ 刚好赶上Flask大神Miguel Grinberg众筹写新教程,得嘞,咱看了人家书没给钱,后来又看了Flask at scale视频,出25 USD表示一下支持还是可以滴!

当然中间有个小插曲,kickstarter网站只支持直接填信用卡信息,不能PayPal – 这个风险还是太大,毕竟2014年这货被hack过,据说丢了用户信息,没丢信用卡信息 – 你敢信我不敢信。果断给作者blog写评论,简单粗暴的老美要钱从不手软,给了PayPal账户。

这个故事就算开始了。

付25 USD,收到PayPal收据。

实际PayPal先转了CNY,收走了177.14人民币,完全没留意。

让我们看一下汇率。

招行怎么入的帐?先是177.14 CNY,转换26.15 USD。

好吧至少还款前招行没坑我,那1.15 USD算被PayPal坑走了,至此才发现不对,但问题出在哪儿呢?

另外一笔15 USD入账变成15.74 USD也是类似的状况。

囧了,美元消费,美元入账,怎么两笔都多收了呢?幸亏订单不贵,否则不是亏惨了?

先打招行信用卡中心。

完整阅读本篇»

垃圾邮件的“进步” | Advance of Spam Mail

2017-07-07 作者:

#A seems-quite-tech-oriented spam mail, as precise strike, from fake addr geofferygreener@gmail.com, but really sent by geoffreygreener946@gmail.com.

收到这么一封邮件,大概瞟了一眼,随手删了

然后不依不饶又给我回了一封,引起了我兴趣

我心说“可以啊,够用心啊”,BOA高管这么瞧得起小弟。。。

不仅告诉我是Linkedin找到我,还是精准打击,不是脚本群发呀

更为关键的一点,这个email地址可信度很高,域名是原装gmail,名字后没有杂七杂八。

如果不是benefit both families而是both business的话,没准哥就着了道呢?

好吧,看看详情 – 

完整阅读本篇»

Python Thread Pool传参只一个怎么破?

2017-06-09 作者:

作为批量化操作的method,map比apply要方便简洁一些,至少不用for循环一堆东西
【注1】apply现已不用,因为实际使用基本等价于单进程操作
【注2】至于map之于map_async,及apply之于apply_async,是另外一个话题,可以参考这里
回到之前的话题,apply传参 – 可以清晰的看到,apply可以随意带args,多少个都没关系

#格式: apply(func[, args[, kwds]])
#比如
pool.apply(func=f, args=(20,30,))

而map传参 – 函数f只允许带一个参数,就是iterable里可以迭代的list
#格式: map(func, iterable[, chunksize])
#比如
pool.map(func=f, iterable=[1,2,3])

那么我们如何保留map这样的代码简洁性,同时也可以传多个参数呢?
这就用到了partial,把函数的定参放在partial内去传,变参依然iterable – 至少不需要把定参做成全局变量直接传给insert_and_process函数了
【注】对python2而言,partial只在2.7版本后支持 – 关于partial的说明在这里
from multiprocessing.dummy import Pool
from functools import partial

def insert_and_process((file_to_process,db)):
    db.table.insert(**parse_file(file_to_process))
    return True

if __name__=="__main__":
    file_list=os.listdir(".")
    db = DAL("path_to_mysql" + db)
    P = Pool(processes=4)
    P.map(partial(insert_and_process, db=db), file_list) #定参放在partial内,变参按照map标准写法去传
    P.close()
    P.join()
    print 'Done.'

有的同学可能要问 –
Q: 那如果两个(或多个)参数都是变参呢?
A: 开动一下脑筋吧 – 一起打进iterable里可好?
Q: 如果变参B与A不具备同样的iterable特性呢?
A: 擦的咧 – 那还map个毛啊。。。

完整阅读本篇»

CentOS 6.x安装新版RabbitMQ

2017-04-06 作者:

看了大半天的文章,尝试各种build(erlang,RabbitMQ),不是build不通,就是依赖不对,或者启动服务失败

完全用CentOS 6.x的默认吧,erlang是R14,RMQ版本是3.1.5,未免太老了

如何是好呢?

其实RabbitMQ官网提供了免依赖的erlang安装包,位于http://www.rabbitmq.com/releases/erlang/

wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el6.x86_64.rpm 
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9-1.el7.noarch.rpm 
yum localinstall erlang-19.0.4-1.el6.x86_64.rpm 
yum localinstall rabbitmq-server-3.6.9-1.el7.noarch.rpm

我是用马云家的CentOS镜像yum update到最新做的

安装完成后
使用6.x最常用的service rabbitmq-server start即可启动服务

rabbitmqctl  add_user userNew passNew
rabbitmqctl  set_user_tags  userNew  administrator
rabbitmqctl list_users

然后就可以使用userNew登入

http://公网IP:15672/

对MQ进行管理了

同时官网的hello world代码做简单更改,就可以在本地使用公网端MQ进行通信

credentials = pika.PlainCredentials('userNew', 'passNew') 
connection = pika.BlockingConnection(pika.ConnectionParameters('公网IP',5672,'/',credentials))

打完收工

完整阅读本篇»

录音棚初体验 | Experience of Studio

2017-02-21 作者:

Fresh experience to a professional studio, to sing something not that professional anyhow. Well, I brought back the original recording without any further post processing – some obvious flaws there, however it’s fine as first try.

偶遇良机钻了一趟录音棚,设备挺专业,唱的不专业咱也认了。

如我所料,挑战之一,木有MV提词,要对伴奏的节奏非常熟悉;挑战之二,没有KTV默认的提升效果,对嗓音颇挑战。

过程中,耳返可以即时听到自己清晰不走样的声音,第一遍出于紧张,一般不会太顺利。第二遍,放松且熟悉了设备,就好得多,全力发挥谈不上(尤其是气息的把握),勉力及格可以有。

听说专业人士都玩后期,可惜这次没有体验到,只把原声带了回来,破音和丢字都有,权且斗胆献丑好了。

(To Vivian)

 

唱歌的小黑屋(视频截图)

外边的操作间

完整阅读本篇»

新年愿望 | New Year Resolution

2017-02-02 作者:

Personal goals of 2017 listed here:

  • 高瞻远瞩 vision & foresight
  • 足额锻炼 exercise & health
  • 拥抱生活 life & family
  • 吃喝不愁 food & flavor

完整阅读本篇»