作者归档:wenbin

Base64转Blob格式

  • 将Base64转为Blob类型
parseFileType: function(basestr, type) {
  var text = window.atob(basestr.split(',')[1]);
  var buffer = new Uint8Array(text.length);
  for (var i = 0; i < text.length; i++) {
    buffer[i] = text.charCodeAt(i);
  }
  var blob = self.getBlob([buffer], type);
  return blob;
}
  • 获取Blob对象的兼容性写法
getBlob: function(buffer, format) {
  try {
    return new Blob(buffer, {
      type: format
    });
  } catch (e) {
    var bb = new(window.BlobBuilder || window.WebKitBlobBuilder || window.MSBlobBuilder);
    buffer.forEach(function(buf) {
      bb.append(buf);
    });
    return bb.getBlob(format);
  }
}

获取到 blob 后可以做图片上传。

vuejs 异步渲染问题

Vue 异步执行 DOM 更新。只要观察到数据变化,Vue 将开启一个队列,改变缓冲在同一事件循环中发生的所有数据。如果同一个 watcher 被多次触发,只会一次推入到队列中。这个思想类似于 react, 用来减少 重绘性能消耗,譬如 :

<div v-if="data">
  <com ref="com"></com>
</div>

data 最初为null,那么当我们在一个method 中调用

this.data ={};
console.log(this.$refs.com)

时因为 vue 异步更新dom 的关系,data 并没有马上生效到dom 的渲染上,com 组件未完成渲染,所以 this.$refs.com 会为 undefined,此时需要使用 this.$nextTick 解决问题

安装 python virtualenv 虚拟环境

先通过 easy_install 安装 pip
sudo easy_install pip
再通过 pip 安装 virtualenv
sudo pip install –upgrade virtualenv
然后就可以用 virtualenv 命令创建虚拟环境了
virtualenv –system-site-packages targetDirectory # for Python 2.7
virtualenv –system-site-packages -p python3 targetDirectory # for Python 3.n
创建好虚拟环境后,通过 source 命令激活环境
source ~/tensorflow/bin/activate
激活后就可以在环境在运行自己的脚本啦。

The TensorFlow library wasn’t compiled to use SSE instructions 警告修复

2017-10-16 11:51:53.826232: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn’t compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-10-16 11:51:53.826259: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn’t compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-10-16 11:51:53.826267: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn’t compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-10-16 11:51:53.826273: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn’t compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
安装好 tensorflow 后,执行 tensorflow 官方文档的代码,报了上面的错误。
这是一个提醒,提示通过源码安装可以提高 tensorflow 的效率,但不影响使用。
这个提醒默认是开启的,需要禁用的话可以在代码头部加入下面的代码。
import os
os.environ[‘TF_CPP_MIN_LOG_LEVEL’]=’2′

常见海购转运公司介绍

目前海购已经非常方便了,大多数时候都不需要自己找转运公司,各种第三方平台上都可以很方便买到国外产品。
下面是常见的转运公司,大家可以了解一下,需要用到的时候可以找到合适自己的。

常见海购转运公司

韩国           斑马快递             1kg首重$25.8  续重1kg $25.8
日本           JShoppers(首选)           100日元手续费,然后重量按EMS国际运输收费,大概1KG物品总价在100RMB快递费
Tenso (次选)                50RMB首重服务费 然后重量按EMS国际运输收费,大概1KG物品总价在150RMB快递费
EDT                    1kg 750日元,续重一样1kg 750日元
易通进口
美国(20-30) 风雷                             首重1磅 $10 续重1磅  $5           免税州要中转及付邮费
转运中国
转运四方(推荐)
斑马(推荐)
百通
同心
久禾
360hitao(推荐)
欧洲(15)

海购时间周期

海购基本周期(日本7天   韩国7天   美国15天      欧洲 30天 )

教你如何快速优雅的编写 Banner 运营文案

俗话说,知己知彼,百战不殆。学会快速优雅编写 banner 文案前,我们可以调研一下竞品运营是如何编写文案的。然后归纳总结出编写逻辑,再演绎更新到自己的产品运营中。

序号 文案 平台 主题 促销属性 利益点类别 利益点描述 指示型语言 指示型语言描述 数据标注 时间点标注 展示频率
1 潮货汇集——不潮还不赶快点我 淘宝网 潮品 专题 导购 内容 点击 没有

我们可以新建一个竞品 banner 运营文案的 excel 文件,每次看到竞品不错的文案就可以记录下来,日积月累,就能拿到一个小小的文案库。需要写文案的时候,可以拿出文案库来做参考,这样可以极大的提高运营效率。
有了上面的数据后还可以做透视分析。

1 利益点类别 2 数据标注 3 指示性语言
平台 导购 货架 营销 主题 总计 平台 没有 总计 平台 没有 总计
京东pc 3 5 8 京东pc 1 7 8 京东pc 2 6 8
淘宝app 2 2 淘宝app 2 2 淘宝app 2 2
淘宝网 2 1 5 1 9 淘宝网 7 3 10 淘宝网 4 6 10
天猫 2 2 天猫 2 2 天猫 2 2
网易考拉 3 6 1 10 网易考拉 1 9 10 网易考拉 9 1 10
网易严选 1 3 3 7 网易严选 7 7 网易严选 7 7
唯品会 7 1 8 唯品会 8 8 唯品会 1 7 8
有货 1 1 2 有货 2 2 有货 2 2
总计 8 4 27 9 48 总计 11 38 49 总计 22 27 49

当文案库中文案积累到一定数量,就可以开始做归纳了,根据我们内部的文案库,可以归纳出下面的一些规律。

平台 句式 特点
网易考拉 [主题]+导购/货架+营销 1.主题切合时令
2.多以货架中某一优质品牌做主题,引导专题
3.营销带数据
4.以满减和底价为主
唯品会 (主题+品牌)/导购+营销+指示性语言 1.单一品牌推广多
2.营销带数据
3.以满减和打包卖为主
4.附带指示性语言按钮,如立即抢购
5.会有提前一天的活动预热——抢先收藏
网易严选 导购/主题+货架+营销+指示性语言 1.主题切合时令
2.营销带数据
3.以优惠券满免和低价为主
4.附带指示性语言按钮

有这样子的参考,写文案的时候就不用瞎想了,而是可以有一些可循的逻辑在里面,写文案是不是轻松很多。

wordpress 禁止 ip 访问

后台统计插件,记录到下面6个 ip 每天固定访问网站24000次左右,查了下可能是和温州 phpddos 攻击相关的 ip,
手动到 nginx 里禁止 ip 比较麻烦,找了个 wordpress 插件来解决,虽然没有 nginx 配置的方案好,但是方便快捷。
1 4117 Unknown Unknown 124.14.16.204 MSIE Windows 10.0
2 4117 Unknown Unknown 222.186.129.155 MSIE Windows 10.0
3 4114 Unknown Unknown 61.130.28.141 MSIE Windows 10.0
4 4112 Unknown Unknown 122.228.199.114 MSIE Windows 10.0
5 4110 Unknown Unknown 113.31.27.249 MSIE Windows 10.0
6 4107 Unknown Unknown 222.88.91.50 MSIE Windows 10.0
后台安装 wp-ban 插件,填写上面的 ip 搞定。

用户分层模型介绍

对用户的某一个行为按着某一维度的指标的程度对用户加以区分,就叫用户分层。
比如用户购买频度这个行为就可以定义为一个用户分层模型,高购、普购、低购就是用户购买行为的程度。用户最近1个月购买了5件及以上的商品的用户,就定义为高购用户,购买了2到5件商品的用户,就定义为普购用户,购买了1件及以下的商品的用户,就定义为低购用户。
除了购买频度,用户访问网站/APP等的频度,每日在线时长,累计时间购买的 GMV,是否是新老用户都可以作为分层的一个维度指标。

  • 和用户标签的区别,用户分层模型值在某段时间内固定,在较长时间可以变化、可以上下浮动。
  • 和用户等级的区别,用户等级是按着用户的积分划分用户等级。用户等级和用户分层可以结合起来,给予不同用户不同层次的服务,实现分层运营。

上面是从电商的角度来说分层模型。从中还可以概括出经典的 RFM 模型,R(Recency)指最近一次消费,F(Frequency)指消费频次,M(Monetary)指消费金额。
实际上,R代表的是近度,F代表的是频度,M代表的则是额度。类似的,可以将这个模型扩展到非电商的业务,如社群。
通过3个维度,可以将用户分层 8 个层级,对不同分层的用户,我们可以提供不同的服务,从而提高运营效果。

使用cron监测mysql状态并自动重启

腾讯云上部署了一个 wordpress,mysql 常常因为服务器负载过大导致进程被 kill 掉
没太多时间处理这些东西,比如优化性能,静态化,资源放 cdn 等,写个脚本定时检测 mysql 状态,跪掉的话自动重启就好了,有时间再慢慢搞。
对了,我的系统是 debian8

#!/bin/sh
pidof mysqld >/dev/null
if [ $? -eq 0 ]
then
    echo "It is running."
else
    echo "At date MySQL Server was stopped">> /home/mysql_log
    /etc/init.d mysql restart
fi

新建脚本后执行 crontab –e,在文件末尾添加定时任务 /2 * sh /path/to/restart_mysql.sh 每两分钟检查一次状态。
问题完美