最新 | 最热门 | 最高评价

+5  对比Imagick和Gmagick的像素迭代功能

Tag: Technical | Gmagick | Imagick | PHP
老王 发于 2010年10月17日 17:45 | 点击: 1630 | 展开摘要
通常,图像处理工作都是诸如缩略图,水印之类的简单工作,不过有的时候会复杂些,比如像素迭代,本文通过一个实例对比Imagick和Gmagick的像素迭代功能:

像素数据生成代码

<?php

$data = array();

for ($row = 0; $row < 100; $row++) {
for ($column = 0; $column < 100; $column++) {
$data[$row][$column]

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

+3  静态类的原罪

Tag: Technical | PHP
老王 发于 2011年08月14日 22:57 | 点击: 1361 | 展开摘要
黑格尔有句名言:存在即合理。以此为论据的话,静态类的存在自然有其合理性。不过物极必反,一旦代码过于依赖静态类,其劣化的结局则不可避免。这就好比罂粟作为一种草本植物,有其在药理上的价值,但如果肆无忌惮的大量使用,它就变成了毒品。

什么是静态类

所谓静态类指的是无需实例化成对象,直接通过静态方式调用的类。代码如下:

<?php

class Math
{
public static function ceil($value)
{
ret

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

+2  正确重置MySQL密码

Tag: Technical | MySQL
老王 发于 2011年06月12日 15:37 | 点击: 2066 | 展开摘要
谁都不想弄丢家门钥匙,但不管多么小心,时间长了,这样的事情总会发生几次。MySQL密码也是一样,把它写在文档上不太安全,记在脑子里又难免会忘记。

如果你忘记了MySQL密码,如何重置它呢?

下面是错误答案:

首先停止MySQL服务,然后使用skip-grant-tables参数启动它:

shell> /etc/init.d/mysql stop
shell> mysqld_safe --skip-grant-tables &

此时无需授权就可以进

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

+1  MySQL主从服务器数据一致性的核对与修复

Tag: Technical | MySQL
老王 发于 2013年05月03日 21:40 | 点击: 1263 | 展开摘要
我上一次遇到MySQL主从服务器数据一致性问题,想想是几年前的事情了,还依稀记得当时惊慌失措的情景,好在最后借助Maatkit解决了问题。几年后,当我再次面对同样的问题时,Maatkit已经不复存在,转而成为了Percona Toolkit的一部分,不变的是我依旧手忙脚乱,所以还是记录一下吧,保不准啥时候又会遇到这个问题。

如果你在MySQL从服务器上遇到类似下面的错误信息,那么恭喜你中招了:

mysql> SHOW SLAVE STATUS\G

Last_Err

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

+1  实现一个简单的服务端推方案

Tag: Technical | Lua | Nginx
老王 发于 2012年09月28日 16:34 | 点击: 2362 | 展开摘要
客户端和服务端的交互有推和拉两种方式:如果是客户端拉的话,通常就是Polling;如果是服务端推的话,一般就是Comet,目前比较流行的Comet实现方式是Long Polling。

注:如果不清楚相关名词含义,可以参考:Browser 與 Server 持續同步的作法介紹。

先来看看Polling,它其实就是我们平常所说的轮询,大致如下所示:

Polling

因为服务端不会主动告诉客户端它是否有新数据,所以Polling的实时性较差。虽然可以通过加快轮询频率的方式来

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

+1  Nginx与Lua

Tag: Technical | Lua | Nginx
老王 发于 2012年08月31日 17:05 | 点击: 2875 | 展开摘要
火云邪神语录:天下武功,无坚不破,唯快不破!Nginx的看家本领就是速度,Lua的拿手好戏亦是速度,这两者的结合在速度上无疑有基因上的优势。

最先将Nginx,Lua组合到一起的是OpenResty,它有一个ngx_lua模块,将Lua嵌入到了Nginx里面;随后Tengine也包含了ngx_lua模块。至于二者的区别:OpenResty是Nginx的Bundle;而Tengine则是Nginx的Fork。值得一提的是,OpenResty和Tengine均是国人自己创建的项

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

+1  Redis高可用性之Failover过渡方案

Tag: Technical | Failover | Redis
老王 发于 2011年11月29日 18:27 | 点击: 1515 | 展开摘要
稍后重写

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

+1  OAuth的改变

Tag: Technical | OAuth
老王 发于 2011年11月08日 11:56 | 点击: 1616 | 展开摘要
去年我写过一篇《OAuth那些事儿》,对OAuth做了一些简单扼要的介绍,今天我打算写一些细节,以阐明OAuth如何从1.0改变成1.0a,继而改变成2.0的。

OAuth1.0

在OAuth诞生前,Web安全方面的标准协议只有OpenID,不过它关注的是验证,即WHO的问题,而不是授权,即WHAT的问题。好在FlickrAuth和GoogleAuthSub等私有协议在授权方面做了不少有益的尝试,从而为OAuth的诞生奠定了基础。

OAuth1.0定义了三种角色:Use

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

+1  优化InnerHTML操作

Tag: Technical | Javascript | Performance
老王 发于 2011年06月19日 15:00 | 点击: 1605 | 展开摘要
多数现代浏览器都实现了innerHTML操作,它的方便性让我们爱不释手,但如果使用不当,很容易出现效率问题,本文通过一个例子来说明如何优化innerHTML操作。

例子:我们要实现的效果是当用户点击鼠标的时候,就在旧数据上追加若干新数据。

如果使用标准DOM的话,完整代码如下:

<html>
<head>
<title>test</title>
</head>
<body>
<div>

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

+1  MySQL和MongoDB设计实例对比

Tag: Technical | MongoDB | MySQL
老王 发于 2011年06月08日 22:51 | 点击: 1962 | 展开摘要
MySQL是关系型数据库中的明星,MongoDB是文档型数据库中的翘楚。下面通过一个设计实例对比一下二者:假设我们正在维护一个手机产品库,里面除了包含手机的名称,品牌等基本信息,还包含了待机时间,外观设计等参数信息,应该如何存取数据呢?

如果使用MySQL的话,应该如何存取数据呢?

如果使用MySQL话,手机的基本信息单独是一个表,另外由于不同手机的参数信息差异很大,所以还需要一个参数表来单独保存。

CREATE TABLE IF NOT EXISTS `mobiles

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

+0  谈谈推荐排序

Tag: Technical
老王 发于 2017年04月25日 16:37 | 点击: 320 | 展开摘要
本文说的排序并不是指「冒泡」之类的技术概念,而是一个业务相关的问题。

举例来说:某个网站,每天都能产生很多数据,需要一个推荐列表页面来展示数据。最初是完全按照时间倒序来排序的,但是这样就产生了一个问题:新鲜的数据不一定是有价值的数据!假设某个时段灌水的数据比较多,那么用户当时在列表页看到的就都是灌水的内容。既然如此,不妨换个思路:给每个数据投票,投票规则可以按业务逻辑自定义,比如:每次评论加一票,每次转发加两票等等。然后按照投票数来倒序是不是就可以了?可惜还有问题:有价值的

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

+0  买不起Alfred和Dash怎么办

Tag: Technical
老王 发于 2017年03月02日 19:37 | 点击: 398 | 展开摘要
对于码畜而言,如果使用 Mac 笔记本的话,那么 Alfred 和 Dash 基本属于必装软件,其中 Alfred 可以免费使用,但是高级的 Powerpack 功能需要付费,而 Dash 则更进一步,不仅要付费购买,连后续升级也要花钱。这点钱对于富人来说或许不算什么,但对我这种工薪阶层来说就不一样了,能省就省,于是我折腾了一个不花钱的替换方案。

说到这里,不得不提到 DevDocs,它集成了很多 API 文档,完全可以替换 Dash。打开系统缺省的浏览器,激活需要的文档,

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