LuMing's blog

  • Home

  • Tags

  • Archives

使用HEXO+Github打造你的blog(三)

Posted on 2018-03-31 | Edited on 2019-04-18

上次我们已经成功安装了Node.js,接下来我们就要开始安装git了。不过在开始之前,我们先统一一下观点:

1.你所访问的网页本质上是一个一个有组织的文件
2.你访问网页的过程本质上是与其他计算机进行的通信

举个例子:

1.当你访问[百度首页](www.baidu.com)时候,你实质上在与公网IP地址为180.149.132.151的某台计算机进行通信。
2.你所看到的网页是这台计算机中的某个文件。(不懂的回看第一篇)

顺着这个思路,是不是只要别人能够通过IP地址访问到我们的计算机,他就能够打开我们制作好的博客了呢?
是的,但是困难重重。
为什么呢?让我们继续往下分析
我连上网的电脑有没有IP地址呢?
答案是:有
那是不是直接把IP地址告诉对方,对方就能与你的计算机进行通信了呢?
答案是:不行
为什么呢?
这还得从IP地址说起:

一句话,公网IP地址不够用了。因此为了珍惜IP,我们一向使用内网IP。
因此你的IP不是公网的IP,只是某个运营商公司的某个子公司的某个路由器下的某个通过DHCP分到的IP。
你电脑的IP地址是"192.168.1.1",这个IP就好比写着“我住在牛家村”
我想要和你通信,除非我跟你在同一个区。否则,世界上牛家村千千万,我肯定联络不到你。

那么怎么做呢?直接了当的告诉你,内网穿透,就是某个人把自己的公网IP借给你,让大家从公网能和你进行通信。
但是,1.太麻烦,2.得花钱
不过,还好有别的办法…

hackerinstruction

Posted on 2018-03-22 | Edited on 2019-04-18

nmap

# 扫描主机
nmap -sP 192.168.43.*
# 查看端口
nmap 192.168.1.1
# 查看系统
nmap -O 192.168.1.1

hydra

# 破解ssh
 hydra -l 用户名 -p 密码字典  -t 线程数 -e ns ip ssh

crunch

# 生成密码字典
crunch  最小长度 最大长度  字符  -o 生成位置

dnsenum

#查看二级域名
dnsenum ww.baidu.com
# 指定字典查看二级域名
dnsenum -f  wordlist.txt  www.baidu.com

lbd

#负载均衡
lbd www.github.com

wafw00f

#查看防火墙
wafw00f  -va www.baidu.com

ua-tester

#查看web环境
ua-tester  -v  -u  www.baidu.com

sqlmap

# 数据库注入漏洞
sqlmap -u URL

使用HEXO+Github打造你的blog(二)

Posted on 2018-03-04 | Edited on 2019-04-18

上回说到,安装HEXO之前还需要其他组件,其一叫做Node.js, 其二是叫做git。不能着急,咱们一一解决。
俗话说的好,”不入虎穴,焉得虎子”。为了搞清楚Node.js,我们来到了它的官网:
Node.js
可以看到说明文字:

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.

根据以上定义,我们可以得出:

1. Node.js 是基于javascript的运行库
2. Node.js 使用npm管理包

这也许是一些线索,先记下来,以后说不定会用到。

当然,我们最关心的还是怎么安装它.
顺着上图的线索点击download,可以看到
download
哇塞!这么多?我应该选择哪一个呢?
别着急,咱们一个一个说。
看似很多的安装方法,但我们其实可以把它分为两类:

1.使用源代码安装
2.使用编译好的二进制文件安装

我们知道

源代码(source code)是程序员的语言,二进制码是机器的语言。源代码需要经过一些列编译等过程才能成为二进制码让机器读得懂。

为了节省时间,我们根据机器CPU处理架构选择相应的二进制代码。(P.S.不过,这种方式也有行不通的时候。)
安装过程如下(偷懒):
Windows的同学点击这里
Linux的同学点击这里

恭喜~你已经完成了本教程的三分之一 :grin:

字符串加法

Posted on 2018-02-28 | Edited on 2019-04-18 | In 编程

最近在刷PAT(Programming Ability Test). 发现许多题目都用到了字符串相加,今天就来总结一下。

1.stoi等

在c++ 11 中可以直接调用stoi,stol, stoll,stoull全局函数.分别将字符串转换为int,long int, long long int, unsigned long long int

 string  a  = "123";
 string b = "456";
 cout << stoi(a) + stoi(b)<<endl;

输出

579

其他函数的用法同上

2.自定义函数

先贴上核心代码

string string_add(string a,string b)
{
    string result;            //结果存放
    int sum = 0;                //每位相加和
    int remain = 0;            //余
    int carry = 0;            //进位
    for(int i = a.size()-1,j = b.size()-1; i >=0 || j>= 0; i--,j--)  
    {                                            //终止条件:同时扫描完a,b
         sum = ((i>=0?a[i]:'0') - '0') + ((j>=0?b[j]:'0')-'0') + carry;   //求和,如果已扫描完其中一个字符串,用0代替。
         remain = sum%10;                                    //计算余数
         carry = sum /10;                                    //计算进位
        result += to_string(remain);                            //附加结果
    }
    if(carry !=0)
        result += to_string(carry);                 
    reverse(result.begin(),result.end());                        //因为结果是逆序的,因此翻转
    return result;
}

实例测试: a = “19”,b=”1”

times i = 1,j = 0:
//    sum = '9' - '0' + '1' - '0' + 0;                     sum = 10
//    remain = 10 % 10;                                     remain = 0;
//    carry = 10/10;                         carry = 1;
//    result += to_string(0);
p result
    "0"
times 2 i = 0,j = -1:
//    sum = '1' - '0' + '0' - '0' + 1;                     sum = 2
//    remain = 2 % 10;                                     remain = 2;
//    carry = 2/10;                         carry = 0;
//    result += to_string(0);
p result
    "02"
if(carry == 0)                                       //false
reverse(result.begin(),result.end());
p result
"20"

很多题目都用到了字符串相加,例如:
1024. Palindromic Number (25)
1136. A Delayed Palindrome (20)
感兴趣的同学也可以刷刷看

使用HEXO+Github打造你的blog(一)

Posted on 2018-02-26 | Edited on 2019-04-18 | In 集大成

说到博客,大家可能会想到QQ空间呀,微博等等的第三方博客。这些第三方的博客虽然方便好用,但是却做不到像你现在看到的这种效果。今天,我就教大家如何使用工具,打造自己的个人博客。

但是在开始之前,我想要先让你区分动态网页与静态网页。
静态网页顾名思义,你所看到的东西与别人所看到的是一模一样的。

区分于静态网页的是动态网页,它与静态网页最根本的区别是在它的背后有一个叫做“web服务器”的东西。这个东西有什么用呢?设想以下情景:当你第一次登录github, 你被要求输入帐号和密码。当你登录后,再打开github就会直接显示你的个人profile。 这个就是“web服务器”的magic。

再举个形象的例子:

    静态网页就像银行的自动门,无论是谁走过去,门都会自动打开。
    而动态网页就像银行柜员,男的过去她就会说“您好,先生...”,女的过去就会叫你“您好,女士”。

本教程所实现的blog本质上就是静态网页。
系统: Linux/ windows
工具: Nodejs + HEXO + Github

1.安装HEXO

我们所看到的网页是用一种叫做HTML的语言所写的。当你浏览网页时,HTML语言把你想要呈现在网页上的图片/文字/视频等等东西合理的布置起来,形成一个让人能看懂的页面。你可以在你的浏览器里按F12查看到一个网页的HTML代码,以下就是我的主页的部分HTML代码 (可以看到我加了广告哈哈哈):

<html class="theme-next muse use-motion" lang="zh">
<head>
<!-- ad start -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>
  (adsbygoogle = window.adsbygoogle || []).push({
    google_ad_client: "ca-pub-9964492323779082",
    enable_page_level_ads: true
  });
</script>
<!-- ad end -->
  <meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<meta name="theme-color" content="#222">

看到这里你可能就晕了,能不能不学习HTML就搭建一个博客呢?
答案是:能。 好在博客这种形式的网站有固定的套路,前人已经给你设计好了一个框架,你不必从头学起,只需要把重点放在内容本身就行了,我们所使用的工具就是HEXO(点击图片进入官网)
hexo
我们找到Installation这一项,其原文如下:

It only takes a few minutes to set up Hexo. If you encounter a problem and can’t find the solution here, please submit a GitHub issue and I’ll try to solve it.
Requirements

Installing Hexo is quite easy. However, you do need to have a couple of other things installed first:

    Node.js
    Git

If your computer already has these, congratulations! Just install Hexo with npm:

$ npm install -g hexo-cli

If not, please follow the following instructions to install all the requirements.

啥,你说你看不懂,没关系,我会百度翻译

只需要几分钟的时间来设置Hexo。如果你遇到了一个问题,不能在这里找到解决方案,请提交一个GitHub的问题我会尽力解决它。

要求

安装hexo是很容易的。然而,您确实需要先安装一些其他的东西:
Node.js
Git
如果你的电脑已经有了这些,祝贺你!只要安装Hexo与新公共管理:

NPM安装- G hexo CLI美元

如果没有,请按照以下说明安装所有的要求。

看来百度翻译也不过如此,把倒数第二行的安装命令给翻译了,我国人工智能行业有需提高呀~

言归正传,看来安装个HEXO还不是那么容易的…

(未完待续)

My2017

Posted on 2017-12-31 | Edited on 2019-04-18 | In 随想

1.这是最好的时代,也是最坏的时代。

为了统一观点,我们不妨做以下假设:全局最优只存在于我们能够感知的范围内。

凡事豫则立,不豫则废,于是乎一个看似很符合逻辑的结论便是:要想做好一件事情,你必须要像古人种地那样:春耕,夏芸,秋收,冬藏。未来在古人的眼里仿佛是一个确定性的状态。打从种地那一刻起就能预料到什么时候改浇水,什么时候该施肥,什么时候该收获。换句话说,耕种这件事情很容易找到一个全局最优解。

但是,这样的方法在今天依然高效吗?今天的我们还能够找到全局最优吗?

经历了2017,我们可能或多或少会感到些不安。身边的变化似乎有些超出了我们的预料。

从前的日子变得很慢,车、马 、邮件都很慢。

以前的我们因为缺乏信息,身边的事物充满着很强的确定性。“邻国相望,鸡犬之声相闻,民至老死,不相往来”
小国寡民的生我让我们仿佛生活在一个天然的大屏障中。但放眼今天,信息量大了,越是喜欢什么,越容易越是容易陷入其中,越过得安逸,内心中就越发迷茫。我们有没有被某种无形的手所支配?
人工智能技术

人工智能技术

靠预测永远不是制胜的法宝,”蝴蝶效应”说的就是这个道理,这个世界毕竟太复杂了。但是,从另外一个例子中仿佛又能从复杂的不确定性中找到确定的状态,那便是生命的过程。从基因开始,经过数百万道工序转录成RNA,经过数千万道工序翻译成蛋白质,再由蛋白质经过数亿万道工序折叠….你没变成猪,你还是你。
Life
复杂的生命过程

转过来看看人工智能,它应对复杂问题的办法很简单,一言以蔽之,即:”多维度下的局部最优近似于全局最优。

人工智能的成功与复杂的生命过程之间有没有联系呢?

2.确定目标,不断迭代。

这是一个真实的故事:

    某L君逃了一学期的课程,临近考试一筹莫展。无可奈何的他左手抱着试题,右手抱着答案,双手开工,刷了整整1两天后竟然出乎意料的过了。

这种方法看似笨拙,实质则是机器智能成功的关键。在上述例子中,每刷一道题我们不妨称之为迭代。每次犯错从当下的状态中找到与目标的距离,我们不妨称之为梯度。每一次犯错后,从梯度中改善原来的方法,我们不妨称之为优化。因此,我们是不是可以重新定义一下学习,即:
犯错 优化 迭代
通过简简单单的三个步骤,AlphaGo在围棋上战胜了人类。



强化学习

我们教会机器如何战胜人类。现在,我们是不是可以反过来再从机器身上学到些东西呢?我们常常口中说”10000小时定律”,现在是不是应该换成“有效10000小时定律”了?
### 3.Be yourself###
尼尔·波兹曼在《娱乐至死》这本书中提出了一个观点,在未来随着机器智能的发展,人类从任何繁重的事务中解脱,8成的人只有每天娱乐至死,每天只要戴上VR眼镜,现实世界只不过是一个小小的补充。



尼尔·波兹曼《娱乐至死》

哈哈,哪里有那么悲观,发展自己的兴趣就行了。既然人类在某些领域比不过机器,那么为什么要去和他们比呢?当机器取代手工劳动后,大量的时间留给了人们。人们便可以利好这一剩余产能。

原本的你想成为一名导演,迫于生计只能改行当程序员。现在,你完全不用考虑吃喝,用人工智能技术加上你的创意,也许分分钟就能将你脑中好莱坞大片式的景象展现在人们面前。

人生来是具有创造性的。小时候你总是在床上画下一张大大的地图;长大后你老是抱怨为什么没有一个机器帮你完成老师布置的作业;老了以后,你又感叹没有个时光机能够带你回到年少看看这美丽的世界。



“世界如此美丽,我却没有发现”

不必担心,机器智能会帮助你完成一切。人们将会在繁杂工作以外的领域大放异彩。艺术创作,社会服务,文化工作等等。
于是乎结论就是:你喜欢诗歌就尽情的喜欢,你热爱文学就尽情的热爱。机器智能抢走了大部分人的机会,同时又给大部分人带来了机会。因此,just be yourself。

总结一下:
“犯错,迭代,优化” 是机器智能成功的关键,我们可以类比总结出“有效10000小时定律。”
“不必跟机器硬怼,人机协作才是主流。”
“拒绝‘精耕细作’,做一个知识的‘拿来主义’者。”
“发展自己兴趣,不必有所顾虑。”

这篇文章,一是年终复盘,不能总是让知识“只进不出”,不总结一下也就忘记了。
二是告别”人工智能应用年”,让我至少在时代的风口浪尖上留下一点气息。
感谢乐乐、小强在文风上进行的指导。新的一年里,与君共勉

总之,预测未来的最好方法就是创造未来。

2018,keep fighting!

论有趣

Posted on 2017-07-20 | Edited on 2019-04-18

求学问道,图学以致用。做事,当持之以恒,做人,至行所当行。心胸宽阔,通古晓今,纳新弃旧,读经典,作诗词,赏艺术,此谓“有趣”矣!

1…56

LuMing

57 posts
3 categories
11 tags
GitHub E-Mail
© 2020 LuMing
Powered by Hexo v3.9.0
|
Theme – NexT.Muse v6.3.0