phantomjs实现swf Flash转png图片

因为在项目中需要将大量的swf格式的flash文件转换为web图片格式,而且有可能的话还要获取flash中可以点击的按钮的热点位置。

一般的分析流程是swf格式的flash图片需要先反编译才能得到矢量、图片、文字、frame、shape、button、path等信息,然后将反编译后得到的资源进行导出。或者直接对swf运行到最后的显示界面进行截图,这显然是一个很耗时的研究工程。后面发现Sothink SWF Decompiler(硕思闪客精灵)这款软件可以将swf文件批量导出为html5文件,该html5用svg格式图片实现swf的渲染,而且部分swf热点位置在svg中有相关的位置信息,可能可以提取使用。 Continue reading phantomjs实现swf Flash转png图片

iTunes备份iPhone电脑可用空间不足无法保存备份问题

iPhone手机自动升级系统iOS 10.3.1提示验证失败,改用iTunes升级,升级之前iTunes会先行对iPhone设备进行备份,然鹅,备份又失败了,提示:

iTunes未能备份iPhone,因为这台电脑的可用空间不足,无法保存备份。

移除文件并清空回收站会腾出更多空间。

辣么我们就根据提示去看本地磁盘,默认备份文件位置保存在 C:\Users\Administrator\AppData\Roaming\Apple Computer\MobileSync

如果C盘系统盘空间不足,我们可以像在Mac等类linux系统中用ln -s命令软链接一样,在该位置建立“快捷方式”,指向其他盘符文件夹(如E:\iTunes\Backup): Continue reading iTunes备份iPhone电脑可用空间不足无法保存备份问题

自定义大小写Caps Lock等按键

Mac OS最新版本Sierra开始, Caps Lock键原生支持切换中英文输入法, 最新的2016 touchbar mpb国行版更是将该键印上了”中/英”字样, 如果需要修改默认设置, 无须安装第三方软件在系统的键盘设置中即可自定义设置大部分的按键和替换.

大部分时间需要切换使用Mac和win7, 为了统一体验因此也想将Win7下的Caps Lock按键替换为中英文切换键, 修改注册表个人认为是一种比较方便的方法.

比如用Google输入法, 中英文切换键可以设置为使用Ctrl或Shift切换, 因此可以将Caps Lock映射为Ctrl键或Shift即可. Continue reading 自定义大小写Caps Lock等按键

记一次内存使用率过高的报警

Linux Centos服务器内存使用率过高的报警, 最后得出结论是因为 nss-softokn的bug导致curl 大量请求后, dentry 缓存飙升.

问题的开始是收到云平台发过来的内存使用率平均值超过报警值的短信, 登录云监控后台查看发现从前两天开始内存使用曲线缓慢地呈非常有规律上升趋势. Continue reading 记一次内存使用率过高的报警

Working with Git server and client

This article will explain the steps to establish a private git server on your VPS or dedicated server, with the tutorial of how to connect to the git server in your client, especially on the windows platform with OpenSSH or Putty installed. At last we would try some Git web GUI clients such as Gitlab. Continue reading Working with Git server and client

Codeigniter – ci框架浅析

Codeigniter PHP框架的MVC 代码结构, 算是比较简单和容易理解的,以下是一些浅析:

统一入口文件index.php

  1. 开发/生产环境配置,设置不同的报错等级;
  2. 设置目录常量:系统目录常量、应用目录、前台目录、View视图目录等;
  3. 设置默认时区或默认mb编码:
    //mb_internal_encoding('UTF-8');
    date_default_timezone_set('Asia/Shanghai');

Continue reading Codeigniter – ci框架浅析

阿里云SLB负载均衡https协议的一点小问题

最近在阿里云金融云ECS云服务器上部署程序后发现, 代码中的curl无法通过http/https请求同一ECS实例中的接口应用服务; 而在本地环境中测试无任何异常;

问题排查

最后排查发现是阿里金融云SLB的问题:  slb后端提供4层和7层负载均衡两种方式, 目前我们使用的正是4层TCP协议, 因为其优点是后端也支持https协议的443端口, 而且4层的源IP即客户端ip经过slb后不会发生变化, 因此可以直接获取到用户真实IP; 另外从性能上来说, 4层直接是LVS硬件负载均衡后, 不需再和7层一样经过Tengine 应用层, 就可以直达后端服务器, 因此速度更快. 但是问题就出在: Continue reading 阿里云SLB负载均衡https协议的一点小问题

Phalcon initialize 和 onConstruct在Controller和Model中的初始化

Phalcon 中在Controller和Model中的初始化方法容易比较混淆的有initialize() 和 onConstruct();

值得注意的是initialize() 在控制器的一次request只会执行一次, 在Model中也是只会执行一次.
因此在控制器Controller1中执行initialize()后, 后面的代码再次使用new Controller1(), 或者再调用new Controller2()是不会执行Controller1或Controller2中的initialize方法的. Continue reading Phalcon initialize 和 onConstruct在Controller和Model中的初始化

Win7通过Vagrant管理docker开发环境

Vagrant 环境和docker 容器不管是对于本地团队开发带来方便,  线上部署docker集群为应用提供微服务也是目前比较流行的一种趋势, 这里记录下本地部署的安装过程;

1. 官网下载win7版本:

virtualbox: https://www.virtualbox.org/wiki/Downloads
vagrant: https://www.vagrantup.com/downloads.html
docker box: 不用自己做base box,直接用别人做好的,同时先下载到本地更好:
Continue reading Win7通过Vagrant管理docker开发环境