飞污熊博客

静下心来做一件事

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表), 而无需将用户名和密码提供给第三方应用。

OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。 每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。 这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

目前最新版本是OAuth 2.0,这里我通过用户使用 github 登录在我的博客网站上留言为例,简述 OAuth 2.0 的运作流程。

阅读全文 »

最近在做ceph的日志盘分区时候遇到一些问题记录下来。比较古老的分区工具是使用fdisk,后来因为磁盘越来越大, 而fdisk遇到分区容量超过2TB时无能为力,并且分区还要限制最多4个主分区。越来越不适用现代磁盘, 后来有了parted工具专门用来对大磁盘分区的。

硬盘分区最常见的类型为msdosgpt,前者表示MBR分区,而后者表示GPT分区。

传统的BIOS只支持MBR分区硬盘启动,一个硬盘只能分成四个分区,并且单个分区最大不超过2TB。 EFI支持GPT分区启动的,GPT分区没有分区数目的限制并且单个分区可以超过2TB。

阅读全文 »

首先通过PyQt5来创建一个GUI程序,比如我写的一个简单的计算器程序目录如下: img.png

运行效果如下: img.png

需要将这个GUI打包成windows上面的exe文件。发现了2个都能对python项目打包的工具:pyintaller和nuitka。

这2个工具同时都能满足项目的需要,两者都具备的优点:

  1. 隐藏源码。这里的pyinstaller是通过设置key来对源码进行加密的; 而nuitka则是将python源码转成C++(这里得到的是二进制的pyd文件,防止了反编译),然后再编译成可执行文件。
  2. 方便移植。用户使用方便,不用再安装什么python啊,第三方包之类的。
阅读全文 »

PyQt5工具可以快速实现简单的界面开发,包括界面设计、布局管理以及业务逻辑实现(信号与槽)。 简单说就是使用PyQt5工具可以快速画一个控件摆放整齐、界面整洁有序、布局合理的界面。

阅读全文 »

Read the Docs是一个在线文档托管服务, 你可以从各种版本控制系统中导入文档,如果你使用webhooks, 那么每次提交代码后可以自动构建并上传至readthedocs网站,非常方便。

一般来讲,这个非常适合写软件文档以及编写一些教程、电子书之类。对于一些一两篇文章就能写清楚的可以记笔记或写博客, 但是如果要写成一个系列的,不如写成一本书的形式,更美观,也更系统。

现有的写电子书的方式,有以下几个解决方案,优劣势也很明显:

  • 写博客,跟散文堆在一起,不便索引。
  • GitHub Wiki,适合做知识整理,但排版一般,不方便查看。
  • GitBook,样式不好看,访问速度慢。

经过比较最后锁定Sphinx + GitHub + ReadtheDocs 作为文档写作工具,用 Sphinx 生成文档,GitHub 托管文档,再导入到 ReadtheDocs。

阅读全文 »

wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。 使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。 为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。

wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。 如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP就用wireshark。

阅读全文 »

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和JConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具, 每一种工具都有其自身的特点, 用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测, 先通过一个表格形式简要介绍下这几个命令的作用和使用方法。

命令 作用
jps JVM进程ID查询工具
jstat JVM统计信息监测工具
jstack 查看某个Java进程内的线程堆栈信息
jmap jmap导出堆内存,然后使用jhat来进行分析
jhat jmap导出堆内存,然后使用jhat来进行分析
hprof hprof能够展现CPU使用率,统计堆内存使用情况
阅读全文 »

VisualVM是功能最强大的运行监控和故障处理工具之一,曾经很长一段时间是Oracle官方主力发展的虚拟机故障处理工具。 它除了常规的运行监视、故障处理外,还提供性能分析(Profiling)。VisualVM不需要被监视程序基于特殊Agent去运行, 因此它的通用性极强,对应用程序实际性能影响很小,使得它能直接应用在生产环境中。

从JDK9开始,不再打包到JDK中,需要单独下载。

阅读全文 »