Write the Code. Change the World.

7月 08
精选文章

哥德尔、埃舍尔、巴赫:集异璧之大成 作者: [美] 侯世达 集异璧-GEB,是数学家哥德尔、版画家艾舍尔、音乐家巴赫三个名字的前缀。
皇帝新脑
协同学:大自然构成的奥秘…

阅读全文 >>

10月 22

https://wordpress.org/plugins/tags/copy-paste/
搜了几个插件,只有这个是跟着最新的wordpress版本更新的,用了一下,还行。

The Paste


他的项目源码在github上 https://github.com/mcguffin/the-paste
使用方法也很简单,安装插件并启用以后文章的可视化编辑框上会多一个按钮,保持这个按钮是选中状态,直接往里ctrl+v就行了。

阅读全文 >>

10月 22

转载 http://zctou.com/?p=1629#ixzz4wDAX40uW

最近在搜索一款可以高亮显示代码的wordpress插件,经过多种测试,发现能自动捕获<pre></pre>标签或者<code></code>标签的插件,就只属这款Crayon Syntax Highlighter 效果比较优秀,可以提供有好几十种模板给你选择,这里选择了下图的这种。

Crayon Syntax Highlighter 中的HMTL转义问题

但如果你用的是默认的设置,你会发现HTML特殊字符转义出现问题,具体如下,正常情况应该是输出这样一段代码

HTML特殊字符转义出现问题

但如果你用的是默认的设置,输出的却像以下的代码:

输出

百度了一下,造成问题的原因是:wordpress在后台编辑框中提交的文本是要被保存到数据库,但在前台展示时才会经过Markdown转码。但是做的是先由Markdown根据语法转码后交由Crayon Syntax Highlighter进行代码高亮的渲染。而Markdown会将代码中的特殊符号经由HTML进行转义,而Highlighter会原封不动得显示<pre>标签中已经被转义的HTML代码,所以如上图所示,展示出来的是转义过后的&lt;等代码。

所以Highlighter必须在渲染时将转义过后的代码再转义回来。后台选项如下:

HTML转义设置

捕获code行内标签

Read more: http://zctou.com/?p=1629#ixzz4wDApeMJe

阅读全文 >>

10月 22

通过 https://myssl.com/ssl.html 这个页面检查https配置,发现提示证书链不完整
搜索引擎搜索相关文章
在这篇里找到了答案 HTTPS中证书链不完整的解决方案

问题应该就是安卓系统需要完整的证书链,服务器上的公钥证书只配置网站证书是不行的,要把证书链中的中级证书也放进去。
就是在公钥证书文件(一半是.cer文件)的末尾在把中级证书也贴进去。

顺道看了一下申请免费证书的方法
腾讯云和阿里云现在都有免费的https证书可以申请,免费的只能一年,也不能自动更新
Let’s Encrypt 的虽然只有90天,但可以通过脚本来更新
Let’s Encrypt 使用教程,免费的SSL证书,让你的网站拥抱 HTTPS

参考
HTTPS中证书链不完整的解决方案
SSL证书的证书链文件使用的重要性

阅读全文 >>

10月 07

word不支持对插入图片设置透明度,但可以插入一个绘图区域,文本框或者方形,然后设置底纹选择图片,然后对这个框来设置透明度

转换pdf文件

阅读全文 >>

10月 07

网络基本功(九):细说TCP重传
一站式学习Wireshark(四):网络性能排查之TCP重传与重复ACK

作为网络管理员,很多时间必然会耗费在修复慢速服务器和其他终端。但用户感到网络运行缓慢并不意味着就是网络问题。

解决网络性能问题,首先从TCP错误恢复功能(TCP重传与重复ACK)和流控功能说起。之后阐述如何发现网络慢速之源。最后,对网络各组成部分上的数据流进行概况分析。这几张内容将会帮助读者识别,诊断,以及排查慢速网络。

更多信息
接下来的内容,较多是黑白图片了。虽然看起来有点不爽,但还是很值得一看。

TCP错误恢复功能:

TCP的错误恢复功能是定位,诊断及修复网络延时的最佳工具。延时可以在单程也可以往返方向测量。高延时是网络管理员的头号大敌。本节我们讨论TCP高延时是如何导致序列号和确认号乱序的。

TCP重传:

主机报文重传是TCP最基本的错误恢复功能,它的目的是防止报文丢失。

报文丢失的可能因素有很多种,包括应用故障,路由设备过载,或暂时的服务宕机。报文级别速度是很高的,而通常报文丢失是暂时的,因此TCP能够发现和恢复报文丢失显得尤为重要。

决定报文是否有必要重传的主要机制是重传计时器(retransmission timer),它的主要功能是维护重传超时(RTO)值。当报文使用TCP传输时,重传计时器启动,收到ACK时计时器停止。报文发送至接收到ACK的时间称为往返时间(RTT)。对若干次时间取平均值,该值用于确定最终RTO值。在最终RTO值确定之前,确定每一次报文传输是否有丢包发生使用重传计时器,下图说明了TCP重传过程。

当报文发送之后,但接收方尚未发送TCP ACK报文,发送方假设源报文丢失并将其重传。重传之后,RTO值加倍;如果在2倍RTO值到达之前还是没有收到ACK报文,就再次重传。如果仍然没有收到ACK,那么RTO值再次加倍。如此持续下去,每次重传RTO都翻倍,直到收到ACK报文或发送方达到配置的最大重传次数。

最大重传次数取决于发送操作系统的配置值。默认情况下,Windows主机默认重传5次。大多数Linux系统默认最大15次。两种操作系统都可配置。
示例如下图:

TCP重传过程发送的第一个报文如下图所示(图片不很清楚,已经尽力了):

这是一个TCP PSH/ACK报文①,包含648字节数据②,从10.3.30.1发送至10.3.71.7。这是一个典型的数据报文。

在通常情况下,第一个报文发送之后很快会收到TCP ACK报文。然而,在这个case里,第二个是重传报文。可以在Packet list面板里看到。Info栏清楚的标明“TCP Retransmission”,报文以黑色背景红色字体标出。下图是Packet List面板中的重传示例(仍然不清楚,但可参见上图):

也可以在Packet Details和Packet Bytes面板中查看来确定是否是重传报文,如下图所示:

注意此报文与源报文相同(除了IP标识和checksum字段)。要验证这一点,比较两个报文的Packet Bytes①。

在Packet Details面板,注意到重传报文在SEQ/ACK Analysis下面有些额外的信息②。这些信息是由Wireshark提供的而并非报文本身。SEQ/ACK Analysis告诉我们这确实是一个重传报文,RTO值是0.206秒,此时的RTO是基于报文1的时间增量。

检查剩下的报文会得到类似的结果,不同之处只有IP标识和checksum,以及RTO值。要使报文之间的时间间隔形象化,在Packet List面板中查看Time栏,如下图所示。这里可以看到RTO值的翻倍增长关系。

TCP重复ACK以及快速重传:

重复ACK是指在接收方收到乱序报文时,所发出的一类TCP报文。TCP使用报文头的序列号和确认号以有效保证数据按照发送的顺序接收和重组。…

阅读全文 >>

10月 07

封单个IP的命令是:

参考:
Linux防火墙:iptables禁IP与解封IP常用命令

iptables记录日志:

suse 11 的 日志设置在 /etc/syslog-ng/syslog-ng.conf
在iptables添加日志选项
iptables -A INPUT -j LOG –log-prefix “iptables”

配置远程日志传输

Details
Edit …

阅读全文 >>

10月 07

设置脚本中命令输出时的行宽和行数

export LINES=1000
export COLUMNS=1000

参考:
How to set Cols and Lines for a Subprocess
LINES and COLUMNS environmental variables lost in a script

取日期-1 并设置格式

date -d “1 day ago” ‘+%Y-%m-%d’
可能存在的问题:我这里测试是正常的,但好像说如果有夏令时可能会有问题,要改成
date -d “yesterday 13:00” ‘+%Y-%m-%d’
看不太懂,先记下,见参考
参考:…

阅读全文 >>

9月 24

通过IDrac来收集

在浏览器输入192.168.0.120 用户名root密码默认calvin登录
如果ip无法登录,有可能局域网中有很多机器都默认了120的ip,可以在bios里或者openmanage server administrator 的web界面http://ip:1131登录
修改idrac的管理ip地址,选
系统-主系统机箱-远程访问
在右侧页面选择:配置-LAN
NIC配置 中
启用NIC
主要网络选择 LOM1即网卡1
IPv4地址中
修改一个不冲突的地址,比如 192.168.0.65
应用
然后过一会就可以ping通了,然后就可以重新登录idrac界面了

在idrac界面
选择服务器-故障排除-SupportAssist
点击创建新的操作系统数据
切换到ssh控制台root用户登录
cd /media/DRACRW/
./Linux_OSCollector_Startup.EXE
开始收集操作系统数据
收集完成后,切换到之前的web页面
点击其他菜单后重新进入supportAssist页面(刷新页面)
选择编辑本地集合数据,这时应该可以看到已经包含了操作系统数据
确认选中硬件,Raid控制器日志,操纵系统日志 三项
导出位置选择 本地
点击左上角 导出SupportAssist集合,将生成的zip包保存到本地即可…

阅读全文 >>

9月 21

mysql 5.6.4开始可以通过
定义datetime(6) timestamp(6) 列,这种方式来打开时间对毫秒的支持
使用函数 CURRENT_TIMESTAMP(6) now(6) 来生成带毫秒的时间

参考
Why doesn’t MySQL support millisecond / microsecond precision?
Date and Time Functions

mysql 5.6的全局日志记录的时间没有毫秒,无法详细分析sql的执行时间。mysql 5.7就有毫秒了
1尝试修改表结构将时间列改为 timestamp(6) ,但插入的时间的毫秒都是000,不管用。
2尝试添加一列timestamp(6) 设置默认值,也不行,mysql errorlog里报错了。
3尝试添加触发器修改插入表时的时间,报错,系统表不能添加触发器

阅读全文 >>

9月 21

suse 11 sp3 默认 perl 5.10 不支持新的方法,只能用比较原始的

阅读全文 >>