云过飘雨


  • Home

  • Archives

在校园里遛弯

Posted on 2018-07-06 |

下午刚刚下过雨,晚风很是清凉。晚饭吃了一碗拌面有点撑,这么好的晚风可不能辜负,当然是去遛弯啦。
新校区的周围空荡荡的,基本走到哪里都可以看到远处天空好看的渐变色。虽然没有老校区那种历史的积淀,走起来也觉得青葱自然。以前在老校区的时候我特别喜欢去敬业广场,晚上那里总是很热闹。我就坐在石凳上,看着爷爷奶奶或者爸爸妈妈带着小孩在院子里逛。小孩子的那种开心是非常有感染力的,会让你不知不觉中也嘴角上扬。所以即使敬业广场的砖路坑坑洼洼,夏夜的蚊子把人叮得满腿大包,我还是很喜欢坐在那。来了新校区,周围比较荒凉,最大的感觉是没什么人气。可是后来我渐渐地发现,南门广场总理像前好多附近小区的人会过来玩,坐在旁边的台阶上总能让我想起在八里台敬业广场的日子。总会慢慢变好的,都是这样。今天遛弯的时候走到东门,学活后边的小广场上也有许多人在乘凉,大概是东门离得最近了。这两个地方让我眼中的新校区慢慢变得活络起来,虽然蚊子比老校区的大还多。
其实说这么多废话,我就是想试试图片能不能成功插进来。
耶,搞定啦。
谢谢你长得这么好看,还耐心地看到这了。
avatar

AWS服务器申请及部署(一年免费版)

Posted on 2018-07-05 |

近期的项目开发需要部署节点在海外的服务器,AWS提供了12个月的免费套餐,对于团队初期做MVP来说是个非常好的选择 。对比很多海外的云服务器,AWS可以说是非常良心了。下面就讲一下AWS的云主机申请及部署的过程。

一、申请aws账号

进入aws官网 (aws.amazon.com),申请海外账号。(aws中国不对个人开放)
填写账户密码信息、联系人信息,绑定信用卡,这个过程步骤很多,会进行一系列的验证,信用卡必须是有境外支付功能的卡,如VISA。
这个过程我就不详细说了,按照提示一步步往下走就可以,AWS的工作人员服务很到位,期初我申请了aws中国区的账号,过程中遇到了问题,很快就有人跟我电话联系告诉我解决方法。
当你搞定了第一步之后,我们就可以申请云主机并部署了。

二、创建ec2实例

1.进入aws

参见 http://blog.csdn.net/qq_28629495/article/details/51363450
秘钥文件为.pem结束的。

2. 创建实例账户

在控制台相关菜单中新建,流程中注意分配权限
这部分也是参考CSDN上小伙伴的方法~

三、安装lampp

1.下载XShell,Xftp并安装

2. 在aws主机上安装lampp

参考:如何在Linux上安装xampp?
https://jingyan.baidu.com/article/afd8f4de7976b034e286e90c.html

四、将源代码传输到云主机上

1.打开Xshell,新建会话

这里写图片描述
主机: ec2-*amazonaws.com(在创建的实例上公网IP)
用户名: ubuntu
文件:.pem文件
填写完成之后点击确定进行连接,连接成功后显示如下:
这里写图片描述

2. 新建文件传输,将代码通过ftp传输到主机上。

首先添加文件夹的写权限 chmod 777 /opt/lampp/htdocs/
点击菜单栏上的【新建文件传输】按钮,显示如下,左侧为本地文件目录,右侧为aws主机目录,进入opt/lampp/htdocs目录下,将文件从本地拖到云主机的相应目录下,解压即可
这里写图片描述

五、配置云主机MySQL

1.进入 opt/lampp/bin目录,输入命令 ./mysql -uroot -p

要求输入密码,MySQL初始密码为空,直接敲回车

2.设置MySQL的密码,输入命令

grant all privileges on . to ‘root‘@’%’ identified by ‘secret’ with grant option;
secret为新设置的密码

3.打开Navicat,新建连接

host:**(服务器的公网IP)
用户名:root
密码:secret

4.连接成功之后新建数据库,向数据库中插入表。

Yii2.0 发送邮件

Posted on 2018-07-05 |

很多系统处理忘记密码问题时会采用发送邮件的方式,这篇文章是我在开发过程中总结的方法,还碰到了让人哭笑不得的错误,当时也是花了好久时间才调试好,分享给大家。
我开发用的是Yii2.0的高级模板。

一、配置文件 common/config/main-local.php

'mailer' => [
        'class' => 'yii\swiftmailer\Mailer',
        'viewPath' => '@common/mail',
        // send all mails to a file by default. You have to set
        // 'useFileTransport' to false and configure a transport
        // for the mailer to send real emails.
        'useFileTransport' => false,// false发送到真实的邮箱之中,true会将邮件缓存到文件中
        'transport' => [
           'class' => 'Swift_SmtpTransport',
           'host' => 'smtp.163.com',  //每种邮箱的host配置不一样
           'username' => 'youremail@163.com',
           'password' => 'yourAuthenticationCode',//此处非邮箱密码,而是开启smtp服务之后的授权码
           'port' => '25',
           'encryption' => 'tls',
                       ],
       'messageConfig'=>[
           'charset'=>'UTF-8',
           'from'=>['youremaill@163.com'=>'admin']
           ],
            ],

二、使用方法

$mail = Yii::$app->mailer->compose();
       $mail->setTo('***email***@163.com');
       $mail->setSubject('Your subject');//主题中不要写test
       $mail->setHtmlBody('Hello , Welcome !');

三、开启邮箱的SMTP服务

确保你用于发送邮件的邮箱开启了SMTP服务,我使用163邮箱,在设置->POP3/SMTP/IMAP可以开启SMTP服务。
这里写图片描述

四、注意发送邮件的主题不能为test,否则发送不出去

当你做好前三步之后,你还是不能成功发送邮件的话,看一下你在发送邮件时是否将主题设置成了test,没错!这样会发不出去的(′⌒`) 我在测试的时候一直用test做主题,一下午都没成功,摔桌! 改成别的主题一下子就成功了。
谢谢你长的这么好看,还这么有耐心的看完了(  ̄3)(ε ̄ )

Yii2.0 js函数未定义

Posted on 2018-07-05 |

最近在使用Yii2.0框架开发,为了提高开发效率直接使用了一套Yii2.0的后台模板。调试js时,发现js里写的函数都找不到,仔细排查之后发现了问题在于Yii2框架代码块的问题。
Yii2的代码里js被包在一个Block里,如下所示:

1
2
3
4
5
6
<script>
<?php $this->beginBlock('js_end') ?>
//js代码
<?php $this->endBlock() ?>
</script>
<?php $this->registerJs($this->blocks['js_end'], yii\web\View::POS_LOAD) ?>

这段代码的意思是把script标签中的js代码看成是一个以js_end为名的js文件,在页面中加载进来。那么为什么会报错js未定义呢?是registerJs函数的第二个参数起了作用,它决定了这段js代码的加载顺序。
registerJs的第二个参数可以是以下:

1
2
3
4
5
6
7
POS_HEAD:head结束标签之前

POS_BEGIN:body开始标签之后

POS_END:body结束标签之前

POS_READY:页面加载完成之后

原来是我们在页面加载完成之后才加载js,Block内的函数就成了window.onload里的函数,作用域在此局部,外部无法获取。因此我们需要将其放到全局作用域中。
我使用了比较简单粗暴的方法,直接将定义Block及注册js的语句删掉即可。
谢谢你长得这么好看,还这么耐心地看到这。

python写入csv文件中文乱码解决方案

Posted on 2018-07-05 |

问题

最近处理数据时需要将txt文件转化成csv格式,txt中正常存储显示的中文在写入到csv文件时变成了乱码,文件的编码未能正确处理中文,需要在写入csv文件时指定编码。

解决方法

1
2
3
4
csvfile = file('data.csv', 'wb')
# Display chinese correctly
csvfile.write(codecs.BOM_UTF8)
spamwriter = csv.writer(csvfile)

关键的一句话就是csvfile.write(codecs.BOM_UTF8),能够正常显示中文。

TPC-H生成数据集的方法

Posted on 2018-07-04 |

使用TPC-H可以自动生成大量数据,下面介绍ubuntu中的使用方法。

1.下载TPC-H的生成工具

http://www.tpc.org/tpch/ 奉上链接

网盘链接:https://pan.baidu.com/s/1u3_bwZbyWKrFGqdVzV2_7g 密码:sgnw

2.解压原文件

3.修改makefile文件

进入dbgen目录

1
cd dbgen

复制makefile.suite到makefile

1
cp makefile.suite makefile

修改makefile文件

1
vim makefile

修改为如下内容(gcc要是小写的,因为这个问题百度了一小时左右-_-||)
avatar

4.执行make,dbgen命令生成表结构和数据

如果你之前生成过数据表,可以执行make clean先清除一下再执行以下命令。

1
make

执行dbgen,生成数据表,大小为2G。根据自己需要设定参数。

1
./dbgen  -s 2

我们会发现dbgen目录里增加了许多文件,正是我们后续需要的。

5. 建表

dss.ddl文件里为建表语句,如下:

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
CREATE TABLE NATION  ( N_NATIONKEY  INTEGER NOT NULL,
N_NAME CHAR(25) NOT NULL,
N_REGIONKEY INTEGER NOT NULL,
N_COMMENT VARCHAR(152));

CREATE TABLE REGION ( R_REGIONKEY INTEGER NOT NULL,
R_NAME CHAR(25) NOT NULL,
R_COMMENT VARCHAR(152));

CREATE TABLE PART ( P_PARTKEY INTEGER NOT NULL,
P_NAME VARCHAR(55) NOT NULL,
P_MFGR CHAR(25) NOT NULL,
P_BRAND CHAR(10) NOT NULL,
P_TYPE VARCHAR(25) NOT NULL,
P_SIZE INTEGER NOT NULL,
P_CONTAINER CHAR(10) NOT NULL,
P_RETAILPRICE DECIMAL(15,2) NOT NULL,
P_COMMENT VARCHAR(23) NOT NULL );

CREATE TABLE SUPPLIER ( S_SUPPKEY INTEGER NOT NULL,
S_NAME CHAR(25) NOT NULL,
S_ADDRESS VARCHAR(40) NOT NULL,
S_NATIONKEY INTEGER NOT NULL,
S_PHONE CHAR(15) NOT NULL,
S_ACCTBAL DECIMAL(15,2) NOT NULL,
S_COMMENT VARCHAR(101) NOT NULL);

CREATE TABLE PARTSUPP ( PS_PARTKEY INTEGER NOT NULL,
PS_SUPPKEY INTEGER NOT NULL,
PS_AVAILQTY INTEGER NOT NULL,
PS_SUPPLYCOST DECIMAL(15,2) NOT NULL,
PS_COMMENT VARCHAR(199) NOT NULL );

CREATE TABLE CUSTOMER ( C_CUSTKEY INTEGER NOT NULL,
C_NAME VARCHAR(25) NOT NULL,
C_ADDRESS VARCHAR(40) NOT NULL,
C_NATIONKEY INTEGER NOT NULL,
C_PHONE CHAR(15) NOT NULL,
C_ACCTBAL DECIMAL(15,2) NOT NULL,
C_MKTSEGMENT CHAR(10) NOT NULL,
C_COMMENT VARCHAR(117) NOT NULL);

CREATE TABLE ORDERS ( O_ORDERKEY INTEGER NOT NULL,
O_CUSTKEY INTEGER NOT NULL,
O_ORDERSTATUS CHAR(1) NOT NULL,
O_TOTALPRICE DECIMAL(15,2) NOT NULL,
O_ORDERDATE DATE NOT NULL,
O_ORDERPRIORITY CHAR(15) NOT NULL,
O_CLERK CHAR(15) NOT NULL,
O_SHIPPRIORITY INTEGER NOT NULL,
O_COMMENT VARCHAR(79) NOT NULL);

CREATE TABLE LINEITEM ( L_ORDERKEY INTEGER NOT NULL,
L_PARTKEY INTEGER NOT NULL,
L_SUPPKEY INTEGER NOT NULL,
L_LINENUMBER INTEGER NOT NULL,
L_QUANTITY DECIMAL(15,2) NOT NULL,
L_EXTENDEDPRICE DECIMAL(15,2) NOT NULL,
L_DISCOUNT DECIMAL(15,2) NOT NULL,
L_TAX DECIMAL(15,2) NOT NULL,
L_RETURNFLAG CHAR(1) NOT NULL,
L_LINESTATUS CHAR(1) NOT NULL,
L_SHIPDATE DATE NOT NULL,
L_COMMITDATE DATE NOT NULL,
L_RECEIPTDATE DATE NOT NULL,
L_SHIPINSTRUCT CHAR(25) NOT NULL,
L_SHIPMODE CHAR(10) NOT NULL,
L_COMMENT VARCHAR(44) NOT NULL);

6. 插入数据

第4步生成了8个以tbl结尾的文件对应8张表中的数据,首先去除数据中每行末尾的‘|’,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(int argc, const char * argv[]) {
string s;
ifstream in;
in.open("lineitem.tbl");
ofstream out;
out.open("lineitem1.tbl");
if (in.is_open()) {
while (getline(in, s)) {
int len = s.length();
int i = len-1;
//将最后一个竖号去掉才能满足postgresql的数据读取
if (s[i] == '|')
s[i] = '\n';
out << s;
}
}
out.close();
return 0;
}

接着通过copy命令导入数据

1
2
3
4
5
6
7
8
copy nation from '/usr/local/pgsql/sql/table/nation1.tbl' WITH DELIMITER AS '|';
copy part from '/usr/local/pgsql/sql/table/part1.tbl' WITH DELIMITER AS '|';
copy region from '/usr/local/pgsql/sql/table/region1.tbl' WITH DELIMITER AS '|';
copy partsupp from '/usr/local/pgsql/sql/table/partsupp1.tbl' WITH DELIMITER AS '|';
copy supplier from '/usr/local/pgsql/sql/table/supplier1.tbl' WITH DELIMITER AS '|';
copy customer from '/usr/local/pgsql/sql/table/customer1.tbl' WITH DELIMITER AS '|';
copy lineitem from '/usr/local/pgsql/sql/table/lineitem1.tbl' WITH DELIMITER AS '|';
copy orders from '/usr/local/pgsql/sql/table/orders1.tbl' WITH DELIMITER AS '|';

7.建立主外键关系

建立主外键关系要在插入数据后,否则一些数据会因为外键不存在无法插入,相信我。

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
-- For table REGION
ALTER TABLE REGION
ADD PRIMARY KEY (R_REGIONKEY);

-- For table NATION
ALTER TABLE NATION
ADD PRIMARY KEY (N_NATIONKEY);

ALTER TABLE NATION
ADD FOREIGN KEY (N_REGIONKEY) references REGION;

COMMIT WORK;

-- For table PART
ALTER TABLE PART
ADD PRIMARY KEY (P_PARTKEY);

COMMIT WORK;

-- For table SUPPLIER
ALTER TABLE SUPPLIER
ADD PRIMARY KEY (S_SUPPKEY);

ALTER TABLE SUPPLIER
ADD FOREIGN KEY (S_NATIONKEY) references NATION;

COMMIT WORK;

-- For table PARTSUPP
ALTER TABLE PARTSUPP
ADD PRIMARY KEY (PS_PARTKEY,PS_SUPPKEY);

COMMIT WORK;

-- For table CUSTOMER
ALTER TABLE CUSTOMER
ADD PRIMARY KEY (C_CUSTKEY);

ALTER TABLE CUSTOMER
ADD FOREIGN KEY (C_NATIONKEY) references NATION;

COMMIT WORK;

-- For table LINEITEM
ALTER TABLE LINEITEM
ADD PRIMARY KEY (L_ORDERKEY,L_LINENUMBER);

COMMIT WORK;

-- For table ORDERS
ALTER TABLE ORDERS
ADD PRIMARY KEY (O_ORDERKEY);

COMMIT WORK;

-- For table PARTSUPP
ALTER TABLE PARTSUPP
ADD FOREIGN KEY (PS_SUPPKEY) references SUPPLIER;

COMMIT WORK;

ALTER TABLE PARTSUPP
ADD FOREIGN KEY (PS_PARTKEY) references PART;

COMMIT WORK;

-- For table ORDERS
ALTER TABLE ORDERS
ADD FOREIGN KEY (O_CUSTKEY) references CUSTOMER;

COMMIT WORK;

-- For table LINEITEM
ALTER TABLE LINEITEM
ADD FOREIGN KEY (L_ORDERKEY) references ORDERS;

COMMIT WORK;

ALTER TABLE LINEITEM
ADD FOREIGN KEY (L_PARTKEY,L_SUPPKEY) references PARTSUPP;

COMMIT WORK;

好啦,齐活儿!

Java JDK 1.8下降至1.7

Posted on 2018-07-04 |

应该有人和我有相同的经历,当你预先安装了JDK1.8,遇到一些情况需要降低版本至1.7,下面的方法亲测有效。

1. 修改配置环境变量(我的是64bit系统)

JAVA_HOME = C:\Program Files\Java\jdk1.7.0_25

CLASSPATH = .;C:\Program Files\Java\jdk1.7.0_25\lib

Path = ;C:\Program Files\Java\jdk1.7.0_25\bin;

注意:把安装目录替换成自己的就好了。

2. 找到环境变量”Path”, 把”C:/ProgramData/Oracle/Java/javapath”去掉.

PS:这是1.8新增加的,在此目录下,会有3个exe的快捷方式java.exe、javaw.exe和javaws.exe

3. 在”C:\Windows\System32”下找到java.exe、javaw.exe和javaws.exe删掉

这里写图片描述

详细信息里面可以看到这是8版本的exe

这里写图片描述

4. 关掉cmd重开,就能看到是新的版本(一定要关闭然后重启,不然的话新的环境变量不会在当前cmd生效)

让我们一起看世界杯吧

Posted on 2018-07-04 |

最近大家都在看世界杯,这场四年一次的盛会让全世界的球迷都为之疯狂。

Hello World

Posted on 2018-07-04 |

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

12

美少女

19 posts
8 tags
GitHub
© 2019 美少女
Powered by Hexo
|
Theme — NexT.Muse v5.1.4