Pegasus' Blog
保持一颗好奇心

django+sae微信开发-简单的鹦鹉学舌功能

网上已经有一些优秀的教程了,但是大多数基于web.py,最近学了点django,就用django写个简单的demo。


###准备工作
基础的python知识,基础的django框架知识。
申请sae,申请微信公众平台。看一下sae和微信平台开发文档。
可以参考以下几个教程有个大致的了解:(包括申请sae,微信平台,url设置等步骤)
使用python一步一步搭建微信公众平台(一)
利用SAE搭建微信公众平台(二)微信的验证和自动回复
微信机器人:小蜗牛有道翻译小助手——Django + SAE + 微信公众帐号自动回复开放接口


Qt递归非递归遍历文件

c++
c++, Qt

qt最大的优势在于跨平台,虽然都说qt设计优良,文档丰富,但是qt一直不温不火的。不过跨平台确实可以节省不少人力物力,”一次编写,到处编译“,对于短期搭建框架也有优势.

#include <QDebug>
#include <QDir>
#include <QFile>
#include <QFileInfo>
#include <QFileInfoList>
#include <QQueue>
#include <QString>
#include <QStringList>
#include <QVector>

QVector<QString> all_files;

void DfsCollectFiles(const QString& filepath)    // not recommended for deep directory
{

    QFileInfo curFileInfo(filepath);
    if (!curFileInfo.isDir())
        return;
    QDir curDir(filepath);

    QFileInfoList curFileInfoList(curDir.entryInfoList());
    if (curFileInfoList.empty())
        return;

    QFileInfoList::const_iterator it;
    for (it = curFileInfoList.begin(); it != curFileInfoList.end(); ++it) {
        if (it->isDir() && it->fileName() != "."  && it->fileName() != "..") {
            DfsCollectFiles(it->absoluteFilePath());    //recursively
        } else if (!it->isDir()) {
            all_files.push_back(it->absoluteFilePath());
        }
    }

}

void BfsCollectFiles(const QString& filepath)     // bfs traverse
{
    QFileInfo cur_fileinfo(filepath);
    QQueue<QFileInfo> fileinfo_queue;    // queue
    QDir cur_dir(filepath);

    fileinfo_queue.enqueue(cur_fileinfo);
    while (!fileinfo_queue.isEmpty()) {
        cur_dir = fileinfo_queue.head().absoluteFilePath();
        fileinfo_queue.dequeue();
        QFileInfoList cur_fileinfolist = cur_dir.entryInfoList();

        QFileInfoList::const_iterator it;
        for (it = cur_fileinfolist.cbegin(); it != cur_fileinfolist.cend(); ++it) {
            if (it->isDir() && it->fileName() != "." && it->fileName() != "..") {    // jump "." and ".."
                fileinfo_queue.enqueue(it->absoluteFilePath());    // enqueue unresolved directories
            } else if (!it->isDir()){
                all_files.push_back(it->absoluteFilePath());
            }
        }
    }

}

超越自卑

###生活的意义

如果你问一个人:『人生的意义是什么?』他多半答不上来。对大多数人来说,他们不想自寻烦恼去考虑这个问题,也不想探求问题的答案。

每个人在生活中都会受到三大约束,人们所面临的困难或者问题都源于此。第一个约束就是我们必须生活在这个小行星-地球上,我们必须保持身心健康帮助人类延续;第二个约束是我们必须和其他人紧密关联,我们无法独自实现目标;第三个约束来自人类的两种性别,爱情和婚姻的问题。由这三个约束又引发出三个人的基本问题,谋求职业的生存问题,与他人合作共享成果的问题,以及调节自我适应两性关系的问题。个体心理学(Individual Psychology)把人类的所有问题划分为三大主题:职业问题、社交问题和两性问题,这三个问题又是相互联系和影响的。

python mysql数据库编程

##安装mysql和MySQLdb模块

安装mysql数据库:

sudo apt-get install mysql-server

安装python MySQLdb模块:

sudo apt-get install python-mysqldb

毁三观的进化心理学

看了巴斯的《进化心理学》,的确是一本开脑洞,毁三观的书。从人类进化的角度探讨了人类的生存和繁衍,男女择偶策略,家庭的产生,亲属关系,两性斗争以及社会支配等内容。写这篇文章来说说几个有意思的问题,包括:为何人类偏爱长得漂亮的人? “一见钟情”是怎么回事? 多巴胺和催产素是在爱情中发挥了什么作用?为何有些男人会有“处女情结”? 为什么男人会花心,有很强的性嫉妒?什么样的爱情更持久?等有意思的问题。
小清新止步。

我的互联网方法论-周鸿祎

####红衣教主-周鸿祎
虽然现在不怎么用360了,但是周董的书还是值得看看滴。
熟悉360的朋友应该知道周鸿祎,奇虎公司董事长,知名天使投资人。周鸿祎在互联网界可以说是树敌众多,和百度抢搜索,和腾讯『3Q大战』,推出免费杀毒威胁传统杀毒厂商……周鸿祎几乎跟所有业内大佬干过架,可以说是中国互联网的搅局者。周最开始因为自己的流氓软件肆虐,也有人叫他流氓软件之父。但是不管怎样,360的成功也有目共睹,周总自有他一套做产品的方法。


####互联网时代

没有人能够打败趋势

互联网时代催生了一批伟大的公司,极大地改变了人们的生活方式。也对一些传统行业造成了很大冲击,最典型的就是电商对传统零售业的冲击,传统行业利用信息差赚钱变得越来越困难。传统行业如果不能抓住趋势适当转型,就有可能面临被淘汰的风险。互联网也有它自己的发展规律,最近很流行一种说法就是『互联网思维』。互联网产品不受物理空间限制等特点聚集了传统行业难以想象的用户基数,使得用户边际成本接近于0,所以可以提供免费的服务。当初360推出免费杀毒软件时,断送了很多公司每年几亿的收入,惹怒了众多传统杀毒厂商,周也成为很多人的攻击对象。但是这就是趋势,免费的趋势,果然360的免费杀毒短时间内就有了几亿用户,把传统杀毒厂商挤了下去。前段时间高德地图宣布免费后,百度地图立马跟进,不仅宣布免费,还把之前的费用退还。这是很聪明的做法,看不准趋势只有被淘汰的命运,就像当年的网景公司,在微软利用windows的垄断优势用IE绞杀网景时,网景依然对浏览器收取高价,最终被历史淘汰,这位浏览器的先行者最后却只有被遗忘的命运。

Linux开发工具集

最近工作学了一些linux下的新东西,下面这些工具主要针对c/c++,以后慢慢补充一些好用的工具。


####编辑器

  • vim
  • emacs
  • kate(KDE下一个功能强大的编辑器)

ubuntu使用gtest单元测试框架

gtest是google的开源c++单元测试框架,下面是在ubuntu上的使用步骤。


####安装 gtest development package:

sudo apt-get install libgtest-dev

注意这一步只是安装源代码到/usr/src/gtest,需要用cmake构建Makefile然后再make生成静态库。

1
2
3
4
5
6
sudo apt-get install cmake    #安装cmake
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make

sudo cp *.a /usr/lib/ #拷贝生成的库到/usr/lib/

vim常用命令

vim

####来自vim使用笔记

####关于Vim
vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimtutor zh)

Linux/Unix提升工作效率的几个工具

下面是几个linux下挺很有用的玩意,可以大幅提高操作效率。包括好用的zsh,打开终端的工具,linux/unix文件转化工具等。


##终极shell:OH-MY-ZSH(吐血推荐)
mac和ubuntu默认的shell是bash,最近从网上看到了oh-my-zsh,不仅兼容bash,而且功能更强大,比如更加智能的模糊搜索,git项目高亮显示等,还可以自己配置主题,果断放弃bash。