mac电脑打印地址label

买了地址label的专用纸。 就是那种不干胶,打印上信息,揭下来就粘,很方便。 不过没有经验,看产品包装上有模版下载链接。 看了下不支持mac,在网上找了些帖子。都是针对microsoft office的。 mac里面只有open office。找了半天无果。 后来忽然想起来google docs,兴许会柳暗花明。 随便一艘就找到个addon,叫avery label merge。装上以后还有视频教程。 支持从excel里面提取要印刷的内容,自动排版。 不光能完成需求,还有意外的功能。 再次表示对google的崇敬。

写script统计jira的worklog

公司用scrum方式开发,agile board就放在atlassian的jira上。 这三年多以来并没觉得什么地方不方便。 不过最近公司要求提高项目管理的粒度,任务的时间记录更加精确。 一直以来大家记录消耗时间方面都很随意,没养成完成任务就记录时间的习惯。 时而及时,时而忘了过后补记。补记的时候就需要计算已记录时间。 虽然activity stream里面可以找到已经记录的时间。但是activity stream里面有各种各样信息, 从中间抽出所要信息不方便,而且时间记录有用小时为单位的,也有分钟为单位的。口算来合算很麻烦。 就想找相关的工具。 jira有收费的插件做这个事情,因为权限原因无法使用。 然后就从api里找答案。 (背景又臭又长) jira的restful提供丰富的功能,可以使用jql支持强大的搜索。 尝试着找到能返回记录时间的issue的jql,能够返回json。 但如何处理json消耗了不少脑细胞。 直接敲url就比较土了。 做了个web页面。把api嵌在iframe里面。然后用js来解析api返回的json。 尝试了半天,发现原来因为浏览器的安全限制,早已经不支持跨domain来访问iframe的contents了。 然后又尝试用ajax访问api,直接在返回函数里面解析。 可是公司用atlassian并不是用户名密码方式,是通过google账号,中间加了个auth认证。 时间不够就没继续尝试。 目前是iframe取到结果,手动copy到页面的textarea里面,然后js解析。 以后有时间继续尝试ajax的访问方式。

yii之坑爹的keyPrefix

当初上yii项目非常匆忙,大家搞php刚刚2个来月。技术储备不够的前提下,要上一个学习成本比较高的框架,管理层一点信心都没有。 我接了好几个管理层的酒后电话。听他们倒苦水,又连哄带骗的,终于征得了上yii的同意。 yii框架上是上了,完成了项目,性能功能上都满足要求。不过跑偏的地方可不少。 没系统的研究过yii,一边开发,一边学习,也在所难免。 最可恨的是yii的文档中文资源少不说。即便是英文文档也不系统不全面,反而不如代码易懂。 难道开发yii的这些人真的在用代码来说话? 用cron来跑php程序,是再正常不过的实现了。 一个多月有限的php经验里面,web和cron的php是两套代码。mysql来互通有无以外,独立的老死不相往来。 转到yii,自然也接着这么做。web用yii,cron就重构了原来那套代码。也没显得不方便。 yii模块间共通的东西,首次使用加载进来,以后在框架内哪里都可以调用,非常方便。 而cron是纯php写的,就没那么方便了。为了维护一致性,好多东西在web下面有一套,cron的纯php下还得有一套。 邮件,日志。。。全都要重新封装一下,俨然一个小系统。 项目急,php历练的也少。cron的代码结构很差,随着功能越加越多,代码就越来越庞杂,越来越难维护。 也提出过在cron里面wget http://homepage/xxx的方式来实现。 虽然能够解决代码不统一的问题,但由于yii初始化加载的东西多,而且还加重了web服务器的压力。遭到客户反对。 于是继续痛苦地写纯php。 这期间又上了memcached,又是两套实现。 最近有时间看codeignaiter框架,中文,日文的文档系统都很赞。 看到cli的时候忽然眼前一亮,记得查yii文档的时候没少见到这个关键字。 google了一下,果然yii支持命令行调用。真是tmd又爱又恨啊。 yii的command和controller有着同样的功能 分析请求,交给model处理。 很顺利的就把原来cron的纯php在yii框架内改写了。 自从上了memcached,数据库压力小了,性能提升一大截。 但是老板反应偶尔有些功能出问题。挡回去,也没太在意。 command实现方式开发结束最终测试的时候,发现command里面改的存在memcache的东西,web里面取不到。web的修改在command里面也不反应。 难道是访问不同的server? 查了cache配置,两个都访问同一个server同一个端口。 跟代码到webapplication和commandapplication这两个类, 即便是web和command持有memcache的不同对象,但是访问相同的服务器,内容应该是一样的。 而且flush的时候两面都空了。 难道是key出问题了? 核对代码,get和set传的key都没问题。 跟到ccache这个类居然在set和get的key前面加了前缀。 nnd这个恨啊。 这个keyprefix是public型,在哪里都没有显示的配置 没搜到api,猜是配置文件来初始化的。 蒙着往config/下面的配置文件里面塞。一次搞定。 于是乎也就知道老板反应的cron和web不一致的原因了。 配置不传这个参数的时候yii用appid又来了个md5。 如果一样的话就要多神奇有多神奇了。 教训: 1,写代码之间要多研究,这点要求比较高,赶项目的时候,很多都是抓过来就用 2,充分测试,很多问题在单元测试的时候就应该发现 3,api不详细,google不到的时候,自己动手写代码,上论坛和qq群都是低效方法。   写错代码最严重不过报个fetel error