wamp2.5的x64下安装imagick扩展

Posted on 2014-12-11 14:27:32 | 2 comments | 3725℃ | PHP

前言

最近遇到一个问题,在wamp2.5下装这个imagick扩展,不是phpinfo()找不到扩展,就是在phpinfo()里面的imagick详情显示: imagemagick supported formats no value 和 ImageMagick number of supported formats 为0,在运用了google无数次后,最后终于找到了解决办法,现在将其共享出来

解决办法

wamp版本信息:

  1. wamp2.5 x64
  2. php5.5.12 x64 TS VC11

第一步

http://pecl.php.net/package/imagick

去下载最新的稳定版本的扩展,直接下载地址为:

http://windows.php.net/downl...

astar(a星)最短路径寻路算法的PHP实现

Posted on 2014-12-01 10:53:38 | 0 comments | 4925℃ | PHP

关于A星算法

astar(a星)最短路径寻路算法,在游戏里面运用比较多,具体算法说明可参考这篇博文,里面讲得很仔细,也很生动:http://www.imsiren.com/archives/960,关键点:

  1. 将方块S添加到open列表中。
  2. 将S从open列表移除,然后添加S到closed列表中。
  3. 对于与S相邻的每一块可通行的方块T:
    • 如果T在closed列表中:不管它。
    • 如果T不在open列表中:计算出它的F,G,H值,并且将T的父节点设置为S,并将T添加到open列表中。
    • 如果T已经在open列表中:检查G值是否更小。如果是,则更新它的F,G,H值,并且将T的父节点设置为S。

实现效果

![image](/uploads...

重装系统后chrome无法进行账号同步怎么办?

Posted on 2014-11-30 06:01:31 | 3 comments | 2213℃ | 杂文

前言

每次重装系统,或在一台新机器上使用chrome(官方离线安装包,用工具下载即可如迅雷,旋风),同步账号就变成了硬伤,除了挂vpn有没有其他好的解决方案呢?这里提供一个自己的解决方案。

众说周知,高版本的chrome,禁止了本地安装扩展,所有扩展必须去google的webstore里面去安装,那么这就意味着们新机器无法通过扩展SwitchySharp来同步google账号了,那么怎么解决呢?其实也很简单。

解决办法

第一步

找一个可以下载SwitchSharp的地方,把它下载到们本机。

从哪里找呢?这里借助于七星...

一个自用的基于node-webkit的web开发人员工具合集

Posted on 2014-11-23 08:45:39 | 0 comments | 2608℃ | Javascript

新版本:https://hisune.com/view/44/electron-hct

关于HCT

10月份的时候了解了一下nodejs和node-webkit,由于之前的开发工具都是用的放到自己网站上的工具,主机又是在香港,很多时候速度很慢,于是看到node-webkit的特性后想到用这个东西做一个本地版的web开发工具,现将其共享出来。

特性

Hisune Coder Tools支持的工具有:

  1. shadowsocks翻墙工具(核心代码来自shadowsocksui)
  2. json编辑器(核心代码来自json editor online)
  3. html+js+css实时编辑器(感谢jsfiddle)
  4. ip归属地、ping、trace查询
  5. md5、base64、unixtimest...

nodejs中md5,sha1,base64编码中文不对的问题

Posted on 2014-10-16 04:39:04 | 0 comments | 3844℃ | Javascript

前言

昨天寒风在用node-webkit写一个小应用的时候,发现这样一个问题,nodejs的utility对页面用户输入的中文进行md5、sha1加密和base64编码解码时结果不对。

在确认用户输入无误且左右空格都去除的情况下,怀疑是编码问题。但查看文件和页面配置都是utf8的编码,于是有点没有头绪,但还是觉得是编码方面的问题,因为英文是正确的。

解答

一直以来,对编码方面的东西了解不是很深入,后面谷歌了很久,网上说javascript对中文的处理是utf16,而不是utf8,这个有点意外,于是找到这两个函数:utf16to8,utf16to8。

将用户输入这样处理:

var input = utf16to8($('#decode-input').val());

然后用util...

让Photoshop支持ico格式文件

Posted on 2014-09-04 13:12:42 | 0 comments | 3379℃ | 杂文

在上一篇博文里面说过,要做一个favicon.ico。但又不想借助其他网上的各种小软件,于是想找一种Photoshop的解决方案。

photoshop默认是不支持ico格式的文件编辑与保存的,通常设计和修改ico文件需要借助其他软件。但有一款ps插件可以让其支持ico格式文件编辑。软件下载地址:

http://www.telegraphics.com.au/sw/icoformat.zh.html

注意需根据自己的ps版本下载。亲测,windows的x64版本也是支持cs6的。

另外,新建文件是,最好新建64 X 64或32 X 32像素的文件,由于标准ico文件是32 X 32或16 X 16像素,如果新建文件像素过高,保存文件时将不会出现ico格式的选项!

浏览器的隐藏请求favicon.ico

Posted on 2014-09-03 05:08:43 | 2 comments | 5175℃ | 杂文

前言

今天发现hisune.com的错误日志文件很大,以为哪里代码出问题了,赶紧down下来看了一下,都是控制器未找到的错误。

并且发现是Controller\Faviconico未找到的错误,刚看这个名字有点奇怪,为啥会有这个请求?后面仔细一看,这不就是favicon.ico吗?

来源

开始怀疑是cnzz统计数据的时候抓了网站的ico,但后面一想,貌似浏览器会去抓这个东东用来显示在浏览器里面,那么真相大白了!

打开chrome的开发工具发现并没有hisune.com/favicon.ico的这条请求:

image

这也是应该的,这不算一条用户的正常请求。

捉奸

既然开发工具里面...

php的异步http请求解决方案

Posted on 2014-09-02 14:41:14 | 0 comments | 3249℃ | PHP

前戏

如果想用php实现一个http异步请求,是否能做到呢?

正题

答案是肯定的,以下是的socket解决方案:


function makeRequestAsync($url, $params = array(), $type='POST')
{
    $query_string = '';
    if(is_array($params) && !empty($params))
        $query_string = http_build_query($params);
    elseif(is_string($params))
        $query_string = $params;

    $type = s...

php5.5新特性之yield性能测试

Posted on 2014-08-18 14:09:49 | 0 comments | 3504℃ | PHP

前言

最近工作有点忙,好不容易抽空更下博客。

yield是php5.5新出来的一个关键字,它可以让你无需将一个生成的数组赋值后操作,而是仅返回一个数组元素并将指针next,这样可以很大程度上节省你的内存。

性能测试

那么yield的性能到底如何呢?由于项目中有用到这个关键字,所以这里测试了一下,测试环境apache+php5.5.12,本机windows环境。

先来看普通的方法:

普通模式


// 需要测试的核心函数
function test()
{
    $array = array();
    for($i = 0; $i < 10000; $i++){
        $array[] = 'item_' . $i...

mysql大数据测试-批量生成测试数据

Posted on 2014-08-08 04:21:39 | 2 comments | 5448℃ | Mysql

前言

如果你想在一个项目的研发阶段测试一个mysql表的分区和索引是否合理,但又没有生产环境中的数据进行测试怎么办呢?最近遇到了这个问题,这个时候可以手动生成一些数据来测试。

当然,你可以写个php程序用while去循环插入mysql,但这种方式效率不是很高,们还有更好的办法,那就是mysql的存储过程。

存储过程

下面是的一个生成测试数据的一个mysql函数,适当进行修改,可以用在任意表结构中:


delimiter $$
create procedure insert_test(in counter integer, in time_stamp integer)
  begin
    while...
UP