Latest Posts

ImageMagick缩放图片并中间截取矩形图片

convert 源图片路径 +antialias -quality 80 -resize “175^” 输出图片路径

这里不使用 -sample 而是 -resize 方式 ,-sample生成的缩略图锯齿明显画面粗糙。
“175^” 最小边为175

convert 源图片路径 -gravity center -crop “175×175+0+0” 输出图片路径

从中心点按正方形截取图片
两行命令解决大问题

Android 录制的视频封包flv

//Create video byte stream object

fis = receiver.getInputStream();
fillBuffer(buffer, 0, 4, fis); // 读取取客户端名字参数长度
int namelength = bytes2int(buffer);
System.out.println(“–client len—” + namelength);
fillBuffer(buffer, 0, namelength, fis);
String clientname = new String(buffer, 0, namelength);
System.out.println(namelength + “–clientname—” + clientname);
fillBuffer(buffer, 0, 4, fis); // 读取取H264参数长度
int headlength = bytes2int(buffer);
byte[] cdata = new byte[headlength];
fillBuffer(cdata, 0, headlength, fis);
//CDATA_PS.put(clientname, cdata);
FLV_PROPER.put(clientname, getFlvProperties(cdata));
try {
publisher = new TopicPublisher(clientname);
new Thread(new Distribution()).start();
} catch (Exception e) {
e.printStackTrace();
}

关于如何对付wordpress的垃圾广告机器人

wordpress 是个广为流行的博客系统,也正应为用户之多,随之而来的垃圾广告也越来越多。

曾装过几个反垃圾广告的插件都不怎么理想(包括图片验证码的也无效,设计有漏洞),后来通过日志分析用iptable屏蔽IP段能堵住大部分广告机器人,不过还是要时常填补机器人IP到iptable,操作起来不方便。

机器人是模拟浏览器请求的软件,有伪装的header user-agent,不容易同正常请求区分开来,所以通过这些参数没有有效的屏蔽办法。

机器人软件模拟浏览器请求有个缺陷就是不会执行页面JS脚本。

PHP后台管理源码

后台管理程序由php开发,目前只实现了基本功能:模块管理权限分配

使用codeigniter框架和Smarty模板

页面使用ACE Admin UI模板,为了结合frame做了二次修改

图形报表使用openflashchart,OFC php有不少BUG,我已经做了修复

12306曾经的车站名扰码算法

12306曾经按车站名查询余票,对站名做了编码,估计是防止别人直接使用余票查询功能。

这个算不上加密,不过也确实防止了被民间盗用。

编码是用js实现的,函数名还比较有欺骗性,还好我无意中发现了并翻译了JAVA和Objective-c两个版本

代码没什么难度

JAVA版本

public static String tranCode(String str, String pwd) {
String prand = “”;
for (int i = 0; i < pwd.length(); i++) { prand += ((int) pwd.charAt(i)); }

Linux 下通过命令生成缩略图并按规则重命名

Linux 下可以通过命令方式很方便的批量生成图片缩略图,这里需要用到的一个工具是ImageMagick。

ImageMagick是一个功能强大的图像工具,大多数linux发行版都会默认安装。(手动安装自行google)

缩略图转换命令如下:

convert head.jpg -sample 100×100 “head_100x100.jpg”
这是单个转换,将head.jpg 转换为长宽100×100大小的图片,并且重命名,将尺寸加到文件名中。

注意这里100×100是加在文件名中间位置。

通常的批量转换方式:

for img in `find ./ -name “*.jpg”`
do
convert $img -sample 200×150 “100x100_”$img
done

nodejs web框架搭建 express + handlebars

以前用的django,php+smarty,顺着思路搭建下nodejs web

jade 模板优点缺点都比较突出,适合简洁更个的网页
EJS 和大多数模板风格类似,但是语法难看些。
handlebars 语法上是我比较偏向的,而且它有个express3-handlebars,方便使用模板继承功能(虽然有点弱)
ericf/express3-handlebars · GitHub

模板继承在其他语言模板引擎如smarty,django的默认的都是标配的,便于页面复用是include一个很好的补充

这里就不说详细配置步骤,nodejs 还没有入门的先补习下基础文档

Dojo 中使用 DataGrid 实现 RESTful

DataGrid 是 Dojo的数据表格控件,功能完善,可轻松实现RESTful功能。

DataGrid同RESTful服务器交互通过JsonRestStore实现执行GET、PUT、POST和DELETE命令

var store = new dojox.data.JsonRestStore({target:”/Table/”, idAttribute:”id”});
为DataGrid指定 store

gridLayout = [
{ name: ‘Address’, field: ‘shipToAddress’, editable: true},
{ name: ‘Name’, field: ‘name’},
{ name: ‘Id’, field: ‘id’}];
var grid = new dojox.grid.DataGrid({
store: store,
structure: gridLayout
}, dojo.byId(“gridElement”));
grid.startup();
当对DataGrid进行编辑操作后执行store.save()时会执行对应操作

POST /{Table} 新增

PUT /{Table}/{id} 修改 (如果修改多行会分多次提交)

DELETE /{Table}/{id} 删除