将博客在Coding上部署了一份

我这博客一直是放在 GitHub Pages 上的,最近博客出了点问题,我也不知道到底咋回事,只是怀疑是 GitHub Pages 在大陆的线路问题导致的。
正巧我看到了另一个类似平台的类似服务: Coding Pages ,也支持域名绑定,试了下大陆访问速度还不错,便在 Coding 上也部署了一份博客,用来承担来自大陆的访问。
部署还是挺方便,建一个跟用户名一样的项目,把本地的 force push 进去,开启 Coding Pages ,这便部署完成。
测试过之后,将域名在国内的解析 CNAME 到 Coding 给你的域名,完工。

C++类内成员访问控制中一个容易忽略的地方

今天看到了运算符重载,在动手实践的过程中遇到了一个疑惑。

main.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class c{

private:
int a,b;
public:
c(void){
a=b=2;
}
c(int){
a = in; b = 1;
}

c operator+(c cadd){
c csum;
csum.a = a + cadd.a;
csum.b = b + cadd.b;
return csum;
}

};

在这段代码中,14行新建了一个对象,为何在15和16行中能直接访问其私有成员呢,这不是在对象外么。
经过查找资料,结果如下:

A member of a class can be
— private; that is, its name can be used only by members and friends of the class in which it is
declared.
— protected; that is, its name can be used only by members and friends of the class in which it is
declared, and by members and friends of classes derived from this class (see 11.5).
— public; that is, its name can be used anywhere without access restriction.

就是说,访问限制是针对于类的,而不是针对于对象的。
类的对象在类的内部默认是友元,同一个类的不同对象可以互相访问其私有成员,而不属于这个类的其他对象和函数才不能访问其私有成员。
原来我一直理解有误,认为访问控制针对于对象,这样是错的。

关于WEB服务器的安全问题(LAMP)

近期接触了不少关于网站的东西,也学到了不少东西,简单记录下如何保障 LAMP 架构下 WEB 服务器的安全问题。
首先服务器肯定不能直接暴露在公网,要不所有开放的端口会被人扫个遍,这中间起码要有个路由器之类的做端口转发或者另一台服务器做反代,SSH 等远程管理端口也要设好IP范围。
还有就是 Apache 的设置问题,给它单独开个用户和组,权限设置好(好像这个它自己会做),开 safe_mode ,禁止某些函数,只允许访问指定目录,禁止列举文件,允许上传的目录禁止执行等等。
文件和目录的权限正常来说目录用 755 或 775 ,文件用 644 或 664。
再就是数据库,也给它单独开个用户和组,权限设置好,设置好允许访问的IP范围,删掉没用的root账户,一个应用一个数据库账户,只允许操作这个应用自己的数据库。
最后是 PHP,做好输入过滤,前端加了限制之后后端还要再次过滤。

关于快速省力地在纸质材料上实现手写字迹的研究

摘要

(略)

关键字

手写 打印

正文

选题依据、研究背景与研究意义:
    总有一些看起来浪费时间的事情,其中一些便是现在无聊课程要求的手写作业了。本研究的目的旨在使人们从这种毫无意义的重复劳动中解放出来,节省宝贵的时间和精力用于码代码。
研究现状:
    自二十世纪后期电脑打印得到应用以来,打印技术不断发展,激光打印、喷墨打印等已经普及,现在普通打印机打印的质量已经相当不错,成本也相对低廉。
    如今的中文字体早已不单单仅有宋体黑体等传统字体,各种艺术体、手写体更是百花齐放。
研究方法:
    以我的思想为指导,通过对相关研究现状的分析,得出实现目标的可行理论方案和实际解决方案。
可行理论方案
考虑成本和质量,故采用电脑打印技术比较可行;考虑因特网的方便和自由,故使用网络上手写体字体比较可行。
实际解决方案

  1. 寻找一款合适的手写字体,由于版权原因我也不好挂下载链接,自行搜索即可;
  2. 用这款字体在Word等文字工具中写好(或者复制粘贴好)你要写的东西;
  3. 打印:
    3.1. 如果你选的字体中每个字大小比较一致的话,在没有线/格子的纸上打印会使字看起来太整齐;
    3.2. 在有线的纸上只需算好行间距和页边距,行间距可以用尺子量后换算成磅;
    3.3. 在格子纸上要保证每个字符(汉字、标点等)大小一致;
  4. 适当的涂改会增加真实性。

研究成果

参考文献

维基百科-互联网
字体网站-互联网

做了一个小东西

用PHP写的一个简单的工具,功能是计算/验证身份证号码的最后一位和IMEI号码的最后一位。
源代码如下:

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>

<body>
<div align="center">
<?php
if(isset($_POST[submit])){
//echo "YOUR INPUT IS:".$_POST[input].'<br>';
//echo "LENGTH IS ".strlen($_POST[input])."<br>";
if(strlen($_POST[input])==17||strlen($_POST[input])==18){
$s=(($_POST[input][0] - '0') * 7 + ($_POST[input][1] - '0') * 9 + ($_POST[input][2] - '0') * 10 + ($_POST[input][3] - '0') * 5 + ($_POST[input][4] - '0') * 8 + ($_POST[input][5] - '0') * 4 + ($_POST[input][6] - '0') * 2 + ($_POST[input][7] - '0') * 1 + ($_POST[input][8] - '0') * 6 + ($_POST[input][9] - '0') * 3 + ($_POST[input][10] - '0') * 7 + ($_POST[input][11] - '0') * 9 + ($_POST[input][12] - '0') * 10 + ($_POST[input][13] - '0') * 5 + ($_POST[input][14] - '0') * 8 + ($_POST[input][15] - '0') * 4 + ($_POST[input][16] - '0') * 2)%11;
echo 'THE LAST ONE SHOULD BE :';
if($s==10)echo 'X';
else echo $s;
}
elseif(strlen($_POST[input])==15||strlen($_POST[input])==14){
$s=($_POST[input][0] - '0')+(($_POST[input][1] - '0') * 2 )%10+(int)((($_POST[input][1] - '0') * 2)/10)+($_POST[input][2] - '0')+(($_POST[input][3] - '0') * 2 )%10+(int)((($_POST[input][3] - '0') * 2)/10)+($_POST[input][4] - '0')+(($_POST[input][5] - '0') * 2 )%10+(int)((($_POST[input][5] - '0') * 2)/10)+($_POST[input][6] - '0')+(($_POST[input][7] - '0') * 2 )%10+(int)((($_POST[input][7] - '0') * 2)/10)+($_POST[input][8] - '0')+(($_POST[input][9] - '0') * 2 )%10+(int)((($_POST[input][9] - '0') * 2)/10)+($_POST[input][10] - '0')+(($_POST[input][11] - '0') * 2 )%10+(int)((($_POST[input][11] - '0') * 2)/10)+($_POST[input][12] - '0')+(($_POST[input][13] - '0') * 2 )%10+(int)((($_POST[input][13] - '0') * 2)/10);
//echo "---".$s."---";
$s=10-$s%10;
echo 'THE LAST ONE SHOULD BE :';
if($s==10)echo '0';
else echo $s;
}
}

?>


</div>
<form action="" method="post" name="form1" id="form1">
<label for="textfield"></label>
<p align="center">
<input type="text" name="input" id="input" maxlength="18" value="<?php if(isset($_POST[submit])){echo $_POST[input];}?>">
</p>
<p align="center">
<input name="submit" type="submit" id="submit" form="form1" value="<?php if(isset($_POST[submit])){echo "Again";}else{echo "Do";}?>">
</p>
</form>
</body>
</html>