同步与异步
Synchronous(同步)和Asynchronous(异步)是编程时比较重要的一个概念。而且,同步与异步的概念与我们日常生活中的含义不同,容易导致误解。这里给出计算机科学上两者的解释。
同步同步类似于实时打电话。什么意思,就是必须同时在线。用计算机术语就是单线程模式,函数或方法调用后,必须等待直接结束,等到返回值后才能释放资源。
同步属于阻塞模式。
一个实际的例子是,用户登录,需要对用户验证完成后才能登录系统。
效率低。
异步异步类似于分时发短信。就是可以不用同时在线,有空闲时再处理。用计算机术语就是多线程模式,函数或方法调用后,无需等待,可以去执行其他任务。
异步属于非阻塞模式。
一个实际的例子是,页面数据加载过程,不需要等所有数据获取后再显示页面。
效率高。
参考资料:
同步和异步的区别
计算机领域中的同步(Synchronous)和异步(Asynchronous)
简述同步和异步的区别
凸函数和拐点
凸函数(Convex function)和拐点(Inflection point)。 此部分为参考 华东师范大学《数学分析上册》。以下内容为学习中的重点总结。
凸函数一般用来证明不等式;注意左右导数和凸函数定义公式的联系;凸函数的性质比较好,在机器学习中是理想的代价函数,因为好求最小值点;注意拐点中的鞍点(是一阶导数等于0的点,即拐点中的驻点或稳定点)。
凸函数定义1 设$f$为定义在区间$I$上的函数,若对$I$上的任意两点$x_1, x_2$和任意实数$\lambda\in(0,1)$总有$$f(\lambda x_1 + (1-\lambda) x_2)\leq \lambda f(x_1) + (1 - \lambda)f(x_2),$$则称$f$为$I$上的凸函数。反之,如果总有$$f(\lambda x_1 + (1 - \lambda) x_2)\geq \lambda f(x_1) + (1 - \lambda) f(x_2),$$则称$f$为$I$上的凹函数。
另外,
如果上面的不等式为严格不等式,那么称严格凸函数和严格凹函数。
如果$-f$为区间$I$上的凹函 ...
vim 快捷键
Vim 是一个非常好用的软件,更新自 vi 命令,添加了各种颜色显示,方便编写程序。这里给出一些 vim 常用的快捷方式。
vim有三种模式:命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
命令模式:刚进入是的模式。此时,输入的字符为命令。
i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。
输入模式输入模式可以进行文字输入。
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
底线命令模式在命令模式下,用英文冒号”:”进入底线模式
q 退出程序
w 保存 ...
数学公式显示
Hexo + Github + Next搭建博客后,有时候需要写一些带有公式的博文。而默认情况下是不能显示数学公式的。这里介绍一种如何在博文上显示数学公式的方法。
Typora 本地数学公式编辑在本地下文章想显示数学公式,推荐使用typora这个软件,可以非常简单的配置后显示数学公式。
行内公式首先设置行内公式编辑功能
文件—偏好设置—Markdown—Markdown扩展语法—内联公式
设置后重启typora
行内公式编辑方法,直接在需要编写数学公式的地方写如下类似内容
1$\sin(x) = x - \frac{x^3}{3!} + \cdots$
即,将公式写在**$**包括的里面就行,跟Latex语法一样。
居中显示公式居中显示公式跟Latex语言一样,首先输入**$$**,然后回车,即可进入编辑模式。
或者使用快捷键:Ctrl + Shift + M
或者点击段落—公式块
网页显示数学公式开启mathjax进入目录 ~\themes\next,编辑**_config.yml** ,修改如下内容
12345# MathJax Su ...
函数的极值和最值
极值定理 6.11 (极值的第一充分条件)
设$f$在点$x_0$连续,在某领域$U^o(x_0;\delta)$上可导。
若当$x\in (x_0 -\delta, x_0)$时$f^{\prime}(x)\leq 0$,当$x\in(x_0, x_0+\delta)$时$f^{\prime}(x)\geq 0$,则$f$在点$x_0$取得极小值。
若当$x\in(x_0 - \delta, x_0)$时$f^{\prime}\geq 0$,当$x\in(x_0, x_0+\delta)$时$f^{\prime}(x)\leq 0$,则$f$在点$x_0$取得极大值。
定理 6.12(极值的第二充分条件)
设$f$在$x_0$的某领域$U(x_0; \delta)$$ 上一阶可导,在$$x=x_0$$处二阶可导,且$$f^{\prime}(x_0) = 0, f^{(2)}(x_0)\neq 0$.
若$f^{(2)}(x_0)<0$$,则$$f$$在$$x_0$取得极大值。
若$f^{(2)}(x_0)>0$,则$f$在$x_0$取得极小值 ...
Next主题菜单栏链接显示乱码问题
Hexo + Next + Github搭配使用搭建博客是非常流行和方便的,不需要购买服务器和域名,充分发挥GitHub的作用。但是,当我搭建博客时也遇到过关于Next主题的Menu菜单和边框栏设置的问题。不过最后总算解决了,这里记录下来提供给有需要的小伙伴也为自己留个记忆,以备后用。
Next的菜单图标显示
打开主题配置文件,~/themes/next/_config.yml , 把相应注释去掉,这里选择你要展示的页面。如下:
123456789menu: home: /|| home about: /about/|| user tags: /tags/|| tags categories: /categories/|| th archives: /archives/|| archive \#schedule: /schedule/ || calendar \#sitemap: /sitemap.xml || sitemap \#commonweal: /404/ || heartbeat
注意,about, tags, categories三个 ...
hexo博客评论系统gitalk
Hexo结合GitHub进行博客系统搭建,能够免费的畅享GitHub给我们带来的无限量服务。下面假设
hexo博客已经搭建好了
主页地址是:https://xujinzh.github.io/
并且在GitHub上创建了gitalk仓库:https://github.com/xujinzh/gitalk-comments.git
注册新应用打开网址:https://github.com/settings/applications/new
在Application name一栏填写应用名称,可随意填写,但必须填写
Homepage URL一栏填写博客主页,必填,我这里是:https://xujinzh.github.io/
Application description一栏是对该应用的描述信息,可以选填
Authorization callback URL一栏是应用程序的回调URL,也是博客主页,必填,我这里是:https://xujinzh.github.io/
点击注册后,会跳转到应用信息页,显示有该应用的用户Client ID和Client Secret,这两个参数在下 ...
Linux 命令 more 和 less 的用法
Linux 系统有命令 more 和 less 来在终端查看文件内容,但是,两者有什么区别呢?总的来说,less 比 more 更有效率更快,因为 less 不会立即加载整个文件,而是动态加载,对于比较大的文件可以使用该命令。而 more 命令会一次加载整个文件内容。
more 命令查看 test.log 文件内容,同时显示剩余内容百分比,可以使用 Enter(一次一行)和 Spacebar(一次一页)来翻页,使用 q 退出查看。此时,文件内容会保留在终端上。
12more test.logcat -n test.log | more
12# 只显示文件 test.log 的前 5 行more -5 test.log
12# 从文件 test.log 的第 6 行开始显示,内容铺满整个屏幕,具体看屏幕大小more +6 test.log
在用命令 more 打开文件后,输入 = 显示当前行号,输入 :f 显示文件名和当前行号。
less 命令查看 test.log 文件内容,可以使用 Enter(一次一行)和 Spacebar(一次一页)来翻页,另外,也可以使用 pageup ...
SSH远程连接Centos出现cannot change locale (UTF-8)
Centos是一个优秀的安全的linux发行版,但是,当我使用Mac终端SSH远程连接Centos服务器时却出现如下警告:
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory=
这里给出解决该问题的方法:
在Centos服务器上,进入
1sudo vim /etc/environment
添加如下代码
12LANG=en_US.utf-8LC_ALL=en_US.utf-8
再次通过SSH连接时就不会出现上述警告了。
Chrome 添加扩展程序
Chrome是一款非常优秀的浏览器,再配合上扩展程序或插件,可谓是如虎添翼。但是由于不能够直接登录谷歌扩展程序商店直接添加扩展程序,那么这里给出一个将已经下载或自己编写好的扩展程序添加到Chrome浏览器插件的一种方法。
将扩展程序的类型由 .crx 更改为 .zip,然后解压缩该文件到一个文件夹中 ;
打开谷歌扩展程序管理页,即 chrome://extensons ;
将右上角的开发者模式(Developer mode)打开 ;
点击左上角的上传解压缩文件(Load unpacked),选择刚刚解压缩的 zip 文件夹。
这样就将手动下载或自己编写的扩展程序添加为Chrome插件了。
为 Centos 或 Ubuntu 添加交换分区 swap
Centos 或者 Ubuntu 的交换分区 swap,类似于 Windows 系统的虚拟内存,能够在系统内存不足时,利用一部分硬盘空间虚拟出内存空间,解决内存不足的问题。下面分别给出如何为 Centos 和 Ubuntu 增加交换分区。所有命令以 root 用户运行。
Centos 添加交换分区12345678dd if=/dev/zero of=/swapfile count=2048 bs=1MiBchmod 600 /swapfilemkswap /swapfileswapon /swapfilecp /etc/fstab /etc/fstab.bakecho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabecho 'vm.swappiness=10' >> /etc/sysctl.confecho 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf
这里 count=2048, ...