最新 | 最热门 | 最高评价

+0  使用Imagick实现图像直方图

Tag: Technical | Imagick | PHP
老王 发于 2011年03月05日 16:38 | 点击: 1437 | 展开摘要
玩过单反相机的人应该都知道图像直方图(Image Histogram),简单点说,它通过计算每个色阶在总像素中所占的比例来反映图像的曝光情况。我并不打算详细解释专业名词,有兴趣的读者可以查阅文章结尾处的参考链接,那里有通俗易懂的解释:

我们先找一个例子图像(用Canon 550D拍的):

例子图片:butterfly.jpg

下面看看如何使用Imagick实现图像直方图:

<?php

$file = 'butterfly.jpg';

$size = arra

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

+0  Javascript中的函数声明和函数表达式

Tag: Technical | Javascript
老王 发于 2011年03月02日 12:45 | 点击: 1170 | 展开摘要
Javascript有很多有趣的用法,在Google Code Search里能找到不少,举一个例子:

<script>
~function() {
alert("hello, world.");
}();
</script>

试一下就知道这段代码的意思就是声明一个函数,然后立刻执行,因为Javascript中的变量作用域是基于函数的,所以这样可以避免变量污染,但这里的位运算符『~』乍一看让人摸不到头脑,如果去掉它再运行则会报错:Synta

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

+0  在MongoDB中模拟Auto Increment

Tag: Technical | MongoDB | PHP
老王 发于 2011年02月09日 16:33 | 点击: 1504 | 展开摘要
MySQL用户多半都有Auto Increment情结,不过MongoDB缺省并没有实现,所以需要模拟一下,编程语言以PHP为例,代码大致如下所示:

<?php

function generate_auto_increment_id($namespace, array $option = array())
{
$option += array(
'init' => 1,
'step' => 1,
);

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

+0  PHP数组交集的优化

Tag: Technical | PHP
老王 发于 2011年01月30日 17:52 | 点击: 1473 | 展开摘要
假设我们正在运营一个手机相关的网站,用户可以通过指定若干参数(如操作系统,屏幕分辨率,摄像头像素等等)来筛选自己想要的手机。不过由于手机的参数多,且不同的手机其参数差异大,所以参数表结构通常是纵表(一个参数是一行),而不是横表(一个参数是一列),此时使用若干参数来取结果,通常就是把每个单独参数来取结果,再一起取交集。

假定每个参数会包含一千个左右的产品ID(int),以此为前提来模拟生成一些数据:

<?php

$rand = function() {
$r

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

+0  基于PECL OAuth打造微博应用

Tag: Technical | OAuth | PHP
老王 发于 2011年01月16日 16:26 | 点击: 5236 | 展开摘要
最近,国内主要门户网站相继开放了微博平台,对开发者而言这无疑是个利好消息,不过在实际使用中却发现平台质量良莠不齐,有很多不完善的地方,就拿PHP版SDK来说吧,多半都是用TwitterOAuth改的,一旦多平台集成,很容易出现命名冲突之类的问题。

既然官方SDK不给力,那我们只能发扬自力更生的革命精神了!好消息是PHP本身已经有了一个标准的OAuth实现:PECL OAuth!下面以此为例来讲解一下如何实现微博应用:

说明:首先需要对OAuth概念有一定的了解,如不清楚可

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

+0  浅谈Heatmap

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

热红外成像

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

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

+0  完美实现GIF动画缩略图

Tag: Technical | GIF | ImageMagick | Imagick | PHP
老王 发于 2010年12月26日 14:35 | 点击: 2210 | 展开摘要
缩略图是个很常用的功能。它的实现并不复杂,但如果原图是GIF动画的话,问题就会变得繁琐一点,下面通过一个取自CS警匪游戏的GIF动画来说明问题:

GIF动画图片:old.gif

为了让问题更加清晰,我们先还原动画各帧:

选择一:用PHP中的Imagick模块:

<?php

$image = new Imagick('old.gif');

$i = 0;

foreach ($image as $frame) {
$frame->writeIma

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

+0  Umask补习班

Tag: Technical | Linux | Shell
老王 发于 2010年12月11日 16:13 | 点击: 1270 | 展开摘要
说起来umask是个很常见的命令,用在创建文件或目录时设置权限掩码,通常是0022:

shell> umask
0022

注:0022等价于022,0022中第一个0用于sticky-bit,本文不做讨论,有兴趣的请自查。

为了稍后演示的方便性,先在Windows上用7-zip创建两个文件:

foo.zip(包括:目录foo_dir,文件foo_file)

bar.tar(包括:目录bar_dir,文件bar_file)

当然,你可以不用Windows,我之

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

+0  使用MySQLBinlog按时间查询二进制日志时易疏忽的地方

Tag: Technical | MySQL
老王 发于 2010年11月20日 22:49 | 点击: 1389 | 展开摘要
使用mysqlbinlog按时间查询二进制日志时,会用到start-datetime和stop-datetime选项。

提示:MySQL二进制日志的名称缺省是HOSTNAME-bin,不过推荐通过log-bin设置,以防止HOSTNAME更改所带来的影响。二进制日志的目录可以使用如下方法得到:

mysql> SHOW VARIABLES LIKE 'datadir';
+---------------+-----------------+
| Variable_na

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

+0  采花大盗速成秘籍之YQL

Tag: Technical
老王 发于 2010年11月06日 18:35 | 点击: 1264 | 展开摘要
理想情况下,在一个和谐的网络里,应该允许网站彼此自由的分享数据,不过和谐的网络就好像和谐的社会一样,从未真正存在过,除了少数开放了API的网站,更多的时候,我们只能通过采集来获得数据,于是诞生了采花大盗

通常,要成为采花大盗的话必须熟悉正则,但对很多人来说,这是一个不低的技术门槛,不过雅虎推出的YQL改变了这种状况。YQL全称为Yahoo! Query Language,它把整个网络看做是一个数据库,用户可以通过类似SQL的方式进行查询,使用前可以先看看YQL Guid

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

+0  学习Grep,Sed中的正则

Tag: Technical | Grep | Linux | Regex | Sed | Shell
老王 发于 2010年10月31日 21:41 | 点击: 1242 | 展开摘要
正则要是几天不学习不用功,肯定会忘得一干二净,下面聊聊Grep,Sed中的正则。

问题:从一个文本文件里筛选出含有电话号码的行,电话号码是由七位或者八位阿拉伯数字组成(开头不是零),并且被单引号或者双引号包裹。

鉴于问题的需要,先杜撰一份数据:

shell> cat /path/to/data.txt
'7654321'
'7654321"
"87654321"
"87654321'

失败的尝试

shell> grep "(['\"])[1-9][0-9

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

+0  轻量级MySQL备份方案:AutoMySQLBackup

Tag: Technical | Backup | MySQL
老王 发于 2010年10月28日 22:43 | 点击: 1280 | 展开摘要
有句话说得好:“选择最好的不一定是最好的选择!”。AutoMySQLBackup算不上出类拔萃,但作为轻量级MySQL备份方案,对一些迷你项目而言,它绝对值得尝试。

AutoMySQLBackup使用起来简单方便,属于快餐型工具,操作步骤如下:

下载AutoMySQLBackup,是一个名字类似automysqlbackup.sh的shell脚本。

创建配置文件,缺省内容就是shell脚本中“START CFG”和“END CFG”之间的部分:

shell> m

查看全文: http://www.udpwork.com/item/5264.html
|<<<6789101112>>>| 一共12页, 135条记录