0%

今天把微博登录和QQ登录的key申请到了,但是使用过程中出现了一些问题。

QQ登录 redirect uri is illegal(100010)解决办法

QQ登录redirect uri is illegal(100010)

主要是腾讯回调地址的问题,回到开放中心设置处将回调地址写成http://site/index.php 或者 http://site/形式,而不要使用 http://site 形式即可解决问题。

微博登录 error 10006 msg source paramter(appkey) is missing

微博登录 error 10006 msg source paramter(appkey) is missing

遇到这个问题之后处理了一下午都没有弄好,网上说是token过期的问题Sina Weibo API 10006 错误,未能解决问题,又求助于 @张New,商量之后未果。

从三个方向考虑:

第一是微博端设置的问题,如果跟QQ登录设置回调地址一致,则不是微博端问题(事实上微博上的回调地址不用设置);

第二是清空本地缓存,考虑是否本地缓存问题;

第三是网页代码问题,考虑到之前修改主题代码,最怕自己改错地方,找了一大堆地方之后,将functions/open-social.php替换旧版解决了问题。

今天想要在Office for Mac上导入outlook.com上的日历,发现mac下的outlook竟然不能登录,在windows版本和安卓手机日历上却可以正常登录。 我以前在上班的时候,使用mac版日历一切都是正常的。 仔细查询得出结论,outlook.com是需要通过Exchange ActiveSync协议连接,而Exchange ActiveSync是只支持移动客户端的,我以前使用的公司邮箱是通过office365付费订阅得到的,不知道是什么协议。。-,- 想要在mac上使用客户端接受outlook.com的日历,目前解决办法只有使用Sunrise连接。

sunrise

使用Tinection,发现使用markdown写文章插入代码会在代码前后加入 如下

1
2
3
4
5
6
7
<code>
public static void main(String[] args) {
// TODO Auto-generated method stub
long num=Math.round(-2.6);
System.out.println(num);
}
</code>

网上提供了一种方法修改markdown插件里的文件 比如修改jetpack-markdown/lib/markdown/extra.php 中的 $codeblock = "<pre><code>$codeblock\n</code>\</pre>”; $codeblock = "<pre$pre_attr_str><code>$codeblock</code>\</pre>”; 这2处删除 标签即可。还有下面这个

1
2
3
4
5
function _doFencedCodeBlocks_callback($matches) {
$classname =& $matches[2];
$attrs =& $matches[3];
$codeblock = $matches[4];
$codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES);

找到这个地方,注释掉最后一行,这里是禁止把 < 和 > 这两个符号转化为 html 的尖括号。 这种情况下可以解决在线markdown发表文章产生标签 但是这是一种治标不治本的问题,经过大量代码修改测试,发现修改一个地方就可以解决。。。 在模板函数 (functions.php)找到以下代码

1
2
3
function pre_content_filter( $content ) {
return preg_replace_callback( '<pre.*>(.*)</preisU' , 'convert_pre_entities', $content );
}

修改为

1
2
3
function pre_content_filter( $content ) {
return preg_replace_callback( '<pre.*><code.*>(.*)</code></preisU' , 'convert_pre_entities', $content );
}

即可解决问题


上文更新完后发现严重的字符转义现象,经过仔细查证 在模板函数 (functions.php)找到以下代码

1
2
3
4
function convert_pre_entities( $matches ) {
$code = str_replace( $matches[0], '<div class="precode clearfix"><pre class="prettyprint linenums">'.htmlspecialchars( $matches[1],ENT_COMPAT,'UTF-8' ).'</pre></div', $matches[0] );
return str_replace("\t", '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $code);
}

修改为

1
2
3
4
function convert_pre_entities( $matches ) {
$code = str_replace( $matches[0], '<div class="precode clearfix"><pre class="prettyprint linenums">'.$matches[1].'</pre></div', $matches[0] );
return str_replace("\t", '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $code);
}

即可解决代码转义问题

JAVA关于多线程中对象的调用问题

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
public class test {

public static void main(String[] args) {

WarnCars car = null;
car = getCar();

CarTest test = new CarTest();
test.setCar(car);
test.start();

DataChangeTest testdata = new DataChangeTest();
testdata.setCar(car);
testdata.start();

}

}


public class CarTest extends Thread {
WarnCars car = null;

public void setCar(WarnCars car) {
this.car = car;
}

public void run() {
//do sth
}

}

public class DataChangeTest extends Thread {

WarnCars car = null;

public void run() {
//do sth
}

public void setCar(WarnCars car) {
this.car = car;
}
}

前言

近年来大数据技术的快速发展深刻改变了我们的生活、工作和思维方式。大数据研究专家舍恩伯格指出,大数据时代,人们对待数据的思维方式会发生如下三个变化:第一,人们处理的数据从样本数据变成全部数据;第二,由于是全样本数据,人们不得不接受数据的混杂性,而放弃对精确性的追求;第三,人类通过对大数据的处理,放弃对因果关系的渴求,转而关注相关关系。事实上,大数据时代带给人们的思维方式的深刻转变远不止上述三个方面。 2012年8月15日的国内爆发了“电商大战”,在其中“一淘网”受到了消费者的广泛好评与欢迎。据了解,价格战期间,一淘网临时成立了针对此次价格战的应急小组,并实时推出“比价擂台”金牌榜,依托期强大的数据库资源及蜘蛛爬虫技术, 一淘网得以在价格战期间实时抓取各大B2C网站商品信息(>5000家购物网站, >10亿的商品数据),每10-30分钟就能够更新一次。一淘网的数据为国家发改委调查电商大战提供了帮助,同时发现一淘网的一些数据存在失实的问题。 政府的大数据思维,首先是信息开放思维,开放信息;其次需要强调数据信息的整合,不能成为“孤岛”,数据信息的整合是一个技术问题,更是一个价值判断问题;最后很重要的一点,就是数据信息分享的思维。 本文通过对大数据应用于电商行业的案例进行分析,总结出大数据技术对于政府工作具有指导意义的方法与政策,以供参考。

案例介绍与分析

Decide案例分析

2003年,奥伦·埃齐奥尼(OrenEtzioni)准备乘坐从西雅图到洛杉矶的飞机去参加弟弟的婚礼。他知道飞机票越早预订越便宜,于是他在这个大喜日子来临之前的几个月,就在网上预订了一张去洛杉矶的机票。 在飞机上,埃齐奥尼好奇地问邻座的乘客花了多少钱购买机票。当得知虽然那个人的机票比他买得更晚,但是票价却比他便宜得多时,他感到非常气愤。于是,他又询问了另外几个乘客,结果发现大家买的票居然都比他的便宜。 对大多数人来说,这种被敲竹杠的感觉也许会随着他们走下飞机而消失。然而,埃齐奥尼是美国最有名的计算机专家之一,从他担任华盛顿大学人工智能项目的负责人开始,他创立了许多在今天看来非常典型的大数据公司,而那时候还没有人提出“大数据”这个概念。在他眼中,世界就是一系列的大数据问题,而且他认为他有能力解决这些问题。 飞机着陆之后,埃齐奥尼下定决心要帮助人们开发一个系统,用来推测当前网页上的机票价格是否合理。这个系统需要分析所有特定航线机票的销售价格并确定票价与提前购买天数的关系。他为此创立了一个预测系统,并帮助虚拟的乘客节省了很多钱。这个预测系统建立在41天内价格波动产生的12000个价格样本基础之上,而这些信息都是从一个旅游网站上搜集来的。 可以看到,这个预测系统并不能说明原因,只能推测会发生什么。也就是说,它不知道是哪些因素导致了机票价格的波动。机票降价是因为很多没卖掉的座位、季节性原因,还是所谓的周六晚上不出门,它都不知道。这个系统只知道利用其他航班的数据来预测未来机票价格的走势。“买还是不买,这是一个问题。”埃齐奥尼给这个研究项目取了一个非常贴切的名字,叫“哈姆雷特”。 这个小项目逐渐发展成为一家得到了风险投资基金支持的科技创业 公司,名为Fare-cast。通过预测机票价格的走势以及增降幅度,Farecast票价预测工具能帮助消费者抓住最佳购买时机,而在此之前还没有其他网站能让消费者获得这些信息。 为了提高预测的准确性,埃齐奥尼找到了一个行业机票预订数据库。有了这个数据库,系统进行预测时,预测的结果就可以基于美国商业航空产业中,每一条航线上每一架飞机内的每一个座位一年内的综合票价记录而得出。如今,Farecast已经拥有惊人的约2000亿条飞行数据记录。利用这种方法,Farecast为消费者节省了一大笔钱。 2008年,埃齐奥尼计划将这项技术应用到其他领域,比如宾馆预订、二手车购买等。只要这些领域内的产品差异不大,同时存在大幅度的价格差和大量可运用的数据,就都可以应用这项技术。但是在他实现计划之前,微软公司找上了他并以1.1亿美元的价格收购了Farecast公司。而后,这个系统被并入必应搜索引擎。 到2012年为止,Farecast系统用了将近十万亿条价格记录来帮助预测美国国内航班的票价。Farecast票价预测的准确度已经高达75%,使用Farecast票价预测工具购买机票的旅客,平均每张机票可节省50美元。

FARECAST案例分析

“在互联网时代,固定价格已是过去式。” Decide联合创始人奥伦•埃齐奥尼(Oren Etzioni)一语道破玄机,这家2011年6月上线的比价预测网站显然很早就意识到了这一点,如今,它已成为美国最为热门的购物风向标,每月用户访问量达数十万,页面浏览量则超过100万次,并且仍在高速增长。 上世纪90年代,航空公司会根据一架航班的空余座位数和竞争对手的票价而不停改变机票价格。酒店也很快跟进,推出了它们的“收益管理”系统,让它们可以随时改变客房价格。如今,这一动态定价模式正在逐渐深入到消费经济的每一个角落。为了争夺搜索结果的榜首位置,零售商们正以小时、有时甚至以分钟为单位改变着商品的价格——从卫生纸到自行车。这一战事在每年的假日购物季都会达到巅峰时刻,面对此情此景,消费者双眼放光之余,却也一筹莫展。 事实上,消费者的困扰远不止此。这款产品哪里卖得更便宜?好不好用?什么时候买合适?要出新款了吗?其他人怎么看?同类产品怎么样?对于消费者满脑的疑问,包括Google Shopping、Nextag、PriceGrabber和亚马逊产品搜索在内的比价网站都只解决了最基础的第一个问题。有需求的地方就有市场,Decide应运而生。 在Decide的网站上,他们这样描述自己,“Decide 完全利用数据和科技来帮助买家,不是市场推广的手段。”拥有如此豪华的技术人才阵容,Decide无疑是典型的技术驱动型创业公司,作为一家产品搜索类公司,这是至关重要的。 Decide的目的是解决两个问题:电子产品更新速度过快,市场价格变化过快。通过解决这两个问题,他们希望给潜在购物者提供最好的购物时机建议,而这一切的背后是技术驱动下对数据的挖掘和极致利用。 首先,他们搭建了一种“线性分析模式”,将成千上万个电子产品加入到了自己构建的数据库,利用专有价格预测算法,通过综合考虑上亿条价格波动信息和超过40个不同的价格影响因素(包括新品发布周期、新闻报道、公司公告等),来对价格做出全面预测。 面对纷繁的数据处理,Decide以低门槛的操作体验和直观全面的结果展示让一切简单化、便捷化和决断化。用户使登入Decide.com,只需在搜索框中输入具体想购买的电子产品,Decide.com便会根据自己专有技术预测给你返回是应当购买还是应当等一等的建议。如果用户想要购买,则可继续点击进入他们选中的卖家进行购买。如果根据Decide.com给出的建议,用户暂时不想购买,那么他们则可以观看价格时间线,并给自己设定一个降价通知。 盛名之下的Decide也在努力扩张自己的势力范围,一方面将产品覆盖范围从电子产品拓展至家用电器、体育用品、家居和园艺用品等数十个门类,另一方面也在拓展合作伙伴,《消费者报告》和在线比价服务Bizrate已经加入它的“朋友圈”。移动APP的上线更是让Decide的势力扩张到了线下。

指导意义

大数据思维的运用

大数据代表着信息技术未来发展的战略走向,它将引发技术领域跨越式发展,是继互联网后的又一次信息革命。人类在实践中逐渐认识到,通过数据的开放、整合和分析,能发现新的知识、创造新的价值,从而为社会带来“大科技”“大利润”“大智能”和“大发展”等新的机遇。政府部门可以利用大量的公共数据为社会服务,并且通过大数据分析并寻找出大数据背后潜藏的预见性。 传统的政府治理理念往往更加侧重于对少数人的重视,根据少数人的需求,以偏概全,从而来决定大多数人的需求,治理理念的变革已经是大势所趋,要将其符之国情、顺之时代发展要求,将大数据思维的价值观和方法论同政府治理理念紧密结合。我国政府长期以来一直致力于打造“阳光型”政府,一个让人民满意的服务型政府,而在大数据时代下,各种数据信息灵活交流,为政府服务效能的提升提供了有利的条件。对于政府服务效能的提升也要积极引导网络舆论,要站在提高党的执政能力、构建和谐社会的高度,将网络宣传纳入党的宣传事业整体格局之中。

数据促进决策科学化

科学决策水平的提高是政府精细化管理的必然要求,而决策的科学化来源于决策信息的全面性、准确性和及时性。如今大数据又超越了传统的数据分析方法,不但是对纯数据可以进行分析挖掘,对言论、图表等都可以进行深度挖掘、人工智能。大数据的深入及广泛应用会给政府带来科学和精准的决策支持。比如粮食产量的信息统计问题,运用遥感卫星的数据,中央政府便可得知各地耕地数量,再通过适当的算法和模型,配合以往的气候、土壤、产量等信息,便可知道各地方准确的粮食产量,利于决策者跨区域的农业政策统筹和规划。而政府可以利用信息化的工具,将其所收集的数据及时更新,将新的信息应用于各个领域,促进决策的科学化。 “天下大事,必作于细。”社会事务的电子化管理,是促进政府管理的科学化、高效化,完善政府管理决策信息和智力支持系统的关键环节,也为政府的精细化管理提供了重要的技术支持。例如,政府利用大数据对社会人群进行细分,对不同人群进行针对性服务和政策施行,麦肯锡估计欧洲发达经济体政府利用大数据可以节省超过1000 亿欧元的政府开支。

结语

互联网的快速发展已成为当今世界不可阻挡的潮流,政府管理创新是中国社会发展的必然要求,也是适应政府管理环境变化的唯一出路。而大数据是政府管理的历史必然选择,和现代化的必要手段。大数据促进政府和公众互动,让政务透明,帮助政府进行社会管理和解决社会难题,大数据时代下,政府是整合开放的平台,它建立了公众与政府间的沟通渠道,越来越多的国家和组织利用其开展民意调查,通过在线交互让民众成为政务流程的节点,透明政务,让公众参与到政策制定与执行、效果评估和监督之中,使民众参政议政成为可能。而面对互联网带来的机遇与挑战,政府管理唯有与时俱进,发挥互联网的优势,化解互联网发展带来的挑战,才能实现“提高社会管理科学化水平”的时代要求。

JAVA 多线程的创建和启动

一、定义线程

1、扩展java.lang.Thread类。

此类中有个run()方法,应该注意其用法:public void run() 如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。 Thread 的子类应该重写该方法。

2、实现java.lang.Runnable接口。

void run()使用实现接口 Runnable 的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的 run 方法。 方法 run 的常规协定是,它可能执行任何所需的操作。

二、实例化线程

1、如果是扩展java.lang.Thread类的线程,则直接new即可。 2、如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法:

  • Thread(Runnable target)
  • Thread(Runnable target, String name)
  • Thread(ThreadGroup group, Runnable target)
  • Thread(ThreadGroup group, Runnable target, String name)
  • Thread(ThreadGroup group, Runnable target, String name, long stackSize)

三、启动线程

在线程的Thread对象上调用start()方法,而不是run()或者别的方法。 在调用start()方法之前:线程处于新状态中,新状态指有一个Thread对象,但还没有一个真正的线程。 在调用start()方法之后:发生了一系列复杂的事情 启动新的执行线程(具有新的调用栈); 该线程从新状态转移到可运行状态; 当该线程获得机会执行时,其目标run()方法将运行。 注意:对Java来说,run()方法没有任何特别之处。像main()方法一样,它只是新线程知道调用的方法名称(和签名)。因此,在Runnable上或者Thread上调用run方法是合法的。但并不启动新的线程。

四、例子

1、实现Runnable接口的多线程例子

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
/** 
* 实现Runnable接口的类
*
* @author leizhimin 2008-9-13 18:12:10
*/
public class DoSomething implements Runnable {
private String name;

public DoSomething(String name) {
this.name = name;
}

public void run() {
for (int i = 0; i < 5; i++) {
for (long k = 0; k < 100000000; k++) ;
System.out.println(name + ": " + i);
}
}
}

/**
* 测试Runnable类实现的多线程程序
*
* @author leizhimin 2008-9-13 18:15:02
*/
public class TestRunnable {
public static void main(String[] args) {
DoSomething ds1 = new DoSomething("阿三");
DoSomething ds2 = new DoSomething("李四");

Thread t1 = new Thread(ds1);
Thread t2 = new Thread(ds2);

t1.start();
t2.start();
}
}

执行结果: > * 李四: 0 * 阿三: 0 * 李四: 1 * 阿三: 1 * 李四: 2 * 李四: 3 * 阿三: 2 * 李四: 4 * 阿三: 3 * 阿三: 4 Process finished with exit code 0

2、扩展Thread类实现的多线程例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/** 
* 测试扩展Thread类实现的多线程程序
*
* @author leizhimin 2008-9-13 18:22:13
*/
public class TestThread extends Thread{
public TestThread(String name) {
super(name);
}

public void run() {
for(int i = 0;i<5;i++){
for(long k= 0; k <100000000;k++);
System.out.println(this.getName()+" :"+i);
}
}

public static void main(String[] args) {
Thread t1 = new TestThread("阿三");
Thread t2 = new TestThread("李四");
t1.start();
t2.start();
}
}

执行结果:

  • 阿三 :0
  • 李四 :0
  • 阿三 :1
  • 李四 :1
  • 阿三 :2
  • 李四 :2
  • 阿三 :3
  • 阿三 :4
  • 李四 :3
  • 李四 :4 Process finished with exit code 0

对于上面的多线程程序代码来说,输出的结果是不确定的。其中的一条语句for(long k= 0; k <100000000;k++);是用来模拟一个非常耗时的操作的。

五、一些常见问题

1、线程的名字,一个运行中的线程总是有名字的,名字有两个来源,一个是虚拟机自己给的名字,一个是你自己的定的名字。在没有指定线程名字的情况下,虚拟机总会为线程指定名字,并且主线程的名字总是mian,非主线程的名字不确定。 2、线程都可以设置名字,也可以获取线程的名字,连主线程也不例外。 3、获取当前线程的对象的方法是:Thread.currentThread(); 4、在上面的代码中,只能保证:每个线程都将启动,每个线程都将运行直到完成。一系列线程以某种顺序启动并不意味着将按该顺序执行。对于任何一组启动的线程来说,调度程序不能保证其执行次序,持续时间也无法保证。 5、当线程目标run()方法结束时该线程完成。 6、一旦线程启动,它就永远不能再重新启动。只有一个新的线程可以被启动,并且只能一次。一个可运行的线程或死线程可以被重新启动。 7、线程的调度是JVM的一部分,在一个CPU的机器上上,实际上一次只能运行一个线程。一次只有一个线程栈执行。JVM线程调度程序决定实际运行哪个处于可运行状态的线程。众多可运行线程中的某一个会被选中做为当前线程。可运行线程被选择运行的顺序是没有保障的。 8、尽管通常采用队列形式,但这是没有保障的。队列形式是指当一个线程完成“一轮”时,它移到可运行队列的尾部等待,直到它最终排队到该队列的前端为止,它才能被再次选中。事实上,我们把它称为可运行池而不是一个可运行队列,目的是帮助认识线程并不都是以某种有保障的顺序排列唱呢个一个队列的事实。 9、尽管我们没有无法控制线程调度程序,但可以通过别的方式来影响线程调度的方式。

如下代码编译时报错:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

import java.sql.*;

public class detest {

public static void main(String\[\] args) throws Exception {
    // 1.加载驱动
    Class.forName("com.mysql.jdbc.Driver");
    try {
        // 2.使用DriverManager获取数据库连接,其中返回的Connection就代表了Java程序和数据库的连接,不同数据库的URL写法需要查看驱动文档
        Connection conn = DriverManager.getConnection("jdbc:mysql://10.4.20.195:3306/cars\_navigation", "root",
                "root");
        // 3.使用Connection来创建一个Statement对象
        Statement stmt = conn.createStatement();
        // 4.执行SQL语句
        ResultSet rs = stmt.executeQuery(
                "select \* from info\_car\_location where Car\_Id='100' order by Loc\_Time desc limit 0,1");
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

后来查了相关资料发现是没有引入mysql-connector-java-x.x.x-bin.jar的问题。 解决方案: 下载mysql-connector-java-5.1.32-bin.jar。http://vdisk.weibo.com/s/av2ACJY5ysNB7 在Eclipse中,选择 项目->属性->Java构建路径,在“库”选项卡中,选择“添加外部JAR”,添加下载的mysql-connector-java-5.1.32-bin.jar文件。

TOP 子句

TOP 子句用于规定要返回的记录的数目。
对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
注释:并非所有的数据库系统都支持 TOP 子句。
SQL Server 的语法:

1
2
SELECT TOP number percent column_name(s)
FROM table_name

MySQL 和 Oracle 中的 SQL SELECT TOP 是等价的

MySQL 语法

1
2
3
SELECT column_name(s)  
FROM table_name
LIMIT number

例子

1
2
3
SELECT *
FROM Persons
LIMIT 5

Oracle 语法

1
2
3
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number

例子

1
2
3
SELECT *
FROM Persons
WHERE ROWNUM <= 5

一、sql语句的执行步骤:

  • 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。
  • 2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。
  • 3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。
  • 4)表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式。
  • 5)选择优化器,不同的优化器一般产生不同的“执行计划”
  • 6)选择连接方式, ORACLE 有三种连接方式,对多表连接 ORACLE 可选择适当的连接方式。
  • 7)选择连接顺序, 对多表连接 ORACLE 选择哪一对表先连接,选择这两表中哪个表做为源数据表。
  • 8)选择数据的搜索路径,根据以上条件选择合适的数据搜索路径,如是选用全表搜索还是利用索引或是其他的方式。
  • 9)运行“执行计划”

二、SQL Select语句完整的执行顺序:

  • 1、from子句组装来自不同数据源的数据;
  • 2、where子句基于指定的条件对记录行进行筛选;
  • 3、group by子句将数据划分为多个分组;
  • 4、使用聚集函数进行计算;
  • 5、使用having子句筛选分组;
  • 6、计算所有的表达式;
  • 7、使用order by对结果集进行排序。

本站始于2012年,本人注册的第一个域名xuzizi.cn,当时费了好大劲把它在不备案的情况下解析到境外空间。使用老鹰主机3年中,陆陆续续出现了各种故障,在14年ip被墙之后本人就断了续费念想了。15年购买的新网主机,但是境内主机必须备案,综合当时工作、考研之情况,原被强主机过期、新主机未备案无法解析,一直拖到如今。 昨天去新网把空间备案了,大约20天之后能解析。这20天里临时使用xuzizi.win访问。 原来的数据都是一些简单的程序和心情记录,无法找回,有遗憾但也无可奈何,新站作为新的起点,会坚持维护和更新。 目前网站在chrome下访问可能存在些许bug,昨天排除了一整天,最后把整站格式化重新安装结果还是这样,通过阿里云测试的结果应该不是网页的问题,等下个月搬站问题自然解决。