中文用户请暂缓升级到WordPress 4.3正式版
WordPress 4.3正式版于今天(19日)凌晨开始推送。不过这里提醒中文用户请暂缓升级到WordPress 4.3,目前发现当语言切换到简体中文后,文章编辑器无法在可视化与文本模式之间切换,已严重影响正常使用。
另外,如果你的主题使用 wp_trim_words 函数用于截断文字,在WP4.3中文版本中也将失效。
加上4.2版菜单设置页面无法打开显示选项,WordPress 中文版BUG越来越多....
经测试,WordPress 4.3所有BUG,并非是WP程序本身有什么问题,完全是制作中文汉化版的人不负责任造成的,因为切换到日文及其它语言,一切正常,无语.....
已 升级至WordPress 4.3版的用户,可以用WordPress 4.2+版的程序文件覆盖一下,降回之前的版本,或者删除之前版本wp-content目录的languages文件夹(因为之前版本的中文语言文件与 4.3版有冲突),然后重新安装中文语言,可以解决编辑器无法切换模式的BUG,但WordPress集成的文字截断函数 wp_trim_words 在选择中文语言后还是失效。
如果你之前转优酷等站点的视频,使用的是直接在文章中插入视频地址的方法,也将完全失效,因为目前的中文版,并没有针对中国用户作出优化,貌似从WP4.0之后就是如此了,看来以后也不会有了,相关插件可能会大行其道。
目前的应急解决方法为 : 切换语言到英语,然后编辑文章,编辑完成后,修改回简体中文,然后默默等待更新。
注意 22号的版本更新已经修正该问题!!!
Linux下新的网络管理工具ip替代ifconfig零压力
如果你使用 Linux 足够久,那么你自然知道一些工具的来与去。2009年 Debian 开发者邮件列表宣布放弃使用缺乏维护的 net-tools 工具包正是如此。到今天 net-tools 仍然被部分人们所使用。事实上,在 Ubuntu 14.10 中你依旧可以使用 ifconfig 命令来管理你的网络配置。
然而在某些情况下(例如, Ubuntu Docker 容器), net-tools 工具包将不会被默认安装,这就意味着不能使用 ifconfig 。尽管如此,还是可以用软件仓库来安装 net-tools 。
1 |
$ sudo apt-get install net-tools |
由于 net-tools 不再维护,我们强烈建议以 ip 命令代替 ifconfig。更重要的是 ip 在代替 ifconfig 的基础上表现得更好。
有趣的是 ip 不只是 ifconfig 的一个替代品,这两个命令在结构上有很多不同。即便如此,它们却都用于同一个目的。实际上 ip 命令可以完成下面所有事务。
- 列出系统上配置了哪些网络接口
- 查看网络接口的状态
- 配置网络接口(包括本地环路和以太网)
- 启用或禁用网络接口
- 管理默认静态路由
- IP 隧道配置
- 配置 ARP 或 NDISC 缓存条目
接下来就让我们按上面说的试着用 ip 代替 ifconfig 。 我将例举一些简单的例子说明怎么使用 ip 命令。要正确使用并理解这些命令需要 root 权限,你可以用 su 切换到 root 用户或着使用 sudo 。因为这些命令将会改变你机器的网络信息。小心谨慎使用。
注意:演示中用的地址仅作演示,具体到你的计算机时,会由你的网络以及硬件而不一样。
接下来,开始吧!
收集信息
多数人学习使用 ifconfig 做的第一件事就是查看网络接口上分配的 IP 地址。直接终端输入 ifconfig 不带任何参数回车即可看到。那么使用 ip 来做到这点我们只需要这样。
1 |
$ ip a |
这条命令将会列出所有网络接口的相关信息。
你说你只想看 IPv4 相关信息,那么可以这样。
1 |
$ ip -4 a |
你又说你想看特定的网络接口的相关信息,那么用如下命令查看无线网卡连接信息。
1 |
$ ip a show wlan0 |
你甚至可以定位更具体的信息,欲查看 wlan0 上的 IPv4 信息,那么可以这样。
1 |
$ ip -4 a show wlan0 |
还可以这样列出正在运行的网络接口。
1 |
$ ip link ls up |
修改配置网络接口
接下来让我们来学习 ip 命令的核心功能——修改配置网络接口。假如你想为第一个以太网的网卡( eth0 )安排一个特定的地址。用 ifconfig 的话,看起来是这样的。
1 |
$ ifconfig eth0 192.168.1.101 |
那么用 ip 命令却是这样的。
1 |
$ ip a add 192.168.1.101/255.255.255.0 dev eth0 |
简短一点可以这样。
1 |
$ ip a add 192.168.1.101/24 dev eth0 |
显然这样的话,你需要知道你要安排的地址的子网掩码。
同样的方式,你可以这样删除一个网卡的地址。
1 |
$ ip a del 192.168.1.101/24 dev eth0 |
如果你想简单的清除所有接口上的所有地址,只需要这样即可。
1 |
$ ip -s -s a f to 192.168.1.0/24 |
ip 命令另一方面还能激活/禁用网络接口。
禁用 eth0
1 |
$ ip link set dev eth0 down |
激活 eth0
1 |
$ ip link set dev eth0 up |
使用 ip 命令,我们还可以添加/删除默认的网关,就像这样。
1 |
$ ip route add default via 192.168.1.254 |
如果你想获得网络接口的更多细节,你可以编辑传输队列,给速度慢的接口设置一个低值,给速度快的设置一个较高值。那么你需要像这样做。
1 |
$ ip link set txqueuelen 10000 dev eth0 |
该命令设置了一个很长的传输队列。你应该设置一个最适合你硬件的值。
还可以用 ip 命令为网络接口设置最大传输单元。
1 |
$ ip link set mtu 9000 dev eth0 |
一旦你做了改变,便可以使用 ip a list eth0 来检验是否生效。
管理路由表
其实还可以使用 ip 命令来管理系统路由表。这是 ip 命令非常有用的一个功能。并且你应该小心使用。
查看所有路由表。
1 |
$ ip r |
输出结果将像下图所示。
现在你想要路由的所有流量从 eth0 网卡的192.168.1.254网关通过,那么请这样做。
1 |
$ ip route add 192.168.1.0/24 dev eth0 |
删除这个路由。
1 |
$ ip route del 192.168.1.0/24 dev eth0 |
这篇文章仅仅对 ip 命令进行了一些介绍。不是要求你马上使用 ip 命令。你可以继续使用 ifconfig 。因为 ifconfig 的弃 用相当的慢,很多发行版里依旧默认安装了该命令。但是相信最终会逐步被 ip 命令完全取代。看过这篇介绍,到时候你便能很快的转换过去。如果你还想了解 更多 ip 命令的用法,请看 ip 命令的 man 手册。
参考链接
高斯函数
下载Word文档 高斯函数
常用数学符号希腊字母表
希腊字母表
|
||||||
序号
|
大写
|
小写
|
英文注音
|
国际音标注音
|
中文读音
|
意义
|
1
|
Α
|
α
|
alpha
|
a:lf
|
阿尔法
|
角度;系数
|
2
|
Β
|
β
|
beta
|
bet
|
贝塔
|
磁通系数;角度;系数
|
3
|
Γ
|
γ
|
gamma
|
ga:m
|
伽马
|
电导系数(小写)
|
4
|
Δ
|
δ
|
delta
|
delt
|
德尔塔
|
变动;密度;屈光度
|
5
|
Ε
|
ε
|
epsilon
|
ep
silon |
艾普西龙
|
对数之基数
|
6
|
Ζ
|
ζ
|
zeta
|
zat
|
截塔
|
系数;方位角;阻抗;相对粘度;原子序数
|
7
|
Η
|
η
|
eta
|
eit
|
艾塔
|
磁滞系数;效率(小写)
|
8
|
Θ
|
θ
|
thet
|
θit
|
西塔
|
温度;相位角
|
9
|
Ι
|
ι
|
iot
|
aiot
|
约塔
|
微小,一点儿
|
10
|
Κ
|
κ
|
kappa
|
kap
|
卡帕
|
介质常数
|
11
|
Λ
|
λ
|
lambda
|
lambd
|
兰布达
|
波长(小写);体积
|
12
|
Μ
|
μ
|
mu
|
mju
|
缪
|
磁导系数微(千分之一)放大因数(小写)
|
13
|
Ν
|
ν
|
nu
|
nju
|
纽
|
磁阻系数
|
14
|
Ξ
|
ξ
|
xi
|
ksi
|
克西
|
数学上的随机变量
|
15
|
Ο
|
ο
|
omicron
|
omikron
|
奥密克戎
|
|
16
|
Π
|
π
|
pi
|
pai
|
派
|
圆周率=圆周÷直径=3.14159 26535 89793
|
17
|
Ρ
|
ρ
|
rho
|
rou
|
肉
|
电阻系数(小写)
|
18
|
Σ
|
σ
|
sigma
|
sigma |
西格马
|
总和(大写),表面密度;跨导(小写)
|
19
|
Τ
|
τ
|
tau
|
tau
|
套
|
时间常数
|
20
|
Υ
|
υ
|
upsilon
|
jupsilon
|
伊普西龙
|
位移
|
21
|
Φ
|
φ
|
phi
|
fai
|
佛爱
|
磁通;角
|
22
|
Χ
|
χ
|
chi
|
phai
|
西
|
|
23
|
Ψ
|
ψ
|
psi
|
psai
|
普西
|
角速;介质电通量(静电力线);角
|
24
|
Ω
|
ω
|
omega
|
o`miga
|
欧米伽
|
欧姆(大写);角速(小写);角
|
Openmdiavault修复工具“omv-firstaid”使用简介
warning C4743: “const std::ios_base::failure::`vftable'”有不同的大小: 16 和 12 字节
最近在使用VS2013进行静态库链接的时候,发现在最后链接的时候,编译器报告如下警告
1 2 3 4 |
4>LINK : warning C4743: “const std::system_error::`vftable'”在“aaa.cc”和“bbb.cpp”中具有不同的大小: 16 和 12 字节 4>LINK : warning C4743: “const std::_System_error::`vftable'”在“ccc.cc”和“ddd.cpp”中具有不同的大小: 16 和 12 字节 4>LINK : warning C4743: “const std::ios_base::failure::`vftable'”在“eee.cc”和“fff.cpp”中具有不同的大小: 16 和 12 字节 4>LINK : warning C4743: “const std::runtime_error::`vftable'”在“xxx.cc”和“yyy.cpp”中具有不同的大小: 16 和 12 字节 |
尽管这个是个警告,但是由于涉及到vftable 的问题,这个问题会导致对象指针之间相互赋值的时候导致内存布局混乱,非常可能导致严重的问题。因此这个警告的危险级别甚至比错误的还要严重,绝不能简单的忽略这个问题。
研究了很久,发现,在Debug版本上面是没有问题的,但是Release版本上面必然出现该问题。并且当设置VC++ 的 “工程属性->配置属性->C/C++->优化->全程序优化”为 “否”的时候,也是可以无警告链接通过的。但是却会导致我们的工程损失更多的优化,降低运行效率。
这个问题产生的原因是一个宏引起的,这个宏就是 “_HAS_EXCEPTIONS=0” 。这个宏控制了STL对于异常的处理流程,影响着typeinfo,system_error 等几个文件中对于VC 运行时库的链接选择,要么链接libcmt.lib,要么链接msvcrt.lib。比较不凑巧的是,微软在实现这两个库的时候,其中一个比另外一个多了一个虚函数。(这种情况不应该发生,但是确实发生了!)
因此,如果我们的LIB工程定义了“_HAS_EXCEPTIONS=0” ,那么所有使用我们这个LIB的项目,都要定义这个宏。
对于简单的项目,只要都定义“_HAS_EXCEPTIONS=0” 就可以解决问题。但是对于复杂的工程,尤其是依赖了大量的第三方的已经编译过的,没有源代码的LIB项目来说,只能是采用妥协的办法,所有的工程都取消这个宏的定义,使得两者的内存布局相同。毕竟,稳定性是第一需求。
WordPress 自动升级报告 500 错误
最近使用 WordPress 自动升级的时候,只要更新包稍微大一点就会报告500错误。观察Apache2的日志,提示如下信息:
1 2 3 4 5 6 |
$tail -f /var/log/apache2/error.log ................................... [Thu Aug 06 10:51:54 2015] [warn] [client 42.120.74.98] (110)Connection timed out: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: http://www.mobibrw.com/wp-admin/update-core.php?action=do-core-upgrade [Thu Aug 06 10:52:02 2015] [warn] mod_fcgid: process 11192 graceful kill fail, sending SIGKILL [Thu Aug 06 10:53:06 2015] [warn] [client 42.120.74.98] mod_fcgid: read data timeout in 40 seconds, referer: http://www.mobibrw.com/wp-admin/update-core.php?action=do-core-upgrade ................................... |
网站配置的PHP是通过FastCGI模块来加载,也就是mod_fcgid。
这个说明fcgid模块在读取数据的时候超时了。经过多次测试,证明500错误的时候会产生这条记录,看来罪魁祸首就是这个模块了。立马输入命令:
1 2 3 4 5 6 7 8 |
$vim /etc/apache2/mods-available/fcgid.conf <IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php FcgidConnectTimeout 120 DefaultMaxClassProcessCount 10 MaxRequestLen 15728640 </IfModule> |
上网仔细一查,这个模块下可用的参数还真不少。 另外一个叫做“IPCCommTimeout”的参数吸引了我的注意力,这是FastCGI模块在与程序通讯的时候的超时时间。不管三七二十一,死马当活 马医,将这个参数添加后,也设置为300,这样一来文件的内容就如下了:
1 2 3 4 5 6 7 |
<IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php FcgidConnectTimeout 120 DefaultMaxClassProcessCount 10 MaxRequestLen 15728640 IPCCommTimeout 300 </IfModule> |
再次重启apache,运行出错的php脚本测试,成功得到结果,没有再出现500错误,问题解决。
Ubuntu下转换Putty的.ppk为OpenSSH支持的KEY文件
在Windows 中使用Git的时候,习惯使用TortoiseGit来进行Git的管理。
TortoiseGit在提交代码的时候,使用Putty来实现SSH通信,Putty的Key文件为.ppk格式的文件,现在切换到Ubuntu之后,使用SmartGit来进行管理,而SmartGit 只支持OpenSSH 格式的Key文件,因此需要把Windows下面的.ppk文件转换为OpenSSH格式的文件。
具体操作如下所示:
1 2 |
$sudo apt-get install putty-tools $puttygen id_dsa.ppk -O private-openssh -o id_dsa |
然后指定生成的文件为Key文件,就可以正常使用了。
注意,命令中的转换参数全部为字母“O”,不是数字零“0”,只是前面是大写字符后面是小写字符。
Ubuntu 及衍生版本用户如何安装 SmartGit/HG
SmartGit/HG 是一款开放源代码的、跨平台的、支持 Git 和 Mercurial 的 SVN 图形客户端,可运行在Windows、Linux 和 MAC OS X 系统上。可用的最新版本 SmartGit/HG 6.0.0,最近已发布。
Ubuntu及衍生系统用户安装,打开终端,使用以下命令:
1 2 3 4 5 |
$ sudo add-apt-repository ppa:eugenesan/ppa $ sudo apt-get update $ sudo apt-get install smartgit |
Debian 用户安装命令:
1 2 3 4 5 |
$ sudo apt-get install gdebi $ wget https://www.syntevo.com/downloads/smartgit/smartgit-18_2_7.deb $ sudo gdebi smartgit-18_2_7.deb |
卸载命令:
1 |
$ sudo apt-get remove smartgit |