新浪SAE绑定域名到子目录

现在个人用户只能在 SAE 上创建最多5个应用了,远远不能满足不折腾会死星人的要求;另外新浪 SAE 的带宽确实够好,放一些静态资源速度极好。我把我的 www.antior.cn 上的内容搬到了 blog 的同一个应用里。
多域名绑定方法:

  1. 向 SAE 申请绑定

域名绑定示例

  1. 写 Appconfig 。 Appconfig 保存在代码目录的 config.yaml 文件。绑定域名到子目录的写法如下:
- rewrite:if (  in_header["host"] ~ "www.antior.cn" && path ~ "^(?!www/)(.*)" ) goto "www/$1?%{QUERY_STRING}"
- rewrite: if(!is_file()&&!is_dir()) goto "index.php?%{QUERY_STRING}"

这样再把 www.antior.cn 的内容放到 www/ 目录下就可以正常访问了。

用上了国外的主机,申请信用卡请注意支付通道

  1. 新装的 wp 更新程序需要 FTP 账号,用命令
chown -R www:www /data/wwwroot

搞定。
试用的主机面板: oneinstack

  1. 颜羽夕 推荐买了 conoha 的服务器。
    带宽够足(1G),还不用备案;资本主义国家的人民果然是生活在水深火热之中呀,且待我去拯救他们o(^▽^)o
  2. 最近接近期末考试周,博客可能要放一放了囧。
  3. 上次申请的浦发学生信用卡早就批下来了,今天趁着黑五未过在 inoreader 上面买了一年的高级账户,40% discount(就是平时说的六折)。 inoreader 是个不错的 RSS 阅读器,感觉 google reader 还在的话也能一战。
  4. 信用卡一定要注意支付通道!重要的事情只说一遍,口亨!

安装从非官方源下载的chrome浏览器扩展

Google Chrome,又称chrome浏览器,是一个由Google公司开发的网页浏览器。目前由于一些原因我们不能访问google下载chrome扩展,然而新版本的浏览器出于安全考虑不允许自行安装.crx后缀的chrome扩展。
下面我来以如意淘插件(ruyitao-chrome-3.6.0.22.crx)介绍一个能够随意安装.crx扩展的方法。

  1. 修改扩展名为.rar
  2. 如果目录中有“_metadata”文件夹,修改文件夹名为“metadata”
  3. 在扩展程序界面打开“开发者模式”

打开设置

  1. 点击“载入正在开发的扩展程序”,浏览到刚刚解压的文件夹即可安装

安装成功

参考文章:

  1. 电脑报,2015年11月9日,P40,页中“小提示|Tips”部分

Dnsmasq作为DNS服务器,更快更干净(壹)

电信的DNS服务器经常解析错误,导致了不少的问题。网速变慢,经常弹出“电信114”的页面;自建DNS不仅可以避免电信劫持,还可以纠正错误的DNS解析记录、去掉网页讨厌的广告。
本文就来分享一下我在腾讯云上安装Dnsmasq的过程,利用Dnsmasq来搭建一个属于自己的本地DNS服务器。

  1. 安装Dnsmasq
yum install dnsmasq -y  
  1. 配置Dnsmasq
    Dnsmasq的配置文件是 /etc/dnsmasq.conf。打开编辑,配置:resolv-file=/etc/resolv.dnsmasq.conf,表示dnsmasq 会从这个指定的文件中寻找上游dns服务器。同时取消 strict-order 前面的注册#号。检查一下no-hosts前面是不是已经有了#号,默认的情况下是有的,dnsmasq 会首先寻找本地的 hosts 文件再去寻找缓存下来的域名, 最后去上游dns 服务器寻找。
    设置:listen-address=127.0.0.1(或者VPS的外网IP地址,这里我加上我的腾讯云IP地址;多个IP地址用半角逗号相隔),表示这个dnsmasq本机自己使用有效。
    listen-address=127.0.0.1
    另外修改/etc/resolv.conf这个文件,如果没有找到则创建一个:
#/etc/resolv.conf
nameserver 127.0.0.1

修改/etc/resolv.conf

#/etc/resolv.conf
#resolv.dnsmasq.conf中设置的是真正的Nameserver,可以用谷歌、V2EX等公共的DNS
nameserver 127.0.0.1
nameserver 180.76.76.76
#nameserver 8.8.8.8
nameserver 119.29.29.29
nameserver 223.5.5.5
nameserver 124.251.124.251
  1. 启动Dnsmasq
    执行以下命令设置Dnsmasq开机启动并启动Dnsmasq服务:
chkconfig dnsmasq on
/etc/init.d/dnsmasq restart

接着执行命令

netstat -tunlp|grep 53

可以查看Dnsmasq是不是已经正常启动。
Dnsmasq正常启动
测试:dig antior.cn,第一次是没有缓存,所以时间是191 msec;
Query time: 191 msec
第二次有了缓存,时间显示为 0 msec 。
Query time: 0 msec

参考文章:

  1. http://www.freehao123.com/dnsmasq/
  2. https://forum.securifi.com/index.php?topic=107.0
  3. http://blog.csdn.net/taojing5566/article/details/44098939
  4. https://www.howtoforge.com/mydns_mydnsconfig_dnsmasp_on_ubuntu_edgy

MATLAB从mat文件中按顺序读取变量

这次在做以“制动能量回收”为主题的项目,需要从一堆形如“speed001.mat”的变量中读取数据。本着“做出通用程序以便扩展”这一想法,我做出了循环读取变量的函数。
此文和我的第一个 MATLAB 程序有类似的地方,然而新的程序用到了eval函数。

函数全文如下:

function [ divided_ ] = divide_travel( order )
load('speed');
name='speed000';
p0=mod(order,10);
p1=mod((order-mod(order,10)),100)/10;
p2=(order-mod(order,10)-mod((order-mod(order,10)),100)/10*10)/100;
name(8)=num2str(p0);name(7)=num2str(p1);name(6)=num2str(p2);
n=length(eval(name));
speed_prev=0;time_=0;
try
    divide_row=size(divided_,2)+1;
catch
    divided_=zeros(1);divide_row=1;
end
for i=1:n
    eval(['speed_=',name,'(',num2str(i),');']);
    if speed_==0&speed_prev~=0
        time_=1;divide_row=divide_row+1;
    else
        time_=time_+1;
    end
    divided_(time_,divide_row)=speed_;
    speed_prev=speed_;
end
end

关键在于读取变量“name”中形如“speed001”的字符串所指的行向量的某个值(比如说“speed001(5)”),不能用这样

name(5)

这样读取出来的是“d”;也不能用“speed001(5)”,这样就失去了意义。
最后用的是eval函数解决问题(MATLAB教程上说慎用此函数,但是我认为MATLAB是一个在自己主机运行的而且没有删除文件等危险函数操作的程序,不需要考虑这么多)。

关键部分

eval(['speed_=',name,'(',num2str(i),');']);
% eval()函数的功能就是将括号内的字符串视为语句并运行
% 字符串、字符数组要用逗号连接;字符数组不用加单引号:加上视为字符串

WordPress更换服务器出现500错误的解决方法

今天给网站更换服务器,不巧出现了500错误。
打开wp-config.php

更改    define('WP_DEBUG', true);
添加    ini_set('display_errors','Off');

再次打开网站出现如下错误:

Fatal error: Class ‘Memcache’ not found in /wp-content/object-cache.php on line 372

原来是新服务器里没有Memcache,给object-cache.php改名,网站顺利打开。

参考文章:

  1. http://tutorials.hostucan.cn/article-5075

WordPress上传文件出错的解决办法

今天在配置wordpress时上传文件突然出现提示“无法建立目录wp-content/uploads/2015/11。有没有上级目录的写权限?”

现在找到解决办法:

  1. 设置“wp-content”目录权限为777

设置“wp-content”目录权限为777

  1. 关闭SELinux安全模块
[root@manage ~]# setenforce 0
setenforce: SELinux is disabled

关闭SELinux安全模块

  1. 在wp-config.php里加入下面代码:
define(“FS_METHOD”, “direct”);
define(“FS_CHMOD_DIR”, 0777);
define(“FS_CHMOD_FILE”, 0777);
define(‘CONCATENATE_SCRIPTS’, false );
  1. 修改mysql数据库

找到wordpress数据库,打开wp_options表。将键名为upload_path的键值改为“wp-content/uploads”。

  1. 如果用的是 oneinstack 面板,可能是权限不够所致。
    以 root 用户登录 vps 输入
chown -R www:www /data/wwwroot

具体是哪一个解决的问题我现在没搞明白,暂且做一个备忘。等到下次遇见类似问题再说吧~

参考文章:

  1. http://blog.csdn.net/linux7985/article/details/8135645
  2. http://www.zhukehua.cn/wordpress/4695.html
  3. http://www.wpyou.com/wordpress上传附件提示上级目录没有写权限解决办法.html
  4. http://zhoumo123.cn/wordpress/250.html

树莓派发行版写入后无法启动

树莓派刷kali-linux系统没法开机,一直以为是下载的镜像出了问题。
屏幕截图(30).png
后来搜索到相关的问题(http://bbs.ickey.cn/group-topic-id-23263.html),才发现是下载的kali-2.0.1-rpi.img.xz没有用7zip解压而直接当作img文件写入SD卡,当然会出错囧。
解压后的文件有6.83G,而源文件只有0.99G。

20151101课堂练习

RTRT,MATLAB课上做的练习,截止到10:09

练习一:

clear;
%(1)
a11=eye(5);
a12=rand(8);
%(2)
a21=[1;99];
m=1;
for i=1:2:99
    a21(m)=i;m=m+1;
end
%(3)
A=zeros(8);
for i=1:8
    A(i,i)=a21(i);
end
%(4)
[m,n]=size(A);
B=rand(m,n);
%(5)
D=B([2 4 5],[1 4]);

练习二:

方法一:
clear;
dimension=input('请输入维数dimension:');
for i=1:dimension
    fprintf('请输入第%i行的数',i);
    a(i)=input(':');
end
matrix=zeros(dimension);
for i=1:dimension
    for j=1:dimension
        matrix(i,j)=a(i).^(j-1);
    end
end
matrix

方法二:
clear;
dimension=input('请输入维数dimension:');
for i=1:dimension
    fprintf('请输入第%i行的数',i);
    a(i)=input(':');
end
matrix=zeros(dimension);
for i=1:dimension
    matrix(:,i)=(a').^(i-1);
end
matrix

练习三:

clear;
%1  a
x=[-50:0.1:50];
ya=x.^2;
subplot(3,1,1);
plot(x,ya);
%2  b
yb1=(x+5).^2;
yb2=x.^2+5;
subplot(3,2,3);
plot(x,yb1);
subplot(3,2,4);
plot(x,yb2);
%3  c
subplot(3,1,3);
hold on;
c=rand(100,10);
plot(c);