台湾大学coursera-秦始皇公开课

关于公开课https://class.coursera.org/chinesehistory-002/

陆陆续续看了一个月才完成。而且原本打算还去写作业,也没有完成,实在才惭愧。

其中经常让人掩卷思索若是你会如何,发现了自己过去读历史是何等的浅薄。就跟看故事会一样。哪能那样。而是应该,认真思索,那个环境,那个时间,人为何会那样选择,那样做事,发生了什么。这样也才能真正读书有所用吧。

最后的总结很是动人。

历史只是磨刀石,不能用来披荆斩其。

启发智慧,所有的书都是沙金,要懂得从沙金里边挑金子而不是从沙金里边挑沙子。

审时度势,知道历史的时间,流向,环境的变动,提前做好准备,才能不被历史所淘汰。

感动人心。了解人性,感动人心,让人改变

发表在 读书 | 台湾大学coursera-秦始皇公开课已关闭评论

关于 apache 的openssl 功能的启动

这两天因为ADOBE 的DPS订阅服务器需要https功能。

粗略搜索一下,发现一些早期资料说到什么需要找CA公司花钱认证购买的。然后忽然想到前段时间锤子提到的那个openssl,就去搜索了一番。

发现原来这才是主流嘛,而且apache自带了这个。甚至直接用的话都能发现这个功能是开启的,只不过证书是localhost的。

然后就去按照时间搜索资料。发现基于linux的比较多,win平台真是被鄙视了。也难怪啊。做服务器linux才是主流。

然后真正有用的是这个网址 http://www.2cto.com/os/201404/289690.html

步骤1:配置 APACHE以支持SSL

找到下面两行去掉前面的注释 #

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf

步骤2: 为网站服务器生成证书及私钥文件
C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl genrsa -out server.key 1024
生成一个server.key

步骤3:生成签署申请
C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl req -new -out server.csr -key server.key -config ..\conf\openssl.cnf
此时生成签署文件 SERVER.CSR

步骤4:使用OPENSSL生成CA私钥
C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl genrsa -out ca.key 1024
多出CA.key文件

步骤5:利用CA的私钥产生CA的自签署证书

C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config ..\conf\openssl.cnf

步骤6:在bin目录下新建demoCA目录,在demoCA下新建index.txt,newcerts,serial 目录结构如下
demoCA
|–index.txt(文本,内容为空)
|–newcerts(文件夹)
|–serial(文本,内容为 01)

步骤7:准备为网站服务器签署证书
C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ..\conf\openssl.cnf
生成 server.crt文件

步骤8:将 server.crt server.key复制到 conf文件夹下

不过原文的步骤8有些问题,应该按照 http://blog.chinaunix.net/uid-28559065-id-4122318.html

 将\bin下面的 server.csr 、server.crt、server.key拷贝到httpd-ssl.conf中SSLCertificateFile和SSLCertificateKeyFile语句对应的目录下,

而且没有提到填写时,最需要注意的是 Common Name (eg, YOUR name) []:     需要按照http://showerlee.blog.51cto.com/2047005/1134956

不过,对于自行签署的证书,以及一些发证机构而言,其实还可以签署一种普适HTTPS证书,这种证书的Common Name一栏是 *.domain.tld 这样的形式,即其主机名部分可以是任意字符串,而只有域名部分是确定的。
当然,这种证书的安全性有一定的负面影响:由于一个证书可以验证整个域下面的所有服务器,一旦其被破解,则所有加密通讯也就同时失密了(当然,可以每台服务器使用自己的单独的证书),不过这个问题并不是太严重,通常还算是尚可接受的范围。另一个潜在的影响是,某些手机上运行的浏览器不能正确处理这种证书,不过这个问题仅限于希望给手机提供服务的网站。

所以我就填写了*.abc.com

然后 进入conf/extra文件夹中,找到一个httpd-ssl.conf的文件用文本工具打开它

按照http://www.markdream.com/server/apache-vhost-and-https.shtml

Listen 443

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

#SSLPassPhraseDialog builtin

#SSLSessionCache “shmcb:F:/xampp1/apache/logs/ssl_scache(512000)”
SSLSessionCache “shmcb:F:/xampp1/apache/logs/ssl_scache(512000)”
SSLSessionCacheTimeout 300

<VirtualHost *:443>
DocumentRoot “F:/abc”
ServerName new.abc.com:443
ServerAlias www.abc.com
SSLEngine on

SSLCertificateFile “conf/ssl.crt/server.crt”

SSLCertificateKeyFile “conf/ssl.key/server.key”

<Directory f:/abc>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
DirectoryIndex index.php index.html

</VirtualHost>

 

然后重启服务器,也就算完成啦。

哦对,记得打开服务器的端口。我真是因为防火墙端口结果苦恼了好久。

发表在 工作笔记 | 关于 apache 的openssl 功能的启动已关闭评论

pdo Call to a member function bindParam() on a non-object

$stmt = $dbh->prepare($sql) ;

$stmt->bindParam(“:name”, $name);

刚开始发现这个错误 Call to a member function bindParam() on a non-object

后来用了

var_dump($stmt);发现$stmt是个false.

之后继续找问题

$stmt = $dbh->prepare($sql) or die($dbh->error);

发现了 Undefined property: PDO::$error

之后
if(!$stmt){
$err = $dbh->errorInfo();
print_r($err);
}

来输出错误。

 

 

这时候忽然发现,原来是因为换了服务器,我把表名记错了。。sq语句错了,真是笨!

发表在 php | pdo Call to a member function bindParam() on a non-object已关闭评论

oc 时间戳格式化

NSString *date = [info objectForKey:@"date"];//获得那个长数字
NSInteger dTime = [date integerValue];
long long lTime = [[NSNumber numberWithInteger:dTime] longLongValue]; // 将double转为long long型

NSString *curTime = [NSString stringWithFormat:@"%llu",lTime]; // 输出long long型
NSDate *time_str =[NSDate dateWithTimeIntervalSince1970:[curTime floatValue]];
NSDateFormatter *date_format_str =[[NSDateFormatter alloc] init];
[date_format_str setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *date_string =[date_format_str stringFromDate:time_str];
发表在 ios | oc 时间戳格式化已关闭评论

ios webview 尺寸 全屏问题

之前拿到一段代码发现只是初始化了webview并没有进行全屏处理。

之后找到问题解决如下。

CGRect webFrame = [[UIScreen mainScreen] applicationFrame]; webFrame.origin.y -= 20.0; // statusbar 20 px cut from y of frame

webView = [[UIWebView alloc] initWithFrame:webFrame];

webView.scalesPageToFit = YES;

webView.autoresizesSubviews = YES;

webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);

[webView setBackgroundColor:[UIColor clearColor]];

——————————————————-

其实在UIWebView里是可以取得scrollView的,当webView加载完的时候可以取scrollView的contentSize,然后重新给webView设置frame即可

发表在 未分类 | ios webview 尺寸 全屏问题已关闭评论

用xampp建站后发现无法访问

一般会有一个界面出现。

Access forbidden!

You don’t have permission to access the requested directory. There is either no index document or the directory is read-protected.

If you think this is a server error, please contact the webmaster.

Error 403

这个嘛,我因为没用vhost之前是正常的,后来用了就发现错误了。结果想了想就直接把httpd.conf里的设置挪了过去。

<Directory D:/website/>
Options Indexes FollowSymLinks Includes ExecCGI

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All

# Controls who can get stuff from this server.
#
Require all granted

</Directory>

之后果然正常了-

 

发表在 网站基础 | 用xampp建站后发现无法访问已关闭评论

关于mysql用phpmyadmin查看乱码

对于此先用命令行登录mysql。之后在musql下运行下边的show命令。

mysql>show variables like ‘character%';

可以看到各种编码,比如下边

| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+

然后就要一点点改mysql设置文件my.ini里的设置。

客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
init_connect=’SET NAMES utf8′ (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

然后呢。你再看看,可能还是有问题。

那就在连接时用

先用header(‘conten-type:text/html;charset=utf-8′);

再用$dbh->exec(“set names ‘utf8′”);

应该就会好一点了。

再有问题那就要用phpmyadmin看看localhost数据库本身是不是用utf8连接的。

然后在操作里看具体数据库是不是utf8的。

之后看数据表示不是utf8的。

最后看每一数据栏是不是utf8的。(对,我就是在这里搞错了……)

之后嘛,在前台设置 <meta charset=”utf-8″>。这样在有问题……咳咳,那就,没办法啦

发表在 php | 关于mysql用phpmyadmin查看乱码已关闭评论

php-pdo-prepare 防sql注入

当我们使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制。虽然可以用mysql_real_escape_string()函数过滤用户提交的值,但是也有缺陷。而使用PHP的PDO扩展的 prepare 方法,就可以避免sql injection 风险。
PDO(PHP Data Object) 是PHP5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,如 php_mysql.dll。 PHP6中也将默认使用PDO的方式连接,mysql扩展将被作为辅助 。官方:http://php.net/manual/en/book.pdo.php

 

在插入查询时,可以用以下方式:

$dbh = new PDO(“mysql:host=localhost;dbname=0000″,”username00000″,”password00000″);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); //禁用prepared statements的仿真效果
$dbh->exec(“set names ‘utf8′”);

先连接上数据库。

之后用来

$username= str_replace(” “,””, $_POST[‘username’]);

做个转义。

之后生成sql

$sql = “insert into membertable(name,email,mobile) values(:username, :email,:mobile ) “;

做prepare来预处理
$stmt = $dbh->prepare($sql);

二进制化相关数据
$stmt->bindParam(“:username”, $username);
$stmt->bindParam(“:email”, $email);
$stmt->bindParam(“:mobile”, $mobile);

最后进行查询
if( $stmt->execute()){

header(“Location: http://www.onemovie.com/1.html”);//跳转到成功页面

}

最后将连接关闭

$dbh = null;

发表在 php | php-pdo-prepare 防sql注入已关闭评论

14.21.1 台湾一

晚上本来就没有怎么睡好。醒来挣扎着起来上了车,到了机场就看到满满一场的人,看来出行的人还是比想象的还要多。

飞机上还不让用充电宝,说是为了安全。只是我记得之前坐亚航也没有这要求过啊……后来坐国泰的也没有如此要求。

在香港机场买了个三明治就权当主食了~只是其实后来也没有吃完…完全没有饥饿感…

到了台湾,落地,出关时候也很简单,没有什么复杂的内容。出去就换了个本地的号码,只是后来才发现那个号码不怎么好-874874的,朋友说就是被坑了-

给朋友打过去电话,倒是可以正常接通了-他们都说,要是没接的话,我该怎么办-就真的,我会头疼一下吧。。

只是,问路的时候,人真是比起大陆来,要和善一些,即使他应该是天天都在被问路。

结果我就在台北的边缘待了一下,就跑去了高铁站,没有进到市区。高铁有着极准确的时间概念。只是价格比我想象的要好贵一些,700台币。

到了台中,就在夕阳下等着朋友,一点点的看着日落,听着本地人说着,怎么泡大陆妹子的。实在是很奇妙的事情。

等了将近一个小时,朋友终于来了。后来才知道,其实他们是迷路了……

在车上商量着目标是哪里,我听到鹿港这个词,就说,去那里吧。反正鹿港小镇挺有名的。只是路上看着两边的招牌,还有槟榔摊。

到了鹿港找车位就要了很久。之后就看到一条街的各式小吃。倒是比大陆来的有趣,真希望北京也有这么一条街。

到了天后宫,就拿来烧的金,去烧香,其实还是挺有趣的,各式烟雾缭绕。正值八点,要是大陆,所有宗教建筑也早就关门了,没想到这里居然还在迎客。

朋友交给我一打纸钱,然后我就傻傻的拿着,接着就放到中间的桌案上。只是几步路,好神奇的事情,当时都没反应过来,这是做什么。

然后就去排队点香,一个香炉三柱,有着自己的顺序,不能放错。楼上楼下,前后寻找,也是挺有趣的一件事情。

之后就在街上各种小吃,奇怪的东西,面粉包冰激凌,这种东西都有。。不过果汁真是便宜啊。

回去的时候,他们居然找不到回去的路,就让我一个外乡人,看着导航指导他们如何回家……咳咳,他们自己都一阵吐槽。

回去路上,提起了台湾存储利率太低,我就说,拿到大陆会很高的。

之后高速路上看到两边田里有灯光,成排成片,他们说是因为养花而用。很神奇。

之后就去了朋友的大姨家?

大姨家应该是蓝阵营的,和我朋友家的绿截然不同。但是也相安无事。就说起了很多大陆的事情,交流一番。她也提到之前曾经来过大陆,去过一些经典,张家界之类。

然后就看朋友的表妹在玩大富翁,还有一个什么类似小时候齐多圈的游戏。刚开始那两个小朋友很认生,但是后来就熟悉了起来。

看到这边的打麻将是16张的,但是规则差不多。

后来在院子里看着路灯,恍惚中有种灌篮高手的感觉。

然后就一阵睡去。

发表在 未分类 | 14.21.1 台湾一已关闭评论

2013.7.31工作笔记

上午继续研究代码。

下午韩国组过来介绍自己,然后说要更改sdk。

结果交代的网页存在问题,需要更换语言。才能看,你要长记性。

然后还用英文往来了一下信件==真是。神奇啊。

明天继续修改

发表在 工作笔记 | 2013.7.31工作笔记已关闭评论