Hexo如何为侧边widgets加上微信公众号图片

这篇文章中,我们来在 landscape 主题的侧边栏中添加微信公众号的二维码。

1 找到 themes/landscape 下的配置文件 _config.yml,添加 weixin 变量配置为二维码地址。

1
2
# 配置关注微信公众号
weixin: http://www.hohode.com/css/images/qrcode_for_gh_0360e257312d_258.jpg

2 在 themes/landscape/layout/_widget 目录下新建 weixin.ejs 文件,添加如下代码

1
2
3
4
5
<% if (theme.weixin){ %>
<div class="widget-wrap">
<img src="<%= theme.weixin %>" width="100%" height="100%"/>
</div>
<% } %>

这里根据是否存在1中的微信二维码链接来控制这个模块的显示。可以根据实际需要设置样式。

3 修改 themes/landscape/_config.yml , 在 widgets 添加 weixin。

1
2
3
4
5
6
7
8
widgets:
- weixin
- recent_posts
- tagcloud
- category
- archive
- tag
- links

总结:
本节中通过将微信公众账号的二维码作为一个组件( weixin.ejs ),利用 hueman 主题已有的侧边栏配置,非常方便的实现了微信公众号二维码的添加。

Python日期的加减

https://segmentfault.com/q/1010000012025203

对于天,小时,分钟和秒的加减使用timedelta就可以做到

1
2
from datetime import datetime,timedelta
yesterday = datetime.now() + timedelta(days=-1,hours=-1,minutes=-1,seconds=-1)

但是对于月的加减就需要用到下边的方式

1
2
from dateutil.relativedelta import relativedelta
last_month = datetime.now() + relativedelta(months=-1)

通过Linux脚本将日志文件定时备份

脚本如下,将如下代码命名为roll_log.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
source_file=$1
keep_days=5
if [ -n "$2" ] ;then
keep_days=$2
fi
log_dir=`dirname $source_file`
cd `dirname "$0"`
pwd
d=$(date "+%Y%m%d%H%M%S" -d '-1 hour')
filename=${source_file}_${d}.log
echo $filename

# file size should bigger than 1M
size=`ls -l $source_file | awk '{print $5}'`
if [ $size -gt 1048576 ]; then
echo "size is bigger than 1048576"
cp -f $source_file $filename
else
echo "size is less than 1048576"
fi

echo a >$source_file
d1=$(date "+%Y%m%d" -d "-${keep_days} day")
oldfile=${log_dir}/*${d1}*.log
echo $oldfile
rm -f $oldfile

将roll.log放到/root/目录下,然后通过crontab -e将其加入定时任务

1
* * * * * sh /root/roll_log.sh /path/to/filename.log 1

roll_log.sh接收两个参数1.文件名,2.天数,即日志保留多长时间

Spark Array_contains判断json数组中是否存在某个元素

在非spark-shell环境中需要使用如下方式导入包

1
import org.apache.spark.sql.functions._

对于结构如下的数据

1
2
3
4
5
6
7
scala> res5.printSchema
root
|-- cats: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- act: string (nullable = true)
| | |-- cat: string (nullable = true)
|-- u_i: string (nullable = true)

先使用下边的方式将json嵌套数据转换成单个字段的数组

Read More

如何变成一个有趣的人


昨天晚上,被好友阿何约去参加她的同事聚餐。本是想带我去增加气氛的,但最终没想到却适得其反。

在整个聚餐的过程中,我都始终一人独自闷头吃饭,也不怎么喜欢跟人交流,时不时有人问我问题,我也只是非常简单地予以回复。

Read More

Spark读取本地配置文件

spark读取本地配置文件
在1.6等1.x版本中读取本地配置文件需要先在submit脚本中添加如下配置

1
--files /data/apps/config.properties

然后在spark的main方法中就可以使用如下方式读取了

1
2
3
4
val filePath = "config.properties"
LogUtil.info(filePath)
val props = new Properties()
props.load(new FileInputStream(filePath))

具体的代码可以参考

Read More