2016年05月11日 jekyll
发现越来越多的人使用github page搭建博客
然而我的使用的时候发现一个问题
因为经常要写的博文涉及{{ xxx }}这样的模板语言,会与Jekyll/Liquid模板语法冲突,找了一会儿,找到了解决方案
临时禁止执行 Jekyll Tag 命令,在生成的内容里存在冲突的语法片段的情况下很有用。
{% raw % }
In Handlebars, {{ this }} will be HTML-escaped, but {{{ that }}} will not.
{% endraw % }
https://alfred-sun.github.io/blog/2015/01/10/jekyll-liquid-syntax-documentation/
2016年05月11日 django
(非微信官方)微信开发python sdk
http://wechat-python-sdk.com/
微信开发者文档
http://mp.weixin.qq.com/wiki/10/6380dc743053a91c544ffd2b7c959166.html
第一步:填写服务器配置
第二步:验证服务器地址的有效性
加密/校验流程如下:
- 将token、timestamp、nonce三个参数进行字典序排序
- 将三个参数字符串拼接成一个字符串进行sha1加密
-
开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
signature = request.GET.get("signature", None) timestamp = request.GET.get("timestamp", None) nonce = request.GET.get("nonce", None) echostr = request.GET.get("echostr", None) tmp_list = [Token, timestamp, nonce] tmp_list.sort() tmp_str = "%s%s%s" % tuple(tmp_list) tmp_str = hashlib.sha1(tmp_str).hexdigest() if tmp_str == signature: return HttpResponse(echostr)
2016年04月03日 linux
主要有三种方法
Using Ap-hotspot, an open-source app from github: see this post. Using KDE connection editor, see the post. Using Unity’s Default Network Manager with a little hack. See below
- 使用ap-hotspot工具,不知为何一直在starting状态,貌似版本升级了不能用了(放弃)
- 使用kde-nm-connection-editor,亲测可用,之前一直在用,最近突然坏了,怎么也连不上,原因未知
- 使用unity自带的网络编辑器,只用做一点点微小的调整,方便可用
就直接转别人的了
http://ubuntuhandbook.org/index.php/2014/09/3-ways-create-wifi-hotspot-ubuntu/
其中最为关键的就是最后一部
sudo gedit /etc/NetworkManager/system-connections/xxxxx
改 mode=ap
2016年03月28日 Mysql
什么是存储引擎?
有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,数据的处理上也会存在着差异,那么。 对于MySQL来说,它提供了很多种类型的存储引擎,我们可以根据对数据处理的需求,选择不同的存储引擎,从而最大限度的利用MySQL强大的功能。
linxu mysql下
>>show engines;
查看支持的存储引擎
>>show create table student;
查看student表的生成,最后一行有关存储引擎,字符等
2016年03月10日 linux
Linux系统中的/proc文件系统有什么用?
/proc文件系统是一个基于内存的文件系统,其维护着关于当前正在运行的内核状态信息,其中包括CPU、内存、分区划分、I/O地址、直接内存访问通道和正在运行的进程。这个文件系统所代表的并不是各种实际存储信息的文件,它们指向的是内存里的信息。/proc文件系统是由系统自动维护的。
env
查看环境变量
find
搜索文件及目录,在特定的目录下搜索并显示指定名称的文件和目录
find / -name man:意思是说从根目录开始搜索名称为man的文件或目录
find /home -amin -10:十分钟内存取的文件或目录
find /home -atime -10:十小时内存取的文件或目录
find /home -cmin -10:十分钟内更改过的文件或目录
find /home -ctime +10:十小时前更改过的文件或目录
find /home -mtime -10:十天内更改过的文件或目录
find /usr -size +10M: /usr目录下大小大于10m的文件或目录
find / -name core -exec rm {} \; 在整个目录树下查找文件"core",如发现则无需提示直接删除它们
find / -type f | wc -l 统计指定目录的文件个数
如何查看Linux的默认网关?
- route -n
- netstat -nr
我们可以查看默认网关。除了默认的网关信息,这两个命令还可以显示当前的路由表。
2016年03月05日 算法
基于用户投票的排名算法(一):Delicious和Hacker News
来自阮一峰的博客
具体思想参照其博客的分析
一、Delicious
最直觉、最简单的算法,莫过于按照单位时间内用户的投票数进行排名。得票最多的项目,自然就排在第一位。 下面使用Python、Redis简单的实现一些核心思想
# -*- coding: utf-8 -*-
import redis
MAX_EXPIRE_TIME = 60
cache = redis.Redis(host='localhost',port=6379,db=0)
"""
all_votes:{
'video_1': x,
'video_2': y,
....
}
"""
def user_vote(video_id):
key = 'video_%d', video_id
cache.hincrby('all_votes', key, 1) # video_xx 的 value(即投票数加1)
def get_rank():
""""
脚本每隔 MAX_EXPIRE_TIME分钟运行一次,作为这段时间内投票数的统计
"""
rank_dic = cache.hgetall('all_votes')
rank_list = rank_dic.item().sort(key = lambda k: k[1]) # 根据video_xx的 value(投票数) 排名
cache.delete('all_votes') # 清除这次统计
return rank_list