[原创] 如何查看一个Python进程在"干什么": py-spy 来帮忙

如果你觉得一个运行中的Python程序有问题,例如它的耗时比你预想的要长很多,那么你可能会想知道它到底在“干什么”,有很多方法可以实现这个目的,但是很多都是需要修改Python代码来配合的,这显然是让人最不爽的方式。
而 py-spy 这个工具提供了一种无侵入的方式来达成这个目的:

py-spy是Python程序的采样分析器。 它使你可以直观地看到Python程序花费的时间,而无需重新启动程序或以任何方式修改代码。 py-spy的开销非常低:为了提高速度,它是用Rust编写的,并且它与被分析的Python程序不在同一进程中运行。 这意味着py-spy可以安全地用于生产环境的Python代码。

阅读更多

[原创] IntelliJ推出的语法检查插件Grazie,没有现实意义

今天看到一篇推送的技术文章,说IntelliJ推出了一个语法检查插件Grazie,但它不是用于检查面向编译器的语法,而是用于检查面向人类的语法,比如引号里的字符串、注释语句里的语法,等等。我认为在当前的环境下,它没有意义——除非在一个有着严格要求(或者非常自律)的团队里,否则这种功能只能用来“折腾自己”,而不可能改善大家整体的代码状况。

阅读更多

[原创] 不要畏惧困难,提笔写作

首先我得承认,我原来打算写的很多技术方面的“系列文章”,在写了若干篇之后就没有后文了,一方面是因为忙于工作和生活(毕竟不是富裕人家),另一方面也是由于总觉得没有积累到一定程度,还不能准确地把想要写的东西表达出来。这我得检讨。

“我要写的这些,是不是太简单了?写出来会不会显得太low?”
“我要写的这个,我不确定对不对,写出来误导别人怎么办?被人取笑怎么办?”
“我这篇文章会不会太短了?就这么点东西好意思发出来吗?”

带着这些想法,我又成功地毙掉了我准备下笔的一个决定。

阅读更多

[原创] 小心PyCharm的import带来的unresolved reference误导

有时候你可能会遇到这样的故事:git clone一个Python的GitHub项目下来,配置好了对应的Anaconda环境,安装好了依赖的package,用PyCharm打开了项目,打开一个.py代码文件,发现PyCharm在文件开头几行就给标注了波浪线,提示unresolved reference XXX。而且,尽管PyCharm提示有错,你却可以运行代码。
“我完全就是按项目要求的版本装的各种依赖包,怎么会找不到这个定义?”你心里可能会很不爽。
这个时候,你要看清楚了,有可能是PyCharm给了你误导,其实你什么都做对了,只是PyCharm显示错了而已。

阅读更多

解决LaTeX for WordPress插件在PHP 7.0下失效的问题

最近WordPress管理后台提示我升级WordPress版本到5.2.1,但由于5.2.1最低要求的PHP版本是5.6,我使用的PHP比这个版本还低,因此只能升级PHP版本,同时又考虑到现在PHP 7比较主流,因此我从PHP 5.4直接升到了PHP 7。

阅读更多

[原创] 如何用Jackson解析含有转义字符的JSON到Java对象?

如果一个JSON字符串里有一个字段,它的值又是一个完整的JSON字符串,那么这时候,它可能会含有转义字符。举个例子,我们有一个文件  codelast.json,它的内容为一行字符串:

{"aaa":"{\"ccc\":\"ccc\",\"ddd\":\"ddd\"}","bbb":{"ccc":"ccc","ddd":"ddd"}}

现在要用Jackson解析它为一个Java对象,怎么做?

阅读更多

[原创] MAC配置(杂)

 在MAC里安装Ubuntu虚拟机,使用共享文件夹
宿主机:MAC OS
虚拟机:Ubuntu 16.04
首先在Virtualbox软件里设置好永久性的共享文件夹,但你会发现Ubuntu里根本看不到设置的共享文件夹,原因是你需要在虚拟机中安装Virtual Guest Additions软件,方法:Devices->Insert Guest Additions CD Image...,然后Ubuntu就会自动开始安装Virtual Guest Additions软件,安装好之后重启Ubuntu虚拟机,你会看到在Ubuntu文件管理器的左栏中多了一个共享文件夹的链接,不要以为此时就大功告成了,事实上现在还不能用,只要你一点击它,就会提示没有权限,原因是你需要在Ubuntu虚拟机中把你的当前用户添加到vboxsf用户组中:

sudo adduser codelast vboxsf

然后重启Ubuntu虚拟机,再点击共享文件夹试试看,问题解决。

阅读更多

[原创] 区块链科普(兼介绍以太坊)

本文根据各种公开的资料,对最近火热的区块链技术做作了一个简单的科普(并顺带介绍了一下以太坊),由于撰写本文时查询了较多网站,难以对文中摘抄的各种数据、例子一一列出引用出处,在此向原作者们表示感谢。

阅读更多

[原创] 解决Ubuntu 无法用 apt-get install 安装任何软件(dpkg: error processing package xxx)的问题

Ubuntu不知道什么原因,不能用 apt-get install 安装任何软件了,并且在屏幕上输出海量错误信息,非常迷惑人,例如下面这一例:

insserv: Starting vpnagentd_init depends on plymouth and therefore on system facility `$all' which can not be true!
insserv: There is a loop between service vpnagentd_init and mountkernfs if started
insserv:  loop involving service mountkernfs at depth 1
insserv: Starting vpnagentd_init depends on plymouth and therefore on system facility `$all' which can not be true!
......
insserv: Starting vpnagentd_init depends on plymouth and therefore on system facility `$all' which can not be true!
insserv: There is a loop between service vpnagentd_init and dns-clean if started
insserv:  loop involving service dns-clean at depth 1
......
insserv: Starting vpnagentd_init depends on plymouth and therefore on system facility `$all' which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: error processing package binfmt-support (--configure):
 subprocess installed post-installation script returned error exit status 1
No apport report written because MaxReports is reached already
                                                              Processing triggers for initramfs-tools (0.122ubuntu8.10) ...
update-initramfs: Generating /boot/initrd.img-4.13.0-32-generic
Errors were encountered while processing:
 udev
 grub-common
 grub2-common
 grub-pc-bin
 grub-pc
 resolvconf
 binfmt-support
E: Sub-process /usr/bin/dpkg returned an error code (1)

这里只列出了部分错误信息,实际上输出的内容极多,多得让人眼都瞎。

阅读更多

[声明] 关于“清屏网”(www.qingpingshan.com) 侵权本站原创文章的声明

声明:
“清屏网”(www.qingpingshan.com,网站备案号:豫ICP备15026204号) 未经本站授权,在转载本站原创文章的同时,不注明出处,并且恶意删除掉本站原文中的版权声明,已构成对本站原创文章的恶意侵权,本站要求其立即删除侵权链接!
2017.07.20更新:在多次邮件沟通后,对方网站已经删除了侵权链接。

阅读更多

[原创] 为nginx服务器网站添加HTTPS/配置SSL证书

网站使用HTTPS的好处就不用多说了,在当今凶险的互联网环境下,使用HTTP越来越不安全,所以我也决定把网站转成HTTPS。使用HTTPS,首先你需要有一张SSL证书。
曾经,收费的SSL证书很贵,一般人玩不起;随着互联网的发展,免费的SSL证书越来越普及,谁都可以很容易获取到,所以HTTPS的个人网站也越来越多。
其中,现在最流行的就是使用可靠的数字证书认证机构Let's Encrypt提供的免费SSL证书。

阅读更多

[原创] 为nginx添加SSL支持模块

因为网站要加SSL证书的原因,把nginx折腾了一番,结果SSL相关的配置加到了nginx的配置文件中后,nginx竟然启动不起来了,用 systemctl status nginx 查看到的错误信息大致如下:

Failed to start SYSV: Nginx is an HTTP(S) server, HTTP(S) reverse ...

于是用如下命令测试问题所在:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

其中,/usr/local/nginx/sbin/nginx 是我的nginx安装后的可执行程序路径,/usr/local/nginx/conf/nginx.conf 是我的nginx主配置文件路径。

阅读更多

[原创] LaTeX for WordPress插件更新MathJax Server地址

MathJax是WordPress的LaTeX for WordPress插件调用的library,用于在WordPress页面上渲染显示完美的数学公式,配置过程可以参考这个链接。
从2017.04.30开始,MathJax CDN服务正式关闭(官方通知在这里),因此,如果我们原来在LaTeX for WordPress插件中配置的“MathJax Server”选择的是“MathJax CDN”,那么就会有问题了——服务将不再可用,这会导致数学公式在WordPress页面上不能被渲染显示。

阅读更多

[原创] 解决JAVA访问Elasticsearch的问题:org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available

本文对应的的Elasticsearch(简写为ES,下同)版本:2.3.5
注:本文写作于多年以前,现在ES已经不提倡使用本文的 TransportClient 来操作ES了,而应使用RestClient。所以本文仅做参考! 2020.08.25

使用Elasticsearch的 JAVA API 来读取其存储的数据,如果遇到这个问题:

org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available

此时,需要确认代码里写的一些配置是正确的。下面,就通过一个实例,来说明如何正确地读取ES里的数据。

阅读更多