最新 | 最热门 | 最高评价

+0  记又一次对Makefile的重构

Tag: Technical | AWK
老王 发于 2021年08月21日 14:34 | 点击: 737 | 展开摘要
我平常有一个习惯,就是不断看以前写的代码,想着有没有哪些方面可以改进,如果每天能把代码可读性量变​ 1%,那么日积月累就是质变:前些天我们写过一次对 Makefile 的重构,去掉了一处重复代码的坏味道,没过多久我便又发现了一处重复代码的坏味道,本文就让我们看看如何消灭它!

让我们先把问题的来龙去脉搞清楚,在 Golang 项目里,一般推荐在根目录创建一个名为 tools.go 的文件,里面记录本项目依赖的相关工具,比如我的某个项目的 tools.go 如下:

// +b

查看全文: http://www.udpwork.com/item/18132.html

+0  Request Header Or Cookie Too Large

Tag: Technical | AWK | Nginx
老王 发于 2014年12月31日 11:45 | 点击: 2788 | 展开摘要
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。

首先,让我们想想为何 Nginx 不能用一个指令来搞定问题,而要用两个指令?为了搞清楚这个问题,我们不妨先看看官方文档的描述:

client

查看全文: http://www.udpwork.com/item/13701.html

+0  Poor Man PHP Profiler

Tag: Technical | AWK | PHP | Shell
老王 发于 2014年11月14日 18:50 | 点击: 2380 | 展开摘要
说起 Profiler,老派的 PHP 程序员会选 XDebug,新派的 PHP 程序员会选 Xhprof,不过我们公司的服务器上都没装,于是我写了这个「Poor Man PHP Profiler」。

既然不用 XDebug 和 Xhprof,我们就要自己找 Profiler 的数据源才行。好在 PHP 本身支持慢日志,而且里面包含了调用栈信息,还包含了文件路径和具体的行号:

Slow

理论上不用写什么工具,把这个日志从前到后看一遍就能发现系统哪里慢,但我们人穷志不短,

查看全文: http://www.udpwork.com/item/13518.html

+0  监控Netstat中的TCP数据

Tag: Technical | AWK
老王 发于 2014年05月11日 21:53 | 点击: 2627 | 展开摘要
通过netstat命令,我们能获取TCP数据,监控它们有助于了解系统。

如果netstat版本比较老的话,那么运行时可能会遇到下面的错误信息:

error parsing /proc/net/netstat: Success

假设操作系统是CentOS,让我们看看如何确认netstat隶属于哪个软件包:

shell> rpm -qf $(which netstat)
net-tools-<VERSION>

如上所示,得知netstat属于net-t

查看全文: http://www.udpwork.com/item/12234.html

+0  笨法算RPS

Tag: Technical | AWK | Gnuplot
老王 发于 2013年07月25日 23:22 | 点击: 2031 | 展开摘要
计算RPS最简单的方法是用一天的总访问量除以一天的总秒数,不过这样得出的结论只是一个平均值,无法反映各个时间点的真实情况,真正有价值的是即时的RPS数据,如果有一个比较好的监控系统的话,这并不难,可惜我没有,而且实际上我遇到的问题还要更复杂些:大部分接口是PHP写的,少部分接口是LUA写的,为了更有针对性,需要分别计算PHP和LUA的即时RPS数据。

这里让我们假设Web日志已经做了按天分割,如果你不清楚怎么搞,可以参考我前一段时间写的:「被遗忘的Logrotate」,日志

查看全文: http://www.udpwork.com/item/10291.html

+0  AWK 简明教程

Tag: Unix/Linux | 杂项资源 | 编程工具 | awk | gawk | Linux | Shell | Unix
陈皓 发于 2013年02月17日 08:38 | 点击: 2883 | 展开摘要
有一些网友看了前两天的《Linux下应该知道的技巧》希望我能教教他们用awk和sed,所以,出现了这篇文章。我估计这些80后的年轻朋友可能对awk/sed这类上古神器有点陌生了,所以需要我这个老家伙来炒炒冷饭。况且,AWK是贝尔实验室1977年搞出来的文本出现神器,今年是蛇年,是AWK的本命年,而且年纪和我相仿,所以非常有必要为他写篇文章。

之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的

查看全文: http://www.udpwork.com/item/9254.html

+0  DevOps的三板斧

Tag: Technical | AWK | DevOps | Gnuplot | Strace
老王 发于 2013年01月26日 22:31 | 点击: 2583 | 展开摘要
话说这些天电视上正在热映《隋唐英雄》,虽然我并没有看,但是对当年田连元老先生的评书联播《隋唐演义》却是记忆犹新,特别是故事里面讲到的程咬金的三板斧:拍蒜瓣、戳脚指甲盖、胡椒面,每每听来总是让人忍俊不禁,不过这些貌似无厘头的招数在实战中却往往有出奇制胜的效果,由此可见简单实用永远都是硬道理,在当前这个倡导DevOps的年代,我们这些程序员自然也要学一些运维方面的本事才好安身立命,下面结合一些真实案例说说我在日常工作中常用的三板斧。

第一板斧:AWK

Web服务器负载飙升,猜

查看全文: http://www.udpwork.com/item/9168.html

+0  说说Shell在代码重构中的应用

Tag: Technical | AWK | Grep | Linux | Sed | Shell
老王 发于 2011年03月18日 18:09 | 点击: 2385 | 展开摘要
代码重构(Code refactoring)有时是很枯燥的,字符串替换之类的操作不仅乏味,而且还容易出错,好在有一些工具可用,以PHP为例,如:Rephactor,Scisr等等,不过现成的工具往往意味着不够灵活,所以今天我要说说Shell在代码重构中的应用。

先来个简单的,假设我们要把PHP文件中的foo_bar全都替换成fooBar,那么可以如下:

方法一,使用Sed:

shell> find /path -name "*.php" -print0 | xar

查看全文: http://www.udpwork.com/item/4673.html

+0  浅谈Heatmap

Tag: Technical | AWK | Heatmap | Imagick | Javascript | PHP | Shell
老王 发于 2011年01月04日 14:51 | 点击: 2885 | 展开摘要
在自然界之中,蛇的眼睛有夜视功能,即便是茫茫黑夜,它也能轻而易举的找到猎物,这是因为任何物体都会辐射热红外,且辐射的高低和温度成正比,由于生命体的体温会明显高于周围环境的温度,所以在蛇眼面前便无处遁形。热红外成像被广泛应用于军事领域,比如士兵带上能识别热红外的眼镜后,就能轻而易举的发现藏匿的敌人,如下图所示:

热红外成像

唠叨了半天,听上去似乎有点跑题了,其实不然,对互联网从业者而言,同样需要有火眼金睛,以便识别网友的喜好,此时的衡量标准是点击,点击越多则表示越喜欢,此技

查看全文: http://www.udpwork.com/item/4680.html
|<<<1>>>| 一共1页, 9条记录