## 引言

人工智能时代并未真正来临

弱人工智能与强人工智能

部分行业的受益

AI不等于全能

弱人工智能的原理

为什么最近几年才兴起人工智能

数据量的数字记录与硬件设备的飞速发展

那些让人工智能受挫的领域

📅 2019-12-09

介绍

无监督学习允许我们在处理问题时几乎不知道结果应该是什么样子,我们可以从数据中获得结构,而不必知道变量的作用。我们可以根据数据中变量之间的关系对数据进行聚类,从而得到这种结构。在无监督学习中,没有基于预测结果的反馈。也就是说,机器可以在你提供的数据中主动的去分析,总共有几类?哪些数据属于什么类?

📅 2019-12-09

What is Machine Learning?

Two definitions of Machine Learning are offered.

  1. Arthur Samuel described it as: “the field of study that gives computers the ability to learn without being explicitly programmed.” This is an older, informal definition.

  2. Tom Mitchell provides a more modern definition: “A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.”

📅 2019-12-09
思想录

感慨

主要用作记录一些平常的感慨

孤独是一个人的狂欢

2018.9.13

我不是在写代码,我只是想让这些代码看起来不那么孤单。


如释重负后却恍然若失。

2018.9.12

这个世界永远没有感同身受。如人饮水,冷暖自知。你不能站在自己的立场上对别人指手画脚,语重心长。因为,你没有经历过。

2018.9.11

我们无法避免失败,只会为了回避失败而选择沉沦。 ————记不想考研复习

2018.9.10

生活中的大部分烦恼都源于处理人与人之间的关系。 ————记头疼

2019.2.16

你心怀天下,却不肯卧薪尝胆,你踌躇满志,却不肯悬梁刺股。 ————记考研成绩出来之后!

2019.3.21

在一个并不遥远的过去,我的梦想是在人类科技进程中贡献自己的一份力量。现在啊,我的梦想只是希望我可以活得好一点——— 谈梦想

2019.5.21

人要怎么样才能活得不狭隘——— 观知乎回答华为问题任正非相关谈话后感

2019.11.10 17:10

生命的终点,亦是苦难的终点 —— 想念奶奶第一天

2019.11.11

2019-11-14T11:27:56.png

当时只道是寻常,如今西风独自凉 —— 想念奶奶第二天

2019.11.12

2019-11-14T11:29:56.png

当时只道是寻常,如今生死两茫茫 —— 想念奶奶第三天

2019.11.13

无处话凄凉,唯有泪两行 —— 想念奶奶第四天

2019.11.14

从此无人说凄凉,唯有心底泪千行 —— 想念奶奶第五天

古稀病痛欲夺我妻之命,长夜难熬呼喊步步惊心。全家齐聚难分丝毫之痛,求天无路但求一个安心 —— 《咏怀》清晨为爷爷诗词润色

2019.11.15

看着世界如此多娇,你却再也感受不到 —— 想念奶奶第六天

2019.11.16

此去经年,应是良辰美景虚设。便纵有千种风情,更与何人说? —— 头七

2019.12.9

要成为怎样的人,需要看国家,社会,民族需要什么样的人。 —— 致自己

📅 2019-12-09

欢迎使用 {小书匠}(xiaoshujiang)编辑器,您可以通过==设置==里的修改模板来改变新建文章的内容。

首先,在这里我已经默认你知道了什么是markdown文件,并且已经知道了它的优势。

不懂请点这儿<>

那么平常,你用什么写md文档呢?sublime?notepad?为知笔记?有道云笔记? MarkDownPad2?

其实都可以,你喜欢就好。我个人比较喜欢用小书匠

推荐理由

1.可以使用xlmrpc同步文章到我的博客(有道,为知会改变代码格式)

2.可以在预览复制到公众号

3.可以同步文章到我的github page

4.支持跨平台(windows,mac,包括linux),同时还有网页版

5.国产(一般有什么比较好用的国产软件,我都非常支持的)

更多介绍访问官网

本来想把文章名叫《推荐一个markdown软件(神器级的)》,后来还是怕被吐槽,你这小子怎么整天推荐软件的。

不过,说真,这个软件是我用过最好的markdown编辑器了,而且还免费,还能同步为知,有道,码云。

不要觉得我用的软件少,其实那些我都用过,还开过会员,最后还是选择了小书匠。

小书匠官网(http://soft.xiaoshujiang.com/)

官网截图

下载地址(https://github.com/suziwen/markdownxiaoshujiang/releases/tag/v5.1.0)

不要问我为啥是在github上面下载,我也不知道,但这个链接下载的绝对是正版)

软件界面

软件界面

巨多的主题

我大约目测了一下有20-30个主题

部分主题截图

Active4d

优雅紫

blod

土豪金

Boxuk

淡雅蓝

mono

性冷淡(我起的)

ink

可爱粉

这么多的主题有一个极大的好处,就是,无论你是科技宅,萝莉控,痴汉,性冷淡,低调的沙皇玩家,还是傲娇的小公举,总能找到你想要的配色主题。

小书匠图床配置

点击左上小书匠>绑定>图床

1.七牛云图床配置

登录七牛云存储

七牛云存储

新建存储空间blog

新建存储空间

新建密钥

新建秘钥

打开,小书匠>绑定>图床服务>七牛云存储,填入对应的信息

七牛云

这儿有两个地方需要注意

1,==上传入口一定要选你新建存储空间的入口 #ff5555==。

2,==图片URL前缀可以在存储空间里面查看到 #ff5555==

成功界面

绑定成功

配置github数据存储

打开绑定>数据存储>选择github

申请tokens

点击申请tokens>登录你的github账号

new repository

然后创建一个repository,

==记得一定要勾选Initialize 这个选项 #ff5555==

填好选项

📅 2019-12-07

说到交通网路的模拟化表示,那就不得不用到数据结构中的图。想必这应该是最方便形象的表示方法了把。

图的概念

图是由顶点集合及顶点之间关系的集合组成的一种数据结构,Graph = (V,E)。

其中顶点集合V = { x | x ∈ 某个数据对象集}是个有穷非空集合。E = { <x, y> | x , y ∈ V && Path( x , y )} ,即边集。

我所知的图的存储结构

邻接矩阵表示

邻接矩阵的表示,首先将所有的顶点信息组成一个表。然后利用一个矩阵来表示各顶点之间的相邻关系,称之为邻接矩阵。

邻接表表示

在第i行的单链表中,各节点(或称边节点)分别存放与同一个顶点Vi关联的各条边。各个节点配有其标识(及对应的顶点)和权值(若为有权图)以及指向另一个边节点的指针。

*邻接多重表表示

邻接多重表的表示,主要一处理图的边为主(为什么会有这个需求?在什么情况会用到?),要求每条边处理一次的实际应用中特别有用(比如?)。它的主要思想是把多重表结构引入到图的邻接表中,就有点像把边作为研究的基本单位,用一个多重表节点来表示一条边。

*十字链表表示

此为百度词条:十字链表(Orthogonal List)是有向图的另一种链式存储结构。该结构可以看成是将有向图的邻接表(和逆邻接表结合起来得到的。用十字链表来存储有向图,可以达到高效的存取效果。同时,代码的可读性也会得到提升。

我该选什么存储结构

首先,交通道路网络是双向的,所以我们可以将其视为无向图; 其次在一座城市的交通网络下,道路E 与路口 n的关系是 E « n^2,而且道路是会出现两点之间多条路的情况(即多重图)所以我舍弃第一种方法; 后面两种表示方式其实我也是一知半解,我有种感觉,如果在交通道路的分层模型下,可能第三种方式要更具优势,但是目前还想不了那么远。所以我暂时选用第二种方式,用邻接表表示。

我的实现代码

(代码年久失修,已失去完整内容,仅供参考)

Graph_lnk.h // V1.0.1


pragma once

# include 

using namespace std; 

int DefaultMaxVertices = 500; //最大顶点数

    auto memory_error = [](char * function, string aim) {    

    cerr << function << "申请" << aim.c_str() << "内存分配错误" << endl;

    exit(1);

}; //内存申请错误的提示lamba表达式



struct Edge {  

int dest; //标记关系节点

double weight;//权值

Edge * link;//指向边的指针

Edge(int num, double weight): dest(num), weight(weight), link(nullptr) {} 

};



struct Vertex {

string data; //道路口的信息,暂时用string

Edge * adj; //指向边的指针

Vertex(string data = "点"): data(data), adj(nullptr) {} 

};  



class Graph_lnk {  

friend ostream & operator << (ostream & in, Graph_lnk & G); //运算符重载,图的输出



public: 

Graph_lnk(int sv = DefaultMaxVertices);

~Graph_lnk();  

int NumberOfVertices() {  return numVertices; } //返回当前顶点数

int NumberOfEdges() {  return numEdges; } //返回当前边数

Vertex getVertex(return NodeTable[v]; } //返回该节点  

								

string getValue(int v) {return NodeTable - > data;} //返回道路信息  

								

bool insertEdge(int v1, int v2, double weight); //插入一条边  

								

bool insertVertex(string data); //插入一个路口  

								

protected: int numVertices; //当前顶点数  

								

int numEdges; //当前边数  

								

private: Vertex * NodeTable;  

								

};  

							

Graph_lnk::Graph_lnk(int sv) {  

								

	numVertices = sv;  

						

	numEdges = 0;  

						

	NodeTable = new Vertex[DefaultMaxVertices];  

								

	if (NodeTable == nullptr) {  

								

		memory_error(__func__, "NodeTable");  

								

	}  

						

	for (int i = 0; i };  

						

bool Graph_lnk::insertEdge(int v1, int v2, double weight) {  

												

if (v1 >= 0 && v1 = 0 && v2 

								

				        Edge * q = nullptr, * p = nullptr;  

						

				        if (NodeTable[v1].adj != nullptr) {  

								

				            p = NodeTable[v1].adj;  

						

				            q = p - > link;  

						

				            while (q != nullptr) {  

								

				                p = q;  

						

				                q = p - > link;  

						

				            }  

						

				            q = new Edge(v2, weight);  

								

				            p - > link = q;  

						

				        } else {  

								

				            NodeTable[v1].adj = new Edge(v2, weight);  

								

				        }  

						

				        if (NodeTable[v2].adj != nullptr) {  

								

				            p = NodeTable[v2].adj;  

						

				            q = p - > link;  

						

				            while (q != nullptr) {  

								

				                p = q;  

						

				                q = p - > link;  

						

				            }  

						

				            q = new Edge(v1, weight);  

								

				            p - > link = q;  

						

				        } else {  

								

				            NodeTable[v2].adj = new Edge(v1, weight);  

								

				        }  

						

				        numEdges++;  

						

				    }  

						

				    return 0;  

								

				}  

						

				bool Graph_lnk::insertVertex(string data) {  

						

				    if (numVertices == DefaultMaxVertices) return false;  

												

				    else {  

								

				        NodeTable[numVertices].data = data;  

						

				        NodeTable[numVertices].adj = nullptr;  

						

				        numVertices++;  

						

				    }  

						

				    return true;  

										

				}  

						

				    

 Graph_lnk::~Graph_lnk() {  

						

	delete[] NodeTable;  

								

};

分析与理由

在交通道路网络图的构建中,一定需要的两个函数insertEdge();和insertVertex(); 我使用两个主要的数据结构,Edge(表示边),Vertex(表示点)。用它们的集合来表示整个图,这样做可以有效的利用空间?(但是还是申请了VerTex(500))

📅 2019-12-07
爱与性

在传统的典型观念中,性欲和爱情相互结合才是最完美的组合,也就是说性爱双方对彼此的性欲是起源于深厚的爱情基础上,而双方的爱情也通过性爱来升华。传统的观念是性行为只能发生在拥有“爱情认证”(一般来说是婚姻关系)的男女双方之间,性与爱之间密不可分,双方产生爱情就会产生性欲,而性行为只允许发生在拥有爱情的两个男女之间。

爱情和性冲动

爱情是一对男女基于一定的社会基础和共同的生活理想,在各自内心形成的相互倾慕,并渴望对方成为自己终身伴侣的一种强烈、纯真、专一的感情。性爱、理想和责任是构成爱情的三个基本要素。而性爱把爱情与人世间的其他情感,如亲人之爱、朋友之情或同志之谊明显区别开来,使爱情成为特殊的“情爱”。本质上来说,爱情关系就是性关系,没有性的爱情叫友情(此处性指广义上的性,不局限于法律范围里的性关系,即会让双方产生性生理上愉悦的一系列行为)。

我们常说,爱一个人,始于颜值,陷于才华,忠于人品。始于颜值,指的是对方对你有种吸引力,有关的学者称之为性吸引,表现为一见钟情(不过这需要发生在双方颜值都很高的时候)。生活中大部分的爱情产生于日久生情,通俗点说就是当双方相互了解到一定程度,而产生一种在一起感觉会更加好的想法,这是我们常说的“有感觉”。

我们知道,当男女双方见面或者对彼此有好感时,会出现面红耳赤、心跳加速等现象,这是因为此时身体内的肾上腺素急剧增加。同时大脑会产生性激素,使双方拥有相互靠近的渴望,这时,人们经常把这个美好的感觉成为对对方的好感,我把它称为爱情的“原动力”。这个“原动力”是由于人类作为哺乳类动物而天生拥有的,由身体产生的激素和化学物质传递的强烈的冲动,而这种冲动往往会伴随着性冲动,尤其是男性。在原始人阶段,人类生存环境恶劣,要靠大量的生育来保证种群的延续,因而经过简单的身体条件判别之后,“原动力”很快就可以转化为双方的性行为。于是我们的学者将这个“原动力”起了个名字——“性冲动

在这,我们可以认为,爱情的产生与性一样,也是人类与生俱来的,没有原始的冲动和体内化学物质的驱动,爱情几乎不能产生(不排除个例)。从生理层面上看,爱与性是密不可分的,是以生理为基础的。

 

爱情中的性心理

人类学家的研究发现,在相当大比例的部落民社会中根本就没有浪漫爱情这种东西,那里人们的性规范和性观念是有性无情的。……第二种性观念和行为规范源于古希腊,后来在基督教的禁欲主义中得到了进一步的发扬光大。……性与爱关系的第三种行为规范出现于文艺复兴时期,由于人文主义对人的肉体的肯定,爱变得不再是柏拉图式的了。

—— 李银河**《性学入门》**

在弗洛伊德有关性心理的讨论当中(膜拜大佬),他把人类一切的心理活动和社会行为都涂上性的色彩,。性心理,“是指与男女两性活动中相伴随的个体的一系列性心理现象的总称,是个体对异性魅力所产生的一种主观能动反映。它包括个体在与异性交往中所涉及的性欲望、性感知、性记忆、性想象(性幻想)、性思维、性情感、性自制力、性动机、性气质、性兴趣、性能力、性行为等。它是个心理活动中最为重要的组成部分。”(哇!好复杂。)由此可见,在爱情里面所指的性可不是指单纯的性行为哦!小伙伴们别误解。在爱情当中,男女之间的性心理也是不一样的。

对于男性,通常想的是得到女人更多,会表现为更想亲近女性多一点,会比较接近于性。而女性想的是得到这个男人更多地爱,比较侧重于感情。用进化心理学的角度解释,在群居时期,雄性个体需要寻找合适的雌性去传承它的基因,从而使自身基因得到丰富的组合以便在自然选择中生存,这是自身基因决定的;而雌性个体一年只能生一胎,而且在孕育生命期间,无法自己去寻找食物,她需要找一个在意她,关心她,能给她食物和更好的生存环境。(这也是为什么有些女性对房车钱看重的一个原因)。所以女性在挑选性伴侣方面非常慎重!

这是生物长期进化到极致的结果,这就是The beauty of life。Nice!

 

我们该如何对待性

马斯洛理论把需求分成生理需求Physiological needs)、安全需求(Safety needs)、爱和归属感(Love and belonging)、尊重(Esteem)

自我实现Self-actualization)五类,依次由较低层次到较高层次排列。在自我实现需求之后,还有自我超越需求(Self-Transcendence needs),但通常不作为马斯洛需求层次理论中必要的层次,大多数会将自我超越合并至自我实现需求当中。

好吧,这是马斯洛的需求理论,我不太赞同把它放到爱情中。总感觉按马斯洛的理论,将爱情分析得太现实了。

 

我觉得爱情中,应该反过来。首先,两个人在一起应该找到自己的自我实现。然后就是在交往的过程中,要互相尊重,找到爱与归属,再然后呢,就是一定要保证安全,在这些都满足的情况下才能去实现生理需求(我这把生理需求特指为性)。

 

随着情爱的发展必然导致双方不同程度的性接触,由情爱向性爱的发展是十分自然的规律;而性爱反过来又可增进情爱的深度,使情爱不断发展和升华。性爱使两个人的距离一下就拉近了,情爱到性爱的发展将给人们带来无限的乐趣和生活动力,增进人们的身心健康。

恋爱是人成熟过程中的重要阶段,也是学习爱与性的重要阶段,处理得好,使人的终生幸福得到保障;处理不好,不仅使双方反目为仇,还会给人带来身心的永久创伤。

 

国外有人把婚前性接触的程度分为4级:①拥抱接吻;②爱抚上半身;③爱抚生殖器部位;④性交。  其中③是警戒线,决不能突破,(突破了,最后一道防线必破)④是禁区,只要这样就能保护自己。把握这4条很重要。性爱、性接触是广义的概念,包括接吻、拥抱、爱抚等,而决非单指狭义的概念——性交。(好吧,这也是别人的理论)

 

说重点,我们该如何对待性?首先,我们一定要有的一个概念就是,性是很正常的,就跟人要吃饭睡觉喝水一样的正常。孔子曾云:“食色,性也。”孔子也不回避性。那种避开性来谈爱情的人是伪君子,相反,他们常常充满了对性的某种偏执的渴望,是狂热的性幻想者;反之,只谈性而不谈爱情的人是没有人性的两脚动物。

 

性是爱的升华,没有爱的性是不道德的,在爱的不够深时,过早的品尝禁果会将爱扼杀,当两个人真的爱到不能分开时,性会加深两个人的爱,性不光是肉体的,也是精神的。

 

如果你无法做出决定,或者很犹豫,那就按马斯洛的金字塔从上往下判断吧。尤其是,安全,安全,安全重要的事说三遍。

 

最后以一首诗来结束我的文章吧!

金缕衣

杜秋娘

劝君莫惜金缕衣,劝君惜取少年时。

花开堪折直须折,莫待无花空折枝。

 

 

 

参考文献:

  • 百度百科:爱情,马斯洛需求理论

  • **知乎问答:**爱情和性冲动有关系吗?性和爱可以分开吗?

  • 上海社会科学院出版社《性学入门》李银河

  • 吉林文史出版社《男人来自火星,女人来自金星》约翰·格雷

  • 中信出版社《人类简史:从动物到上帝》尤瓦尔·赫拉利

** **

📅 2019-12-07

一听说QQ机器人是不是感觉有点高大上?感觉离自己有点远?不过事实就是如果你想创建,或者说拥有一个QQ机器人确实一件非常容易的事情。

创建方法

1.腾讯QQ自带的QQ小冰

2.利用第三方框架在自己电脑或者windows云主机上挂一个机器人(mypcqq,酷Q等)

这个方法的好处就是可拓展性强,可二次开发,所以我在以后主要介绍这种方法

框架一(mypcQQ)

从功能上看这个框架功能略显强大(拥有撤回检测,气泡设置,卡片消息),但是缺点也很明显那就是不稳定,页面不太友好。

框架二(酷Q机器人)

因为mypcQQ我认为实在是太不稳定了,所以我在以后的QQ机器人二次开发中着重介绍酷Q机器人的二次开发。

酷Q机器人C++SDK解析

酷Q机器人工作原理

  1. 先是QQ服务器端发送数据给酷Q客户端,酷Q根据数据判断是否触发了事件,以及触发了哪类事件,不同类事件都有一个默认的type。

  2. 然后酷Q会根据这个type在JSON中查找所有具有该type的event项目,并将这些项目按照priority从小到大的顺序排列,然后按照顺序依次向你的DLL发送指令。

  3. 指令的内容就是每个event项目所规定的function值,以及该事件的type所决定的必要参数。在你的DLL内部,会先查找指令中指定的function,找到[函数名]正确的函数,然后按[参数列表]规定的顺序代入参数,执行你写的代码。

  4. [参数列表]只规定了参数的数目、顺序和类型,而参数变量名称酷Q是不管的,也就是说只要数目顺序类型正确,参数变量的名称你可以自己修改。比如fromQQ你可以把它改成TheQNumberItFrom,或者abc,都可以,只要你自己方便就行。

  5. 最后,如何命令酷Q执行你需要的动作呢?你需要调用头文件cqp.h中声明的函数。这些函数只进行了声明,其定义在酷Q加载后会在其它DLL中定义,所以VS可能会提示这些函数未定义,但不影响编译生成,请忽视这些提示。

SDK视图

SDK文件解析

appmain.h

插件APPID的定义,内容不多,在编译前,将这里面的CQAPPID也定义为你之前的文件名AppID。规则见 http://d.cqp.me/Pro/开发/基础信息。

cqp.h

cqp.h分为常量定义和函数声明两部分。常量定义部分看不懂也没关系,关键是后面的函数声明部分。函数用途按英语意思去用

每一条声明都具有如下格式:

CQAPI([返回值类型]) 函数名;

[函数名]描述了该函数的功能,如果你看不懂英文(你还是放弃吧),JSON中的auth部分的注释有每一个函数英文名的翻译。

CQ_get开头的函数用于向QQ服务器获取一些状态信息(比如获取某个群员的信息),其它函数用于向服务器发送操作指令(比如发送消息)。get类函数返回你想要获取的信息,其它函数返回操作结果。不同的返回值对应的操作结果,在cqp.h的常量定义部分有说明。

你必须按照[参数列表]的规定调用这些函数。

appmain.cpp

这个cpp是最重要的部分,我们平常编写的功能都是在这个cpp里面,根据对应的规则调用,官方SDK里面有详细的注释。

JSON文件

在修改之前,你要明确JSON的作用:这个文件是你的DLL和酷Q之间的交流协议,它规定了酷Q该如何使用你写的DLL。

  • json规则:http://d.cqp.me/Pro/开发

  • event部分:// 事件列表,同一事件类型可重复定义(发布前请删除无用事件)

  • id:这就是个索引,只要保证你所有事件的id不重复即可

  • type:规定酷Q应该在何时触发这个事件。每种事件对应的type值是固定的,只要你设置的type值正确,酷Q就会在正确的时机触发你的事件。事件的名称无关紧要。

  • name:这个就是显示给用户看的,和你的程序没有关系。

  • function:自由定义,但不能重复,而且有格式要求:

1、由英文字母、数字、下划线构成

2、第一个字符不能是数字

3、大小写敏感,大写和小写是不同的

4、不能和这些关键字重名:https://msdn.microsoft.com/zh-cn/library/2e6a4at9.aspx

如果你需要删除一个事件,需要把一对{}内的内容以及之后的逗号完全删除,否则会报错。请注意不要删除[],而且[]内的最后一对{}后不能跟逗号,其它的必须跟逗号。

如果你需要增加新的事件,建议复制粘贴再修改,以免疏忽。

参考链接:https://cqp.cc/t/27173

这篇主要让大家对酷Q有个基本的了解,下一篇做个小例子。

2019.12.6补充

不打算搞小例子了

📅 2019-12-06
大家好,我是醉月思

大家好,我是醉月思。

为什么我叫"醉月思"呢?这要追溯到很久很久以前,大约还是我在读高二的某一天晚上,有位朋友告诉我:“你的名字好中二啊!"。

刹那间,我恍然大悟,我怎么叫了个这样的网名“银慧空狼”(话外音:我TM当时脑袋是瓦特了吗?起了个这样的名字!)。

于是我坐在台阶上苦思冥想,立誓要起一个符合我气质的名字,要让人家见名知意,然后知其人。终于,在我某一刻抬头仰望夜空之时,灵光一现!

月夜.png

便想到了“醉月思”这个网名。于是,我屁颠屁颠的将一个中二的网名进行了"二转”————变成了一个比较含蓄的中二网名。

狼-夜.png

看出来没??引用当时一句比较潮的话,我也是醉了。。。从此,醉月思这个“二转”含蓄中二网名便陪我到现在。

2019-11-30T08:08:14.png

直到我上大学,我突然意识到,有着自己独特的网名还不能凸显我的气质,我应该还得拥有一个属于自己的专属头像。

放荡不羁.png

最开始,我使用的是这个头像。

小男孩头像

后来,由于某些原因我需要换掉这个头像。我就找了一个我喜欢的动漫的男女主头像————我当时以为的男女主,因为初中看过之后就直接看到后面的剧情感觉怪怪的,所以就没怎么看。如下图

现在的头像

以后“醉月思”和这个头像就成了我的第二身份标识,下面,就是一些个人经历回忆。

时间线

  • 2015年10月,编(chao)写了人生第一个程序a+b=c(居然不是hello world)。

  • 2015年11月,人生第一个游戏编写成功,也是第一次发圈装逼

2019-11-30T07:40:52.png

  • 2016年6月,第一次使用C++做界面

2019-11-30T07:39:38.png

  • 2016年8月,第一次以醉月思的名义在CSDN上发表人生第一篇博客

2019-11-30T07:52:37.png

  • 2016年9月,第一次解除java,并试图反编译APP

2019-11-30T08:00:10.png

  • 2016年10月,第一次上线"拼图游戏"

2019-11-30T08:02:52.png

  • 2016年10月,注册个人公众号。

2019-11-30T08:23:56.png

  • 2016年10月,注册域名“thinkmoon.cn”

2019-11-30T08:14:24.png

  • 2016年12月,第一次搭建个人博客网站

2019-11-30T07:41:32.png

  • 2017年1月,第一次接触Linux,然后就把电脑装为linux了

2019-11-30T08:04:17.png

  • 2017年2月,第一次使用脚本语言爬取四六级成绩

2019-11-30T08:05:08.png

  • 2017年4月,第一次打算组建个Team来运营公众号

2019-11-30T07:58:52.png

  • 2017年6月,完成第一个"微信小程序"。

2019-11-30T07:36:57.png

  • 2017年7月,人生第一个软件上线。

2019-11-30T07:38:24.png

  • 2017年9月,开始熟悉JavaScript

2019-11-30T07:54:26.png

  • 接下来的有兴趣的去我博客看吧。

一些成果展示。

  • 博客数据概览

2019-11-30T08:28:34.png

  • 篆书转换器小程序数据概览

2019-11-30T08:30:11.png

  • 指尖魔法屋公众号数据概览

2019-11-30T08:35:59.png

  • 博客收益数据概览

2019-11-30T08:35:30.png

后记

我庆幸我有着写博客的习惯,算上这篇,博客文章加上水文,刚好凑够了100篇,当时我就在想,到了100篇,我一定要写点什么。现在看来,也算是半个百篇总结吧。最后,愿我可以将这个习惯坚持下去!

后后记

本来是想写一篇广告文的,写着写着就偏离了主题。文末打波广告,这是我最近开发的博客小程序,对接typecho的。大家有钱的点个赞赏捧个钱场,不想赞赏的扫码进入捧个人场?在此,我谢谢大家这几年来的支持和陪伴,愿我们彼此交流,共同成长!

2019-11-30T08:49:11.png

📅 2019-12-06