作为技术人员为什么要写博客
本文只代表个人见解,不代表任立场,如果您认为我的想法是错的那很正常,因为这是我的想法,如果您觉得您的想法和我一样,那我们就是传说中的 “激友”(对生活冲满激情的朋友)。进入正题。
一、我心中的博客我所以指的写博客,不单只是写一篇文章出来这一结果。而应该是写的这一过程,写过技术文章的朋友应该跟我一样有这么一个过程。
自己了解学习,文章所涉及到的知识点,及知识点衍生出来的知识点。
对学习的知识点进行验证,以确保理论值与实践值保持一致。
构思文章的大纲,哪些部分需要重点写,需要配合实例代码,图片等信息。
动手写,写完后再次检查校正并排版,然后发表。
针对网友的评论中提出的问题进行回复
我写文章一般都会经历以上5上步,最终以上5步融合成一个结果那就是”一篇文章” 这一过程也是我心中对的”写博客”一词的诠释
二、为什么要写博客为自己写博客对自己的提升是很大的,可能写一篇体现不出来,但是只要你坚持写效果就很明显,好处人个认为有以下几点
强化知识点在写一篇文章前,你必定是要把以文章中心为主的知识点及衍生的知识点都详细了解一篇,在这一过程中必须会涉及到自己以前所了解过的知识。
人的记忆是 ...
计算机字符编码
前言我们目前主流的计算机的确都是以二进制形式存储数据的。如00100101(其中的0是一个bit,1也是一个bit,这8个bit就是一个byte)。通常为了更方便表示二进制数据,也可以转换成16进制表示出来,0010 0101就可以用16进制的0x25来表示(1byte=2个16进制位=8bit=8个二进制位)。把字符转换成二进制数据的规则就是字符编码。
ASCII码ASCII(美国信息交换标准码)是美国国家标准定制的一套基于拉丁字母的电脑编码系统,可表示数字、字母等字符符号。一个ASCII码在计算机中由一个字节存储,因此它最多可表示256个符号(一个字节为8位,2的8次方等于256)。实事上,标准的ASCII编码时只用到了低7位(最高位统一为0,或者为奇偶校验位),故ASCII码可表示的数据一共只有128个(2的7次方)。这128个字符中,其中95个为可显示字符(可打印字符,比如数字、字母、标点符号),还有33个如比如“换行”之类的控制字符(控制字符主要是用来操控已经处理过的文字)。最后附上了ASCII码表:
常用字符对应的ASCII编码:
回车,ASCII码13(十进制,下同)换行 ...
Python知识点总结
前言Python,作为一个”老练”、”小清新”的开发语言,已受到广大才男俊女的喜爱。尽管当前网络上Python的资料很多,但是大多重复在很基础的语法,数据结构层面。所以在这里我想做一下自己在使用Python过程中一些知识点的总结。
args 和 *kwargs其实并不是必须写成*args 和**kwargs。 只有变量前面的 *(星号)才是必须的. 你也可以写成*var 和**vars. 而写成*args 和**kwargs只是一个通俗的命名约定。
*args 的用法*args 和 **kwargs 主要用于函数定义。 你可以将不定数量的参数传递给一个函数。
这里的不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。 *args 是用来发送一个非键值对的可变数量的参数列表给一个函数.
这里有个例子帮你理解这个概念:
123456def test_var_args(f_arg, *argv): print("first normal arg:", f_arg) for arg in argv: p ...
Linux上查找最大文件的三种方法
在服务器上,经常会因为一些日志文件被大量生成和写入而占用磁盘,如果不定期清理,则会导致服务器磁占满从而服务挂掉,而服务器提供商往往只有磁盘告警(一些小厂商连告警都没有),这里记录(copy)一下查找最大文件的几种方式方便快速清理,对于日志量大的服务可以写脚本定期清理。
第一种:ls最简单的方法就是借助 ls 命令,因为 ls 命令本身输出是带文件大小信息的。
比如,我要列出 /bin 目录中的 5 个最大文件,可以:
1ls -lSh /bin | head -5
第二种:findfind 本身就是查找命令,可以递归查找一个目录的子目录,所以用它是自然的。
比如,查找 / 目录下最大的一个文件:
1sudo find / -type f -printf “%s\t%p\n” | sort -n | tail -1
如果要找前 10 个大文件呢,可以这样:
1$ find $HOME -type f -printf ‘%s %p\n’ | sort -nr | head -10
也可以使用 -size 选项来查找,以下命令将显示大于100MiB(注意不是100MB,MiB和MB ...
如何提升Linux命令行下的效率
工作了一段时间后,我越来越喜欢Linux的哲学。如果工作中没有了命令行的陪伴,我的工作效率可能会大打折扣。很多初学Linux的人都会被起步眼花撩乱的命令而劝退。诚然,学习Linux是一个长期积累的过程,难以一蹴而就。Linux有非常多的命令,它们看起来每个命令仅仅完成了一个很小的功能,但是如果你开动脑筋将这些命令组合起来的话,就可以实现很多让你意想不到的功能,这一点在我的工作中有深刻的体会(快速定位Bug日志,快速杀掉指定的进程,快速完成文本的统计,去重,排序等等)。当然还有强大的Vim,虽然我现在也是用的不太习惯,只会一些基本的操作。我看到过很多Linux教程,这些书对每一个命令,每一个参数都有详细的描述。但是这些大而全的书很容易将我这样难以坚持看书的人劝退。所以在这里我讲记录一下我学习Linux命令并不断提升效率的一些过程。在这里我也会推荐一篇文档《命令行的艺术》,里面记录了很多在使用命令行下的最佳实践。
终端快捷键快捷键应该是每一个需要和终端天天打交道的程序员必备的技能了,如果你还停留在每次前后左右一个字符一个字符移动光标的话,那你需要好好学习下面的终端快捷键,这可以大大提高 ...
浅谈Linux命令之“|”和xargs
在众多命令中,我认为管道 | 和 xargs 这两个命令是尤为重要的,因为这两个命令可以随时组合其他的命令,完成很多强大的功能。比如我想查找此时运行的python进程:ps aux|grep python等等。至于其他的命令我在这里也就不一一列举了,在很多博客,书籍中写得很详细了。由于学习中的二八定律,你不必要每一个命令都记地准确无误,真正常用的命令可能只涉及到20%,涉及到记忆模糊的命令搜索一下就好了,重要的是你要会把这一个个命令学会组合起来,对于常用的组合命令,你可以将它写进alias,便于以后随时调用。
管道符 |Linux所提供的管道符 | 将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
1$ cat /etc/passwd | grep root
上面的代码使用了管道命令(|)。管道命令的作用,是将左侧命令(cat /etc/passwd)的标准输出转换为标准输入,提供给右侧命令(grep root)作为参数。
因为grep命令可以接受标准输 ...
黑苹果一键开启HiDPI
黑苹果和白苹果最大的区别其实在显示效果上。同样一个网页,白苹果的显示就会细腻很多,而黑苹果颗粒感非常严重,造成上述原因是因为大多数苹果设备的屏幕本身的分辨率很高,如果你的显示器分辨率达到视网膜级别的话,哪怕是黑苹果也是默认开启 HiDPI 的。So 本人的2k分辨率显示器就很尴尬了,下面记录一下开启HiDPI的过程。
HiDPI的概念有关retina和HiDPI那点事
总之 HiDPI 是苹果一个牛逼的显示技术,通过牺牲一定的分辨率实现更细腻的显示效果,这就是为什么 2K 显示器开启 HiDPI 的效果要比 1080P 好的原因了。
黑苹果开启原生HiDPI终端中运行如下命令
1sh -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/master/hidpi.sh)"
如果出现curl: (7) Failed to connect to raw.githubusercontent.com port 443:xxx,应该是被墙了,挂上梯子就好了,可以在终端中临时设置使用代理
...
MySQL千万级别大表,教你如何优化
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:
单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:
字段•尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED•VARCHAR的长度只分配真正需要的空间•使用枚举或整数代替字符串类型•尽量使用TIMESTAMP而非DATETIME,•单表不要有太多字段,建议在20以内•避免使用NULL字段,很难查询优化且占用额外索引空间•用整型来存IP
索引•索引并不是越多越好,要根据查询有针对性的创建,考虑在WHERE和ORDER BY命令上涉及的列建立索引,可根据EXPLAIN来查看是否用了索引还是全表扫描•应尽量避免在WHERE子句中对字段进行NULL值判断,否则将导致引擎放弃使用索引而进行全表扫描•值分布很稀少的字段不适合建索引, ...
ApacheBench HTTP服务器基准测试工具使用总结
ApacheBench(ab)是用于对Apache超文本传输协议(HTTP)服务器进行基准测试的工具。ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。ab命令对发出负载的计算机要求很低,既不会占用很高CPU,也不会占用很多内存,但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也须注意,否则一次上太多的负载,可能造成目标服务器因资源耗完,严重时甚至导致死机。
ApacheBench安装macOSMac下自带apache,查看版本:
1apachectl -v
查看ab版本:
1ab -V
WindowWindows系统Apache:下载链接
LinuxUbuntu
1apt-get install apache2-utils
CentOS
1yum -y install httpd-tools
ApacheBench使用Optionsab压力测试工具的用法,查看:
123 ...
Docker部署并破解Jira、Confluence及插件
JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。
准备工具
Jira镜像:Docker Hub链接
Confluence镜像:Docker Hub链接
Mysql镜像:Docker Hub链接
破解工具:下载链接
至于Docker和Docker Compose的安装这里就不再赘述,Docker官方文档讲解的很清楚。
PS:Docker官网下载慢的话可以使用 清华大学开源软件镜像站,Docker镜像拉取慢的话可以使用阿里云的容器镜像服务镜像加速器
制作镜像Jira目录结构
123Jira/ atlassian-agent.jar Dockerfile
Dockerfile
123456789FROM cptactionhank/atlassian-jira-software:la ...