最新 | 最热门 | 最高评价

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

Tag: Technical | Gmagick | Imagick | PHP
老王 发于 2010年10月17日 17:45 | 点击: 2953 | 展开摘要
通常,图像处理工作都是诸如缩略图,水印之类的简单工作,不过有的时候会复杂些,比如像素迭代,本文通过一个实例对比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 | 点击: 2418 | 展开摘要
黑格尔有句名言:存在即合理。以此为论据的话,静态类的存在自然有其合理性。不过物极必反,一旦代码过于依赖静态类,其劣化的结局则不可避免。这就好比罂粟作为一种草本植物,有其在药理上的价值,但如果肆无忌惮的大量使用,它就变成了毒品。

什么是静态类

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

<?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 | 点击: 3296 | 展开摘要
谁都不想弄丢家门钥匙,但不管多么小心,时间长了,这样的事情总会发生几次。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  一个select死锁问题

Tag: Technical | Golang
老王 发于 2021年08月29日 21:12 | 点击: 1198 | 展开摘要
话说前几天我遇到了一个死锁问题,当时想了一些办法糊弄过去了,不过并没有搞明白问题的细节,周末想起来便继续研究了一下,最终便有了这篇文章。

让我们搞一段简单的代码来重现一下当时我遇到的问题:

package main

import "sync"

func main() {
var wg sync.WaitGroup
foo := make(chan int)
bar := make(chan int)
closing := make(chan struct{})

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

+1  Evil Emacs, best of both worlds?

Tag: Linux | Technology | Windows
Haidong Ji 发于 2013年07月25日 04:15 | 点击: 3317 | 展开摘要
First, let’s get this out of the way. This is not a rant against Vim, or Emacs, for that matter. I am not interested in joining the epic religious battle between the two. In fact, if you are not using either one, I highly recommend le

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

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

Tag: Technical | MySQL
老王 发于 2013年05月03日 21:40 | 点击: 2473 | 展开摘要
我上一次遇到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 | 点击: 3506 | 展开摘要
客户端和服务端的交互有推和拉两种方式:如果是客户端拉的话,通常就是Polling;如果是服务端推的话,一般就是Comet,目前比较流行的Comet实现方式是Long Polling。

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

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

Polling

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

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

+1  v970 2.5g /data 达成

Tag: Tech Notes
kxn 发于 2012年09月09日 22:00 | 点击: 3234 | 展开摘要
昨晚捣鼓了下,发现比想象的容易很多。分区信息并不是写死的。而是在emmc设备的开始有分区表。因此手动改改分区表再重启格式化即可。然后发现把最后一个分区完全删掉也没问题。改改vold.fstab就行。有时间的话甚至可以做个完美卡刷包出来。

对于 V970 来说,他的分区数量超过了四个,因此里面有一个扩展分区,恰好我们要修改的最后两个分区都在这个扩展分区里面,于是只要修改 /emmc@ebr1 文件里面的分区表即可。用 dd if=/emmc@ebr1 of=/sdcard/t

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

+1  Nginx与Lua

Tag: Technical | Lua | Nginx
老王 发于 2012年08月31日 17:05 | 点击: 4165 | 展开摘要
火云邪神语录:天下武功,无坚不破,唯快不破!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  PHP与Recursion

Tag: Technical | PHP | Recursion
老王 发于 2012年06月25日 18:13 | 点击: 7006 | 展开摘要
在程序设计中,递归(Recursion)是一个很常见的概念,合理使用递归,可以提升代码的可读性,但同时也可能会带来一些问题。

下面以阶乘(Factorial)为例来说明一下递归的用法,实现语言是PHP:

<?php

function factorial($n) {
if ($n == 0) {
return 1;
}

return factorial($n - 1) * $n;
}

var_dump(factorial(

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

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

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

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

+1  OAuth的改变

Tag: Technical | OAuth
老王 发于 2011年11月08日 11:56 | 点击: 2663 | 展开摘要
去年我写过一篇《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
|<<<1234567>>>| 一共30页, 355条记录