2016年05月11日

发现越来越多的人使用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日

(非微信官方)微信开发python sdk

http://wechat-python-sdk.com/

微信开发者文档

http://mp.weixin.qq.com/wiki/10/6380dc743053a91c544ffd2b7c959166.html

第一步:填写服务器配置

第二步:验证服务器地址的有效性

加密/校验流程如下:

  1. 将token、timestamp、nonce三个参数进行字典序排序
  2. 将三个参数字符串拼接成一个字符串进行sha1加密
  3. 开发者获得加密后的字符串可与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日

主要有三种方法

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

  1. 使用ap-hotspot工具,不知为何一直在starting状态,貌似版本升级了不能用了(放弃)
  2. 使用kde-nm-connection-editor,亲测可用,之前一直在用,最近突然坏了,怎么也连不上,原因未知
  3. 使用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强大的功能。

linxu mysql下
>>show engines;
查看支持的存储引擎
>>show create table student;
查看student表的生成,最后一行有关存储引擎,字符等 

2016年03月10日

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