朝思录

迷雾终将散去,黎明即将来临

0%

最近接触了一段时间的HEXO,自己没有网页开发经验如盲人摸象,折腾了很久才有些门目。
HEXO是一个静态网页生成工具,如果将HEXO看作一个生产线,你把你写的markdown文章扔进去,它会产出一个静态html,然后部署到某个服务器上等待访问。
因为本地的电脑比较杂乱,笔者将HEXO放到了服务器上,这样比较方便多个计算机终端管理文章,并希望以这台服务器托管网页。但是HEXO在部署时,默认将网页传到githubpage上,而不是这台服务器的public_html文件夹(apache默认html文件夹),这是需要解决的问题。

Warning
因为HEXO生成的HTML+CSS+JS多且零碎,在本地采用FTPsync上传会产生频繁的FTP写操作,而有些云服务商家会将FTP频繁的IP拉入黑名单(笔者亲历),所以如果你在本地使用FTP,一定要先跟客服沟通好再使用此插件。
如果不可以,可以将public文件夹中的内容打包一起上传,然后在云端解压

这里采用FTPsync插件解决这个问题


原理

FTPsync插件的功能是通过FTP将网页文件上传到目标服务器上,如果HEXO装到了网页托管服务器本身,FTP地址设置127.0.0.1即可

步骤

1、在虚拟主机上设置一个新的FTP帐户:

Read more »

不能适配Katex 0.10.0及以上的方法(其他版本没有测试)

被HEXO渲染Latex公式绊了一段时间,最近终于搞定了,以下是步骤:


步骤

1、卸载Marked渲染器(或其他渲染器),安装Markdown it Plus渲染器
cd到你的blog目录下执行这两个指令:

1
2
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-markdown-it-plus --save

2、2018.7.22更新:
还需要执行下面这个指令,否则会报错(我记得以前是不需要的)

1
npm install markdown-it-katex --save

这个指令是给markdown-it-plus渲染器安装katex支持插件

3、配置_config.yml文件

Read more »

主要介绍经典拉格朗日乘子法的原理,之后讨论该方法中出现的参数λ\lambda的意义

拉格朗日乘子法的数学原理

经典拉格朗日乘子法是下面的优化问题(注:x\bold x是一个向量):

minxf(x)s.t.g(x)=0(1)\begin{matrix} \min_{\bold x} f(\bold x)\\[2ex] s.t. g(\bold x)=0 \end{matrix}\tag{1}

直观上理解,最优解xoptimal\bold x_{optimal}一定有这样的性质,以x\bold x是二维变量为例:(网上下的图。为了符合行文风格,这里的g(x,y)=cg(x,y)=c应为g(x,y)=0g(x,y)=0
f与g的等高线图
这里采用等高线方式描述f(x,y)f(x,y)(对方程f(x,y)=df(x,y)=d对不同dd绘图),并绘制约束条件g(x,y)=0g(x,y)=0的曲线。可见,当g(x,y)=0g(x,y)=0f(x,y)f(x,y)的某条等高线相切时,可取得最优解。

Read more »

前言

中值滤波算法是一种非线性的滤波算法,其中心思想是采用模板内所有像素的排序中值作为目标像素的值,进行滤波。一般情况下,若模板大小为m×mm\times m,可有效滤除面积小于m2/2m^2/2的脉冲像素团。比如3×33\times3中值滤波模板可有效滤除面积为1的椒盐噪声。
最近在写中值滤波算法时,因为一些bug偶然发现了一些有趣的现象。中值滤波算法的大致算法流程为:

1
2
3
4
5
6
7
8
9
10
11
% 算法1
% 读取图像
im = imread('某个地址');
% 中值滤波
im_backup = im; %备份图像
for i = size(im_backup,1)
for j = size(im_backup,2)
value = GetMedian(im_backup,i,j,3); %获取3*3模板的中值
im(i,j) = value;
end
end

注:GetMedian为自定义的获取模板中值的函数。

Read more »

首先从一个概率问题说起

设随机变量XX, YY,
其中XX服从参数为θ\theta的指数分布,即XX的概率密度函数为

f(x)={1θexθ,x>00,Otherwisef(x)= \begin{cases} \frac{1}{\theta}e^{-\frac{x}{\theta}}, &x>0 \\[2ex] 0, &\text{Otherwise} \end{cases}

并且YYXX满足关系

y=g(x)=1exθy=g(x)=1-e^{-\frac{x}{\theta}}

求解YY的概率密度函数

Read more »

矩阵乘法的意义

考虑最基本的矩阵乘法公式:

b=Ax(1)\bold b = \bold A\bold x \tag{1}

AA按列分块为A={α1,α2,...,αn}\bold A=\{\bold\alpha_1,\bold\alpha_2,...,\bold\alpha_n\},并将xx按行分块为x={x1,x2,...,xn}T\bold x=\{x_1,x_2,...,x_n\}^T ,则(1)(1)式可表示为:

b=(α1α2...αn)(x1x2...xn)=x1α1+x2α2+...+xnαn(2)\bold b= \left( \begin{array}{ccc} \bold \alpha_1 &\bold \alpha_2 & ... &\bold \alpha_n \end{array} \right) \left( \begin{array}{ccc} x_1 \\ x_2 \\ ... \\ x_n \end{array} \right)= x_1\bold \alpha_1 + x_2\bold \alpha_2 +...+ x_n\bold \alpha_n \tag{2}

(2)(2)式可以看出,bb为列向量A={α1,α2,...,αn}A=\{\bold\alpha_1,\bold\alpha_2,...,\bold\alpha_n\}的线性组合。若将{α1,α2,...,αn}\{\bold\alpha_1,\bold\alpha_2,...,\bold\alpha_n\}视为空间中的一组基,

Read more »

之前学汇编使用了作者提供的Irvine32库,但总是报错如下:

1
2
3
4
1>c:\Irvine\SmallWin.inc(11): error A2071: initializer magnitude too large for specified size
1>c:\Irvine\SmallWin.inc(11): warning A4011: multiple .MODEL directives found : .MODEL ignored
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\masm.targets(50,5): error MSB3721: 命令“ml.exe /c /nologo /Sg /WX /Zi /Fo"Debug\Chapter5.obj" /Fl".lst" /I "c:\Irvine" /W3 /errorReport:prompt /Ta"..\..\..\Users\Eastwind\Do
cuments\《汇编语言-基于x86处理器》资料\Test\Chapter5.asm"”已退出,返回代码为 1。

这个错误的出现是因为在程序中出现了这样的语句:

1
2
3
4
.386
.model flat, stdcall
.stack 4096
ExitProcess PROTO, dwExitCode:DWORD

貌似Irvine32.inc已经包含以上语句了,如果再包含,会出现重复。所以删掉它就好了。

Read more »

该文是针对《汇编语言 基于x86处理器》(机械工业出版社)而写的,该书为译版,原版为《Assembly Language for x86 Processors》第七版,著者Kip Irvine

所有内容基于以下网址:
Getting Started with MASM and Visual Studio 2013

该文的配置方式主要针对那些学习x86而不想把其他时间浪费在配置环境上的人群,故欲使用x86开发软件的人群请绕道

使用vs编译x86汇编语言无需安装MASM,因为所有的vs版本都集成了MASM12.0(All versions of Visual Studio include the Microsoft Assembler (MASM) version 12.0.)。其安装目录(C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin)都会有一个ml.exe,这是MASM汇编器和链接器,如果没有找到的话,在重装vs之前请绕道

Read more »