By admin, 4 十一月, 2015

(下面代码似乎有报错,不能运行了,可以下载附件的Perl版本)

儿子喜欢看地铁线路图,但是字太小会看坏眼睛,于是写了下面的脚本把地铁线路图裁成16等份,每份2%重叠,用16张A4纸彩色打印出来,然后用胶水粘在一起。脚本调用了ImageMagick的convert命令,最后一部分的偏移量要减去2%,我第一次的打的时候犯了这个错误,导致部分图片比例不对。

#!/bin/sh

# 4448x6290 => 16 * $WIDTHx$HEIGHT1

# A0 size is 2380x3368, A4 size is 595x842

 

WIDTH=4448

HEIGHT=6290

 

WIDTH1=$(($WIDTH * 0.245))

WIDTH2=$(($WIDTH * 0.49))

WIDTH3=$(($WIDTH * 0.735))

HEIGHT1=$(($HEIGHT * 0.245))

HEIGHT2=$(($HEIGHT * 0.49))

By admin, 2 十一月, 2015

微信的订阅号和服务号开发差别不大,本文同样适用于订阅号的开发。

1. 申请服务号

到微信公众平台申请服务号:https://mp.weixin.qq.com/

微信的权限不时会调整,网上一些文章的描述会过时,最好是登录服务号的后台,查看有哪些权限。很多高级的权限都需要认证的服务号的,认证需要提供公司营业执照等,并每年缴纳一笔费用(印象中是300元/年)。

2. 开发者中心

登录公众平台,做好基本设置(我也不记得有什么东西需要设置了),然后就点击公众平台左下角的“开发者中心”链接查看和设置权限等信息。

标签

By admin, 2 十一月, 2015

1. 没有多环境的配置机制

开发网站通常需要在本地配置、然后放到测试服务器、然后放到生产环境。那么我们需要有3套的配置文件(数据库的账号密码)。但是ThinkPHP不像Laravel等框架可以把多个环境的配置区分开来,并且ThinkPHP的应用配置文件放在Application/Common/Conf/config.php,也就是说,如果我们想用rsync命令把所有代码同步到服务器,会把服务器的配置覆盖。这一点很不方便。

2. 没有内置发送邮件的支持

需要自己安装扩展,缺乏这个基本功能不太方便。

3. 没有内置用户管理、权限控制的支持

这是每个网站都需要有的功能,连这个也不支持很不方便。对于新手来说,可能还不懂得怎样构建权限控制的模型,让系统很容易出安全漏洞。在网上也很难找到一个质量高的完整例子。

4. 国内的开源PHP框架

这个其实不是什么缺点,但是会被部分人鄙视。这种偏见有其合理性的一面,因为ThinkPHP框架本身以及社区里使用ThinkPHP程序员的平均水平要低于国外的PHP框架,长期混在这一社区水平难有提高。

标签

By admin, 2 十一月, 2015

中学有个女同学,圆圆的脸蛋,傻傻的笑容,行事很低调(但不是低调得让人觉得神秘),很不起眼。印象中没有参加过任何理科的奥林匹克竞赛。高考的时候,她考了899分(900分为状元),去了清华大学,也不记得什么专业,好像和信息相关。当时也只觉得她考得很高分,也没有什么特别的感觉。

昨天中学校庆,在微信群里看到她抱着3岁儿子的照片,还是那样标准的眼神和笑容,很不起眼。照片是和另外几个女同学一起照的,其中有一人是中山大学的副教授,各人看上去都很普通。有人对照片的评论是:“人生的赢家”。

我在想,为什么这么多年来,我从来都没有看出她有什么过人之处。为什么她考试第一名的时候可以考得那么不引人注意。而那些搞奥数的人则是非常瞩目。我甚至突然冒出一个想法,当年她考899分是不是故意的?当然这个可能性应该极低,不过当我们自己觉得一件事发生的可能性很低的时候也许是因为我们不理解而已。

这些看上去很普通的人是有智慧和很幸福的人,那些行事张扬好像很了不起的人其实只是小丑。当我们走在街上、地铁里,盘算着心里“重要”事情的时候,身边又有多少不起眼的智者和我们插肩而过呢?

标签

By admin, 30 十月, 2015

jQuery Mobile会通过Ajax加载链接页面,这令页面切换很流畅,也不会出现404的空白页。但是这种技巧带来很多JS和CSS加载的问题。简单来说,jQuery Mobile只会加载新页面的body部分。更具体的描述见下面文章:

http://www.gajotres.net/how-jquery-mobile-page-handling-affects-javascript-executions/

http://demos.jquerymobile.com/1.3.2/faq/scripts-and-styles-not-loading.html

标签

By admin, 30 十月, 2015

在进行微信公众号开发时,以前必须要有外网域名才能收到微信服务器的推送,这给开发和调试带来很大的不便。

现在方便了,QQ浏览器提供了微信公众号调试工具,开发者可以在自己的开发机上进行开发和调试,不再需要外网IP和域名。不仅可以直观看到已接收和已发送的消息内容和事件,方便开发和问题定位,还可以重复发送已接收的微信报文,避免调试时频繁操作手机

原理

 

标签

By admin, 29 十月, 2015

1. 硬件

Mac是最理想的Web开发操作系统,除了看起来帅一些之外,主要原因是很多东西接近Linux,可以使用rsync命令把文件同步到服务器,有符号链接(这是Windows缺失的一个重要特性)。不过要注意的是Mac文件系统是不区分大小写的。同时还是要装个Windows虚拟机测IE浏览器的显示效果。

用Windows也没有问题,还可以省去装虚拟机的麻烦。

2. 软件

Web服务器就用XAMPP吧,所有操作系统平台都支持了。Windows平台也可使用注明的WAMP。

编辑器的话,个人喜欢开源的NetBeans,比较出名的、收费的编辑器有PhpStorm。

标签

By admin, 28 十月, 2015

Slim是一个微框架。

有一套和Lavarel很相似的路由机制。

有一个很详细的教程,详细到把基础request变量都说得很详细,我会觉得这么微的框架还要谈及这么琐碎的功能,那它本身可能真没什么功能。不过理解这些功能对于PHP程序员打好基础很有好处。比如说,文档会提及ETag,有助于程序员更好地理解缓存知识。

有中间件机制,有Hook机制。

没有显示地描述MVC的设计,没有数据库ORM模型。

PHP developers love Slim for developing Restful APIs and services, thanks to Josh Lockhart for creating this tiny beast. The best thing about starting with a micro framework like slim is that you don’t need to spend time learning it. The code base is so small that you can run through the entire code in a late night session.

标签