电商平台选择

这几年来用电商的平台用的多了,稍微有些体会,跟大家分享。

首先,我这里说的“电商平台”指的是独立电商,而不是说你要去淘宝或者阿里巴巴去开个网店,独立电商或者垂直电商,值得是你想做聚美优品或者顺风优选那样的平台,自己搭建。

1. 技术选择

大的方向来说,有PHP(lnmp平台)、.net平台(windows+asp.net+sql server)和JAVA三种大平台可以选择。

.net建议你放弃。 微软的基因不适合互联网领域,能提供.net平台服务的软件提供商脑子里也没有“互联网思维”,他们大多是原来做.net企业程序出身的,半路出家做互联网产品,可靠性和后续服务非常令人担忧。京东是个奇葩,他的确是用的.net平台,但是你如果能保证自己有京东那么大的资源来投入进.net,也可以。

JAVA平台的话,可以考虑。坦白的说,目前国内成功的JAVA电商成功案例也不多,原因也是JAVA出身“企业级”领域,对互联网天然不感冒。淘宝的一部分服务的确是JAVA来做搜索和后台运送,但是淘宝请的起JBoss的创始人来优化淘宝的Java,但是你用不起。

恩,我建议你用PHP,国外的成熟例子很明显,Magento等PHP架构的电商平台是主流。

国内传统的PHP架构电商平台有:Echsop(代码开放,但是有授权费)、Shopex(代码封闭,授权费),Hishop(代码封闭,收费)等。

2. 怎么选择

最好要代码开放的,否则后期很多麻烦。

每个电商平台都会有“独特”的需求,例如套餐组合或者配送体系。如果你用的代码是封闭的,那么你只能可怜巴巴的付费给你的软件服务商,让他给你修改功能,价格不菲哦。另外,即使你花了大价钱做了定制,最后能否满足你的需求,还另说。

国外的Magento之类的软件的确是免费,但是很多功能非常非常不适合国内用。例如,国外的软件默认要用户注册时候提供公司地址,家庭地址,税单号等信息(强制),还有在购买产品的时候,要shipping address和billing address之类的极不适合国内用户使用习惯的流程。

3. 安全性

国外的产品安全性高,国内的都凑合(甚至很差)

4. 服务器环境

现在都用阿里云吧,自己联系机房托管什么的,劳神费力,并且动不动就被机房通知“老鼠进机柜,暂停”也挺让人讨厌的。

5. 二次开发方便程度

封闭代码的就不说了,你只能当软件提供商的肥肉被宰。

Ecshop是二次开发最方便的,不过Ecshop的代码组织,不说也罢。

国外的Magento虽然是开原的,但是二次开发,的确有点难度。国内的PHP工程师能改Magento的,估计十分之一都不到。

说了那么多,我坦白我们的项目就是用Ecshop来做的。

保险公司有10%收益率的分红险吗 –分红险的收益率讨论

那天LD去银行办新工资卡,然后回来跟我说,银行有个理财经理跟她说,他们行里面有个收益率10%的保险产品,很不错,问我要不买一单?

当时我就愣了,我知道银行渠道买的保险产品一般是收益率最低,骗大爷大妈的.如果真有10%收益率的分红险,这个就太NB了,大大的良心,我就算砸锅卖铁也要买.我问LD,究竟是怎么个10%的收益?

LD说,好像是每年存1W块钱,然后每年返还1k,存20年,到期后本金全部返还.每年返还1k,收益率不就是10%吗?

第一年 交给保险公司1W 从保险公司收到1K的利息
第二年 交给保险公司1W 从保险公司收到1K的利息
…..

我听了就笑了,看来这又是保险公司设计的一个”花招”,骗不懂金融的大爷大妈的.然后告诉老婆,的确是每年都返还1K,但是你前几年交的钱以后就不算利息了吗?

LD想了想,恩,估计的确没有10%那么多,不过应该有5%吧,怎么说也比最近一直不怎么样的余额宝强一点吧?

我估计用IRR模型计算的话收益率连3%都不到,但是复利这个事情跟不懂金融的人解释起来,的确不好说.还好,Excel有公尺,直接套公式就简单了.

然后在Excel中,给LD用IRR公式简单的做了她能看懂的模型:

QQ20150225-2

我解释,在这个例子中,A2这一行代表着你在第一年付出了-100,A3这一行,代表这你获得了110块钱,在A4这一行中 IRR(A2:A3)代表这计算从A2到A3的投资收益率.那你说,这笔投资的收益率是不是10%? 老婆说是啊

我说,然后咱们玩个复杂的,把你刚才银行给你的收益率现金流放进去,看究竟这20年的收益率是多少:

QQ20150225-3

因为保险公司的这个例子稍微复杂了点,每年都有正负现金流,所以净现金流我们放在D这一行(没有考虑年初和年末,对运算结果影响不大),你可以看到,收益率才1.094%而已,别说比余额宝了,比定期存款都低了很多.

LD疑惑的看了看,表示还是不理解….

我叹了叹气,MB一个理工科毕业的女人都能被忽悠的如此,银行里面存钱的大爷大妈就更难免了.

最后,把Excel模板奉上,需要的可以根据自己的情况改改数字,算下结果.
保险计算

[VIM插件系列] Emmet 插件

Emmet是一个很好用的多编辑器插件,我准备给VIM安装这个插件.

1. 下载最新版的Vim-emmet

wget http://www.vim.org/scripts/script.php?script_id=2981

2. 解压并安装

#unzip emmet-vim.zip 
#cd emmet-vim
#cp plugin/emmet.vim ~/.vim/plugin/
#cp autoload/emmet.vim ~/.vim/autoload/
#cp -a autoload/emmet ~/.vim/autoload/

3. 如何用

用vim新建一个html文件,

#vim index.html

在文件内,用insert模式,输入

html:5

然后(ctrl+y ,)(首先一起按下ctrl和y,然后按下”,”键),你能看到,神器起作用了.

更多的用法,请参考 https://raw.githubusercontent.com/mattn/emmet-vim/master/TUTORIAL

Linux升级内核/boot空间不足

1.查看现运行的内核版本

[root@CC boot]# uname -r
2.6.32-220.13.1.el6.centos.plus.x86_64

2.列出所有的内核文件

[root@CC boot]# rpm -q kernel
kernel-2.6.32-131.0.15.el6.x86_64
kernel-2.6.32-220.13.1.el6.x86_64
kernel-2.6.32-220.13.1.el6.centos.plus.x86_64
kernel-2.6.32-220.7.1.el6.x86_64

3.删除所有旧的内核文件
(注意不要删除当前系统正在运行的内核文件)

[root@CC boot]# rpm -e kernel-2.6.32-131.0.15.el6.x86_64
[root@CC boot]# rpm -e kernel-2.6.32-220.7.1.el6.x86_64

到此,旧的内核文件就安全删除

[root@CC boot]# rpm -q kernel
kernel-2.6.32-220.13.1.el6.x86_64
kernel-2.6.32-220.13.1.el6.centos.plus.x86_64

4.查看文件系统使用情况和文件系统被挂在的位置

[root@CC boot]# df -lh
文件系统     容量   已用   可用   已用%%   挂载点
<code>/dev/sda2    9.7G   4.3G      4.9G     47%     /
tmpfs      504M    276K      504M    1%       /dev/shm
/dev/sda1    97M     47M        46M      51%     /boot
/dev/sda3    4.9G    987M      3.6G     22%     /home</code>

Mac terminal 连接ssh 显示 broken pipe

用Mac terminal 连接ssh后,如果一段时间没有操作,terminal会显示”broken pipe”,需要重新登录.在~/.ssh/文件夹中添加config文件,并进行如下修改即可:

ServerAliveInterval 5
TCPKeepAlive no

ServerAliveInterval 5让terminal每5秒钟自动和远程的sshd进行一次握手,避免被踢掉;
TCPKeepAlive设置为no是为了避免临时的网络问题导致ssh断开,也能避免ssh断开导致的terminal假死状态.

bitnami提供的gitlab安装包如何重启

Gitlab
从开始安装Gitlab是一件让人发疯的事情,尤其是不太熟悉Ruby和redis的Linux管理员(据说有Linux系统管理员会花一天时间来安装Gitlab)。bitnami提供了一个gitlab的安装包,非常好用。但是上次安装后一直正常的Gitlab今天登录的时候,web页面打不开了。登录Linux用netstat查看服务,mysql和httpd都没有启动,看起了是gitlab的环境挂了,要重启了。但是好像bitnami并没有在Centos的/etc/init.d/目录下提供服务,所以只能自己手工了。

后来找到了,在gitlab的安装目录下(我的是安装在/opt/gitlab-6.9.2-1)有个ctlscript.sh 直接用ctlscript.sh restart就可以重启gitlab服务,就一切OK了。

KVM的node被死锁了怎么办

有个KVM的VM死锁了,无论是用virsh shutdown 111 还是 virsh shutdown 111 都会报错:

  #[root@s10 ~]# virsh shutdown 111
  #错误:关闭域 111 失败
  #错误:Timed out during operation: cannot acquire state change lock

解决的办法如下:

  #virsh undefine 111
  #virsh define /etc/libvirtd/111.xml
  #virsh start 111

用undefine命令取消这个VM,然后重新定义,启动就OK了

抛弃phpmyadmin转投Adminer

phpmyadmin是一个很好的mysql web端管理工具,但是缺点也越来越明显了: 体积太大。目前phpmyadmin的体积已经有30多MB了,并且拷贝的时候上千个小文件导致copy到web项目的时候速度很慢。每次为web项目增加phpmyadmin都变成了一件很痛苦的事情。

Adminer是phpmyadmin很好的替代者,只有一个单独的php文件就能管理mysql数据库,大小才200多kb,并且能够实现phpmyadmin本身的大部分功能。用的时候也很简单,把admier.php拷贝到web目录即可。

优点:
1. 安装简单,文件小
2. 运行速度快

缺点:
1. 功能没有phpmyadmin那么多

db

Database内容预览

select

数据显示

schema

数据结构

sql

SQL命令

Adminer:http://www.adminer.org/

sublime text 排除目录

目前的sublime目录下有几个目录不想在根目录下出现,例如admin目录不想出现,原sublime-project文件如下

{
	"folders":
	[
		{
			"path": "/Users/alexlee/Desktop/project"
		}
	]

}

加入一行 “folder_exclude_patterns”: [“admin”],把admin目录排除出project

{
	"folders":
	[
		{
			"path": "/Users/alexlee/Desktop/project",
			"folder_exclude_patterns": ["admin"]
		}
	]

}

网上的其他page建议的格式有问题,把”folder_exclude_patterns”: [“admin”]放到了“folders”平行的格式,是错误的,是不起作用的。

参考:http://www.sublimetext.com/docs/2/projects.html

阿里云的镜像站

在国内更新yum或apt的时候,最好用国内的mirrors速度会快很多,尤其是epel,fedora的国外的mirrors经常失效。

阿里云镜像站地址:http://mirrors.aliyun.com/

aliyun_mirros

阿里云还非常人性化的提供了各个mirror的使用方法。测试下载速度还不错,在用电信10MB宽带的情况下,下载速度可以达到1.5MB/S,算是满速了。可以把PC上virtuabox中的虚拟机全部更换为aliyun mirros了。